update to 0.9.1 release tarball

tarball from:
<https://sourceforge.net/projects/curlftpfs/files/curlftpfs/0.9.2/curlftpfs-0.9.2.tar.gz>
This commit is contained in:
2024-03-31 22:06:18 +00:00
parent 29db09bd83
commit f7215c076c
21 changed files with 2308 additions and 1798 deletions

111
ChangeLog
View File

@@ -0,0 +1,111 @@
Apr 29, 2008
release curlftpfs 0.9.2
mail2nob
Apr 29, 2008
new helper function cancel_previous_multi() which checks for errors.
mail2nob
Apr 25, 2008
bump configure.ac version 0.9.2; requires libcurl >=7.17.0
mail2nob
Apr 23, 2008
add Makefile.cvs
mail2nob
Apr 23, 2008
patch by Miklos Szeredi: fixes 'du' for files >= 4GB.
mail2nob
Jan 31, 2008
Fix missing -liconv.
robsonbraga
Nov 29, 2007
open(O_RDWR) --> fail with ENOTSUP
mail2nob
Nov 25, 2007
remove buffered writes completely and handle O_RDWR
mail2nob
Nov 20, 2007
Fix "hang" when curl_easy_perform(fh->write_conn) in the write thread fails; Detect write errors in the write thread; Synchronize writing with the new semaphore "data_written" to be able to report write errors earlier; Fix that ftpfs_truncate created empty files with no permissions set (caused problems with gedit and others)
mail2nob
Nov 20, 2007
Patch from Miklos Szeredi to support streaming writes (includes changes from Robson Braga Araujo)
mail2nob
Jul 26, 2007
Added option to use a custom command to list files.
robsonbraga
Jun 28, 2007
Add ftp_method option to make it faster to browse directories.
robsonbraga
Jun 28, 2007
Fix broken header dependencies.
robsonbraga
Jun 28, 2007
Put the FTP server name in fsname by default. Upgraded FUSE_USE_VERSION to 26.
robsonbraga
Jun 14, 2007
Edited wiki page through web user interface.
robsonbraga
May 25, 2007
Disable EPSV by default because it can cause the program to hang.
robsonbraga
Apr 05, 2007
Edited wiki page through web user interface.
robsonbraga
Apr 05, 2007
Tagging the 0.9.1 release.
robsonbraga
Apr 05, 2007
Version 0.9.1.
robsonbraga
Apr 05, 2007
Revert changes from revisions 68 and 69 that enabled uploads even for servers that don't support overwrite. This creates a problem that we say the file is created but things like GETATTR don't see it in the server. We may want to make getattr look at local attributes in the future to make this work.
robsonbraga
Feb 28, 2007
Added option to be able to use SOCKS4/5 proxy. Only works with libcurl 7.16.2 or higher.
robsonbraga
Feb 27, 2007
Added debug levels.
robsonbraga
Feb 14, 2007
Generate a library so that tests don't have to compile files again.
robsonbraga
Feb 14, 2007
Remove warnings.
robsonbraga
Feb 13, 2007
Correct broken test.
robsonbraga
Feb 13, 2007
Corrected bug doing assignment instead of comparison.
robsonbraga
Feb 13, 2007
Added support for caching files not found, avoiding to do repeated access to the FTP server.
robsonbraga
Feb 10, 2007
Revert last change. FUSE_USE_VERSION is already defined in Makefile.am but old automake doesn't get it.
robsonbraga

View File

@@ -3,7 +3,10 @@ SUBDIRS = compat doc
DIST_SUBDIRS = $(SUBDIRS) tests DIST_SUBDIRS = $(SUBDIRS) tests
AM_CPPFLAGS = -DFUSE_USE_VERSION=25 LIBICONV = @LIBICONV@
AM_CPPFLAGS = -DFUSE_USE_VERSION=26
AM_LDFLAGS = $(LIBICONV)
bin_PROGRAMS = curlftpfs bin_PROGRAMS = curlftpfs

View File

@@ -41,8 +41,7 @@ bin_PROGRAMS = curlftpfs$(EXEEXT)
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
compile config.guess config.sub depcomp install-sh ltmain.sh \ config.guess config.sub depcomp install-sh ltmain.sh missing
missing
subdir = . subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
@@ -161,6 +160,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@ PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
STRIP = @STRIP@ STRIP = @STRIP@
@@ -215,7 +215,8 @@ sysconfdir = @sysconfdir@
target_alias = @target_alias@ target_alias = @target_alias@
SUBDIRS = compat doc SUBDIRS = compat doc
DIST_SUBDIRS = $(SUBDIRS) tests DIST_SUBDIRS = $(SUBDIRS) tests
AM_CPPFLAGS = -DFUSE_USE_VERSION=25 AM_CPPFLAGS = -DFUSE_USE_VERSION=26
AM_LDFLAGS = $(LIBICONV)
curlftpfs_SOURCES = ftpfs.c curlftpfs_SOURCES = ftpfs.c
@FUSE_OPT_COMPAT_FALSE@curlftpfs_LDADD = libcurlftpfs.a @FUSE_OPT_COMPAT_FALSE@curlftpfs_LDADD = libcurlftpfs.a
@FUSE_OPT_COMPAT_TRUE@curlftpfs_LDADD = libcurlftpfs.a compat/libcompat.la @FUSE_OPT_COMPAT_TRUE@curlftpfs_LDADD = libcurlftpfs.a compat/libcompat.la

37
README
View File

@@ -13,8 +13,15 @@ As the FTP protocol is not very feature rich, this filesystem does not
fulfill every constraint of a real filesystem, but it should be usable fulfill every constraint of a real filesystem, but it should be usable
for simple tasks like copying and editing files. for simple tasks like copying and editing files.
Compilation and Instalation Requirements
=========================== ============
glib-2.0
libcurl >= 7.17.0
Compilation and Installation
============================
./configure ./configure
make make
@@ -27,3 +34,29 @@ curlftpfs <ftpsite> <mountpoint>
ex.: ex.:
curlftpfs ftp://ftp.sunet.se/ sunet/ curlftpfs ftp://ftp.sunet.se/ sunet/
Debugging
=========
curlftpfs -f -v -o debug,ftpfs_debug=3 <ftpsite> <mountpoint>
(runs the curlftpfs in foreground and shows libcurl verbose debug output)
Known Problems
==============
1) Several GUI application (gedit, leafpad,...) use open(O_RDWR) + seek mode for saving files
which cannot be supported by the FTP protocol. Therefore saving files might throw an error.
Hopefully future kernels will provide special errno's to make it easier to
deal with less capable file-systems.
2) There seems to be a bug in libcurl 7.18 which sometimes causes problems reading files.
Should be fixed in libcurl >= 7.18.2
http://sourceforge.net/tracker/index.php?func=detail&aid=1951588&group_id=976&atid=100976

637
aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

View File

