From 374b12399551d2b0b0038ad25b11353ee6961e08 Mon Sep 17 00:00:00 2001 From: Manish Singh Date: Sat, 14 Mar 1998 23:21:07 +0000 Subject: [PATCH] updated to use libtool 1.1 * updated to use libtool 1.1 * app/transform_core.c: fixed display artifacts for the transform tools, sorta. * plug-ins/pcx/pcx.c: updated pcx plug-in and some admistrivia -Yosh --- ChangeLog | 9 + HACKING | 2 +- INSTALL | 4 + README | 6 +- app/tools/transform_core.c | 3 + app/transform_core.c | 3 + ltconfig | 430 +++++++++++-------- ltmain.sh | 816 ++++++++++++++++++++----------------- plug-ins/common/pcx.c | 92 +++-- plug-ins/pcx/pcx.c | 92 +++-- 10 files changed, 843 insertions(+), 614 deletions(-) diff --git a/ChangeLog b/ChangeLog index be6e5f0036..7f8cf9e58e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Sat Mar 14 15:14:16 PST 1998 Manish Singh + + * updated to use libtool 1.1 + + * app/transform_core.c: fixed display artifacts for the + transform tools, sorta. + + * plug-ins/pcx/pcx.c: updated pcx plug-in + Sat Mar 14 18:50:29 MET 1998 Sven Neumann * app/main.c: applied gimp-ovchinnikov-970312-0.patch which diff --git a/HACKING b/HACKING index 416ac8de08..7fe59dad63 100644 --- a/HACKING +++ b/HACKING @@ -4,7 +4,7 @@ to have the following packages installed: - GNU autoconf 2.12 - GNU automake 1.2f Available in ftp://ftp.cygnus.com/pub/tromey - - GNU libtool 1.0f + - GNU libtool 1.1 These should be available by ftp from prep.ai.mit.edu or any of the fine GNU mirrors. Beta software can be found at alpha.gnu.org. diff --git a/INSTALL b/INSTALL index 8065074fff..6384479236 100644 --- a/INSTALL +++ b/INSTALL @@ -10,6 +10,10 @@ GIMP on unix: 5. Install the GIMP by running `make install'. 6. Optionally install the separate gimp-data-extras package. +Please make sure you don't have any old GTK, jpeg, etc. libraries lying +around on your system, otherwise configure will fail to find the new +ones. + Generic instructions for configuring and compiling auto-configured packages are included below. Here is an illustration of commands that might be used to build and install the GIMP. The actual configuration, diff --git a/README b/README index a8dfc11be3..8c878207ae 100644 --- a/README +++ b/README @@ -119,9 +119,9 @@ More information about Byxnet can be found at http://rudolf.canberra.edu.au/gimp/byxnet.html -Manish Singh (yosh@gimp.org) has contributed a set of keybindings similar -to those in Adobe Photoshop (tm). You can find them in the ps-menurc file. -To use them, copy this file to ~/.gimp/menurc +Included is a set of keybindings similar to those in Adobe Photoshop (tm). +You can find them in the ps-menurc file. To use them, copy this file to +~/.gimp/menurc We sincerely hope you enjoy the program. Please report problems to gimp-developer@scam.xcf.berkeley.edu. Before reporting a problem, you diff --git a/app/tools/transform_core.c b/app/tools/transform_core.c index fd0c633afe..e4003a60e4 100644 --- a/app/tools/transform_core.c +++ b/app/tools/transform_core.c @@ -267,6 +267,9 @@ transform_core_button_release (tool, bevent, gdisp_ptr) undo_push_group_end (gdisp->gimage); /* Flush the gdisplays */ + /* FIXME: this expose is a performance drag, but it prevents display + artifacts */ + gdisplay_expose_area (gdisp, 0, 0, gdisp->disp_width, gdisp->disp_height); gdisplays_flush (); } else diff --git a/app/transform_core.c b/app/transform_core.c index fd0c633afe..e4003a60e4 100644 --- a/app/transform_core.c +++ b/app/transform_core.c @@ -267,6 +267,9 @@ transform_core_button_release (tool, bevent, gdisp_ptr) undo_push_group_end (gdisp->gimage); /* Flush the gdisplays */ + /* FIXME: this expose is a performance drag, but it prevents display + artifacts */ + gdisplay_expose_area (gdisp, 0, 0, gdisp->disp_width, gdisp->disp_height); gdisplays_flush (); } else diff --git a/ltconfig b/ltconfig index e9d3a83795..7ebb9be8c0 100755 --- a/ltconfig +++ b/ltconfig @@ -1,8 +1,7 @@ #! /bin/sh # ltconfig - Create a system-specific libtool. -# Generated automatically from ltconfig.in by configure. -# Copyright (C) 1996, 1997, Free Software Foundation, Inc. +# Copyright (C) 1996-1998 Free Software Foundation, Inc. # Gordon Matzigkeit , 1996 # # This file is free software; you can redistribute it and/or modify it @@ -26,26 +25,54 @@ # A lot of this script is taken from autoconf-2.10. +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi + +echo=echo +if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : +else + # The Solaris and AIX default echo program unquotes backslashes. + # This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # So, we emulate echo with printf '%s\n' + echo="printf %s\\n" + if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : + else + # Oops. We have no working printf. Try to find a not-so-buggy echo. + echo=echo + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH /usr/ucb; do + if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then + echo="$dir/echo" + break + fi + done + IFS="$save_ifs" + fi +fi + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e s/^X//' +sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' + # The name of this program. -progname=`echo "$0" | sed 's%^.*/%%'` +progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` # Constants: PROGRAM=ltconfig PACKAGE=libtool -VERSION=1.0f +VERSION=1.1 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5' rm="rm -f" help="Try \`$progname --help' for more information." -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g' - -# Same as above, but don't quote variable references. -double_quote_subst='s/\([\\"\\\\]\)/\\\1/g' - # Global variables: can_build_shared=yes enable_shared=yes @@ -99,7 +126,7 @@ Generate a system-specific libtool script. --help display this help and exit --no-verify do not verify that HOST is a valid host type --quiet same as \`--silent' - --silent don't print informational messages + --silent do not print informational messages --srcdir=DIR find \`config.guess' in DIR --version output version information and exit --with-gcc assume that the GNU C compiler will be used @@ -139,7 +166,7 @@ EOM if test -z "$ltmain"; then ltmain="$option" elif test -z "$host"; then -# FIXME This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 +# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 # if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then # echo "$progname: warning \`$option' is not a valid host type" 1>&2 # fi @@ -160,7 +187,9 @@ fi if test -f "$ltmain"; then : else - echo "$progname: warning: \`$ltmain' does not exist" 1>&2 + echo "$progname: \`$ltmain' does not exist" 1>&2 + echo "$help" 1>&2 + exit 1 fi # Quote any args containing shell metacharacters. @@ -212,7 +241,7 @@ fi if test -z "$srcdir"; then # Assume the source directory is the same one as the path to ltmain.sh. - srcdir=`echo "$ltmain" | sed 's%/[^/]*$%%'` + srcdir=`$echo "$ltmain" | $Xsed -e 's%/[^/]*$%%'` test "$srcdir" = "$ltmain" && srcdir=. fi @@ -268,10 +297,10 @@ else host_alias=$host fi -# Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. -case "$host" in -*-*-linux-gnu*) ;; -*-*-linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` +# Transform linux* to *-*-linux-gnu*, to support old configure scripts. +case "$host_os" in +linux-gnu*) ;; +linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` esac host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` @@ -279,7 +308,7 @@ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` case "$host_os" in -aix*) +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. @@ -293,6 +322,7 @@ esac # Determine commands to create old-style static archives. old_archive_cmds='$AR cru $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= # Set a sane default for `AR'. test -z "$AR" && AR=ar @@ -318,7 +348,7 @@ fi if test -n "$RANLIB"; then old_archive_cmds="$old_archive_cmds;\$RANLIB \$oldlib" - old_postinstall_cmds="$old_postinstall_cmds;\$RANLIB \$oldlib" + old_postinstall_cmds="\$RANLIB \$oldlib;$old_postinstall_cmds" fi # Check to see if we are using GCC. @@ -391,7 +421,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then # Now see if the compiler is really GCC. with_gcc=no echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 - echo "$progname:394: checking whether we are using GNU C" >&5 + echo "$progname:424: checking whether we are using GNU C" >&5 $rm conftest.c cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:432: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then with_gcc=yes fi $rm conftest.c @@ -412,14 +442,12 @@ compiler="$2" echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 pic_flag= -profile_flag_pattern= special_shlib_compile_flags= wl= link_static_flag= no_builtin_flag= if test "$with_gcc" = yes; then - profile_flag_pattern='-pg?' wl='-Wl,' link_static_flag='-static' no_builtin_flag=' -fno-builtin' @@ -431,6 +459,12 @@ if test "$with_gcc" = yes; then os2*) # We can build DLLs from non-PIC. ;; + 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'. + pic_flag='-m68020 -resident32 -malways-restore-a4' + ;; *) pic_flag='-fPIC' ;; @@ -446,7 +480,7 @@ else hpux9* | hpux10*) # Is there a better link_static_flag that works with the bundled CC? wl='-Wl,' - link_static_flag='${wl}-a ${wl}archive' + link_static_flag="${wl}-a ${wl}archive" pic_flag='+Z' ;; @@ -484,6 +518,12 @@ else wl='-Qoption ld ' ;; + sysv4.2uw2*) + pic_flag='-KPIC' + link_static_flag='-Bstatic' + wl='-Wl,' + ;; + uts4*) pic_flag='-pic' link_static_flag='-Bstatic' @@ -504,12 +544,12 @@ if test -n "$pic_flag"; then echo > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $pic_flag -DPIC" - echo "$progname:507: checking if $compiler PIC flag $pic_flag works" >&5 - if { (eval echo $progname:508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then + echo "$progname:547: checking if $compiler PIC flag $pic_flag works" >&5 + if { (eval echo $progname:548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then # Append any errors to the config.log. cat conftest.err 1>&5 - # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also + # On HP-UX, the stripped-down bundled CC does not accept +Z, but also # reports no error. So, we need to grep stderr for (Bundled). if grep '(Bundled)' conftest.err >/dev/null; then echo "$ac_t"no 1>&6 @@ -547,8 +587,8 @@ $rm conftest* echo 'main(){return(0);}' > conftest.c save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $link_static_flag" -echo "$progname:550: checking if $compiler static flag $link_static_flag works" >&5 -if { (eval echo $progname:551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +echo "$progname:590: checking if $compiler static flag $link_static_flag works" >&5 +if { (eval echo $progname:591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then echo "$ac_t$link_static_flag" 1>&6 else echo "$ac_t"none 1>&6 @@ -580,15 +620,15 @@ if test -z "$LD"; then if test "$with_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 - echo "$progname:583: checking for ld used by GCC" >&5 + echo "$progname:623: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. - /*) + /* | [A-Za-z]:\\*) test -z "$LD" && LD="$ac_prog" ;; "") - # If it fails, then pretend we aren't using GCC. + # If it fails, then pretend we are not using GCC. ac_prog=ld ;; *) @@ -598,10 +638,10 @@ if test -z "$LD"; then esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld... $ac_c" 1>&6 - echo "$progname:601: checking for GNU ld" >&5 + echo "$progname:641: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:604: checking for non-GNU ld" >&5 + echo "$progname:644: checking for non-GNU ld" >&5 fi if test -z "$LD"; then @@ -635,7 +675,7 @@ if test -z "$LD"; then fi fi -# Check to see if it really is or isn't GNU ld. +# Check to see if it really is or is not GNU ld. echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then @@ -649,6 +689,7 @@ echo "$ac_t$with_gnu_ld" 1>&6 echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 allow_undefined_flag= +no_undefined_flag= archive_cmds= old_archive_from_new_cmds= export_dynamic_flag_spec= @@ -656,43 +697,41 @@ hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no -hardcode_runpath_var=no hardcode_shlibpath_var=unsupported runpath_var= +case "$host_os" in +amigaos* | sunos4*) + # On these operating systems, we should treat GNU ld like the system ld. + gnu_ld_acts_native=yes + ;; +*) + gnu_ld_acts_native=no + ;; +esac + ld_shlibs=yes -if test "$with_gnu_ld" = yes; then +if test "$with_gnu_ld" = yes && test "$gnu_ld_acts_native" != yes; then + # See if GNU ld supports shared libraries. - - case "$host_os" in - sunos4*) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs' + runpath_var=LD_RUN_PATH ld_shlibs=yes - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - else - ld_shlibs=no - fi - ;; - esac + else + ld_shlibs=no + fi if test "$ld_shlibs" = yes; then - archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs$deplibs' - hardcode_libdir_flag_spec='${wl}-rpath $wl$libdir' - export_dynamic_flag_spec='${wl}-export-dynamic' + hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' fi else # PORTME fill in a description of your system's linker (not GNU ld) case "$host_os" in aix3*) allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE$deplibs;$AR cru $lib $objdir/$soname' + archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR cru $lib $objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes @@ -705,25 +744,32 @@ else aix4*) allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$deplibs;$AR cru $lib $objdir/$soname' + archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname' hardcode_direct=yes hardcode_minus_L=yes ;; + amigaos*) + archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR cru $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + # 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 - # doesn't break anything, and helps significantly (at the cost of a little + # 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 /usr/lib/c++rt0.o' + archive_cmds='$LD -Bshareable -o $lib$libobjs /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; - # Unfortunately, older versions of FreeBSD 2 don't have this feature. + # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + archive_cmds='$LD -Bshareable -o $lib$libobjs' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no @@ -731,7 +777,7 @@ else # FreeBSD 3, at last, uses gcc -shared to do shared libraries. freebsd3*) - archive_cmds='$CC -shared -o $lib$libobjs$deplibs' + archive_cmds='$CC -shared -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_minus_L=yes @@ -739,21 +785,23 @@ else ;; hpux9*) - archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs$deplibs;mv $objdir/$soname $lib' + archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs;mv $objdir/$soname $lib' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_direct=yes hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' ;; hpux10*) - archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs$deplibs' + archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_direct=yes hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' ;; irix5* | irix6*) - archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs$deplibs' + archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ;; @@ -766,7 +814,7 @@ else ;; openbsd*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + archive_cmds='$LD -Bshareable -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no @@ -776,7 +824,7 @@ else hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported - archive_cmds='echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;echo DATA >> $objdir/$libname.def;echo " SINGLE NONSHARED" >> $objdir/$libname.def;echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def' + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;$echo DATA >> $objdir/$libname.def;$echo " SINGLE NONSHARED" >> $objdir/$libname.def;$echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def' old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' ;; @@ -788,31 +836,47 @@ else ;; sco3.2v5*) - archive_cmds='$LD -G -o $lib$libobjs$deplibs' + archive_cmds='$LD -G -o $lib$libobjs' hardcode_direct=yes ;; solaris2*) - archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs' + no_undefined_flag=' -z text' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no + + # Solaris 2 before 2.5 hardcodes -L paths. + case "$host_os" in + solaris2.[0-4]*) + hardcode_minus_L=yes + ;; + esac ;; sunos4*) - archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' + if test "$with_gcc" = yes; then + archive_cmds='$CC -shared -o $lib$libobjs' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs' + fi + + if test "$with_gnu_ld" = yes; then + export_dynamic_flag_spec='${wl}-export-dynamic' + fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; - uts4*) - archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=no - hardcode_minus_L=no - hardcode_shlibpath_var=no - ;; + uts4*) + archive_cmds='$LD -G -h $soname -o $lib$libobjs' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=no + hardcode_minus_L=no + hardcode_shlibpath_var=no + ;; *) ld_shlibs=no @@ -825,16 +889,18 @@ echo "$ac_t$ld_shlibs" 1>&6 if test -z "$NM"; then echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 case "$NM" in - /*) ;; # Let the user override the test with a path. + /* | [A-Za-z]:\\*) ;; # Let the user override the test with a path. *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in /usr/ucb $PATH /bin; do - test -z "$ac_dir" && dir=. + for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do + test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/nm; then # Check to see if the nm accepts a BSD-compat flag. - if ($ac_dir/nm -B /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -B" - elif ($ac_dir/nm -p /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then + elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -p" else NM="$ac_dir/nm" @@ -869,6 +935,10 @@ case "$host_os" in aix*) symcode='[BCDTU]' ;; +irix*) + # Cannot use undefined symbols on IRIX because inlined functions mess us up. + symcode='[BCDEGRST]' + ;; solaris2*) symcode='[BDTU]' ;; @@ -897,17 +967,17 @@ void nm_test_func(){} main(){nm_test_var='a';nm_test_func();return(0);} EOF -echo "$progname:900: checking if global_symbol_pipe works" >&5 -if { (eval echo $progname:901: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then +echo "$progname:970: checking if global_symbol_pipe works" >&5 +if { (eval echo $progname:971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then # Now try to grab the symbols. nlist=conftest.nm - if { echo "$progname:904: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then + if { echo "$progname:974: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" wcout=`wc "$nlist" 2>/dev/null` - count=`echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` + count=`$echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` (test "$count" -ge 0) 2>/dev/null || count=-1 else rm -f "$nlist"T @@ -944,9 +1014,9 @@ struct { dld_preloaded_symbols[] = { EOF - sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> conftest.c + sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c cat <<\EOF >> conftest.c - {0}, + {0, (__ptr_t) 0} }; #ifdef __cplusplus @@ -959,7 +1029,7 @@ EOF save_CFLAGS="$CFLAGS" LIBS='conftestm.o' CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo $progname:962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + if { (eval echo $progname:1032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then pipe_works=yes else echo "$progname: failed program was:" >&5 @@ -981,7 +1051,7 @@ else fi $rm conftest* -# Don't use the global_symbol_pipe unless it works. +# Do not use the global_symbol_pipe unless it works. echo "$ac_t$pipe_works" 1>&6 test "$pipe_works" = yes || global_symbol_pipe= @@ -989,7 +1059,7 @@ test "$pipe_works" = yes || global_symbol_pipe= echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ - test "$hardcode_runpath_var" = yes; then + test -n "$runpath_var"; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && \ @@ -1005,7 +1075,7 @@ if test -n "$hardcode_libdir_flag_spec" || \ elif test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" != yes; then - # We can't hardcode anything. + # We cannot hardcode anything. hardcode_action=unsupported else # We can only hardcode existing directories. @@ -1028,7 +1098,9 @@ library_names_spec= libname_spec='lib$name' soname_spec= postinstall_cmds= +postuninstall_cmds= finish_cmds= +finish_eval= shlibpath_var= version_type=none dynamic_linker="$host_os ld.so" @@ -1037,23 +1109,29 @@ echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 case "$host_os" in aix3* | aix4*) version_type=linux - library_names_spec='$libname.so.$versuffix $libname.a' + library_names_spec='${libname}${release}.so.$versuffix $libname.a' shlibpath_var=LIBPATH # AIX has no versioning support, so we append a major version to the name. - soname_spec='$libname.so.$major' + soname_spec='${libname}${release}.so.$major' + ;; + +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' ;; freebsd2* | freebsd3*) version_type=sunos - library_names_spec='$libname.so.$versuffix $libname.so' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + library_names_spec='${libname}${release}.so.$versuffix $libname.so' + finish_cmds='PATH="$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; gnu*) version_type=sunos - library_names_spec='$libname.so.$versuffix' + library_names_spec='${libname}${release}.so.$versuffix' shlibpath_var=LD_LIBRARY_PATH ;; @@ -1063,16 +1141,16 @@ hpux9* | hpux10*) dynamic_linker="$host_os dld.sl" version_type=sunos shlibpath_var=SHLIB_PATH - library_names_spec='$libname.sl.$versuffix $libname.sl.$major $libname.sl' - soname_spec='$libname.sl.$major' + library_names_spec='${libname}${release}.sl.$versuffix ${libname}${release}.sl.$major $libname.sl' + soname_spec='${libname}${release}.sl.$major' # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6*) version_type=osf - soname_spec='$libname.so' - library_names_spec='$libname.so.$versuffix $libname.so' + soname_spec='${libname}${release}.so' + library_names_spec='${libname}${release}.so.$versuffix $libname.so' shlibpath_var=LD_LIBRARY_PATH ;; @@ -1084,9 +1162,9 @@ linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) # This must be Linux ELF. linux-gnu*) version_type=linux - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' - soname_spec='$libname.so.$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' + soname_spec='${libname}${release}.so.$major' + finish_cmds='PATH="$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH if test -f /lib/ld.so.1; then @@ -1102,13 +1180,12 @@ linux-gnu*) netbsd* | openbsd*) version_type=sunos - library_names_spec='$libname.so.$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + library_names_spec='${libname}${release}.so.$versuffix' + finish_cmds='PATH="$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; os2*) - version_type=none libname_spec='$name' library_names_spec='$libname.dll $libname.a' dynamic_linker='OS/2 ld.exe' @@ -1117,36 +1194,43 @@ os2*) osf3* | osf4*) version_type=osf - soname_spec='$libname.so' - library_names_spec='$libname.so.$versuffix $libname.so' + soname_spec='${libname}${release}.so' + library_names_spec='${libname}${release}.so.$versuffix $libname.so' shlibpath_var=LD_LIBRARY_PATH ;; sco3.2v5*) version_type=osf - soname_spec='$libname.so.$major' - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' + soname_spec='${libname}${release}.so.$major' + library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' shlibpath_var=LD_LIBRARY_PATH ;; solaris2*) version_type=linux - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' - soname_spec='$libname.so.$major' + library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' + soname_spec='${libname}${release}.so.$major' shlibpath_var=LD_LIBRARY_PATH ;; sunos4*) version_type=sunos - library_names_spec='$libname.so.$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + library_names_spec='${libname}${release}.so.$versuffix' + finish_cmds='PATH="$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + ;; + +sysv4.2uw2*) + version_type=linux + library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' + soname_spec='${libname}${release}.so.$major' shlibpath_var=LD_LIBRARY_PATH ;; uts4*) version_type=linux - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' - soname_spec='$libname.so.$major' + library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' + soname_spec='${libname}${release}.so.$major' shlibpath_var=LD_LIBRARY_PATH ;; @@ -1157,12 +1241,6 @@ esac echo "$ac_t$dynamic_linker" test "$dynamic_linker" = no && can_build_shared=no -# FIXME add checks for striplib and old_striplib here. -# strip -x works for most platforms, though not for static libraries on NetBSD -# HP-UX requires "-r" for library stripping -striplib= -old_striplib= - # Report the final consequences. echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 @@ -1200,25 +1278,30 @@ fi rmdir .libs 2>/dev/null echo "$ac_t$objdir" 1>&6 +# Copy echo and quote the copy, instead of the original, because it is +# used later. +ltecho="$echo" + # Now quote all the things that may contain metacharacters. -for var in old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ +for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ old_LN_S AR CC LD LN_S NM reload_flag reload_cmds wl pic_flag \ link_static_flag no_builtin_flag export_dynamic_flag_spec \ - profile_flag_pattern libname_spec library_names_spec soname_spec RANLIB \ + libname_spec library_names_spec soname_spec RANLIB \ old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ - archive_cmds postinstall_cmds \ - allow_undefined_flag finish_cmds global_symbol_pipe \ - striplib old_striplib \ + old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \ + allow_undefined_flag no_undefined_flag \ + finish_cmds finish_eval global_symbol_pipe \ hardcode_libdir_flag_spec hardcode_libdir_separator; do case "$var" in reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ - old_postinstall_cmds | archive_cmds | postinstall_cmds | finish_cmds) + old_postinstall_cmds | old_postuninstall_cmds | archive_cmds | \ + postinstall_cmds | postuninstall_cmds | finish_cmds) # Double-quote double-evaled strings. - eval "$var=\`echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`" + eval "$var=\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`" ;; *) - eval "$var=\`echo \"\$$var\" | sed \"\$sed_quote_subst\"\`" + eval "$var=\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`" ;; esac done @@ -1231,8 +1314,31 @@ cat < $ofile #! /bin/sh # libtool - Provide generalized library-building support services. -# # Generated automatically by $PROGRAM - GNU $PACKAGE $VERSION +# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. +# +# Copyright (C) 1996-1998 Free Software Foundation, Inc. +# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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. + # This program was configured as follows, # on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # @@ -1243,6 +1349,16 @@ cat < $ofile # Compiler and other test output produced by $progname, useful for # debugging $progname, is in ./config.log if it exists. +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="sed -e s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test "\${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi + +# An echo program that does not interpret backslashes. +echo="$ltecho" + # The version of $progname that generated this script. LTCONFIG_VERSION="$VERSION" @@ -1296,9 +1412,6 @@ no_builtin_flag="$no_builtin_flag" # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec="$export_dynamic_flag_spec" -# Pattern to match compiler flags for creating libNAME_p libraries: -profile_flag_pattern="$profile_flag_pattern" - # Library versioning type. version_type=$version_type @@ -1316,6 +1429,7 @@ soname_spec="$soname_spec" RANLIB="$RANLIB" old_archive_cmds="$old_archive_cmds" old_postinstall_cmds="$old_postinstall_cmds" +old_postuninstall_cmds="$old_postuninstall_cmds" # Create an old-style archive from a shared archive. old_archive_from_new_cmds="$old_archive_from_new_cmds" @@ -1323,20 +1437,23 @@ old_archive_from_new_cmds="$old_archive_from_new_cmds" # Commands used to build and install a shared archive. archive_cmds="$archive_cmds" postinstall_cmds="$postinstall_cmds" +postuninstall_cmds="$postuninstall_cmds" # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag="$allow_undefined_flag" +# Flag that forces no undefined symbols. +no_undefined_flag="$no_undefined_flag" + # Commands used to finish a libtool library installation in a directory. finish_cmds="$finish_cmds" +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval="$finish_eval" + # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe="$global_symbol_pipe" -# How to strip a library file. -striplib="$striplib" -old_striplib="$old_striplib" - # This is the shared library runtime path variable. runpath_var=$runpath_var @@ -1361,10 +1478,6 @@ hardcode_direct=$hardcode_direct # resulting binary. hardcode_minus_L=$hardcode_minus_L -# Set to yes if using RUNPATH_VAR=DIR during linking hardcodes DIR into the -# resulting binary. -hardcode_runpath_var=$hardcode_runpath_var - # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var @@ -1372,7 +1485,7 @@ hardcode_shlibpath_var=$hardcode_shlibpath_var EOF case "$host_os" in -aix*) +aix3*) cat <<\EOF >> $ofile # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems @@ -1386,25 +1499,8 @@ EOF ;; esac -# Detect if we are using a relative or absolute path to ltmain.sh. -case "$ltmain" in -/*) cat <> $ofile -# Execute the libtool backend. -. $ltmain -EOF - ;; -*) cat <> $ofile -# Find the path to this script. -thisdir=\`echo "\$0" | sed -e 's%/[^/]*\$%%'\` -test "X\$0" = "X\$thisdir" && thisdir=. - -# Execute the libtool backend. -. \$thisdir/$ltmain -EOF - ;; -esac - -echo 'exit 1' >> $ofile +# Append the ltmain.sh script. +cat "$ltmain" >> $ofile || (rm -f $ofile; exit 1) chmod +x $ofile exit 0 diff --git a/ltmain.sh b/ltmain.sh index cb46c84987..2cf2fb308d 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -1,6 +1,7 @@ # ltmain.sh - Provide generalized library-building support services. -# Generated automatically from ltmain.in by configure. -# Copyright (C) 1996, 1997 Free Software Foundation, Inc. +# NOTE: Changing this file will not affect anything until you rerun ltconfig. +# +# Copyright (C) 1996-1998 Free Software Foundation, Inc. # Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify @@ -22,40 +23,14 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -#FIXME: echo=echo -echo='printf %s\n' -if test "X`$echo '\t'`" = 'X\t'; then : -else - # The Solaris and AIX default echo program unquotes backslashes. - # This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # So, we emulate echo with printf '%s\n' - echo='printf %s\n' - if test "X`$echo '\t'`" = 'X\t'; then : - else - # Oops. We have no working printf. Try to find a not-so-buggy echo. - echo=echo - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - save_PATH="$PATH" - PATH="$PATH":/usr/ucb - for dir in $PATH; do - if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then - echo="$dir/echo" - break - fi - done - IFS="$save_ifs" - PATH="$save_PATH" - fi -fi - # The name of this program. progname=`$echo "$0" | sed 's%^.*/%%'` +modename="$progname" # Constants. PROGRAM=ltmain.sh PACKAGE=libtool -VERSION=1.0f +VERSION=1.1 default_mode= help="Try \`$progname --help' for more information." @@ -66,7 +41,8 @@ rm="rm -f" # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g' +Xsed='sed -e s/^X//' +sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' # NLS nuisances. # Only set LANG and LC_ALL to C if already set. @@ -76,14 +52,14 @@ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi if test "${LANG+set}" = set; then LANG=C; export LANG; fi if test "$LTCONFIG_VERSION" != "$VERSION"; then - $echo "$progname: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - $echo "$progname: not configured to build any kind of library" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$modename: not configured to build any kind of library" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi @@ -104,7 +80,7 @@ do shift case "$arg" in - -*=*) optarg=`$echo "$arg" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac @@ -131,7 +107,7 @@ do ;; --version) - $echo "$PROGRAM (GNU $PACKAGE) $VERSION" + echo "$PROGRAM (GNU $PACKAGE) $VERSION" exit 0 ;; @@ -140,16 +116,16 @@ do ;; --features) - $echo "host: $host" + echo "host: $host" if test "$build_libtool_libs" = yes; then - $echo "enable shared libraries" + echo "enable shared libraries" else - $echo "disable shared libraries" + echo "disable shared libraries" fi if test "$build_old_libs" = yes; then - $echo "enable static libraries" + echo "enable static libraries" else - $echo "disable static libraries" + echo "disable static libraries" fi exit 0 ;; @@ -169,7 +145,7 @@ do ;; -*) - $echo "$progname: unrecognized option \`$arg'" 1>&2 + $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -182,7 +158,7 @@ do done if test -n "$prevopt"; then - $echo "$progname: option \`$prevopt' requires an argument" 1>&2 + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -192,7 +168,7 @@ if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then case "$nonopt" in - *cc | *++) + *cc | *++ | gcc* | *-gcc*) mode=link for arg do @@ -207,7 +183,7 @@ if test -z "$show_help"; then *db | *dbx) mode=execute ;; - *install*|cp) + *install*|cp|mv) mode=install ;; *rm) @@ -220,9 +196,9 @@ if test -z "$show_help"; then # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then - $echo "$progname: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else - $echo "$progname: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; @@ -231,20 +207,20 @@ if test -z "$show_help"; then # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$progname: unrecognized option \`-dlopen'" 1>&2 + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit 1 fi # Change the help message to a mode-specific one. generic_help="$help" - help="Try \`$progname --help --mode=$mode' for more information." + 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) - progname="$progname: compile" + modename="$modename: compile" # Get the compilation command and the source file. base_compile= lastarg= @@ -253,12 +229,20 @@ if test -z "$show_help"; then for arg do - # The only flag that cannot be specified is the output filename. - if test "X$arg" = "X-o"; then - $echo "$progname: you cannot specify the output filename with \`-o'" 1>&2 + # Accept any command-line options. + case "$arg" in + -o) + $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2 $echo "$help" 1>&2 exit 1 - fi + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + esac # Accept the current argument as the source file. lastarg="$srcfile" @@ -269,7 +253,7 @@ if test -z "$show_help"; then # Backslashify any backslashes, double quotes, and dollar signs. # These are the only characters that are still specially # interpreted inside of double-quoted scrings. - lastarg=`$echo "$lastarg" | sed "$sed_quote_subst"` + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly in scan @@ -289,11 +273,15 @@ if test -z "$show_help"; then done # Get the name of the library object. - libobj=`$echo "$srcfile" | sed -e 's%^.*/%%'` + libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` # Recognize several different file suffixes. - xform='[cCFSfm]' + xform='[cCFSfms]' case "$libobj" in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; + *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.cpp) xform=cpp ;; @@ -302,18 +290,18 @@ if test -z "$show_help"; then *.for) xform=for ;; esac - libobj=`$echo "$libobj" | sed -e "s/\.$xform$/.lo/"` + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case "$libobj" in - *.lo) obj=`$echo "$libobj" | sed -e 's/\.lo$/.o/'` ;; + *.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;; *) - $echo "$progname: cannot determine name of library object from \`$srcfile'" 1>&2 + $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2 exit 1 ;; esac if test -z "$base_compile"; then - $echo "$progname: you must specify a compilation command" 1>&2 + $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -366,11 +354,11 @@ if test -z "$show_help"; then fi fi - # Create an invalid libtool object if no PIC, so that we don't accidentally - # link it into a program. + # Create an invalid libtool object if no PIC, so that we do not + # accidentally link it into a program. if test "$build_libtool_libs" != yes; then - $show "$echo timestamp > $libobj" - $run eval "\$echo timestamp > \$libobj" || exit $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > \$libobj" || exit $? fi exit 0 @@ -378,9 +366,9 @@ if test -z "$show_help"; then # libtool link mode link) - progname="$progname: link" + modename="$modename: link" CC="$nonopt" - allow_undefined=no + allow_undefined=yes compile_command="$CC" finalize_command="$CC" @@ -397,6 +385,7 @@ if test -z "$show_help"; then objs= prev= prevarg= + release= rpath= perm_rpath= temp_rpath= @@ -408,7 +397,7 @@ if test -z "$show_help"; then case "$arg" in -all-static | -static) if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - $echo "$progname: 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 build_libtool_libs=no build_old_libs=yes @@ -443,6 +432,11 @@ if test -z "$show_help"; then ;; esac ;; + release) + release="-$arg" + prev= + continue + ;; rpath) rpath="$rpath $arg" prev= @@ -468,7 +462,8 @@ if test -z "$show_help"; then ;; -allow-undefined) - allow_undefined=yes + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; @@ -498,13 +493,13 @@ if test -z "$show_help"; then ;; -L*) - dir=`$echo "$arg" | sed 's%^-L\(.*\)$%\1%'` + dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'` case "$dir" in - /*) + /* | [A-Za-z]:\\*) # Add the corresponding hardcode_libdir_flag, if it is not identical. ;; *) - $echo "$progname: \`-L$dir' cannot specify a relative directory" 1>&2 + $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2 exit 1 ;; esac @@ -513,8 +508,18 @@ if test -z "$show_help"; then -l*) deplibs="$deplibs $arg" ;; + -no-undefined) + allow_undefined=no + continue + ;; + -o) prev=output ;; + -release) + prev=release + continue + ;; + -rpath) prev=rpath continue @@ -538,7 +543,7 @@ if test -z "$show_help"; then -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. - arg=`$echo "$arg" | sed "$sed_quote_subst"` + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" @@ -566,7 +571,7 @@ if test -z "$show_help"; then if test "$prev" = dlprefiles; then # Preload the old-style object. - dlprefiles="$dlprefiles "`$echo "$arg" | sed 's/\.lo$/\.o/'` + dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/\.o/'` prev= fi libobjs="$libobjs $arg" @@ -581,20 +586,20 @@ if test -z "$show_help"; then old_library= # Check to see that this really is a libtool archive. - if egrep '^# Generated by ltmain.sh' $arg >/dev/null 2>&1; then : + if (sed -e '2q' $arg | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : else - $echo "$progname: \`$arg' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 exit 1 fi # If there is no directory component, then add one. case "$arg" in - */*) . $arg ;; + */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$libdir"; then - $echo "$progname: \`$arg' contains no -rpath information" 1>&2 + $echo "$modename: \`$arg' contains no -rpath information" 1>&2 exit 1 fi @@ -605,13 +610,13 @@ if test -z "$show_help"; then done if test -z "$linklib"; then - $echo "$progname: cannot find name of link library for \`$arg'" 1>&2 + $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 exit 1 fi # Find the relevant object directory and library name. - name=`$echo "$arg" | sed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` - dir=`$echo "$arg" | sed 's%/[^/]*$%%'` + name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` + dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$arg"; then dir="$objdir" else @@ -625,7 +630,10 @@ if test -z "$show_help"; then # If there is no dlname, we need to preload. prev=dlprefiles else - # We should not create a dependency on this library. + # We should not create a dependency on this library, but we + # may need any libraries it requires. + compile_command="$compile_command$dependency_libs" + finalize_command="$finalize_command$dependency_libs" prev= continue fi @@ -679,7 +687,7 @@ if test -z "$show_help"; then compile_command="$compile_command $flag" finalize_command="$finalize_command $flag" fi - elif test "$hardcode_runpath_var" = yes; then + elif test -n "$runpath_var"; then # Do the same for the permanent run path. case "$perm_rpath " in *" $libdir "*) ;; @@ -703,11 +711,11 @@ if test -z "$show_help"; then relink) # We need an absolute path. case "$dir" in - /*) ;; + /* | [A-Za-z]:\\*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then - $echo "$progname: cannot determine absolute directory name of \`$dir'" 1>&2 + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 exit 1 fi dir="$absdir" @@ -725,7 +733,7 @@ if test -z "$show_help"; then ;; *) - $echo "$progname: \`$hardcode_action' is an unknown hardcode action" 1>&2 + $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2 exit 1 ;; esac @@ -739,13 +747,13 @@ if test -z "$show_help"; then finalize_shlibpath="$finalize_shlibpath$libdir:" finalize_command="$finalize_command -l$name" else - # We can't seem to hardcode it, guess we'll fake it. + # We cannot seem to hardcode it, guess we'll fake it. finalize_command="$finalize_command -L$libdir -l$name" fi else # Transform directly to old archives if we don't build new libraries. if test -n "$pic_flag" && test -z "$old_library"; then - $echo "$progname: cannot find static library for \`$arg'" 1>&2 + $echo "$modename: cannot find static library for \`$arg'" 1>&2 exit 1 fi @@ -761,6 +769,10 @@ if test -z "$show_help"; then finalize_command="$finalize_command -L$dir -l$name" fi fi + + # Add in any libraries that this one depends upon. + compile_command="$compile_command$dependency_libs" + finalize_command="$finalize_command$dependency_libs" continue ;; @@ -768,7 +780,7 @@ if test -z "$show_help"; then *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. - arg=`$echo "$arg" | sed "$sed_quote_subst"` + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" @@ -778,12 +790,20 @@ if test -z "$show_help"; then esac # Now actually substitute the argument into the commands. - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi done if test -n "$prev"; then - $echo "$progname: the \`$prevarg' option requires an argument" 1>&2 + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + if test -n "$vinfo" && test -n "$release"; then + $echo "$modename: you cannot specify both \`-version-info' and \`-release'" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -792,28 +812,37 @@ if test -z "$show_help"; then oldobjs= case "$output" in "") - $echo "$progname: you must specify an output file" 1>&2 + $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit 1 ;; - */*) - $echo "$progname: output file \`$output' must have no directory components" 1>&2 + */* | *\\*) + $echo "$modename: output file \`$output' must have no directory components" 1>&2 exit 1 ;; + *.a) + # Now set the variables for building old libraries. + build_libtool_libs=no + build_old_libs=yes + oldlib="$output" + $show "$rm $oldlib" + $run $rm $oldlib + ;; + *.la) # Make sure we only generate libraries of the form `libNAME.la'. case "$output" in lib*) ;; *) - $echo "$progname: libtool library \`$arg' must begin with \`lib'" 1>&2 + $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac - name=`$echo "$output" | sed -e 's/\.la$//' -e 's/^lib//'` + name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'` libname=`eval \\$echo \"$libname_spec\"` # All the library-specific variables (install_libdir is set above). @@ -825,35 +854,32 @@ if test -z "$show_help"; then age=0 if test -n "$objs"; then - $echo "$progname: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 exit 1 fi # How the heck are we supposed to write a wrapper for a shared library? if test -n "$link_against_libtool_libs"; then - $echo "$progname: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 + $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 exit 1 fi - # Add libc to deplibs on all systems. - deplibs="$deplibs -lc" - if test -n "$dlfiles$dlprefiles"; then - $echo "$progname: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 + $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 # Nullify the symbol file. - compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` - finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` + compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test -z "$rpath"; then - $echo "$progname: you must specify an installation directory with \`-rpath'" 1>&2 + $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2 $echo "$help" 1>&2 exit 1 fi set dummy $rpath if test $# -gt 2; then - $echo "$progname: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" @@ -863,7 +889,7 @@ if test -z "$show_help"; then IFS="$save_ifs" if test -n "$5"; then - $echo "$progname: too many parameters to \`-version-info'" 1>&2 + $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -876,8 +902,8 @@ if test -z "$show_help"; then case "$current" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac @@ -885,8 +911,8 @@ if test -z "$show_help"; then case "$revision" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac @@ -894,15 +920,15 @@ if test -z "$show_help"; then case "$age" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac if test $age -gt $current; then - $echo "$progname: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $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 1 fi @@ -942,16 +968,16 @@ if test -z "$show_help"; then ;; *) - $echo "$progname: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 ;; esac # Create the output directory, or remove our outputs if we need to. if test -d $objdir; then - $show "$rm $objdir/$output $objdir/$libname.*" - $run $rm $objdir/$output $objdir/$libname.* + $show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*" + $run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.* else $show "$mkdir $objdir" $run $mkdir $objdir @@ -965,15 +991,19 @@ if test -z "$show_help"; then # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then - $echo "$progname: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else - # Clear the flag. - allow_undefined_flag= + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" fi + # Add libc to deplibs on all systems. + dependency_libs="$deplibs" + deplibs="$deplibs -lc" + if test "$build_libtool_libs" = yes; then # Get the real and link names of the library. library_names=`eval \\$echo \"$library_names_spec\"` @@ -994,7 +1024,7 @@ if test -z "$show_help"; then done # Use standard objects if they are PIC. - test -z "$pic_flag" && libobjs=`$echo "$libobjs " | sed -e 's/\.lo /.o /g' -e 's/ $//g'` + test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'` # Do each of the archive commands. cmds=`eval \\$echo \"$archive_cmds\"` @@ -1007,9 +1037,9 @@ if test -z "$show_help"; then IFS="$save_ifs" # Create links to the real library. - for link in $linknames; do - $show "(cd $objdir && $LN_S $realname $link)" - $run eval '(cd $objdir && $LN_S $realname $link)' || exit $? + for linkname in $linknames; do + $show "(cd $objdir && $LN_S $realname $linkname)" + $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? done # If -export-dynamic was specified, set the dlname. @@ -1018,41 +1048,48 @@ if test -z "$show_help"; then dlname="$soname" fi fi + + # Now set the variables for building old libraries. + oldlib="$objdir/$libname.a" ;; *.lo | *.o) if test -n "$link_against_libtool_libs"; then - $echo "$progname: error: cannot link libtool libraries into reloadable objects" 1>&2 + $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2 exit 1 fi if test -n "$deplibs"; then - $echo "$progname: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 fi if test -n "$dlfiles$dlprefiles"; then - $echo "$progname: warning: \`-dlopen' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2 # Nullify the symbol file. - compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` - finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` + compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test -n "$rpath"; then - $echo "$progname: warning: \`-rpath' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2 fi if test -n "$vinfo"; then - $echo "$progname: warning: \`-version-info' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 fi case "$output" in *.lo) if test -n "$objs"; then - $echo "$progname: cannot build library object \`$output' from non-libtool objects" 1>&2 + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit 1 fi libobj="$output" - obj=`$echo "$output" | sed 's/\.lo$/.o/'` + obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'` ;; *) libobj= @@ -1064,7 +1101,7 @@ if test -z "$show_help"; then $run $rm $obj $libobj # Create the old-style object. - reload_objs="$objs"`$echo "$libobjs " | sed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` + reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` output="$obj" cmds=`eval \\$echo \"$reload_cmds\"` @@ -1082,8 +1119,8 @@ if test -z "$show_help"; then if test "$build_libtool_libs" != yes; then # 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 $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > $libobj" || exit $? exit 0 fi @@ -1110,7 +1147,11 @@ if test -z "$show_help"; then *) if test -n "$vinfo"; then - $echo "$progname: warning: \`-version-info' is ignored while linking programs" 1>&2 + $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 fi if test -n "$rpath"; then @@ -1141,7 +1182,7 @@ if test -z "$show_help"; then compile_command="$compile_command $flag" finalize_command="$finalize_command $flag" fi - elif test "$hardcode_runpath_var" = yes; then + elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; @@ -1152,14 +1193,14 @@ if test -z "$show_help"; then # Substitute the hardcoded libdirs into the compile commands. if test -n "$hardcode_libdir_separator"; then - compile_command=`$echo "$compile_command" | sed "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` - finalize_command=`$echo "$finalize_command" | sed "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` fi if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. - compile_command=`$echo "$compile_command " | sed -e 's/\.lo /.o /g' -e 's/ $//'` - finalize_command=`$echo "$finalize_command " | sed -e 's/\.lo /.o /g' -e 's/ $//'` + compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` + finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` fi if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then @@ -1170,7 +1211,7 @@ if test -z "$show_help"; then if test -n "$dlsyms"; then # Add our own program objects to the preloaded list. - dlprefiles=`$echo "$objs$dlprefiles " | sed -e 's/\.lo /.o /g' -e 's/ $//'` + dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` # Discover the nlist of each of the dlfiles. nlist="$objdir/${output}.nm" @@ -1203,7 +1244,7 @@ if test -z "$show_help"; then if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" wcout=`wc "$nlist" 2>/dev/null` - count=`$echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` + count=`echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` (test "$count" -ge 0) 2>/dev/null || count=-1 else $rm "$nlist"T @@ -1213,29 +1254,29 @@ if test -z "$show_help"; then case "$dlsyms" in "") ;; *.c) - cat < "$objdir/$dlsyms" -/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */ + $echo > "$objdir/$dlsyms" \ +"/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION */ #ifdef __cplusplus -extern "C" { +extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define dld_preloaded_symbol_count some_other_symbol #define dld_preloaded_symbols some_other_symbol -/* External symbol declarations for the compiler. */ -EOF +/* External symbol declarations for the compiler. */" + if test -f "$nlist"; then sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms" else - $echo '/* NONE */' >> "$objdir/$dlsyms" + echo '/* NONE */' >> "$objdir/$dlsyms" EOF fi - cat <> "$objdir/$dlsyms" - + $echo >> "$objdir/$dlsyms" \ +" #undef dld_preloaded_symbol_count #undef dld_preloaded_symbols @@ -1254,25 +1295,23 @@ struct { __ptr_t address; } dld_preloaded_symbols[] = -{ -EOF +{" if test -f "$nlist"; then - sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> "$objdir/$dlsyms" + sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" fi - cat <<\EOF >> "$objdir/$dlsyms" - {0}, + $echo >> "$objdir/$dlsyms" \ +" {0, (__ptr_t) 0} }; #ifdef __cplusplus } -#endif -EOF +#endif" ;; *) - echo "$progname: unknown suffix for \`$dlsyms'" 1>&2 + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit 1 ;; esac @@ -1283,25 +1322,25 @@ EOF $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $? # Transform the symbol file into the correct name. - compile_command=`$echo "$compile_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"` - finalize_command=`$echo "$finalize_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"` + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` elif test "$export_dynamic" != yes; then - test -n "$dlfiles$dlprefiles" && $echo "$progname: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 + test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 else # We keep going just in case the user didn't refer to # dld_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. - $echo "$progname: not configured to extract global symbols from dlpreopened files" 1>&2 + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 # Nullify the symbol file. - compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` - finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` + compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then # Replace the output file specification. - compile_command=`$echo "$compile_command" | sed 's%@OUTPUT@%'"$output"'%g'` - finalize_command=`$echo "$finalize_command" | sed 's%@OUTPUT@%'"$output"'%g'` + compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # We have no uninstalled library dependencies, so finalize right now. $show "$compile_command" @@ -1310,14 +1349,19 @@ EOF fi # Replace the output file specification. - compile_command=`$echo "$compile_command" | sed 's%@OUTPUT@%'"$objdir/$output"'%g'` - finalize_command=`$echo "$finalize_command" | sed 's%@OUTPUT@%'"$objdir/$output"'T%g'` + compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'` + finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'` # Create the binary in the object directory, then wrap it. if test -d $objdir; then : else $show "$mkdir $objdir" - $run $mkdir $objdir || exit $? + $run $mkdir $objdir + status=$? + if test $status -eq 0 || test -d $objdir; then : + else + exit $status + fi fi if test -n "$shlibpath_var"; then @@ -1325,7 +1369,7 @@ EOF rpath= for dir in $temp_rpath; do case "$dir" in - /*) + /* | [A-Za-z]:\\*) # Absolute path. rpath="$rpath$dir:" ;; @@ -1348,7 +1392,7 @@ EOF finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi - if test -n "$perm_rpath"; then + if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do @@ -1361,8 +1405,8 @@ EOF case "$hardcode_action" in relink) # AGH! Flame the AIX and HP-UX people for me, will ya? - $echo "$progname: warning: using a buggy system linker" 1>&2 - $echo "$progname: relinking will be required before \`$output' can be installed" 1>&2 + $echo "$modename: warning: using a buggy system linker" 1>&2 + $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2 ;; esac @@ -1373,15 +1417,18 @@ EOF $show "creating $output" # Quote the finalize command for shipping. - finalize_command=`$echo "$finalize_command" | sed "$sed_quote_subst"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"` + + # Quote $echo for shipping. + qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` # Only actually do things if our run command is non-null. if test -z "$run"; then $rm $output trap "$rm $output; exit 1" 1 2 15 - cat > $output < $output \ +"#! /bin/sh # $output - temporary wrapper script for $objdir/$output # Generated by ltmain.sh - GNU $PACKAGE $VERSION @@ -1392,116 +1439,109 @@ EOF # This wrapper script should never be moved out of \``pwd`'. # 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 s/^X//' +sed_quote_subst='$sed_quote_subst' + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi + # This environment variable determines our operation mode. -if test "\$libtool_install_magic" = "$magic"; then +if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: link_against_libtool_libs='$link_against_libtool_libs' - finalize_command="$finalize_command" + finalize_command=\"$finalize_command\" else # When we are sourced in execute mode, \$file and \$echo are already set. - if test "\$libtool_execute_magic" = "$magic"; then : + if test \"\$libtool_execute_magic\" = \"$magic\"; then : else - echo='$echo' - file="\$0" + echo=\"$qecho\" + file=\"\$0\" fi # Find the directory that this script lives in. - thisdir=\`\$echo "\$file" | sed 's%/[^/]*$%%'\` - test "x\$thisdir" = "x\$file" && thisdir=. + 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 "\$file" | sed 's%/[^/]*\$%%'\` + 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 - /*) thisdir="\$destdir" ;; - *) thisdir="\$thisdir/\$destdir" ;; + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + /* | [A-Za-z]:\\*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi - file=\`\$echo "\$file" | sed 's%^.*/%%'\` - file=\`ls -ld "\$thisdir/\$file" | sed -n 's/.*-> //p'\` + 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" + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" - progdir="\$thisdir/$objdir" + progdir=\"\$thisdir/$objdir\" program='$output' - if test -f "\$progdir/\$program"; then -EOF + if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test -n "$shlibpath_var" && test -n "$temp_rpath"; then - cat >> $output <> $output \ +" # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var - $shlibpath_var=\`\$echo \$$shlibpath_var | sed -e 's/:*\$//'\` + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\` export $shlibpath_var - -EOF +" fi - cat >> $output <> $output \ +" if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. args= for arg do # Quote arguments (to preserve shell metacharacters). - sed_quote_subst='$sed_quote_subst' - arg=\`\$echo "\$arg" | sed "\$sed_quote_subst"\` - args="\$args \\"\$arg\\"" + arg=\`\$echo \"X\$arg\" | \$Xsed -e \"\$sed_quote_subst\"\` + args=\"\$args \\\"\$arg\\\"\" done # Export the path to the program. - PATH="\$progdir:\$PATH" + PATH=\"\$progdir:\$PATH\" export PATH - eval "exec \$program \$args" + eval \"exec \$program \$args\" - \$echo "\$0: cannot exec \$program \$args" + \$echo \"\$0: cannot exec \$program \$args\" exit 1 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 + \$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 1 fi -fi -EOF +fi" chmod +x $output fi exit 0 ;; esac - # See if we need to build an old-fashioned archive. if test "$build_old_libs" = "yes"; then - # Now set the variables for building old libraries. - oldlib="$objdir/$libname.a" - # Transform .lo files to .o files. - oldobjs="$objs"`$echo "$libobjs " | sed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` - - if test -d "$objdir"; then - $show "$rm $oldlib" - $run $rm $oldlib - else - $show "$mkdir $objdir" - $run $mkdir $objdir - fi + oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then @@ -1528,8 +1568,8 @@ EOF # Only create the output if not a dry run. if test -z "$run"; then - cat > $output < $output \ +"# $output - a libtool library file # Generated by ltmain.sh - GNU $PACKAGE $VERSION # The name that we can dlopen(3). @@ -1541,14 +1581,16 @@ 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 # Directory that this library needs to be installed in: -libdir='$install_libdir' -EOF +libdir='$install_libdir'" fi # Do a symbolic link so that the libtool archive can be found in @@ -1562,13 +1604,13 @@ EOF # libtool install mode install) - progname="$progname: install" + modename="$modename: install" # There may be an optional /bin/sh argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL"; then # Aesthetically quote it. - arg=`$echo "$nonopt" | sed "$sed_quote_subst"` + arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" @@ -1584,7 +1626,7 @@ EOF # The real first argument should be the name of the installation program. # Aesthetically quote it. - arg=`$echo "$arg" | sed "$sed_quote_subst"` + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" @@ -1632,7 +1674,7 @@ EOF esac # Aesthetically quote the argument. - arg=`$echo "$arg" | sed "$sed_quote_subst"` + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" @@ -1642,29 +1684,29 @@ EOF done if test -z "$install_prog"; then - $echo "$progname: you must specify an install program" 1>&2 + $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -n "$prev"; then - $echo "$progname: the \`$prev' option requires an argument" 1>&2 + $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -z "$files"; then if test -z "$dest"; then - $echo "$progname: no file or destination specified" 1>&2 + $echo "$modename: no file or destination specified" 1>&2 else - $echo "$progname: you must specify a destination" 1>&2 + $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit 1 fi # Strip any trailing slash from the destination. - dest=`$echo "$dest" | sed 's%/$%%'` + dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes @@ -1672,26 +1714,26 @@ EOF destdir="$dest" destname= else - destdir=`$echo "$dest" | sed 's%/[^/]*$%%'` + destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. - destname=`$echo "$dest" | sed 's%^.*/%%'` + 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 "$progname: \`$dest' is not a directory" 1>&2 + $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit 1 fi fi case "$destdir" in - /*) ;; + /* | [A-Za-z]:\\*) ;; *) for file in $files; do case "$file" in *.lo) ;; *) - $echo "$progname: \`$destdir' must be an absolute directory name" 1>&2 + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -1718,9 +1760,9 @@ EOF *.la) # Check to see that this really is a libtool archive. - if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then : + if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : else - $echo "$progname: \`$file' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1729,7 +1771,7 @@ EOF old_library= # If there is no directory component, then add one. case "$file" in - */*) . $file ;; + */* | *\\*) . $file ;; *) . ./$file ;; esac @@ -1747,7 +1789,7 @@ EOF esac fi - dir="`$echo "$file" | sed 's%/[^/]*$%%'`/" + dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/" test "X$dir" = "X$file/" && dir= dir="$dir$objdir" @@ -1763,16 +1805,6 @@ EOF $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? test "X$dlname" = "X$realname" && dlname= - # Support stripping libraries. - if test -n "$stripme"; then - if test -n "$striplib"; then - $show "$striplib $destdir/$realname" - $run $striplib $destdir/$realname || exit $? - else - $echo "$progname: warning: no library stripping program" 1>&2 - fi - fi - if test $# -gt 0; then # Delete the old symlinks. rmcmd="$rm" @@ -1811,7 +1843,7 @@ EOF fi # Install the pseudo-library for information purposes. - name=`$echo "$file" | sed 's%^.*/%%'` + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` $show "$install_prog $file $destdir/$name" $run eval "$install_prog $file $destdir/$name" || exit $? @@ -1826,21 +1858,21 @@ EOF if test -n "$destname"; then destfile="$destdir/$destname" else - destfile=`$echo "$file" | sed 's%^.*/%%'` + 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 "$destfile" | sed 's/\.lo$/\.o/'` + staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/\.o/'` ;; *.o) staticdest="$destfile" destfile= ;; *) - $echo "$progname: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -1855,7 +1887,7 @@ EOF # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. - staticobj=`$echo "$file" | sed 's/\.lo$/\.o/'` + staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/\.o/'` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? @@ -1865,19 +1897,19 @@ EOF *) # Do a test to see if this is really a libtool program. - if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then + if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then link_against_libtool_libs= finalize_command= # If there is no directory component, then add one. case "$file" in - */*) . $file ;; + */* | *\\*) . $file ;; *) . ./$file ;; esac # Check the variables that should have been set. if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then - $echo "$progname: invalid libtool wrapper script \`$file'" 1>&2 + $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 exit 1 fi @@ -1888,36 +1920,36 @@ EOF if test -f "$lib"; then # If there is no directory component, then add one. case "$lib" in - */*) . $lib ;; + */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi - libfile="$libdir/`$echo "$lib" | sed 's%^.*/%%g'`" + libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" if test -z "$libdir"; then - $echo "$progname: warning: \`$lib' contains no -rpath information" 1>&2 + $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2 elif test -f "$libfile"; then : else - $echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done if test "$hardcode_action" = relink; then if test "$finalize" = yes; then - $echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 + $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 $show "$finalize_command" if $run eval "$finalize_command"; then : else - $echo "$progname: error: relink \`$file' with the above command before installing it" 1>&2 + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 continue fi file="$objdir/$file"T else - $echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 + $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 fi else # Install the binary that we compiled earlier. - file=`$echo "$file" | sed "s%\([^/]*\)$%$objdir/\1%"` + file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi @@ -1928,7 +1960,7 @@ EOF done for file in $staticlibs; do - name=`$echo "$file" | sed 's%^.*/%%'` + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" @@ -1936,16 +1968,6 @@ EOF $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? - # Support stripping libraries. - if test -n "$stripme"; then - if test -n "$old_striplib"; then - $show "$old_striplib $oldlib" - $run $old_striplib $oldlib || exit $? - else - $echo "$progname: warning: no static library stripping program" 1>&2 - fi - fi - # Do each command in the postinstall commands. cmds=`eval \\$echo \"$old_postinstall_cmds\"` IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' @@ -1958,7 +1980,7 @@ EOF done if test -n "$future_libdirs"; then - $echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then @@ -1973,44 +1995,77 @@ EOF # libtool finish mode finish) - progname="$progname: finish" + modename="$modename: finish" libdirs="$nonopt" - if test -n "$finish_cmds" && test -n "$libdirs"; then + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do - # Do each command in the postinstall commands. - cmds=`eval \\$echo \"$finish_cmds\"` - IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' - for cmd in $cmds; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + cmds=`eval \\$echo \"$finish_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - done - IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + cmds=`eval \\$echo \"$finish_eval\"` + $run eval "$cmds" + fi done fi - $echo "To link against installed libraries in LIBDIR, users may have to:" + echo "------------------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + echo " $libdir" + done + echo + echo "To link against installed libraries in a given directory, LIBDIR," + echo "you must use the \`-LLIBDIR' flag during linking." + echo + echo " You will also need to do one of the following:" if test -n "$shlibpath_var"; then - $echo " - add LIBDIR to their \`$shlibpath_var' environment variable" + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" fi - $echo " - use the \`-LLIBDIR' linker flag" + 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 + flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"` + + echo " - use the \`$flag' linker flag" + 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 "------------------------------------------------------------------------------" exit 0 ;; # libtool execute mode execute) - progname="$progname: execute" + modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then - $echo "$progname: you must specify a COMMAND" 1>&2 + $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit 1 fi @@ -2019,7 +2074,7 @@ EOF for file in $execute_dlfiles; do if test -f "$file"; then : else - $echo "$progname: \`$file' is not a file" 1>&2 + $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -2028,9 +2083,9 @@ EOF case "$file" in *.la) # Check to see that this really is a libtool archive. - if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then : + if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : else - $echo "$progname: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -2041,36 +2096,36 @@ EOF # If there is no directory component, then add one. case "$file" in - */*) . $file ;; + */* | *\\*) . $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 "$progname: warning: \`$file' was not linked with \`-export-dynamic'" + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi - dir=`$echo "$file" | sed 's%/[^/]*$%%'` + 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 "$progname: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit 1 fi ;; *.lo) # Just add the directory containing the .lo file. - dir=`$echo "$file" | sed 's%/[^/]*$%%'` + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) - $echo "$progname: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac @@ -2098,10 +2153,11 @@ EOF case "$file" in -*) ;; *) - if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then + # Do a test to see if this is really a libtool program. + if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then # If there is no directory component, then add one. case "$file" in - */*) . $file ;; + */* | *\\*) . $file ;; *) . ./$file ;; esac @@ -2111,7 +2167,7 @@ EOF ;; esac # Quote arguments (to preserve shell metacharacters). - file=`$echo "$file" | sed "$sed_quote_subst"` + file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done @@ -2122,7 +2178,7 @@ EOF # Now actually exec the command. eval "exec \$cmd$args" - $echo "$progname: cannot exec \$cmd$args" + $echo "$modename: cannot exec \$cmd$args" exit 1 else # Display what would be done. @@ -2135,7 +2191,7 @@ EOF # libtool uninstall mode uninstall) - progname="$progname: uninstall" + modename="$modename: uninstall" rm="$nonopt" files= @@ -2148,22 +2204,22 @@ EOF done if test -z "$rm"; then - $echo "$progname: you must specify an RM program" 1>&2 + $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit 1 fi for file in $files; do - dir=`$echo "$file" | sed -e 's%/[^/]*$%%'` + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. - name=`$echo "$file" | sed -e 's%^.*/%%'` + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` rmfiles="$file" case "$name" in *.la) # Possibly a libtool archive, so verify it. - if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then + if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. @@ -2174,40 +2230,71 @@ EOF test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname" test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" + $show "$rm $rmfiles" + $run $rm $rmfiles + + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + cmds=`eval \\$echo \"$postuninstall_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + cmds=`eval \\$echo \"$old_postuninstall_cmds\"` + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done + IFS="$save_ifs" + fi + # FIXME: should reinstall the best remaining shared library. fi ;; *.lo) if test "$build_old_libs" = yes; then - oldobj=`$echo "$name" | sed 's/\.lo$/\.o/'` + oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/\.o/'` rmfiles="$rmfiles $dir/$oldobj" fi + $show "$rm $rmfiles" + $run $rm $rmfiles ;; - esac - $show "$rm $rmfiles" - $run $rm $rmfiles + *) + $show "$rm $rmfiles" + $run $rm $rmfiles + ;; + esac done exit 0 ;; "") - $echo "$progname: you must specify a MODE" 1>&2 + $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit 1 ;; esac - $echo "$progname: invalid operation mode \`$mode'" 1>&2 + $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit 1 fi # test -z "$show_help" # We need to display help for each of the modes. case "$mode" in -"") cat <&2 + $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac -$echo -$echo "Try \`$progname --help' for more information about other modes." +echo +$echo "Try \`$modename --help' for more information about other modes." exit 0 diff --git a/plug-ins/common/pcx.c b/plug-ins/common/pcx.c index ebc7f2781a..ea17400619 100644 --- a/plug-ins/common/pcx.c +++ b/plug-ins/common/pcx.c @@ -6,6 +6,8 @@ /* New for 1998 -- Load 1, 4, 8 & 24 bit PCX files */ /* -- Save 8 & 24 bit PCX files */ +/* 1998-01-19 - fixed some endianness problems (Raphael Quinet) */ +/* 1998-02-05 - merged patch with "official" tree, some tidying up (njl) */ /* Please contact me if you can't use your PCXs with this tool, I want The GIMP to have the best file filters on the planet */ @@ -22,6 +24,22 @@ static void query (void); static void run (char *name, int nparams, GParam *param, int *nreturn_vals, GParam **return_vals); +#if defined(_BIG_ENDIAN) || defined(sparc) || defined (__sgi) +#define qtohl(x) \ + ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \ + (((unsigned long int)(x) & 0x0000ff00U) << 8) | \ + (((unsigned long int)(x) & 0x00ff0000U) >> 8) | \ + (((unsigned long int)(x) & 0xff000000U) >> 24))) +#define qtohs(x) \ + ((unsigned short int)((((unsigned short int)(x) & 0x00ff) << 8) | \ + (((unsigned short int)(x) & 0xff00) >> 8))) +#else +#define qtohl(x) (x) +#define qtohs(x) (x) +#endif +#define htoql(x) qtohl(x) +#define htoqs(x) qtohs(x) + GPlugInInfo PLUG_IN_INFO = { NULL, NULL, query, run, }; MAIN () @@ -55,7 +73,7 @@ static void query () { "FIXME: write help for pcx_load", "Francisco Bustamante & Nick Lamb", "Nick Lamb ", - "1997", + "January 1997", "/PCX", NULL, PROC_PLUG_IN, @@ -67,7 +85,7 @@ static void query () { "FIXME: write help for pcx_save", "Francisco Bustamante & Nick Lamb", "Nick Lamb ", - "1997", + "January 1997", "/PCX", "INDEXED, RGB, GRAY", PROC_PLUG_IN, @@ -154,25 +172,23 @@ static void run (char *name, int nparams, GParam *param, int *nreturn_vals, } } -#define BitSet(byte, bit) (((byte) & (bit)) == (bit)) - guchar mono[6]= {0, 0, 0, 255, 255, 255}; static struct { - unsigned char manufacturer; - unsigned char version; - unsigned char compression; - unsigned char bpp; - short int x1, y1; - short int x2, y2; - short int hdpi; - short int vdpi; - unsigned char colormap[48]; - unsigned char reserved; - unsigned char planes; - short int bytesperline; - short int color; - unsigned char filler[58]; + guint8 manufacturer; + guint8 version; + guint8 compression; + guint8 bpp; + gint16 x1, y1; + gint16 x2, y2; + gint16 hdpi; + gint16 vdpi; + guint8 colormap[48]; + guint8 reserved; + guint8 planes; + gint16 bytesperline; + gint16 color; + guint8 filler[58]; } pcx_header; static gint32 load_image (char *filename) { @@ -205,10 +221,10 @@ static gint32 load_image (char *filename) { return -1; } - offset_x = pcx_header.x1; - offset_y = pcx_header.y1; - width = pcx_header.x2 - offset_x + 1; - height = pcx_header.y2 - offset_y + 1; + offset_x = qtohs (pcx_header.x1); + offset_y = qtohs (pcx_header.y1); + width = qtohs (pcx_header.x2) - offset_x + 1; + height = qtohs (pcx_header.y2) - offset_y + 1; if (pcx_header.planes == 3 && pcx_header.bpp == 8) { image= gimp_image_new (width, height, RGB); @@ -226,21 +242,21 @@ static gint32 load_image (char *filename) { if (pcx_header.planes == 1 && pcx_header.bpp == 1) { dest = (guchar *) g_malloc (width * height); - load_1(fd, width, height, dest, pcx_header.bytesperline); + load_1(fd, width, height, dest, qtohs (pcx_header.bytesperline)); gimp_image_set_cmap (image, mono, 2); } else if (pcx_header.planes == 4 && pcx_header.bpp == 1) { dest = (guchar *) g_malloc (width * height); - load_4(fd, width, height, dest, pcx_header.bytesperline); + load_4(fd, width, height, dest, qtohs (pcx_header.bytesperline)); gimp_image_set_cmap (image, pcx_header.colormap, 16); } else if (pcx_header.planes == 1 && pcx_header.bpp == 8) { dest = (guchar *) g_malloc (width * height); - load_8(fd, width, height, dest, pcx_header.bytesperline); + load_8(fd, width, height, dest, qtohs (pcx_header.bytesperline)); fseek(fd, -768L, SEEK_END); fread(cmap, 768, 1, fd); gimp_image_set_cmap (image, cmap, 256); } else if (pcx_header.planes == 3 && pcx_header.bpp == 8) { dest = (guchar *) g_malloc (width * height * 3); - load_24(fd, width, height, dest, pcx_header.bytesperline); + load_24(fd, width, height, dest, qtohs (pcx_header.bytesperline)); } else { fprintf(stderr, "PCX: Unusual PCX flavour, giving up\n"); return -1; @@ -380,23 +396,23 @@ gint save_image (char *filename, gint32 image, gint32 layer) { case INDEXED_IMAGE: cmap= gimp_image_get_cmap(image, &colors); pcx_header.bpp = 8; - pcx_header.bytesperline = width; + pcx_header.bytesperline = htoqs (width); pcx_header.planes = 1; - pcx_header.color = 1; + pcx_header.color = htoqs (1); break; case RGB_IMAGE: pcx_header.bpp = 8; pcx_header.planes = 3; - pcx_header.color = 1; - pcx_header.bytesperline = width; + pcx_header.color = htoqs (1); + pcx_header.bytesperline = htoqs (width); break; case GRAY_IMAGE: pcx_header.bpp = 8; pcx_header.planes = 1; - pcx_header.color = 2; - pcx_header.bytesperline = width; + pcx_header.color = htoqs (2); + pcx_header.bytesperline = htoqs (width); break; default: @@ -413,13 +429,13 @@ gint save_image (char *filename, gint32 image, gint32 layer) { pixels= (guchar *) g_malloc(width * height * pcx_header.planes); gimp_pixel_rgn_get_rect(&pixel_rgn, pixels, 0, 0, width, height); - pcx_header.x1 = offset_x; - pcx_header.y1 = offset_y; - pcx_header.x2 = offset_x + width - 1; - pcx_header.y2 = offset_y + height - 1; + pcx_header.x1 = htoqs (offset_x); + pcx_header.y1 = htoqs (offset_y); + pcx_header.x2 = htoqs (offset_x + width - 1); + pcx_header.y2 = htoqs (offset_y + height - 1); - pcx_header.hdpi = 300; - pcx_header.vdpi = 300; + pcx_header.hdpi = htoqs (300); + pcx_header.vdpi = htoqs (300); pcx_header.reserved = 0; fwrite(&pcx_header, 128, 1, fp); diff --git a/plug-ins/pcx/pcx.c b/plug-ins/pcx/pcx.c index ebc7f2781a..ea17400619 100644 --- a/plug-ins/pcx/pcx.c +++ b/plug-ins/pcx/pcx.c @@ -6,6 +6,8 @@ /* New for 1998 -- Load 1, 4, 8 & 24 bit PCX files */ /* -- Save 8 & 24 bit PCX files */ +/* 1998-01-19 - fixed some endianness problems (Raphael Quinet) */ +/* 1998-02-05 - merged patch with "official" tree, some tidying up (njl) */ /* Please contact me if you can't use your PCXs with this tool, I want The GIMP to have the best file filters on the planet */ @@ -22,6 +24,22 @@ static void query (void); static void run (char *name, int nparams, GParam *param, int *nreturn_vals, GParam **return_vals); +#if defined(_BIG_ENDIAN) || defined(sparc) || defined (__sgi) +#define qtohl(x) \ + ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \ + (((unsigned long int)(x) & 0x0000ff00U) << 8) | \ + (((unsigned long int)(x) & 0x00ff0000U) >> 8) | \ + (((unsigned long int)(x) & 0xff000000U) >> 24))) +#define qtohs(x) \ + ((unsigned short int)((((unsigned short int)(x) & 0x00ff) << 8) | \ + (((unsigned short int)(x) & 0xff00) >> 8))) +#else +#define qtohl(x) (x) +#define qtohs(x) (x) +#endif +#define htoql(x) qtohl(x) +#define htoqs(x) qtohs(x) + GPlugInInfo PLUG_IN_INFO = { NULL, NULL, query, run, }; MAIN () @@ -55,7 +73,7 @@ static void query () { "FIXME: write help for pcx_load", "Francisco Bustamante & Nick Lamb", "Nick Lamb ", - "1997", + "January 1997", "/PCX", NULL, PROC_PLUG_IN, @@ -67,7 +85,7 @@ static void query () { "FIXME: write help for pcx_save", "Francisco Bustamante & Nick Lamb", "Nick Lamb ", - "1997", + "January 1997", "/PCX", "INDEXED, RGB, GRAY", PROC_PLUG_IN, @@ -154,25 +172,23 @@ static void run (char *name, int nparams, GParam *param, int *nreturn_vals, } } -#define BitSet(byte, bit) (((byte) & (bit)) == (bit)) - guchar mono[6]= {0, 0, 0, 255, 255, 255}; static struct { - unsigned char manufacturer; - unsigned char version; - unsigned char compression; - unsigned char bpp; - short int x1, y1; - short int x2, y2; - short int hdpi; - short int vdpi; - unsigned char colormap[48]; - unsigned char reserved; - unsigned char planes; - short int bytesperline; - short int color; - unsigned char filler[58]; + guint8 manufacturer; + guint8 version; + guint8 compression; + guint8 bpp; + gint16 x1, y1; + gint16 x2, y2; + gint16 hdpi; + gint16 vdpi; + guint8 colormap[48]; + guint8 reserved; + guint8 planes; + gint16 bytesperline; + gint16 color; + guint8 filler[58]; } pcx_header; static gint32 load_image (char *filename) { @@ -205,10 +221,10 @@ static gint32 load_image (char *filename) { return -1; } - offset_x = pcx_header.x1; - offset_y = pcx_header.y1; - width = pcx_header.x2 - offset_x + 1; - height = pcx_header.y2 - offset_y + 1; + offset_x = qtohs (pcx_header.x1); + offset_y = qtohs (pcx_header.y1); + width = qtohs (pcx_header.x2) - offset_x + 1; + height = qtohs (pcx_header.y2) - offset_y + 1; if (pcx_header.planes == 3 && pcx_header.bpp == 8) { image= gimp_image_new (width, height, RGB); @@ -226,21 +242,21 @@ static gint32 load_image (char *filename) { if (pcx_header.planes == 1 && pcx_header.bpp == 1) { dest = (guchar *) g_malloc (width * height); - load_1(fd, width, height, dest, pcx_header.bytesperline); + load_1(fd, width, height, dest, qtohs (pcx_header.bytesperline)); gimp_image_set_cmap (image, mono, 2); } else if (pcx_header.planes == 4 && pcx_header.bpp == 1) { dest = (guchar *) g_malloc (width * height); - load_4(fd, width, height, dest, pcx_header.bytesperline); + load_4(fd, width, height, dest, qtohs (pcx_header.bytesperline)); gimp_image_set_cmap (image, pcx_header.colormap, 16); } else if (pcx_header.planes == 1 && pcx_header.bpp == 8) { dest = (guchar *) g_malloc (width * height); - load_8(fd, width, height, dest, pcx_header.bytesperline); + load_8(fd, width, height, dest, qtohs (pcx_header.bytesperline)); fseek(fd, -768L, SEEK_END); fread(cmap, 768, 1, fd); gimp_image_set_cmap (image, cmap, 256); } else if (pcx_header.planes == 3 && pcx_header.bpp == 8) { dest = (guchar *) g_malloc (width * height * 3); - load_24(fd, width, height, dest, pcx_header.bytesperline); + load_24(fd, width, height, dest, qtohs (pcx_header.bytesperline)); } else { fprintf(stderr, "PCX: Unusual PCX flavour, giving up\n"); return -1; @@ -380,23 +396,23 @@ gint save_image (char *filename, gint32 image, gint32 layer) { case INDEXED_IMAGE: cmap= gimp_image_get_cmap(image, &colors); pcx_header.bpp = 8; - pcx_header.bytesperline = width; + pcx_header.bytesperline = htoqs (width); pcx_header.planes = 1; - pcx_header.color = 1; + pcx_header.color = htoqs (1); break; case RGB_IMAGE: pcx_header.bpp = 8; pcx_header.planes = 3; - pcx_header.color = 1; - pcx_header.bytesperline = width; + pcx_header.color = htoqs (1); + pcx_header.bytesperline = htoqs (width); break; case GRAY_IMAGE: pcx_header.bpp = 8; pcx_header.planes = 1; - pcx_header.color = 2; - pcx_header.bytesperline = width; + pcx_header.color = htoqs (2); + pcx_header.bytesperline = htoqs (width); break; default: @@ -413,13 +429,13 @@ gint save_image (char *filename, gint32 image, gint32 layer) { pixels= (guchar *) g_malloc(width * height * pcx_header.planes); gimp_pixel_rgn_get_rect(&pixel_rgn, pixels, 0, 0, width, height); - pcx_header.x1 = offset_x; - pcx_header.y1 = offset_y; - pcx_header.x2 = offset_x + width - 1; - pcx_header.y2 = offset_y + height - 1; + pcx_header.x1 = htoqs (offset_x); + pcx_header.y1 = htoqs (offset_y); + pcx_header.x2 = htoqs (offset_x + width - 1); + pcx_header.y2 = htoqs (offset_y + height - 1); - pcx_header.hdpi = 300; - pcx_header.vdpi = 300; + pcx_header.hdpi = htoqs (300); + pcx_header.vdpi = htoqs (300); pcx_header.reserved = 0; fwrite(&pcx_header, 128, 1, fp);