@@ -14,11 +14,6 @@
#include <glib.h> #include <glib.h>
#include <pthread.h> #include <pthread.h>
#define DEFAULT_CACHE_TIMEOUT 300
#define MAX_CACHE_SIZE 10000
#define MIN_CACHE_CLEAN_INTERVAL 5
#define CACHE_CLEAN_INTERVAL 60
struct cache { struct cache {
int on; int on;
unsigned stat_timeout; unsigned stat_timeout;

View File

@@ -16,6 +16,11 @@
#define FUSE_VERSION (FUSE_MAJOR_VERSION * 10 + FUSE_MINOR_VERSION) #define FUSE_VERSION (FUSE_MAJOR_VERSION * 10 + FUSE_MINOR_VERSION)
#endif #endif
#define DEFAULT_CACHE_TIMEOUT 10
#define MAX_CACHE_SIZE 10000
#define MIN_CACHE_CLEAN_INTERVAL 5
#define CACHE_CLEAN_INTERVAL 60
typedef struct fuse_cache_dirhandle *fuse_cache_dirh_t; typedef struct fuse_cache_dirhandle *fuse_cache_dirh_t;
typedef int (*fuse_cache_dirfil_t) (fuse_cache_dirh_t h, const char *name, typedef int (*fuse_cache_dirfil_t) (fuse_cache_dirh_t h, const char *name,
const struct stat *stbuf); const struct stat *stbuf);

View File

@@ -126,6 +126,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@ PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
STRIP = @STRIP@ STRIP = @STRIP@

109
config.guess vendored
View File

@@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
# Inc. # Inc.
timestamp='2006-07-02' timestamp='2007-07-22'
# This file is free software; you can redistribute it and/or modify it # 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 # under the terms of the GNU General Public License as published by
@@ -139,23 +139,6 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
if [ "${UNAME_SYSTEM}" = "Linux" ] ; then
eval $set_cc_for_build
cat << EOF > $dummy.c
#include <features.h>
#ifdef __UCLIBC__
# ifdef __UCLIBC_CONFIG_VERSION__
LIBC=uclibc __UCLIBC_CONFIG_VERSION__
# else
LIBC=uclibc
# endif
#else
LIBC=gnu
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep LIBC= | sed -e 's: ::g'`
fi
# Note: order is significant - the case branches are not exclusive. # Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -178,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm*) machine=arm-unknown ;; arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;; sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;; sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac esac
# The Operating System including object format, if it has switched # The Operating System including object format, if it has switched
@@ -346,7 +330,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;; exit ;;
i86pc:SunOS:5.*:*) i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;; exit ;;
sun4*:SunOS:6*:*) sun4*:SunOS:6*:*)
@@ -797,7 +781,7 @@ EOF
i*:CYGWIN*:*) i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin echo ${UNAME_MACHINE}-pc-cygwin
exit ;; exit ;;
i*:MINGW*:*) *:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32 echo ${UNAME_MACHINE}-pc-mingw32
exit ;; exit ;;
i*:windows32*:*) i*:windows32*:*)
@@ -807,12 +791,15 @@ EOF
i*:PW*:*) i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32 echo ${UNAME_MACHINE}-pc-pw32
exit ;; exit ;;
x86:Interix*:[3456]*) *:Interix*:[3456]*)
echo i586-pc-interix${UNAME_RELEASE} case ${UNAME_MACHINE} in
exit ;; x86)
EM64T:Interix*:[3456]*) echo i586-pc-interix${UNAME_RELEASE}
echo x86_64-unknown-interix${UNAME_RELEASE} exit ;;
exit ;; EM64T | authenticamd)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks echo i${UNAME_MACHINE}-pc-mks
exit ;; exit ;;
@@ -846,28 +833,28 @@ EOF
echo ${UNAME_MACHINE}-pc-minix echo ${UNAME_MACHINE}-pc-minix
exit ;; exit ;;
arm*:Linux:*:*) arm*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC} echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;; exit ;;
avr32*:Linux:*:*) avr32*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC} echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;; exit ;;
cris:Linux:*:*) cris:Linux:*:*)
echo cris-axis-linux-${LIBC} echo cris-axis-linux-gnu
exit ;; exit ;;
crisv32:Linux:*:*) crisv32:Linux:*:*)
echo crisv32-axis-linux-${LIBC} echo crisv32-axis-linux-gnu
exit ;; exit ;;
frv:Linux:*:*) frv:Linux:*:*)
echo frv-unknown-linux-${LIBC} echo frv-unknown-linux-gnu
exit ;; exit ;;
ia64:Linux:*:*) ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC} echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;; exit ;;
m32r*:Linux:*:*) m32r*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC} echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;; exit ;;
m68*:Linux:*:*) m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC} echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;; exit ;;
mips:Linux:*:*) mips:Linux:*:*)
eval $set_cc_for_build eval $set_cc_for_build
@@ -890,7 +877,7 @@ EOF
s: ::g s: ::g
p p
}'`" }'`"
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;; ;;
mips64:Linux:*:*) mips64:Linux:*:*)
eval $set_cc_for_build eval $set_cc_for_build
@@ -913,16 +900,16 @@ EOF
s: ::g s: ::g
p p
}'`" }'`"
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;; ;;
or32:Linux:*:*) or32:Linux:*:*)
echo or32-unknown-linux-${LIBC} echo or32-unknown-linux-gnu
exit ;; exit ;;
ppc:Linux:*:*) ppc:Linux:*:*)
echo powerpc-unknown-linux-${LIBC} echo powerpc-unknown-linux-gnu
exit ;; exit ;;
ppc64:Linux:*:*) ppc64:Linux:*:*)
echo powerpc64-unknown-linux-${LIBC} echo powerpc64-unknown-linux-gnu
exit ;; exit ;;
alpha:Linux:*:*) alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -935,37 +922,40 @@ EOF
EV68*) UNAME_MACHINE=alphaev68 ;; EV68*) UNAME_MACHINE=alphaev68 ;;
esac esac
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
if test "$?" = 0 ; then LIBC="gnulibc1" ; fi if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-${LIBC} echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
exit ;; exit ;;
parisc:Linux:*:* | hppa:Linux:*:*) parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level # Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA7*) echo hppa1.1-unknown-linux-gnu ;;
PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-gnu ;;
*) echo hppa-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-gnu ;;
esac esac
exit ;; exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*) parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-${LIBC} echo hppa64-unknown-linux-gnu
exit ;; exit ;;
s390:Linux:*:* | s390x:Linux:*:*) s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux echo ${UNAME_MACHINE}-ibm-linux
exit ;; exit ;;
sh64*:Linux:*:*) sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC} echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;; exit ;;
sh*:Linux:*:*) sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC} echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;; exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*) sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC} echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;; exit ;;
vax:Linux:*:*) vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-${LIBC} echo ${UNAME_MACHINE}-dec-linux-gnu
exit ;; exit ;;
x86_64:Linux:*:*) x86_64:Linux:*:*)
echo x86_64-unknown-linux-${LIBC} echo x86_64-unknown-linux-gnu
exit ;;
xtensa:Linux:*:*)
echo xtensa-unknown-linux-gnu
exit ;; exit ;;
i*86:Linux:*:*) i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so # The BFD linker knows what the default object file format is, so
@@ -980,22 +970,20 @@ EOF
p'` p'`
case "$ld_supported_targets" in case "$ld_supported_targets" in
elf32-i386) elf32-i386)
TENTATIVE="${UNAME_MACHINE}-pc-linux-${LIBC}" TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
;; ;;
a.out-i386-linux) a.out-i386-linux)
echo "${UNAME_MACHINE}-pc-linux-${LIBC}aout" echo "${UNAME_MACHINE}-pc-linux-gnuaout"
exit ;; exit ;;
coff-i386) coff-i386)
echo "${UNAME_MACHINE}-pc-linux-${LIBC}coff" echo "${UNAME_MACHINE}-pc-linux-gnucoff"
exit ;; exit ;;
"") "")
# Either a pre-BFD a.out linker (linux-gnuoldld) or # Either a pre-BFD a.out linker (linux-gnuoldld) or
# one that does not give us useful --help. # one that does not give us useful --help.
echo "${UNAME_MACHINE}-pc-linux-${LIBC}oldld" echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
exit ;; exit ;;
esac esac
# This should get integrated into the C code below, but now we hack
if [ "$LIBC" != "gnu" ] ; then echo "$TENTATIVE" && exit 0 ; fi
# Determine whether the default compiler is a.out or elf # Determine whether the default compiler is a.out or elf
eval $set_cc_for_build eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c sed 's/^ //' << EOF >$dummy.c
@@ -1227,6 +1215,15 @@ EOF
SX-6:SUPER-UX:*:*) SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE} echo sx6-nec-superux${UNAME_RELEASE}
exit ;; 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:*:*) Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE} echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;; exit ;;

View File

@@ -213,21 +213,6 @@
/* Version number of package */ /* Version number of package */
#undef VERSION #undef VERSION
/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
<pthread.h>, or <semaphore.h> is not used. If the typedef was allowed, the
#define below would cause a syntax error. */
#undef _UINT32_T
/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
<pthread.h>, or <semaphore.h> is not used. If the typedef was allowed, the
#define below would cause a syntax error. */
#undef _UINT64_T
/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
<pthread.h>, or <semaphore.h> is not used. If the typedef was allowed, the
#define below would cause a syntax error. */
#undef _UINT8_T
/* Define to empty if `const' does not conform to ANSI C. */ /* Define to empty if `const' does not conform to ANSI C. */
#undef const #undef const
@@ -260,15 +245,3 @@
/* Define to `int' if <sys/types.h> doesn't define. */ /* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t #undef uid_t
/* Define to the type of an unsigned integer type of width exactly 32 bits if
such a type exists and the standard includes do not define it. */
#undef uint32_t
/* Define to the type of an unsigned integer type of width exactly 64 bits if
such a type exists and the standard includes do not define it. */
#undef uint64_t
/* Define to the type of an unsigned integer type of width exactly 8 bits if
such a type exists and the standard includes do not define it. */
#undef uint8_t

60
config.sub vendored
View File

@@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
# Inc. # Inc.
timestamp='2006-07-02' timestamp='2007-06-28'
# This file is (in principle) common to ALL GNU software. # This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software # The presence of a machine in this file suggests that SOME GNU software
@@ -244,13 +244,13 @@ case $basic_machine in
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
| bfin \ | bfin \
| c4x | clipper \ | c4x | clipper \
| d10v | d30v | dlx | dsp16xx | dvp \ | d10v | d30v | dlx | dsp16xx \
| fr30 | frv \ | fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \ | i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \ | ip2k | iq2000 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \ | m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | mcore \ | maxq | mb | microblaze | mcore | mep \
| mips | mipsbe | mipseb | mipsel | mipsle \ | mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \ | mips16 \
| mips64 | mips64el \ | mips64 | mips64el \
@@ -276,7 +276,8 @@ case $basic_machine in
| pdp10 | pdp11 | pj | pjl \ | pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \ | pyramid \
| sh | sh[1234] | sh[24]a | sh[24]a*eb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | score \
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \ | sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -284,7 +285,7 @@ case $basic_machine in
| tahoe | thumb | tic4x | tic80 | tron \ | tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \ | v850 | v850e \
| we32k \ | we32k \
| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k) | z8k)
basic_machine=$basic_machine-unknown basic_machine=$basic_machine-unknown
;; ;;
@@ -323,7 +324,7 @@ case $basic_machine in
| clipper-* | craynv-* | cydra-* \ | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \ | d10v-* | d30v-* | dlx-* \
| elxsi-* \ | elxsi-* \
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \ | h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \ | i*86-* | i860-* | i960-* | ia64-* \
@@ -357,7 +358,7 @@ case $basic_machine in
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \ | pyramid-* \
| romp-* | rs6000-* \ | romp-* | rs6000-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]a*eb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \ | sparclite-* \
@@ -367,7 +368,7 @@ case $basic_machine in
| tron-* \ | tron-* \
| v850-* | v850e-* | vax-* \ | v850-* | v850e-* | vax-* \
| we32k-* \ | we32k-* \
| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
| xstormy16-* | xtensa-* \ | xstormy16-* | xtensa-* \
| ymp-* \ | ymp-* \
| z8k-*) | z8k-*)
@@ -474,8 +475,8 @@ case $basic_machine in
basic_machine=craynv-cray basic_machine=craynv-cray
os=-unicosmp os=-unicosmp
;; ;;
cr16c) cr16)
basic_machine=cr16c-unknown basic_machine=cr16-unknown
os=-elf os=-elf
;; ;;
crds | unos) crds | unos)
@@ -682,6 +683,10 @@ case $basic_machine in
basic_machine=i386-pc basic_machine=i386-pc
os=-mingw32 os=-mingw32
;; ;;
mingw32ce)
basic_machine=arm-unknown
os=-mingw32ce
;;
miniframe) miniframe)
basic_machine=m68000-convergent basic_machine=m68000-convergent
;; ;;
@@ -689,24 +694,6 @@ case $basic_machine in
basic_machine=m68k-atari basic_machine=m68k-atari
os=-mint os=-mint
;; ;;
mipsEE* | ee | ps2)
basic_machine=mips64r5900el-scei
case $os in
-linux*)
;;
*)
os=-elf
;;
esac
;;
iop)
basic_machine=mipsel-scei
os=-irx
;;
dvp)
basic_machine=dvp-scei
os=-elf
;;
mips3*-*) mips3*-*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
;; ;;
@@ -927,6 +914,10 @@ case $basic_machine in
sb1el) sb1el)
basic_machine=mipsisa64sb1el-unknown basic_machine=mipsisa64sb1el-unknown
;; ;;
sde)
basic_machine=mipsisa32-sde
os=-elf
;;
sei) sei)
basic_machine=mips-sei basic_machine=mips-sei
os=-seiux os=-seiux
@@ -938,6 +929,9 @@ case $basic_machine in
basic_machine=sh-hitachi basic_machine=sh-hitachi
os=-hms os=-hms
;; ;;
sh5el)
basic_machine=sh5le-unknown
;;
sh64) sh64)
basic_machine=sh64-unknown basic_machine=sh64-unknown
;; ;;
@@ -1232,7 +1226,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -irx*) | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
# Remember, each alternative MUST END IN *, to match a version number. # Remember, each alternative MUST END IN *, to match a version number.
;; ;;
-qnx*) -qnx*)
@@ -1384,6 +1378,9 @@ else
# system, and we'll never get to this point. # system, and we'll never get to this point.
case $basic_machine in case $basic_machine in
score-*)
os=-elf
;;
spu-*) spu-*)
os=-elf os=-elf
;; ;;
@@ -1424,6 +1421,9 @@ case $basic_machine in
m68*-cisco) m68*-cisco)
os=-aout os=-aout
;; ;;
mep-*)
os=-elf
;;
mips*-cisco) mips*-cisco)
os=-elf os=-elf
;; ;;

1589
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
AC_INIT(curlftpfs, 0.9.1) AC_INIT(curlftpfs, 0.9.2)
AM_INIT_AUTOMAKE AM_INIT_AUTOMAKE
AM_CONFIG_HEADER(config.h) AM_CONFIG_HEADER(config.h)
@@ -13,12 +13,12 @@ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
PKG_CHECK_MODULES(GLIB, [glib-2.0]) PKG_CHECK_MODULES(GLIB, [glib-2.0])
PKG_CHECK_MODULES(FUSE, [fuse >= 2.2]) PKG_CHECK_MODULES(FUSE, [fuse >= 2.2])
LIBCURL_CHECK_CONFIG([yes], [7.15.2], [], [AC_MSG_ERROR(["libcurl not found"])]) LIBCURL_CHECK_CONFIG([yes], [7.17.0], [], [AC_MSG_ERROR(["libcurl not found"])])
if test "$libcurl_protocol_FTP" != yes; then if test "$libcurl_protocol_FTP" != yes; then
AC_MSG_ERROR(["We need libcurl with support for FTP protocol."]) AC_MSG_ERROR(["We need libcurl with support for FTP protocol."])
fi fi
CFLAGS="$CFLAGS -Wall -W -D_REENTRANT $GLIB_CFLAGS $FUSE_CFLAGS $LIBCURL_CPPFLAGS" CFLAGS="$CFLAGS -Wall -W -Wno-sign-compare -D_REENTRANT $GLIB_CFLAGS $FUSE_CFLAGS $LIBCURL_CPPFLAGS"
LIBS="$GLIB_LIBS $FUSE_LIBS $LIBCURL" LIBS="$GLIB_LIBS $FUSE_LIBS $LIBCURL"
have_fuse_opt_parse=no have_fuse_opt_parse=no
@@ -40,9 +40,9 @@ AC_STRUCT_ST_BLOCKS
AC_CHECK_MEMBERS([struct stat.st_rdev]) AC_CHECK_MEMBERS([struct stat.st_rdev])
AC_HEADER_TIME AC_HEADER_TIME
AC_STRUCT_TM AC_STRUCT_TM
AC_TYPE_UINT32_T #AC_TYPE_UINT32_T
AC_TYPE_UINT64_T #AC_TYPE_UINT64_T
AC_TYPE_UINT8_T #AC_TYPE_UINT8_T
# Checks for library functions. # Checks for library functions.
AC_FUNC_CHOWN AC_FUNC_CHOWN

View File

@@ -112,6 +112,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@ PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
STRIP = @STRIP@ STRIP = @STRIP@

View File

@@ -1,4 +1,4 @@
.TH curlftpfs 1 "12 Apr 2006" "CurlFtpFS 0.6.1" "CurlFtpFS Manual" .TH curlftpfs 1 "25 May 2007" "CurlFtpFS 0.9.2" "CurlFtpFS Manual"
.SH NAME .SH NAME
curlftpfs \- mount a ftp host as a local directory curlftpfs \- mount a ftp host as a local directory
.SH SYNOPSIS .SH SYNOPSIS
@@ -80,6 +80,10 @@ Maximum time in seconds that you allow the connection to the server to take.
This only limits the connection phase, once curlftpfs has connected this option This only limits the connection phase, once curlftpfs has connected this option
is of no more use. is of no more use.
.TP .TP
.B custom_list=<command>
Command used by curlftpfs to list files. The default is "LIST -a" but some
servers might require extra options, e.g. "LIST -la".
.TP
.B disable_eprt .B disable_eprt
Tell curlftpfs to disable the use of the EPRT and LPRT commands when doing Tell curlftpfs to disable the use of the EPRT and LPRT commands when doing
active FTP transfers. Curlftpfs will normally always first attempt to use EPRT, active FTP transfers. Curlftpfs will normally always first attempt to use EPRT,
@@ -90,8 +94,11 @@ traditional PORT command.
.TP .TP
.B disable_epsv .B disable_epsv
Tell curlftpfs to disable the use of the EPSV command when doing passive FTP Tell curlftpfs to disable the use of the EPSV command when doing passive FTP
transfers. Curlftpfs will normally always first attempt to use EPSV before transfers. This is the default.
PASV, but with this option, it will not try using EPSV. .TP
.B enable_epsv
Tell curlftpfs to enable the use of the EPSV command when doing passive FTP
transfers. Curlftpfs will first attempt to use EPSV before PASV.
.TP .TP
.B engine=<name> .B engine=<name>
Select the OpenSSL crypto engine to use for cipher operations. Use: Select the OpenSSL crypto engine to use for cipher operations. Use:
@@ -107,6 +114,19 @@ the
.B \-d .B \-d
option. option.
.TP .TP
.B ftp_method=<method>
Control what method curlftpfs should use to reach a file on the
server. The method argument should be one of the following alternatives:
.RS
.IP multicwd
curlftpfs does a single CWD operation for each path part in the given URL. For
deep hierarchies this means very many commands. This is how RFC1738 says it
should be done. This is the default but the slowest behavior.
.IP singlecwd
curlftpfs does one CWD with the full target directory and then operates on the
file \&"normally" (like in the multicwd case).
.RE
.TP
.B ftp_port=<address> .B ftp_port=<address>
Reverses the initiator/listener roles when connecting with ftp. This Reverses the initiator/listener roles when connecting with ftp. This
switch makes curlftpfs use the PORT command instead of PASV. In practice, PORT switch makes curlftpfs use the PORT command instead of PASV. In practice, PORT

View File

@@ -101,7 +101,7 @@ static int parse_dir_unix(const char *line,
if (ftpfs.blksize) { if (ftpfs.blksize) {
sbuf->st_blksize = ftpfs.blksize; sbuf->st_blksize = ftpfs.blksize;
sbuf->st_blocks = sbuf->st_blocks =
((size + ftpfs.blksize - 1) & ~(ftpfs.blksize - 1)) >> 9; ((size + ftpfs.blksize - 1) & ~((unsigned long long) ftpfs.blksize - 1)) >> 9;
} }
sprintf(date,"%s,%s,%s", year, month, day); sprintf(date,"%s,%s,%s", year, month, day);
@@ -168,7 +168,7 @@ static int parse_dir_win(const char *line,
if (ftpfs.blksize) { if (ftpfs.blksize) {
sbuf->st_blksize = ftpfs.blksize; sbuf->st_blksize = ftpfs.blksize;
sbuf->st_blocks = sbuf->st_blocks =
((nsize + ftpfs.blksize - 1) & ~(ftpfs.blksize - 1)) >> 9; ((nsize + ftpfs.blksize - 1) & ~((unsigned long long) ftpfs.blksize - 1)) >> 9;
} }
} }

1063
ftpfs.c

File diff suppressed because it is too large Load Diff

View File

@@ -12,7 +12,6 @@
#include <curl/curl.h> #include <curl/curl.h>
#include <curl/easy.h> #include <curl/easy.h>
#include <pthread.h> #include <pthread.h>
#include <glib.h>
#include <pthread.h> #include <pthread.h>
struct ftpfs { struct ftpfs {
@@ -21,14 +20,16 @@ struct ftpfs {
pthread_mutex_t lock; pthread_mutex_t lock;
CURL* connection; CURL* connection;
CURLM* multi; CURLM* multi;
int attached_to_multi;
struct ftpfs_file* current_fh; struct ftpfs_file* current_fh;
unsigned blksize; unsigned blksize;
GHashTable *filetab;
int verbose; int verbose;
int debug; int debug;
int transform_symlinks; int transform_symlinks;
int disable_epsv; int disable_epsv;
int skip_pasv_ip; int skip_pasv_ip;
char* ftp_method;
char* custom_list;
int tcp_nodelay; int tcp_nodelay;
char* ftp_port; char* ftp_port;
int disable_eprt; int disable_eprt;
@@ -65,6 +66,7 @@ struct ftpfs {
int tryutf8; int tryutf8;
char *codepage; char *codepage;
char *iocharset; char *iocharset;
int multiconn;
}; };
extern struct ftpfs ftpfs; extern struct ftpfs ftpfs;

399
ltmain.sh
View File

@@ -1,8 +1,8 @@
# ltmain.sh - Provide generalized library-building support services. # ltmain.sh - Provide generalized library-building support services.
# NOTE: Changing this file will not affect anything until you rerun configure. # NOTE: Changing this file will not affect anything until you rerun configure.
# #
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
# Free Software Foundation, Inc. # 2007, 2008 Free Software Foundation, Inc.
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
@@ -33,9 +33,6 @@ basename="s,^.*/,,g"
# function. # function.
progpath="$0" progpath="$0"
# define SED for historic ltconfig's generated by Libtool 1.3
test -z "$SED" && SED=sed
# The name of this program: # The name of this program:
progname=`echo "$progpath" | $SED $basename` progname=`echo "$progpath" | $SED $basename`
modename="$progname" modename="$progname"
@@ -46,21 +43,22 @@ EXIT_FAILURE=1
PROGRAM=ltmain.sh PROGRAM=ltmain.sh
PACKAGE=libtool PACKAGE=libtool
VERSION=1.5.22 VERSION="1.5.26 Debian 1.5.26-1ubuntu1"
TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
# See if we are running on zsh, and set the options which allow our # Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
# commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
if test -n "${ZSH_VERSION+set}" ; 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+"$@"}'='"$@"'
setopt NO_GLOB_SUBST setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
fi fi
# Same for EGREP, and just to be sure, do LTCC as well BIN_SH=xpg4; export BIN_SH # for Tru64
if test "X$EGREP" = X ; then DUALCASE=1; export DUALCASE # for MKS sh
EGREP=egrep
fi
if test "X$LTCC" = X ; then
LTCC=${CC-gcc}
fi
# Check that we have a working $echo. # Check that we have a working $echo.
if test "X$1" = X--no-reexec; then if test "X$1" = X--no-reexec; then
@@ -115,11 +113,19 @@ esac
# These must not be set unconditionally because not all systems understand # These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO). # e.g. LANG=C (notably SCO).
# We save the old values to restore during execute mode. # We save the old values to restore during execute mode.
if test "${LC_ALL+set}" = set; then lt_env=
save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
fi do
if test "${LANG+set}" = set; then eval "if test \"\${$lt_var+set}\" = set; then
save_LANG="$LANG"; LANG=C; export LANG save_$lt_var=\$$lt_var
lt_env=\"$lt_var=\$$lt_var \$lt_env\"
$lt_var=C
export $lt_var
fi"
done
if test -n "$lt_env"; then
lt_env="env $lt_env"
fi fi
# Make sure IFS has a sensible default # Make sure IFS has a sensible default
@@ -146,30 +152,8 @@ duplicate_deps=no
preserve_args= preserve_args=
lo2o="s/\\.lo\$/.${objext}/" lo2o="s/\\.lo\$/.${objext}/"
o2lo="s/\\.${objext}\$/.lo/" o2lo="s/\\.${objext}\$/.lo/"
extracted_archives=
if test -z "$max_cmd_len"; then extracted_serial=0
i=0
testring="ABCD"
new_result=
# 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.
while (test "X"`$SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \
= "XX$testring") >/dev/null 2>&1 &&
new_result=`expr "X$testring" : ".*" 2>&1` &&
max_cmd_len="$new_result" &&
test "$i" != 17 # 1/2 MB should be enough
do
i=`expr $i + 1`
testring="$testring$testring"
done
testring=
# 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.
max_cmd_len=`expr $max_cmd_len \/ 2`
fi
##################################### #####################################
# Shell function definitions: # Shell function definitions:
@@ -230,7 +214,13 @@ func_win32_libid ()
if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
$EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
win32_nmres=`eval $NM -f posix -A $1 | \ win32_nmres=`eval $NM -f posix -A $1 | \
$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` $SED -n -e '1,100{
/ I /{
s,.*,import,
p
q
}
}'`
case $win32_nmres in case $win32_nmres in
import*) win32_libid_type="x86 archive import";; import*) win32_libid_type="x86 archive import";;
*) win32_libid_type="x86 archive static";; *) win32_libid_type="x86 archive static";;
@@ -291,21 +281,7 @@ func_infer_tag ()
esac esac
CC_quoted="$CC_quoted $arg" CC_quoted="$CC_quoted $arg"
done done
# user sometimes does CC=<HOST>-gcc so we need to match that to 'gcc'
trimedcc=`echo ${CC} | $SED -e "s/${host}-//g"`
# and sometimes libtool has CC=<HOST>-gcc but user does CC=gcc
extendcc=${host}-${CC}
# and sometimes libtool has CC=<OLDHOST>-gcc but user has CC=<NEWHOST>-gcc
# (Gentoo-specific hack because we always export $CHOST)
mungedcc=${CHOST-${host}}-${trimedcc}
case "$@ " in case "$@ " in
"cc "* | " cc "* | "${host}-cc "* | " ${host}-cc "*|\
"gcc "* | " gcc "* | "${host}-gcc "* | " ${host}-gcc "*)
tagname=CC
break ;;
"$trimedcc "* | " $trimedcc "* | "`$echo $trimedcc` "* | " `$echo $trimedcc` "*|\
"$extendcc "* | " $extendcc "* | "`$echo $extendcc` "* | " `$echo $extendcc` "*|\
"$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
" $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) " $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 compiler in the base compile command matches
# the one in the tagged configuration. # the one in the tagged configuration.
@@ -375,7 +351,17 @@ func_extract_archives ()
*) my_xabs=`pwd`"/$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;;
esac esac
my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
my_xdir="$my_gentop/$my_xlib" my_xlib_u=$my_xlib
while :; do
case " $extracted_archives " in
*" $my_xlib_u "*)
extracted_serial=`expr $extracted_serial + 1`
my_xlib_u=lt$extracted_serial-$my_xlib ;;
*) break ;;
esac
done
extracted_archives="$extracted_archives $my_xlib_u"
my_xdir="$my_gentop/$my_xlib_u"
$show "${rm}r $my_xdir" $show "${rm}r $my_xdir"
$run ${rm}r "$my_xdir" $run ${rm}r "$my_xdir"
@@ -502,11 +488,12 @@ do
;; ;;
--version) --version)
$echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" echo "\
$echo $PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
$echo "Copyright (C) 2005 Free Software Foundation, Inc."
$echo "This is free software; see the source for copying conditions. There is NO" Copyright (C) 2008 Free Software Foundation, Inc.
$echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
exit $? exit $?
;; ;;
@@ -803,9 +790,11 @@ if test -z "$show_help"; then
*.class) xform=class ;; *.class) xform=class ;;
*.cpp) xform=cpp ;; *.cpp) xform=cpp ;;
*.cxx) xform=cxx ;; *.cxx) xform=cxx ;;
*.f90) xform=f90 ;; *.[fF][09]?) xform=[fF][09]. ;;
*.for) xform=for ;; *.for) xform=for ;;
*.java) xform=java ;; *.java) xform=java ;;
*.obj) xform=obj ;;
*.sx) xform=sx ;;
esac esac
libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
@@ -899,7 +888,7 @@ if test -z "$show_help"; then
# Lock this critical section if it is needed # Lock this critical section if it is needed
# We use this script file to make the link, it avoids creating a new file # We use this script file to make the link, it avoids creating a new file
if test "$need_locks" = yes; then if test "$need_locks" = yes; then
until $run ln "$srcfile" "$lockfile" 2>/dev/null; do until $run ln "$progpath" "$lockfile" 2>/dev/null; do
$show "Waiting for $lockfile to be removed" $show "Waiting for $lockfile to be removed"
sleep 2 sleep 2
done done
@@ -974,7 +963,7 @@ EOF
$run $rm "$lobj" "$output_obj" $run $rm "$lobj" "$output_obj"
$show "$command" $show "$command"
if $run eval "$command"; then : if $run eval $lt_env "$command"; then :
else else
test -n "$output_obj" && $run $rm $removelist test -n "$output_obj" && $run $rm $removelist
exit $EXIT_FAILURE exit $EXIT_FAILURE
@@ -1046,7 +1035,7 @@ EOF
command="$command$suppress_output" command="$command$suppress_output"
$run $rm "$obj" "$output_obj" $run $rm "$obj" "$output_obj"
$show "$command" $show "$command"
if $run eval "$command"; then : if $run eval $lt_env "$command"; then :
else else
$run $rm $removelist $run $rm $removelist
exit $EXIT_FAILURE exit $EXIT_FAILURE
@@ -1179,6 +1168,7 @@ EOF
thread_safe=no thread_safe=no
vinfo= vinfo=
vinfo_number=no vinfo_number=no
single_module="${wl}-single_module"
func_infer_tag $base_compile func_infer_tag $base_compile
@@ -1186,8 +1176,9 @@ EOF
for arg for arg
do do
case $arg in case $arg in
-all-static | -static) -all-static | -static | -static-libtool-libs)
if test "X$arg" = "X-all-static"; then case $arg in
-all-static)
if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
$echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
fi fi
@@ -1195,12 +1186,20 @@ EOF
dlopen_self=$dlopen_self_static dlopen_self=$dlopen_self_static
fi fi
prefer_static_libs=yes prefer_static_libs=yes
else ;;
-static)
if test -z "$pic_flag" && test -n "$link_static_flag"; then if test -z "$pic_flag" && test -n "$link_static_flag"; then
dlopen_self=$dlopen_self_static dlopen_self=$dlopen_self_static
fi fi
prefer_static_libs=built prefer_static_libs=built
fi ;;
-static-libtool-libs)
if test -z "$pic_flag" && test -n "$link_static_flag"; then
dlopen_self=$dlopen_self_static
fi
prefer_static_libs=yes
;;
esac
build_libtool_libs=no build_libtool_libs=no
build_old_libs=yes build_old_libs=yes
break break
@@ -1648,13 +1647,18 @@ EOF
continue continue
;; ;;
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
compiler_flags="$compiler_flags $arg" compiler_flags="$compiler_flags $arg"
compile_command="$compile_command $arg" compile_command="$compile_command $arg"
finalize_command="$finalize_command $arg" finalize_command="$finalize_command $arg"
continue continue
;; ;;
-multi_module)
single_module="${wl}-multi_module"
continue
;;
-module) -module)
module=yes module=yes
continue continue
@@ -1668,10 +1672,11 @@ EOF
# -m* pass through architecture-specific compiler args for GCC # -m* pass through architecture-specific compiler args for GCC
# -m*, -t[45]*, -txscale* pass through architecture-specific # -m*, -t[45]*, -txscale* pass through architecture-specific
# compiler args for GCC # compiler args for GCC
# -pg pass through profiling flag for GCC # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
# -F/path gives path to uninstalled frameworks, gcc on darwin
# @file GCC response files # @file GCC response files
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|@*) -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
# Unknown arguments in both finalize_command and compile_command need # Unknown arguments in both finalize_command and compile_command need
# to be aesthetically quoted because they are evaled later. # to be aesthetically quoted because they are evaled later.
@@ -1699,9 +1704,9 @@ EOF
-no-install) -no-install)
case $host in case $host in
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
# The PATH hackery in wrapper scripts is required on Windows # The PATH hackery in wrapper scripts is required on Windows
# in order for the loader to find any dlls it needs. # and Darwin 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: \`-no-install' is ignored for $host" 1>&2
$echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
fast_install=no fast_install=no
@@ -1760,7 +1765,7 @@ EOF
continue continue
;; ;;
-static) -static | -static-libtool-libs)
# The effects of -static are defined in a previous loop. # The effects of -static are defined in a previous loop.
# We used to do the same as -all-static on platforms that # We used to do the same as -all-static on platforms that
# didn't have a PIC flag, but the assumption that the effects # didn't have a PIC flag, but the assumption that the effects
@@ -2130,7 +2135,10 @@ EOF
case $pass in case $pass in
dlopen) libs="$dlfiles" ;; dlopen) libs="$dlfiles" ;;
dlpreopen) libs="$dlprefiles" ;; dlpreopen) libs="$dlprefiles" ;;
link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; link)
libs="$deplibs %DEPLIBS%"
test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
;;
esac esac
fi fi
if test "$pass" = dlopen; then if test "$pass" = dlopen; then
@@ -2142,7 +2150,7 @@ EOF
lib= lib=
found=no found=no
case $deplib in case $deplib in
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
if test "$linkmode,$pass" = "prog,link"; then if test "$linkmode,$pass" = "prog,link"; then
compile_deplibs="$deplib $compile_deplibs" compile_deplibs="$deplib $compile_deplibs"
finalize_deplibs="$deplib $finalize_deplibs" finalize_deplibs="$deplib $finalize_deplibs"
@@ -2157,7 +2165,12 @@ EOF
continue continue
fi fi
name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` 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 if test "$linkmode" = lib; then
searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
else
searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
fi
for searchdir in $searchdirs; do
for search_ext in .la $std_shrext .so .a; do for search_ext in .la $std_shrext .so .a; do
# Search the libtool library # Search the libtool library
lib="$searchdir/lib${name}${search_ext}" lib="$searchdir/lib${name}${search_ext}"
@@ -2538,7 +2551,9 @@ EOF
if test "$linkmode,$pass" = "prog,link"; then if test "$linkmode,$pass" = "prog,link"; then
if test -n "$library_names" && if test -n "$library_names" &&
{ test "$prefer_static_libs" = no || test -z "$old_library"; }; then { { test "$prefer_static_libs" = no ||
test "$prefer_static_libs,$installed" = "built,yes"; } ||
test -z "$old_library"; }; then
# We need to hardcode the library path # We need to hardcode the library path
if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
# Make sure the rpath contains only unique directories. # Make sure the rpath contains only unique directories.
@@ -2951,12 +2966,18 @@ EOF
# we do not want to link against static libs, # we do not want to link against static libs,
# but need to link against shared # but need to link against shared
eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
if test -n "$deplibrary_names" ; then if test -n "$deplibrary_names" ; then
for tmp in $deplibrary_names ; do for tmp in $deplibrary_names ; do
depdepl=$tmp depdepl=$tmp
done done
if test -f "$path/$depdepl" ; then if test -f "$deplibdir/$depdepl" ; then
depdepl="$deplibdir/$depdepl"
elif test -f "$path/$depdepl" ; then
depdepl="$path/$depdepl" depdepl="$path/$depdepl"
else
# Can't find it, oh well...
depdepl=
fi fi
# do not add paths which are already there # do not add paths which are already there
case " $newlib_search_path " in case " $newlib_search_path " in
@@ -3104,9 +3125,10 @@ EOF
case $linkmode in case $linkmode in
oldlib) oldlib)
if test -n "$deplibs"; then case " $deplibs" in
$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 *\ -l* | *\ -L*)
fi $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
esac
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
@@ -3234,7 +3256,7 @@ EOF
# which has an extra 1 added just for fun # which has an extra 1 added just for fun
# #
case $version_type in case $version_type in
darwin|linux|osf|windows) darwin|linux|osf|windows|none)
current=`expr $number_major + $number_minor` current=`expr $number_major + $number_minor`
age="$number_minor" age="$number_minor"
revision="$number_revision" revision="$number_revision"
@@ -3245,9 +3267,15 @@ EOF
age="0" age="0"
;; ;;
irix|nonstopux) irix|nonstopux)
current=`expr $number_major + $number_minor - 1` current=`expr $number_major + $number_minor`
age="$number_minor" age="$number_minor"
revision="$number_minor" revision="$number_minor"
lt_irix_increment=no
;;
*)
$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 esac
;; ;;
@@ -3306,7 +3334,8 @@ EOF
versuffix="$major.$age.$revision" versuffix="$major.$age.$revision"
# Darwin ld doesn't like 0 for these options... # Darwin ld doesn't like 0 for these options...
minor_current=`expr $current + 1` minor_current=`expr $current + 1`
verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
;; ;;
freebsd-aout) freebsd-aout)
@@ -3320,8 +3349,11 @@ EOF
;; ;;
irix | nonstopux) irix | nonstopux)
major=`expr $current - $age + 1` if test "X$lt_irix_increment" = "Xno"; then
major=`expr $current - $age`
else
major=`expr $current - $age + 1`
fi
case $version_type in case $version_type in
nonstopux) verstring_prefix=nonstopux ;; nonstopux) verstring_prefix=nonstopux ;;
*) verstring_prefix=sgi ;; *) verstring_prefix=sgi ;;
@@ -3458,11 +3490,11 @@ EOF
fi fi
# Eliminate all temporary directories. # Eliminate all temporary directories.
for path in $notinst_path; do #for path in $notinst_path; do
lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
done #done
if test -n "$xrpath"; then if test -n "$xrpath"; then
# If the user specified any rpath flags, then add them. # If the user specified any rpath flags, then add them.
@@ -3563,13 +3595,12 @@ EOF
int main() { return 0; } int main() { return 0; }
EOF EOF
$rm conftest $rm conftest
$LTCC $LTCFLAGS -o conftest conftest.c $deplibs if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
if test "$?" -eq 0 ; then
ldd_output=`ldd conftest` ldd_output=`ldd conftest`
for i in $deplibs; do for i in $deplibs; do
name=`expr $i : '-l\(.*\)'` name=`expr $i : '-l\(.*\)'`
# If $name is empty we are operating on a -L argument. # If $name is empty we are operating on a -L argument.
if test "$name" != "" && test "$name" -ne "0"; then if test "$name" != "" && test "$name" != "0"; then
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in case " $predeps $postdeps " in
*" $i "*) *" $i "*)
@@ -3608,9 +3639,7 @@ EOF
# If $name is empty we are operating on a -L argument. # If $name is empty we are operating on a -L argument.
if test "$name" != "" && test "$name" != "0"; then if test "$name" != "" && test "$name" != "0"; then
$rm conftest $rm conftest
$LTCC $LTCFLAGS -o conftest conftest.c $i if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
# Did it work?
if test "$?" -eq 0 ; then
ldd_output=`ldd conftest` ldd_output=`ldd conftest`
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in case " $predeps $postdeps " in
@@ -3642,7 +3671,7 @@ EOF
droppeddeps=yes droppeddeps=yes
$echo $echo
$echo "*** Warning! Library $i is needed by this library but I was not able to" $echo "*** Warning! Library $i is needed by this library but I was not able to"
$echo "*** make it link in! You will probably need to install it or some" $echo "*** make it link in! You will probably need to install it or some"
$echo "*** library that it depends on before this library will be fully" $echo "*** library that it depends on before this library will be fully"
$echo "*** functional. Installing it before continuing would be even better." $echo "*** functional. Installing it before continuing would be even better."
fi fi
@@ -3690,13 +3719,6 @@ EOF
*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
esac esac
done done
# It is ok to link against an archive when
# building a shared library.
if $AR -t $potlib > /dev/null 2>&1; then
newdeplibs="$newdeplibs $a_deplib"
a_deplib=""
break 2
fi
if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
| ${SED} 10q \ | ${SED} 10q \
| $EGREP "$file_magic_regex" > /dev/null; then | $EGREP "$file_magic_regex" > /dev/null; then
@@ -3935,7 +3957,10 @@ EOF
test -n "$hardcode_libdirs"; then test -n "$hardcode_libdirs"; then
libdir="$hardcode_libdirs" libdir="$hardcode_libdirs"
if test -n "$hardcode_libdir_flag_spec_ld"; then if test -n "$hardcode_libdir_flag_spec_ld"; then
eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" case $archive_cmds in
*\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
*) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
esac
else else
eval dep_rpath=\"$hardcode_libdir_flag_spec\" eval dep_rpath=\"$hardcode_libdir_flag_spec\"
fi fi
@@ -4245,9 +4270,10 @@ EOF
;; ;;
obj) obj)
if test -n "$deplibs"; then case " $deplibs" in
$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 *\ -l* | *\ -L*)
fi $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;;
esac
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
@@ -4294,12 +4320,14 @@ EOF
reload_conv_objs= reload_conv_objs=
gentop= gentop=
# reload_cmds runs $LD directly, so let us get rid of # reload_cmds runs $LD directly, so let us get rid of
# -Wl from whole_archive_flag_spec # -Wl from whole_archive_flag_spec and hope we can get by with
# turning comma into space..
wl= wl=
if test -n "$convenience"; then if test -n "$convenience"; then
if test -n "$whole_archive_flag_spec"; then if test -n "$whole_archive_flag_spec"; then
eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
else else
gentop="$output_objdir/${obj}x" gentop="$output_objdir/${obj}x"
generated="$generated $gentop" generated="$generated $gentop"
@@ -4747,16 +4775,16 @@ static const void *lt_preloaded_setup() {
case $host in case $host in
*cygwin* | *mingw* ) *cygwin* | *mingw* )
if test -f "$output_objdir/${outputname}.def" ; then 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}%"` compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
else else
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
fi fi
;; ;;
* ) * )
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
;; ;;
esac esac
;; ;;
@@ -4771,13 +4799,13 @@ static const void *lt_preloaded_setup() {
# really was required. # really was required.
# Nullify the symbol file. # Nullify the symbol file.
compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
fi fi
if test "$need_relink" = no || test "$build_libtool_libs" != yes; then if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
# Replace the output file specification. # Replace the output file specification.
compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
link_command="$compile_command$compile_rpath" link_command="$compile_command$compile_rpath"
# We have no uninstalled library dependencies, so finalize right now. # We have no uninstalled library dependencies, so finalize right now.
@@ -4864,7 +4892,7 @@ static const void *lt_preloaded_setup() {
if test "$fast_install" != no; then if test "$fast_install" != no; then
link_command="$finalize_var$compile_command$finalize_rpath" link_command="$finalize_var$compile_command$finalize_rpath"
if test "$fast_install" = yes; then if test "$fast_install" = yes; then
relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
else else
# fast_install is set to needless # fast_install is set to needless
relink_command= relink_command=
@@ -4901,7 +4929,7 @@ static const void *lt_preloaded_setup() {
fi fi
done done
relink_command="(cd `pwd`; $relink_command)" relink_command="(cd `pwd`; $relink_command)"
relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
fi fi
# Quote $echo for shipping. # Quote $echo for shipping.
@@ -5308,6 +5336,20 @@ EOF
Xsed='${SED} -e 1s/^X//' Xsed='${SED} -e 1s/^X//'
sed_quote_subst='$sed_quote_subst' sed_quote_subst='$sed_quote_subst'
# Be Bourne compatible (taken from Autoconf:_AS_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+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
else
case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
fi
BIN_SH=xpg4; export BIN_SH # for Tru64
DUALCASE=1; export DUALCASE # for MKS sh
# The HP-UX ksh and POSIX shell print the target directory to stdout # The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set. # if CDPATH is set.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
@@ -5434,11 +5476,6 @@ else
$echo >> $output "\ $echo >> $output "\
if test \"\$libtool_execute_magic\" != \"$magic\"; then if test \"\$libtool_execute_magic\" != \"$magic\"; then
# Run the actual program with our arguments. # Run the actual program with our arguments.
# Make sure env LD_LIBRARY_PATH does not mess us up
if test -n \"\${LD_LIBRARY_PATH+set}\"; then
export LD_LIBRARY_PATH=\$progdir:\$LD_LIBRARY_PATH
fi
" "
case $host in case $host in
# Backslashes separate directories on plain windows # Backslashes separate directories on plain windows
@@ -5455,7 +5492,7 @@ else
;; ;;
esac esac
$echo >> $output "\ $echo >> $output "\
\$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" \$echo \"\$0: cannot exec \$program \$*\"
exit $EXIT_FAILURE exit $EXIT_FAILURE
fi fi
else else
@@ -5641,7 +5678,7 @@ fi\
done done
# Quote the link command for shipping. # Quote the link command for shipping.
relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 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"` relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
if test "$hardcode_automatic" = yes ; then if test "$hardcode_automatic" = yes ; then
relink_command= relink_command=
fi fi
@@ -5666,53 +5703,9 @@ fi\
$echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
exit $EXIT_FAILURE exit $EXIT_FAILURE
fi fi
if test "X$EGREP" = X ; then newdependency_libs="$newdependency_libs $libdir/$name"
EGREP=egrep
fi
# We do not want portage's install root ($D) present. Check only for
# this if the .la is being installed.
if test "$installed" = yes && test "$D"; then
eval mynewdependency_lib=`echo "$libdir/$name" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
else
mynewdependency_lib="$libdir/$name"
fi
# Do not add duplicates
if test "$mynewdependency_lib"; then
my_little_ninja_foo_1=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
if test -z "$my_little_ninja_foo_1"; then
newdependency_libs="$newdependency_libs $mynewdependency_lib"
fi
fi
;;
*)
if test "$installed" = yes; then
# Rather use S=WORKDIR if our version of portage supports it.
# This is because some ebuild (gcc) do not use $S as buildroot.
if test "$PWORKDIR"; then
S="$PWORKDIR"
fi
# We do not want portage's build root ($S) present.
my_little_ninja_foo_2=`echo $deplib |$EGREP -e "$S"`
# We do not want portage's install root ($D) present.
my_little_ninja_foo_3=`echo $deplib |$EGREP -e "$D"`
if test -n "$my_little_ninja_foo_2" && test "$S"; then
mynewdependency_lib=""
elif test -n "$my_little_ninja_foo_3" && test "$D"; then
eval mynewdependency_lib=`echo "$deplib" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
else
mynewdependency_lib="$deplib"
fi
else
mynewdependency_lib="$deplib"
fi
# Do not add duplicates
if test "$mynewdependency_lib"; then
my_little_ninja_foo_4=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
if test -z "$my_little_ninja_foo_4"; then
newdependency_libs="$newdependency_libs $mynewdependency_lib"
fi
fi
;; ;;
*) newdependency_libs="$newdependency_libs $deplib" ;;
esac esac
done done
dependency_libs="$newdependency_libs" dependency_libs="$newdependency_libs"
@@ -5764,10 +5757,6 @@ fi\
case $host,$output,$installed,$module,$dlname in case $host,$output,$installed,$module,$dlname in
*cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
esac esac
# Do not add duplicates
if test "$installed" = yes && test "$D"; then
install_libdir=`echo "$install_libdir" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
fi
$echo > $output "\ $echo > $output "\
# $outputname - a libtool library file # $outputname - a libtool library file
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
@@ -6034,9 +6023,9 @@ relink_command=\"$relink_command\""
if test -n "$inst_prefix_dir"; then if test -n "$inst_prefix_dir"; then
# Stick the inst_prefix_dir data into the link command. # 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%"` relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
else else
relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
fi fi
$echo "$modename: warning: relinking \`$file'" 1>&2 $echo "$modename: warning: relinking \`$file'" 1>&2
@@ -6245,7 +6234,7 @@ relink_command=\"$relink_command\""
file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
outputname="$tmpdir/$file" outputname="$tmpdir/$file"
# Replace the output file specification. # Replace the output file specification.
relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
$show "$relink_command" $show "$relink_command"
if $run eval "$relink_command"; then : if $run eval "$relink_command"; then :
@@ -6456,8 +6445,10 @@ relink_command=\"$relink_command\""
if test -f "$dir/$objdir/$dlname"; then if test -f "$dir/$objdir/$dlname"; then
dir="$dir/$objdir" dir="$dir/$objdir"
else else
$echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 if test ! -f "$dir/$dlname"; then
exit $EXIT_FAILURE $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
exit $EXIT_FAILURE
fi
fi fi
;; ;;
@@ -6521,12 +6512,12 @@ relink_command=\"$relink_command\""
fi fi
# Restore saved environment variables # Restore saved environment variables
if test "${save_LC_ALL+set}" = set; then for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
LC_ALL="$save_LC_ALL"; export LC_ALL do
fi eval "if test \"\${save_$lt_var+set}\" = set; then
if test "${save_LANG+set}" = set; then $lt_var=\$save_$lt_var; export $lt_var
LANG="$save_LANG"; export LANG fi"
fi done
# Now prepare to actually exec the command. # Now prepare to actually exec the command.
exec_cmd="\$cmd$args" exec_cmd="\$cmd$args"
@@ -6883,9 +6874,9 @@ The following components of LINK-COMMAND are treated specially:
-dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -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-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-export-symbols SYMFILE -export-symbols SYMFILE
try to export only the symbols listed in SYMFILE try to export only the symbols listed in SYMFILE
-export-symbols-regex REGEX -export-symbols-regex REGEX
try to export only the symbols matching REGEX try to export only the symbols matching REGEX
-LLIBDIR search LIBDIR for required installed libraries -LLIBDIR search LIBDIR for required installed libraries
-lNAME OUTPUT-FILE requires the installed library libNAME -lNAME OUTPUT-FILE requires the installed library libNAME
-module build a library that can dlopened -module build a library that can dlopened
@@ -6899,9 +6890,11 @@ The following components of LINK-COMMAND are treated specially:
-release RELEASE specify package release information -release RELEASE specify package release information
-rpath LIBDIR the created library will eventually be installed in LIBDIR -rpath LIBDIR the created library will eventually be installed in LIBDIR
-R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
-static do not do any dynamic linking of libtool libraries -static do not do any dynamic linking of uninstalled libtool libraries
-static-libtool-libs
do not do any dynamic linking of libtool libraries
-version-info CURRENT[:REVISION[:AGE]] -version-info CURRENT[:REVISION[:AGE]]
specify library version info [each variable defaults to 0] specify library version info [each variable defaults to 0]
All other options (arguments beginning with \`-') are ignored. All other options (arguments beginning with \`-') are ignored.

View File

@@ -12,6 +12,7 @@
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <glib.h>
char* get_file_name(const char* path) { char* get_file_name(const char* path) {
const char* filename = strrchr(path, '/'); const char* filename = strrchr(path, '/');

View File

@@ -130,6 +130,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@ PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
STRIP = @STRIP@ STRIP = @STRIP@