diff options
-rw-r--r-- | target/ext2/ext2root.mk | 16 | ||||
-rw-r--r-- | target/ext2/genext2fs-01-cvs-updates.patch | 9709 | ||||
-rw-r--r-- | target/ext2/genext2fs-02-nosquash_devtable.patch | 13 | ||||
-rw-r--r-- | target/ext2/genext2fs-1.4-nosquash.patch | 14 | ||||
-rw-r--r-- | target/ext2/genext2fs-1.4-remove_ugly_warnings.patch | 21 |
5 files changed, 43 insertions, 9730 deletions
diff --git a/target/ext2/ext2root.mk b/target/ext2/ext2root.mk index 82912df5c..69aa871e2 100644 --- a/target/ext2/ext2root.mk +++ b/target/ext2/ext2root.mk @@ -3,16 +3,16 @@ # genext2fs to build to target ext2 filesystems # ############################################################# -GENEXT2_DIR=$(BUILD_DIR)/genext2fs-1.3 -GENEXT2_SOURCE=genext2fs_1.3.orig.tar.gz -GENEXT2_SITE=http://ftp.debian.org/debian/pool/main/g/genext2fs +GENEXT2_VERSION=1.4 +GENEXT2_DIR=$(BUILD_DIR)/genext2fs-$(GENEXT2_VERSION) +GENEXT2_SOURCE=genext2fs-$(GENEXT2_VERSION).tar.gz +GENEXT2_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/genext2fs $(DL_DIR)/$(GENEXT2_SOURCE): $(WGET) -P $(DL_DIR) $(GENEXT2_SITE)/$(GENEXT2_SOURCE) $(GENEXT2_DIR)/.unpacked: $(DL_DIR)/$(GENEXT2_SOURCE) $(ZCAT) $(DL_DIR)/$(GENEXT2_SOURCE) | tar -C $(BUILD_DIR) -xvf - - mv $(GENEXT2_DIR).orig $(GENEXT2_DIR) toolchain/patch-kernel.sh $(GENEXT2_DIR) target/ext2/ genext2fs\*.patch touch $(GENEXT2_DIR)/.unpacked @@ -51,11 +51,11 @@ EXT2_OPTS += -b $(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)) endif ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_INODES)),0) -EXT2_OPTS += -i $(strip $(BR2_TARGET_ROOTFS_EXT2_INODES)) +EXT2_OPTS += -N $(strip $(BR2_TARGET_ROOTFS_EXT2_INODES)) endif ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_RESBLKS)),) -EXT2_OPTS += -r $(strip $(BR2_TARGET_ROOTFS_EXT2_RESBLKS)) +EXT2_OPTS += -m $(strip $(BR2_TARGET_ROOTFS_EXT2_RESBLKS)) endif EXT2_BASE := $(subst ",,$(BR2_TARGET_ROOTFS_EXT2_OUTPUT)) @@ -104,14 +104,14 @@ ifneq ($(TARGET_DEVICE_TABLE),) endif # Use fakeroot so genext2fs believes the previous fakery ifeq ($(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)),0) - GENEXT2_REALSIZE=`LC_ALL=C du -l -s -c -k $(TARGET_DIR) | grep total | sed -e "s/total//"`; \ + GENEXT2_REALSIZE=`LC_ALL=C du -s -c -k $(TARGET_DIR) | grep total | sed -e "s/total//"`; \ GENEXT2_ADDTOROOTSIZE=`if [ $$GENEXT2_REALSIZE -ge 20000 ] ; then echo 16384; else echo 2400; fi`; \ GENEXT2_SIZE=`expr $$GENEXT2_REALSIZE + $$GENEXT2_ADDTOROOTSIZE`; \ GENEXT2_ADDTOINODESIZE=`find $(TARGET_DIR) | wc -l`; \ GENEXT2_INODES=`expr $$GENEXT2_ADDTOINODESIZE + 400`; \ set -x; \ echo "$(GENEXT2_DIR)/genext2fs -b $$GENEXT2_SIZE " \ - "-i $$GENEXT2_INODES -d $(TARGET_DIR) " \ + "-N $$GENEXT2_INODES -d $(TARGET_DIR) " \ "$(EXT2_OPTS) $(EXT2_BASE)" >> $(STAGING_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) else echo "$(GENEXT2_DIR)/genext2fs -d $(TARGET_DIR) " \ diff --git a/target/ext2/genext2fs-01-cvs-updates.patch b/target/ext2/genext2fs-01-cvs-updates.patch deleted file mode 100644 index 3c4a04383..000000000 --- a/target/ext2/genext2fs-01-cvs-updates.patch +++ /dev/null @@ -1,9709 +0,0 @@ -diff --exclude CVS -urN genext2fs-1.3.orig/AUTHORS genext2fs/AUTHORS ---- genext2fs-1.3.orig/AUTHORS 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/AUTHORS 2001-05-02 12:20:05.000000000 -0600 -@@ -0,0 +1 @@ -+Xavier Bestel <xavier.bestel@free.fr> -diff --exclude CVS -urN genext2fs-1.3.orig/ChangeLog genext2fs/ChangeLog ---- genext2fs-1.3.orig/ChangeLog 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/ChangeLog 2004-11-21 23:21:05.000000000 -0700 -@@ -0,0 +1,2 @@ -+see our cvs logs here: -+http://cvs.sourceforge.net/viewcvs.py/genext2fs/genext2fs/ -diff --exclude CVS -urN genext2fs-1.3.orig/INSTALL genext2fs/INSTALL ---- genext2fs-1.3.orig/INSTALL 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/INSTALL 2004-11-21 23:19:19.000000000 -0700 -@@ -0,0 +1,5 @@ -+To install, just do it the normal GNU way: -+ -+./configure -+make -+sudo make install -diff --exclude CVS -urN genext2fs-1.3.orig/Makefile.am genext2fs/Makefile.am ---- genext2fs-1.3.orig/Makefile.am 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/Makefile.am 2002-10-16 09:41:00.000000000 -0600 -@@ -0,0 +1,11 @@ -+bin_PROGRAMS = genext2fs -+genext2fs_SOURCES = genext2fs.c -+man_MANS = genext2fs.8 -+ -+# test genext2fs by creating the image and comparing checksums -+test: all -+ sh ./test.sh -+ -+# test genext2fs by actually mounting the created image. -+test-mount: all -+ sudo sh ./test-mount.sh -diff --exclude CVS -urN genext2fs-1.3.orig/Makefile.in genext2fs/Makefile.in ---- genext2fs-1.3.orig/Makefile.in 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/Makefile.in 2004-12-27 13:03:47.000000000 -0700 -@@ -0,0 +1,570 @@ -+# Makefile.in generated by automake 1.8.5 from Makefile.am. -+# @configure_input@ -+ -+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -+# 2003, 2004 Free Software Foundation, Inc. -+# This Makefile.in is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -+# PARTICULAR PURPOSE. -+ -+@SET_MAKE@ -+ -+SOURCES = $(genext2fs_SOURCES) -+ -+srcdir = @srcdir@ -+top_srcdir = @top_srcdir@ -+VPATH = @srcdir@ -+pkgdatadir = $(datadir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkgincludedir = $(includedir)/@PACKAGE@ -+top_builddir = . -+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -+INSTALL = @INSTALL@ -+install_sh_DATA = $(install_sh) -c -m 644 -+install_sh_PROGRAM = $(install_sh) -c -+install_sh_SCRIPT = $(install_sh) -c -+INSTALL_HEADER = $(INSTALL_DATA) -+transform = $(program_transform_name) -+NORMAL_INSTALL = : -+PRE_INSTALL = : -+POST_INSTALL = : -+NORMAL_UNINSTALL = : -+PRE_UNINSTALL = : -+POST_UNINSTALL = : -+bin_PROGRAMS = genext2fs$(EXEEXT) -+subdir = . -+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ -+ $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \ -+ ChangeLog INSTALL NEWS TODO depcomp install-sh missing -+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -+am__aclocal_m4_deps = $(top_srcdir)/configure.in -+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -+ $(ACLOCAL_M4) -+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ -+ configure.lineno configure.status.lineno -+mkinstalldirs = $(mkdir_p) -+CONFIG_CLEAN_FILES = -+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man8dir)" -+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -+PROGRAMS = $(bin_PROGRAMS) -+am_genext2fs_OBJECTS = genext2fs.$(OBJEXT) -+genext2fs_OBJECTS = $(am_genext2fs_OBJECTS) -+genext2fs_LDADD = $(LDADD) -+DEFAULT_INCLUDES = -I. -I$(srcdir) -+depcomp = $(SHELL) $(top_srcdir)/depcomp -+am__depfiles_maybe = depfiles -+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/genext2fs.Po -+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -+CCLD = $(CC) -+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -+SOURCES = $(genext2fs_SOURCES) -+DIST_SOURCES = $(genext2fs_SOURCES) -+man8dir = $(mandir)/man8 -+NROFF = nroff -+MANS = $(man_MANS) -+ETAGS = etags -+CTAGS = ctags -+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -+distdir = $(PACKAGE)-$(VERSION) -+top_distdir = $(distdir) -+am__remove_distdir = \ -+ { test ! -d $(distdir) \ -+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ -+ && rm -fr $(distdir); }; } -+DIST_ARCHIVES = $(distdir).tar.gz -+GZIP_ENV = --best -+distuninstallcheck_listfiles = find . -type f -print -+distcleancheck_listfiles = find . -type f -print -+ACLOCAL = @ACLOCAL@ -+AMDEP_FALSE = @AMDEP_FALSE@ -+AMDEP_TRUE = @AMDEP_TRUE@ -+AMTAR = @AMTAR@ -+AUTOCONF = @AUTOCONF@ -+AUTOHEADER = @AUTOHEADER@ -+AUTOMAKE = @AUTOMAKE@ -+AWK = @AWK@ -+CC = @CC@ -+CCDEPMODE = @CCDEPMODE@ -+CFLAGS = @CFLAGS@ -+CPPFLAGS = @CPPFLAGS@ -+CYGPATH_W = @CYGPATH_W@ -+DEFS = @DEFS@ -+DEPDIR = @DEPDIR@ -+ECHO_C = @ECHO_C@ -+ECHO_N = @ECHO_N@ -+ECHO_T = @ECHO_T@ -+EXEEXT = @EXEEXT@ -+INSTALL_DATA = @INSTALL_DATA@ -+INSTALL_PROGRAM = @INSTALL_PROGRAM@ -+INSTALL_SCRIPT = @INSTALL_SCRIPT@ -+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LDFLAGS = @LDFLAGS@ -+LIBOBJS = @LIBOBJS@ -+LIBS = @LIBS@ -+LTLIBOBJS = @LTLIBOBJS@ -+MAKEINFO = @MAKEINFO@ -+OBJEXT = @OBJEXT@ -+PACKAGE = @PACKAGE@ -+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -+PACKAGE_NAME = @PACKAGE_NAME@ -+PACKAGE_STRING = @PACKAGE_STRING@ -+PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_VERSION = @PACKAGE_VERSION@ -+PATH_SEPARATOR = @PATH_SEPARATOR@ -+SET_MAKE = @SET_MAKE@ -+SHELL = @SHELL@ -+STRIP = @STRIP@ -+VERSION = @VERSION@ -+ac_ct_CC = @ac_ct_CC@ -+ac_ct_STRIP = @ac_ct_STRIP@ -+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -+am__include = @am__include@ -+am__leading_dot = @am__leading_dot@ -+am__quote = @am__quote@ -+bindir = @bindir@ -+build_alias = @build_alias@ -+datadir = @datadir@ -+exec_prefix = @exec_prefix@ -+host_alias = @host_alias@ -+includedir = @includedir@ -+infodir = @infodir@ -+install_sh = @install_sh@ -+libdir = @libdir@ -+libexecdir = @libexecdir@ -+localstatedir = @localstatedir@ -+mandir = @mandir@ -+mkdir_p = @mkdir_p@ -+oldincludedir = @oldincludedir@ -+prefix = @prefix@ -+program_transform_name = @program_transform_name@ -+sbindir = @sbindir@ -+sharedstatedir = @sharedstatedir@ -+sysconfdir = @sysconfdir@ -+target_alias = @target_alias@ -+genext2fs_SOURCES = genext2fs.c -+man_MANS = genext2fs.8 -+all: all-am -+ -+.SUFFIXES: -+.SUFFIXES: .c .o .obj -+am--refresh: -+ @: -+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -+ @for dep in $?; do \ -+ case '$(am__configure_deps)' in \ -+ *$$dep*) \ -+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ -+ cd $(srcdir) && $(AUTOMAKE) --gnu \ -+ && exit 0; \ -+ exit 1;; \ -+ esac; \ -+ done; \ -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ -+ cd $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu Makefile -+.PRECIOUS: Makefile -+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -+ @case '$?' in \ -+ *config.status*) \ -+ echo ' $(SHELL) ./config.status'; \ -+ $(SHELL) ./config.status;; \ -+ *) \ -+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ -+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ -+ esac; -+ -+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -+ $(SHELL) ./config.status --recheck -+ -+$(top_srcdir)/configure: $(am__configure_deps) -+ cd $(srcdir) && $(AUTOCONF) -+$(ACLOCAL_M4): $(am__aclocal_m4_deps) -+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -+install-binPROGRAMS: $(bin_PROGRAMS) -+ @$(NORMAL_INSTALL) -+ test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" -+ @list='$(bin_PROGRAMS)'; for p in $$list; do \ -+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -+ if test -f $$p \ -+ ; then \ -+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ -+ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ -+ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ -+ else :; fi; \ -+ done -+ -+uninstall-binPROGRAMS: -+ @$(NORMAL_UNINSTALL) -+ @list='$(bin_PROGRAMS)'; for p in $$list; do \ -+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ -+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ -+ rm -f "$(DESTDIR)$(bindir)/$$f"; \ -+ done -+ -+clean-binPROGRAMS: -+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -+genext2fs$(EXEEXT): $(genext2fs_OBJECTS) $(genext2fs_DEPENDENCIES) -+ @rm -f genext2fs$(EXEEXT) -+ $(LINK) $(genext2fs_LDFLAGS) $(genext2fs_OBJECTS) $(genext2fs_LDADD) $(LIBS) -+ -+mostlyclean-compile: -+ -rm -f *.$(OBJEXT) -+ -+distclean-compile: -+ -rm -f *.tab.c -+ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/genext2fs.Po@am__quote@ -+ -+.c.o: -+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(COMPILE) -c $< -+ -+.c.obj: -+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -+uninstall-info-am: -+install-man8: $(man8_MANS) $(man_MANS) -+ @$(NORMAL_INSTALL) -+ test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)" -+ @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ -+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ -+ for i in $$l2; do \ -+ case "$$i" in \ -+ *.8*) list="$$list $$i" ;; \ -+ esac; \ -+ done; \ -+ for i in $$list; do \ -+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ -+ else file=$$i; fi; \ -+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ -+ case "$$ext" in \ -+ 8*) ;; \ -+ *) ext='8' ;; \ -+ esac; \ -+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ -+ inst=`echo $$inst | sed -e 's/^.*\///'`; \ -+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ -+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ -+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \ -+ done -+uninstall-man8: -+ @$(NORMAL_UNINSTALL) -+ @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ -+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ -+ for i in $$l2; do \ -+ case "$$i" in \ -+ *.8*) list="$$list $$i" ;; \ -+ esac; \ -+ done; \ -+ for i in $$list; do \ -+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ -+ case "$$ext" in \ -+ 8*) ;; \ -+ *) ext='8' ;; \ -+ esac; \ -+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ -+ inst=`echo $$inst | sed -e 's/^.*\///'`; \ -+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ -+ echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \ -+ rm -f "$(DESTDIR)$(man8dir)/$$inst"; \ -+ done -+ -+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) ' { files[$$0] = 1; } \ -+ END { for (i in files) print i; }'`; \ -+ mkid -fID $$unique -+tags: TAGS -+ -+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -+ $(TAGS_FILES) $(LISP) -+ tags=; \ -+ here=`pwd`; \ -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) ' { files[$$0] = 1; } \ -+ END { for (i in files) print i; }'`; \ -+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ test -n "$$unique" || unique=$$empty_fix; \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$tags $$unique; \ -+ fi -+ctags: CTAGS -+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -+ $(TAGS_FILES) $(LISP) -+ tags=; \ -+ here=`pwd`; \ -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) ' { files[$$0] = 1; } \ -+ END { for (i in files) print i; }'`; \ -+ test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -+ $$tags $$unique -+ -+GTAGS: -+ here=`$(am__cd) $(top_builddir) && pwd` \ -+ && cd $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) $$here -+ -+distclean-tags: -+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -+ -+distdir: $(DISTFILES) -+ $(am__remove_distdir) -+ mkdir $(distdir) -+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -+ list='$(DISTFILES)'; for file in $$list; do \ -+ case $$file in \ -+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -+ esac; \ -+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -+ dir="/$$dir"; \ -+ $(mkdir_p) "$(distdir)$$dir"; \ -+ else \ -+ dir=''; \ -+ fi; \ -+ if test -d $$d/$$file; then \ -+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ fi; \ -+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ else \ -+ test -f $(distdir)/$$file \ -+ || cp -p $$d/$$file $(distdir)/$$file \ -+ || exit 1; \ -+ fi; \ -+ done -+ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ -+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ -+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ -+ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ -+ || chmod -R a+r $(distdir) -+dist-gzip: distdir -+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -+ $(am__remove_distdir) -+ -+dist-bzip2: distdir -+ $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 -+ $(am__remove_distdir) -+ -+dist-tarZ: distdir -+ $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z -+ $(am__remove_distdir) -+ -+dist-shar: distdir -+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz -+ $(am__remove_distdir) -+ -+dist-zip: distdir -+ -rm -f $(distdir).zip -+ zip -rq $(distdir).zip $(distdir) -+ $(am__remove_distdir) -+ -+dist dist-all: distdir -+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -+ $(am__remove_distdir) -+ -+# This target untars the dist file and tries a VPATH configuration. Then -+# it guarantees that the distribution is self-contained by making another -+# tarfile. -+distcheck: dist -+ case '$(DIST_ARCHIVES)' in \ -+ *.tar.gz*) \ -+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\ -+ *.tar.bz2*) \ -+ bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\ -+ *.tar.Z*) \ -+ uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\ -+ *.shar.gz*) \ -+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ -+ *.zip*) \ -+ unzip $(distdir).zip ;;\ -+ esac -+ chmod -R a-w $(distdir); chmod a+w $(distdir) -+ mkdir $(distdir)/_build -+ mkdir $(distdir)/_inst -+ chmod a-w $(distdir) -+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ -+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ -+ && cd $(distdir)/_build \ -+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ -+ $(DISTCHECK_CONFIGURE_FLAGS) \ -+ && $(MAKE) $(AM_MAKEFLAGS) \ -+ && $(MAKE) $(AM_MAKEFLAGS) dvi \ -+ && $(MAKE) $(AM_MAKEFLAGS) check \ -+ && $(MAKE) $(AM_MAKEFLAGS) install \ -+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ -+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ -+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ -+ distuninstallcheck \ -+ && chmod -R a-w "$$dc_install_base" \ -+ && ({ \ -+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ -+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ -+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ -+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ -+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ -+ } || { rm -rf "$$dc_destdir"; exit 1; }) \ -+ && rm -rf "$$dc_destdir" \ -+ && $(MAKE) $(AM_MAKEFLAGS) dist \ -+ && rm -rf $(DIST_ARCHIVES) \ -+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck -+ $(am__remove_distdir) -+ @(echo "$(distdir) archives ready for distribution: "; \ -+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ -+ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' -+distuninstallcheck: -+ @cd $(distuninstallcheck_dir) \ -+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ -+ || { echo "ERROR: files left after uninstall:" ; \ -+ if test -n "$(DESTDIR)"; then \ -+ echo " (check DESTDIR support)"; \ -+ fi ; \ -+ $(distuninstallcheck_listfiles) ; \ -+ exit 1; } >&2 -+distcleancheck: distclean -+ @if test '$(srcdir)' = . ; then \ -+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ -+ exit 1 ; \ -+ fi -+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ -+ || { echo "ERROR: files left in build directory after distclean:" ; \ -+ $(distcleancheck_listfiles) ; \ -+ exit 1; } >&2 -+check-am: all-am -+check: check-am -+all-am: Makefile $(PROGRAMS) $(MANS) -+installdirs: -+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man8dir)"; do \ -+ test -z "$$dir" || $(mkdir_p) "$$dir"; \ -+ done -+install: install-am -+install-exec: install-exec-am -+install-data: install-data-am -+uninstall: uninstall-am -+ -+install-am: all-am -+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -+ -+installcheck: installcheck-am -+install-strip: -+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -+ `test -z '$(STRIP)' || \ -+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -+mostlyclean-generic: -+ -+clean-generic: -+ -+distclean-generic: -+ -rm -f $(CONFIG_CLEAN_FILES) -+ -+maintainer-clean-generic: -+ @echo "This command is intended for maintainers to use" -+ @echo "it deletes files that may require special tools to rebuild." -+clean: clean-am -+ -+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am -+ -+distclean: distclean-am -+ -rm -f $(am__CONFIG_DISTCLEAN_FILES) -+ -rm -rf ./$(DEPDIR) -+ -rm -f Makefile -+distclean-am: clean-am distclean-compile distclean-generic \ -+ distclean-tags -+ -+dvi: dvi-am -+ -+dvi-am: -+ -+html: html-am -+ -+info: info-am -+ -+info-am: -+ -+install-data-am: install-man -+ -+install-exec-am: install-binPROGRAMS -+ -+install-info: install-info-am -+ -+install-man: install-man8 -+ -+installcheck-am: -+ -+maintainer-clean: maintainer-clean-am -+ -rm -f $(am__CONFIG_DISTCLEAN_FILES) -+ -rm -rf $(top_srcdir)/autom4te.cache -+ -rm -rf ./$(DEPDIR) -+ -rm -f Makefile -+maintainer-clean-am: distclean-am maintainer-clean-generic -+ -+mostlyclean: mostlyclean-am -+ -+mostlyclean-am: mostlyclean-compile mostlyclean-generic -+ -+pdf: pdf-am -+ -+pdf-am: -+ -+ps: ps-am -+ -+ps-am: -+ -+uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man -+ -+uninstall-man: uninstall-man8 -+ -+.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ -+ clean-binPROGRAMS clean-generic ctags dist dist-all dist-bzip2 \ -+ dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \ -+ distclean-compile distclean-generic distclean-tags \ -+ distcleancheck distdir distuninstallcheck dvi dvi-am html \ -+ html-am info info-am install install-am install-binPROGRAMS \ -+ install-data install-data-am install-exec install-exec-am \ -+ install-info install-info-am install-man install-man8 \ -+ install-strip installcheck installcheck-am installdirs \ -+ maintainer-clean maintainer-clean-generic mostlyclean \ -+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ -+ tags uninstall uninstall-am uninstall-binPROGRAMS \ -+ uninstall-info-am uninstall-man uninstall-man8 -+ -+ -+# test genext2fs by creating the image and comparing checksums -+test: all -+ sh ./test.sh -+ -+# test genext2fs by actually mounting the created image. -+test-mount: all -+ sudo sh ./test-mount.sh -+# Tell versions [3.59,3.63) of GNU make to not export all variables. -+# Otherwise a system limit (for SysV at least) may be exceeded. -+.NOEXPORT: -diff --exclude CVS -urN genext2fs-1.3.orig/NEWS genext2fs/NEWS ---- genext2fs-1.3.orig/NEWS 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/NEWS 2004-11-21 23:21:05.000000000 -0700 -@@ -0,0 +1 @@ -+No news yet :) -diff --exclude CVS -urN genext2fs-1.3.orig/README genext2fs/README ---- genext2fs-1.3.orig/README 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/README 2004-11-21 23:18:40.000000000 -0700 -@@ -0,0 +1,19 @@ -+ ABOUT -+----------- -+genext2fs is a mean to generate an ext2 filesystem as a normal (non-root) -+user. It doesn't require you to mount the image file to copy files on it. -+It doesn't even require you to be the superuser to make device nodes. -+ -+http://sourceforge.net/projects/genext2fs -+ -+ CONTACT -+------------- -+Please use the genext2fs-devel@lists.sourceforge.net mailing list. -+ -+ INSTALL -+------------- -+Please see the INSTALL file ;) -+ -+ AUTHORS -+------------- -+Please see the AUTHORS file ;) -diff --exclude CVS -urN genext2fs-1.3.orig/TODO genext2fs/TODO ---- genext2fs-1.3.orig/TODO 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/TODO 2004-11-25 11:12:10.000000000 -0700 -@@ -0,0 +1,13 @@ -+Disclaimer: I'll probably never do all this ... -+ -+- support fancy ext2 options -+- support ext3 -+ -+- add path to -f/-d options, e.g: -+ -f /:file.img => extract file.img at root -+ -d /etc:/path/to/my/etc => copy /path/to/my/etc into /etc -+ -+- add tar.gz extraction capabilities ? -+ -+- implement truncate_node -+- find a better way to guess filesystem's size -diff --exclude CVS -urN genext2fs-1.3.orig/aclocal.m4 genext2fs/aclocal.m4 ---- genext2fs-1.3.orig/aclocal.m4 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/aclocal.m4 2004-12-27 13:03:45.000000000 -0700 -@@ -0,0 +1,908 @@ -+# generated automatically by aclocal 1.8.5 -*- Autoconf -*- -+ -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -+# Free Software Foundation, Inc. -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -+# PARTICULAR PURPOSE. -+ -+# -*- Autoconf -*- -+# Copyright (C) 2002, 2003 Free Software Foundation, Inc. -+# Generated from amversion.in; do not edit by hand. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+ -+# AM_AUTOMAKE_VERSION(VERSION) -+# ---------------------------- -+# Automake X.Y traces this macro to ensure aclocal.m4 has been -+# generated from the m4 files accompanying Automake X.Y. -+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.8"]) -+ -+# AM_SET_CURRENT_AUTOMAKE_VERSION -+# ------------------------------- -+# Call AM_AUTOMAKE_VERSION so it can be traced. -+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -+ [AM_AUTOMAKE_VERSION([1.8.5])]) -+ -+# AM_AUX_DIR_EXPAND -+ -+# Copyright (C) 2001, 2003 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -+# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -+# -+# Of course, Automake must honor this variable whenever it calls a -+# tool from the auxiliary directory. The problem is that $srcdir (and -+# therefore $ac_aux_dir as well) can be either absolute or relative, -+# depending on how configure is run. This is pretty annoying, since -+# it makes $ac_aux_dir quite unusable in subdirectories: in the top -+# source directory, any form will work fine, but in subdirectories a -+# relative path needs to be adjusted first. -+# -+# $ac_aux_dir/missing -+# fails when called from a subdirectory if $ac_aux_dir is relative -+# $top_srcdir/$ac_aux_dir/missing -+# fails if $ac_aux_dir is absolute, -+# fails when called from a subdirectory in a VPATH build with -+# a relative $ac_aux_dir -+# -+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -+# are both prefixed by $srcdir. In an in-source build this is usually -+# harmless because $srcdir is `.', but things will broke when you -+# start a VPATH build or use an absolute $srcdir. -+# -+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -+# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -+# and then we would define $MISSING as -+# MISSING="\${SHELL} $am_aux_dir/missing" -+# This will work as long as MISSING is not called from configure, because -+# unfortunately $(top_srcdir) has no meaning in configure. -+# However there are other variables, like CC, which are often used in -+# configure, and could therefore not use this "fixed" $ac_aux_dir. -+# -+# Another solution, used here, is to always expand $ac_aux_dir to an -+# absolute PATH. The drawback is that using absolute paths prevent a -+# configured tree to be moved without reconfiguration. -+ -+AC_DEFUN([AM_AUX_DIR_EXPAND], -+[dnl Rely on autoconf to set up CDPATH properly. -+AC_PREREQ([2.50])dnl -+# expand $ac_aux_dir to an absolute path -+am_aux_dir=`cd $ac_aux_dir && pwd` -+]) -+ -+# AM_CONDITIONAL -*- Autoconf -*- -+ -+# Copyright (C) 1997, 2000, 2001, 2003 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+# serial 6 -+ -+# AM_CONDITIONAL(NAME, SHELL-CONDITION) -+# ------------------------------------- -+# Define a conditional. -+AC_DEFUN([AM_CONDITIONAL], -+[AC_PREREQ(2.52)dnl -+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], -+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -+AC_SUBST([$1_TRUE]) -+AC_SUBST([$1_FALSE]) -+if $2; then -+ $1_TRUE= -+ $1_FALSE='#' -+else -+ $1_TRUE='#' -+ $1_FALSE= -+fi -+AC_CONFIG_COMMANDS_PRE( -+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then -+ AC_MSG_ERROR([conditional "$1" was never defined. -+Usually this means the macro was only invoked conditionally.]) -+fi])]) -+ -+# serial 7 -*- Autoconf -*- -+ -+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 -+# Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+ -+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -+# written in clear, in which case automake, when reading aclocal.m4, -+# will think it sees a *use*, and therefore will trigger all it's -+# C support machinery. Also note that it means that autoscan, seeing -+# CC etc. in the Makefile, will ask for an AC_PROG_CC use... -+ -+ -+ -+# _AM_DEPENDENCIES(NAME) -+# ---------------------- -+# See how the compiler implements dependency checking. -+# NAME is "CC", "CXX", "GCJ", or "OBJC". -+# We try a few techniques and use that to set a single cache variable. -+# -+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -+# dependency, and given that the user is not expected to run this macro, -+# just rely on AC_PROG_CC. -+AC_DEFUN([_AM_DEPENDENCIES], -+[AC_REQUIRE([AM_SET_DEPDIR])dnl -+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -+AC_REQUIRE([AM_MAKE_INCLUDE])dnl -+AC_REQUIRE([AM_DEP_TRACK])dnl -+ -+ifelse([$1], CC, [depcc="$CC" am_compiler_list=], -+ [$1], CXX, [depcc="$CXX" am_compiler_list=], -+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], -+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], -+ [depcc="$$1" am_compiler_list=]) -+ -+AC_CACHE_CHECK([dependency style of $depcc], -+ [am_cv_$1_dependencies_compiler_type], -+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -+ # We make a subdir and do the tests there. Otherwise we can end up -+ # making bogus files that we don't know about and never remove. For -+ # instance it was reported that on HP-UX the gcc test will end up -+ # making a dummy file named `D' -- because `-MD' means `put the output -+ # in D'. -+ mkdir conftest.dir -+ # Copy depcomp to subdir because otherwise we won't find it if we're -+ # using a relative directory. -+ cp "$am_depcomp" conftest.dir -+ cd conftest.dir -+ # We will build objects and dependencies in a subdirectory because -+ # it helps to detect inapplicable dependency modes. For instance -+ # both Tru64's cc and ICC support -MD to output dependencies as a -+ # side effect of compilation, but ICC will put the dependencies in -+ # the current directory while Tru64 will put them in the object -+ # directory. -+ mkdir sub -+ -+ am_cv_$1_dependencies_compiler_type=none -+ if test "$am_compiler_list" = ""; then -+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` -+ fi -+ for depmode in $am_compiler_list; do -+ # Setup a source with many dependencies, because some compilers -+ # like to wrap large dependency lists on column 80 (with \), and -+ # we should not choose a depcomp mode which is confused by this. -+ # -+ # We need to recreate these files for each test, as the compiler may -+ # overwrite some of them when testing with obscure command lines. -+ # This happens at least with the AIX C compiler. -+ : > sub/conftest.c -+ for i in 1 2 3 4 5 6; do -+ echo '#include "conftst'$i'.h"' >> sub/conftest.c -+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with -+ # Solaris 8's {/usr,}/bin/sh. -+ touch sub/conftst$i.h -+ done -+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -+ -+ case $depmode in -+ nosideeffect) -+ # after this tag, mechanisms are not by side-effect, so they'll -+ # only be used when explicitly requested -+ if test "x$enable_dependency_tracking" = xyes; then -+ continue -+ else -+ break -+ fi -+ ;; -+ none) break ;; -+ esac -+ # We check with `-c' and `-o' for the sake of the "dashmstdout" -+ # mode. It turns out that the SunPro C++ compiler does not properly -+ # handle `-M -o', and we need to detect this. -+ if depmode=$depmode \ -+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ -+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ -+ >/dev/null 2>conftest.err && -+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && -+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then -+ # icc doesn't choke on unknown options, it will just issue warnings -+ # or remarks (even with -Werror). So we grep stderr for any message -+ # that says an option was ignored or not supported. -+ # When given -MP, icc 7.0 and 7.1 complain thusly: -+ # icc: Command line warning: ignoring option '-M'; no argument required -+ # The diagnosis changed in icc 8.0: -+ # icc: Command line remark: option '-MP' not supported -+ if (grep 'ignoring option' conftest.err || -+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else -+ am_cv_$1_dependencies_compiler_type=$depmode -+ break -+ fi -+ fi -+ done -+ -+ cd .. -+ rm -rf conftest.dir -+else -+ am_cv_$1_dependencies_compiler_type=none -+fi -+]) -+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -+AM_CONDITIONAL([am__fastdep$1], [ -+ test "x$enable_dependency_tracking" != xno \ -+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -+]) -+ -+ -+# AM_SET_DEPDIR -+# ------------- -+# Choose a directory name for dependency files. -+# This macro is AC_REQUIREd in _AM_DEPENDENCIES -+AC_DEFUN([AM_SET_DEPDIR], -+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -+]) -+ -+ -+# AM_DEP_TRACK -+# ------------ -+AC_DEFUN([AM_DEP_TRACK], -+[AC_ARG_ENABLE(dependency-tracking, -+[ --disable-dependency-tracking speeds up one-time build -+ --enable-dependency-tracking do not reject slow dependency extractors]) -+if test "x$enable_dependency_tracking" != xno; then -+ am_depcomp="$ac_aux_dir/depcomp" -+ AMDEPBACKSLASH='\' -+fi -+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -+AC_SUBST([AMDEPBACKSLASH]) -+]) -+ -+# Generate code to set up dependency tracking. -*- Autoconf -*- -+ -+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+#serial 2 -+ -+# _AM_OUTPUT_DEPENDENCY_COMMANDS -+# ------------------------------ -+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -+[for mf in $CONFIG_FILES; do -+ # Strip MF so we end up with the name of the file. -+ mf=`echo "$mf" | sed -e 's/:.*$//'` -+ # Check whether this is an Automake generated Makefile or not. -+ # We used to match only the files named `Makefile.in', but -+ # some people rename them; so instead we look at the file content. -+ # Grep'ing the first line is not enough: some people post-process -+ # each Makefile.in and add a new line on top of each file to say so. -+ # So let's grep whole file. -+ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then -+ dirpart=`AS_DIRNAME("$mf")` -+ else -+ continue -+ fi -+ grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue -+ # Extract the definition of DEP_FILES from the Makefile without -+ # running `make'. -+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` -+ test -z "$DEPDIR" && continue -+ # When using ansi2knr, U may be empty or an underscore; expand it -+ U=`sed -n 's/^U = //p' < "$mf"` -+ test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" -+ # We invoke sed twice because it is the simplest approach to -+ # changing $(DEPDIR) to its actual value in the expansion. -+ for file in `sed -n ' -+ /^DEP_FILES = .*\\\\$/ { -+ s/^DEP_FILES = // -+ :loop -+ s/\\\\$// -+ p -+ n -+ /\\\\$/ b loop -+ p -+ } -+ /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ -+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do -+ # Make sure the directory exists. -+ test -f "$dirpart/$file" && continue -+ fdir=`AS_DIRNAME(["$file"])` -+ AS_MKDIR_P([$dirpart/$fdir]) -+ # echo "creating $dirpart/$file" -+ echo '# dummy' > "$dirpart/$file" -+ done -+done -+])# _AM_OUTPUT_DEPENDENCY_COMMANDS -+ -+ -+# AM_OUTPUT_DEPENDENCY_COMMANDS -+# ----------------------------- -+# This macro should only be invoked once -- use via AC_REQUIRE. -+# -+# This code is only required when automatic dependency tracking -+# is enabled. FIXME. This creates each `.P' file that we will -+# need in order to bootstrap the dependency handling code. -+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -+[AC_CONFIG_COMMANDS([depfiles], -+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], -+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -+]) -+ -+# Do all the work for Automake. -*- Autoconf -*- -+ -+# This macro actually does too much some checks are only needed if -+# your package does certain things. But this isn't really a big deal. -+ -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -+# Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+# serial 11 -+ -+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -+# AM_INIT_AUTOMAKE([OPTIONS]) -+# ----------------------------------------------- -+# The call with PACKAGE and VERSION arguments is the old style -+# call (pre autoconf-2.50), which is being phased out. PACKAGE -+# and VERSION should now be passed to AC_INIT and removed from -+# the call to AM_INIT_AUTOMAKE. -+# We support both call styles for the transition. After -+# the next Automake release, Autoconf can make the AC_INIT -+# arguments mandatory, and then we can depend on a new Autoconf -+# release and drop the old call support. -+AC_DEFUN([AM_INIT_AUTOMAKE], -+[AC_PREREQ([2.58])dnl -+dnl Autoconf wants to disallow AM_ names. We explicitly allow -+dnl the ones we care about. -+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -+AC_REQUIRE([AC_PROG_INSTALL])dnl -+# test to see if srcdir already configured -+if test "`cd $srcdir && pwd`" != "`pwd`" && -+ test -f $srcdir/config.status; then -+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -+fi -+ -+# test whether we have cygpath -+if test -z "$CYGPATH_W"; then -+ if (cygpath --version) >/dev/null 2>/dev/null; then -+ CYGPATH_W='cygpath -w' -+ else -+ CYGPATH_W=echo -+ fi -+fi -+AC_SUBST([CYGPATH_W]) -+ -+# Define the identity of the package. -+dnl Distinguish between old-style and new-style calls. -+m4_ifval([$2], -+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl -+ AC_SUBST([PACKAGE], [$1])dnl -+ AC_SUBST([VERSION], [$2])], -+[_AM_SET_OPTIONS([$1])dnl -+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl -+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl -+ -+_AM_IF_OPTION([no-define],, -+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) -+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl -+ -+# Some tools Automake needs. -+AC_REQUIRE([AM_SANITY_CHECK])dnl -+AC_REQUIRE([AC_ARG_PROGRAM])dnl -+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -+AM_MISSING_PROG(AUTOCONF, autoconf) -+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -+AM_MISSING_PROG(AUTOHEADER, autoheader) -+AM_MISSING_PROG(MAKEINFO, makeinfo) -+AM_MISSING_PROG(AMTAR, tar) -+AM_PROG_INSTALL_SH -+AM_PROG_INSTALL_STRIP -+AC_REQUIRE([AM_PROG_MKDIR_P])dnl -+# We need awk for the "check" target. The system "awk" is bad on -+# some platforms. -+AC_REQUIRE([AC_PROG_AWK])dnl -+AC_REQUIRE([AC_PROG_MAKE_SET])dnl -+AC_REQUIRE([AM_SET_LEADING_DOT])dnl -+ -+_AM_IF_OPTION([no-dependencies],, -+[AC_PROVIDE_IFELSE([AC_PROG_CC], -+ [_AM_DEPENDENCIES(CC)], -+ [define([AC_PROG_CC], -+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -+AC_PROVIDE_IFELSE([AC_PROG_CXX], -+ [_AM_DEPENDENCIES(CXX)], -+ [define([AC_PROG_CXX], -+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -+]) -+]) -+ -+ -+# When config.status generates a header, we must update the stamp-h file. -+# This file resides in the same directory as the config header -+# that is generated. The stamp files are numbered to have different names. -+ -+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -+# loop where config.status creates the headers, so we can generate -+# our stamp files there. -+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -+[# Compute $1's index in $config_headers. -+_am_stamp_count=1 -+for _am_header in $config_headers :; do -+ case $_am_header in -+ $1 | $1:* ) -+ break ;; -+ * ) -+ _am_stamp_count=`expr $_am_stamp_count + 1` ;; -+ esac -+done -+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) -+ -+# AM_PROG_INSTALL_SH -+# ------------------ -+# Define $install_sh. -+ -+# Copyright (C) 2001, 2003 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+AC_DEFUN([AM_PROG_INSTALL_SH], -+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -+install_sh=${install_sh-"$am_aux_dir/install-sh"} -+AC_SUBST(install_sh)]) -+ -+# -*- Autoconf -*- -+# Copyright (C) 2003 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+# serial 1 -+ -+# Check whether the underlying file-system supports filenames -+# with a leading dot. For instance MS-DOS doesn't. -+AC_DEFUN([AM_SET_LEADING_DOT], -+[rm -rf .tst 2>/dev/null -+mkdir .tst 2>/dev/null -+if test -d .tst; then -+ am__leading_dot=. -+else -+ am__leading_dot=_ -+fi -+rmdir .tst 2>/dev/null -+AC_SUBST([am__leading_dot])]) -+ -+# Check to see how 'make' treats includes. -*- Autoconf -*- -+ -+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+# serial 2 -+ -+# AM_MAKE_INCLUDE() -+# ----------------- -+# Check to see how make treats includes. -+AC_DEFUN([AM_MAKE_INCLUDE], -+[am_make=${MAKE-make} -+cat > confinc << 'END' -+am__doit: -+ @echo done -+.PHONY: am__doit -+END -+# If we don't find an include directive, just comment out the code. -+AC_MSG_CHECKING([for style of include used by $am_make]) -+am__include="#" -+am__quote= -+_am_result=none -+# First try GNU make style include. -+echo "include confinc" > confmf -+# We grep out `Entering directory' and `Leaving directory' -+# messages which can occur if `w' ends up in MAKEFLAGS. -+# In particular we don't look at `^make:' because GNU make might -+# be invoked under some other name (usually "gmake"), in which -+# case it prints its new name instead of `make'. -+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then -+ am__include=include -+ am__quote= -+ _am_result=GNU -+fi -+# Now try BSD make style include. -+if test "$am__include" = "#"; then -+ echo '.include "confinc"' > confmf -+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then -+ am__include=.include -+ am__quote="\"" -+ _am_result=BSD -+ fi -+fi -+AC_SUBST([am__include]) -+AC_SUBST([am__quote]) -+AC_MSG_RESULT([$_am_result]) -+rm -f confinc confmf -+]) -+ -+# -*- Autoconf -*- -+ -+ -+# Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+# serial 3 -+ -+# AM_MISSING_PROG(NAME, PROGRAM) -+# ------------------------------ -+AC_DEFUN([AM_MISSING_PROG], -+[AC_REQUIRE([AM_MISSING_HAS_RUN]) -+$1=${$1-"${am_missing_run}$2"} -+AC_SUBST($1)]) -+ -+ -+# AM_MISSING_HAS_RUN -+# ------------------ -+# Define MISSING if not defined so far and test if it supports --run. -+# If it does, set am_missing_run to use it, otherwise, to nothing. -+AC_DEFUN([AM_MISSING_HAS_RUN], -+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -+# Use eval to expand $SHELL -+if eval "$MISSING --run true"; then -+ am_missing_run="$MISSING --run " -+else -+ am_missing_run= -+ AC_MSG_WARN([`missing' script is too old or missing]) -+fi -+]) -+ -+# AM_PROG_MKDIR_P -+# --------------- -+# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. -+ -+# Copyright (C) 2003, 2004 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories -+# created by `make install' are always world readable, even if the -+# installer happens to have an overly restrictive umask (e.g. 077). -+# This was a mistake. There are at least two reasons why we must not -+# use `-m 0755': -+# - it causes special bits like SGID to be ignored, -+# - it may be too restrictive (some setups expect 775 directories). -+# -+# Do not use -m 0755 and let people choose whatever they expect by -+# setting umask. -+# -+# We cannot accept any implementation of `mkdir' that recognizes `-p'. -+# Some implementations (such as Solaris 8's) are not thread-safe: if a -+# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' -+# concurrently, both version can detect that a/ is missing, but only -+# one can create it and the other will error out. Consequently we -+# restrict ourselves to GNU make (using the --version option ensures -+# this.) -+AC_DEFUN([AM_PROG_MKDIR_P], -+[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then -+ # Keeping the `.' argument allows $(mkdir_p) to be used without -+ # argument. Indeed, we sometimes output rules like -+ # $(mkdir_p) $(somedir) -+ # where $(somedir) is conditionally defined. -+ # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more -+ # expensive solution, as it forces Make to start a sub-shell.) -+ mkdir_p='mkdir -p -- .' -+else -+ # On NextStep and OpenStep, the `mkdir' command does not -+ # recognize any option. It will interpret all options as -+ # directories to create, and then abort because `.' already -+ # exists. -+ for d in ./-p ./--version; -+ do -+ test -d $d && rmdir $d -+ done -+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. -+ if test -f "$ac_aux_dir/mkinstalldirs"; then -+ mkdir_p='$(mkinstalldirs)' -+ else -+ mkdir_p='$(install_sh) -d' -+ fi -+fi -+AC_SUBST([mkdir_p])]) -+ -+# Helper functions for option handling. -*- Autoconf -*- -+ -+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+# serial 2 -+ -+# _AM_MANGLE_OPTION(NAME) -+# ----------------------- -+AC_DEFUN([_AM_MANGLE_OPTION], -+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) -+ -+# _AM_SET_OPTION(NAME) -+# ------------------------------ -+# Set option NAME. Presently that only means defining a flag for this option. -+AC_DEFUN([_AM_SET_OPTION], -+[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) -+ -+# _AM_SET_OPTIONS(OPTIONS) -+# ---------------------------------- -+# OPTIONS is a space-separated list of Automake options. -+AC_DEFUN([_AM_SET_OPTIONS], -+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) -+ -+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -+# ------------------------------------------- -+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -+AC_DEFUN([_AM_IF_OPTION], -+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -+ -+# -+# Check to make sure that the build environment is sane. -+# -+ -+# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+# serial 3 -+ -+# AM_SANITY_CHECK -+# --------------- -+AC_DEFUN([AM_SANITY_CHECK], -+[AC_MSG_CHECKING([whether build environment is sane]) -+# Just in case -+sleep 1 -+echo timestamp > conftest.file -+# Do `set' in a subshell so we don't clobber the current shell's -+# arguments. Must try -L first in case configure is actually a -+# symlink; some systems play weird games with the mod time of symlinks -+# (eg FreeBSD returns the mod time of the symlink's containing -+# directory). -+if ( -+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` -+ if test "$[*]" = "X"; then -+ # -L didn't work. -+ set X `ls -t $srcdir/configure conftest.file` -+ fi -+ rm -f conftest.file -+ if test "$[*]" != "X $srcdir/configure conftest.file" \ -+ && test "$[*]" != "X conftest.file $srcdir/configure"; then -+ -+ # If neither matched, then we have a broken ls. This can happen -+ # if, for instance, CONFIG_SHELL is bash and it inherits a -+ # broken ls alias from the environment. This has actually -+ # happened. Such a system could not be considered "sane". -+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -+alias in your environment]) -+ fi -+ -+ test "$[2]" = conftest.file -+ ) -+then -+ # Ok. -+ : -+else -+ AC_MSG_ERROR([newly created file is older than distributed files! -+Check your system clock]) -+fi -+AC_MSG_RESULT(yes)]) -+ -+# AM_PROG_INSTALL_STRIP -+ -+# Copyright (C) 2001, 2003 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+# 02111-1307, USA. -+ -+# One issue with vendor `install' (even GNU) is that you can't -+# specify the program used to strip binaries. This is especially -+# annoying in cross-compiling environments, where the build's strip -+# is unlikely to handle the host's binaries. -+# Fortunately install-sh will honor a STRIPPROG variable, so we -+# always use install-sh in `make install-strip', and initialize -+# STRIPPROG with the value of the STRIP variable (set by the user). -+AC_DEFUN([AM_PROG_INSTALL_STRIP], -+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -+# Installed binaries are usually stripped using `strip' when the user -+# run `make install-strip'. However `strip' might not be the right -+# tool to use in cross-compilation environments, therefore Automake -+# will honor the `STRIP' environment variable to overrule this program. -+dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -+if test "$cross_compiling" != no; then -+ AC_CHECK_TOOL([STRIP], [strip], :) -+fi -+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" -+AC_SUBST([INSTALL_STRIP_PROGRAM])]) -+ -diff --exclude CVS -urN genext2fs-1.3.orig/autogen.sh genext2fs/autogen.sh ---- genext2fs-1.3.orig/autogen.sh 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/autogen.sh 2004-11-21 23:24:52.000000000 -0700 -@@ -0,0 +1,22 @@ -+#!/bin/sh -+ -+die() { -+ echo "*** $0 failed :(" -+ exit 1 -+} -+ -+./clean.sh -+ -+automake_flags="-c -a" -+for p in aclocal autoconf automake ; do -+ flags=${p}_flags -+ if ! ${p} ${!flags} ; then -+ echo "*** ${p} failed :(" -+ exit 1 -+ fi -+done -+ -+echo -+echo "Now just run:" -+echo "./configure" -+echo "make" -diff --exclude CVS -urN genext2fs-1.3.orig/clean.sh genext2fs/clean.sh ---- genext2fs-1.3.orig/clean.sh 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/clean.sh 2004-11-21 23:24:52.000000000 -0700 -@@ -0,0 +1,13 @@ -+#!/bin/bash -+ -+for f in \ -+ `find . -name Makefile.in -o -name Makefile` \ -+ `find . -name .libs -o -name .deps` \ -+ `find . -name '*.o' -o -name '*.la' -o -name '*.lo' -o -name '*.loT'` \ -+ aclocal.m4* autom4te.cache \ -+ configure config.* \ -+ depcomp install-sh ltmain.sh missing mkinstalldirs libtool \ -+ genext2fs -+do -+ rm -rf $f -+done -diff --exclude CVS -urN genext2fs-1.3.orig/configure genext2fs/configure ---- genext2fs-1.3.orig/configure 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/configure 2004-12-27 13:03:46.000000000 -0700 -@@ -0,0 +1,4034 @@ -+#! /bin/sh -+# Guess values for system-dependent variables and create Makefiles. -+# Generated by GNU Autoconf 2.59. -+# -+# Copyright (C) 2003 Free Software Foundation, Inc. -+# This configure script is free software; the Free Software Foundation -+# gives unlimited permission to copy, distribute and modify it. -+## --------------------- ## -+## M4sh Initialization. ## -+## --------------------- ## -+ -+# Be Bourne compatible -+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -+ emulate sh -+ NULLCMD=: -+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which -+ # is contrary to our usage. Disable this feature. -+ alias -g '${1+"$@"}'='"$@"' -+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then -+ set -o posix -+fi -+DUALCASE=1; export DUALCASE # for MKS sh -+ -+# Support unset when possible. -+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -+ as_unset=unset -+else -+ as_unset=false -+fi -+ -+ -+# Work around bugs in pre-3.0 UWIN ksh. -+$as_unset ENV MAIL MAILPATH -+PS1='$ ' -+PS2='> ' -+PS4='+ ' -+ -+# NLS nuisances. -+for as_var in \ -+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ -+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ -+ LC_TELEPHONE LC_TIME -+do -+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then -+ eval $as_var=C; export $as_var -+ else -+ $as_unset $as_var -+ fi -+done -+ -+# Required to use basename. -+if expr a : '\(a\)' >/dev/null 2>&1; then -+ as_expr=expr -+else -+ as_expr=false -+fi -+ -+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then -+ as_basename=basename -+else -+ as_basename=false -+fi -+ -+ -+# Name of the executable. -+as_me=`$as_basename "$0" || -+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ -+ X"$0" : 'X\(//\)$' \| \ -+ X"$0" : 'X\(/\)$' \| \ -+ . : '\(.\)' 2>/dev/null || -+echo X/"$0" | -+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } -+ /^X\/\(\/\/\)$/{ s//\1/; q; } -+ /^X\/\(\/\).*/{ s//\1/; q; } -+ s/.*/./; q'` -+ -+ -+# PATH needs CR, and LINENO needs CR and PATH. -+# Avoid depending upon Character Ranges. -+as_cr_letters='abcdefghijklmnopqrstuvwxyz' -+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -+as_cr_Letters=$as_cr_letters$as_cr_LETTERS -+as_cr_digits='0123456789' -+as_cr_alnum=$as_cr_Letters$as_cr_digits -+ -+# The user is always right. -+if test "${PATH_SEPARATOR+set}" != set; then -+ echo "#! /bin/sh" >conf$$.sh -+ echo "exit 0" >>conf$$.sh -+ chmod +x conf$$.sh -+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then -+ PATH_SEPARATOR=';' -+ else -+ PATH_SEPARATOR=: -+ fi -+ rm -f conf$$.sh -+fi -+ -+ -+ as_lineno_1=$LINENO -+ as_lineno_2=$LINENO -+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` -+ test "x$as_lineno_1" != "x$as_lineno_2" && -+ test "x$as_lineno_3" = "x$as_lineno_2" || { -+ # Find who we are. Look in the path if we contain no path at all -+ # relative or not. -+ case $0 in -+ *[\\/]* ) as_myself=$0 ;; -+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -+done -+ -+ ;; -+ esac -+ # We did not find ourselves, most probably we were run as `sh COMMAND' -+ # in which case we are not to be found in the path. -+ if test "x$as_myself" = x; then -+ as_myself=$0 -+ fi -+ if test ! -f "$as_myself"; then -+ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 -+ { (exit 1); exit 1; }; } -+ fi -+ case $CONFIG_SHELL in -+ '') -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for as_base in sh bash ksh sh5; do -+ case $as_dir in -+ /*) -+ if ("$as_dir/$as_base" -c ' -+ as_lineno_1=$LINENO -+ as_lineno_2=$LINENO -+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` -+ test "x$as_lineno_1" != "x$as_lineno_2" && -+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then -+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } -+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } -+ CONFIG_SHELL=$as_dir/$as_base -+ export CONFIG_SHELL -+ exec "$CONFIG_SHELL" "$0" ${1+"$@"} -+ fi;; -+ esac -+ done -+done -+;; -+ esac -+ -+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO -+ # uniformly replaced by the line number. The first 'sed' inserts a -+ # line-number line before each line; the second 'sed' does the real -+ # work. The second script uses 'N' to pair each line-number line -+ # with the numbered line, and appends trailing '-' during -+ # substitution so that $LINENO is not a special case at line end. -+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the -+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) -+ sed '=' <$as_myself | -+ sed ' -+ N -+ s,$,-, -+ : loop -+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, -+ t loop -+ s,-$,, -+ s,^['$as_cr_digits']*\n,, -+ ' >$as_me.lineno && -+ chmod +x $as_me.lineno || -+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 -+ { (exit 1); exit 1; }; } -+ -+ # Don't try to exec as it changes $[0], causing all sort of problems -+ # (the dirname of $[0] is not the place where we might find the -+ # original and so on. Autoconf is especially sensible to this). -+ . ./$as_me.lineno -+ # Exit status is that of the last command. -+ exit -+} -+ -+ -+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in -+ *c*,-n*) ECHO_N= ECHO_C=' -+' ECHO_T=' ' ;; -+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; -+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -+esac -+ -+if expr a : '\(a\)' >/dev/null 2>&1; then -+ as_expr=expr -+else -+ as_expr=false -+fi -+ -+rm -f conf$$ conf$$.exe conf$$.file -+echo >conf$$.file -+if ln -s conf$$.file conf$$ 2>/dev/null; then -+ # We could just check for DJGPP; but this test a) works b) is more generic -+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). -+ if test -f conf$$.exe; then -+ # Don't use ln at all; we don't have any links -+ as_ln_s='cp -p' -+ else -+ as_ln_s='ln -s' -+ fi -+elif ln conf$$.file conf$$ 2>/dev/null; then -+ as_ln_s=ln -+else -+ as_ln_s='cp -p' -+fi -+rm -f conf$$ conf$$.exe conf$$.file -+ -+if mkdir -p . 2>/dev/null; then -+ as_mkdir_p=: -+else -+ test -d ./-p && rmdir ./-p -+ as_mkdir_p=false -+fi -+ -+as_executable_p="test -f" -+ -+# Sed expression to map a string onto a valid CPP name. -+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" -+ -+# Sed expression to map a string onto a valid variable name. -+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -+ -+ -+# IFS -+# We need space, tab and new line, in precisely that order. -+as_nl=' -+' -+IFS=" $as_nl" -+ -+# CDPATH. -+$as_unset CDPATH -+ -+ -+# Name of the host. -+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -+# so uname gets run too. -+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` -+ -+exec 6>&1 -+ -+# -+# Initializations. -+# -+ac_default_prefix=/usr/local -+ac_config_libobj_dir=. -+cross_compiling=no -+subdirs= -+MFLAGS= -+MAKEFLAGS= -+SHELL=${CONFIG_SHELL-/bin/sh} -+ -+# Maximum number of lines to put in a shell here document. -+# This variable seems obsolete. It should probably be removed, and -+# only ac_max_sed_lines should be used. -+: ${ac_max_here_lines=38} -+ -+# Identity of this package. -+PACKAGE_NAME= -+PACKAGE_TARNAME= -+PACKAGE_VERSION= -+PACKAGE_STRING= -+PACKAGE_BUGREPORT= -+ -+ac_unique_file="genext2fs.c" -+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LIBOBJS LTLIBOBJS' -+ac_subst_files='' -+ -+# Initialize some variables set by options. -+ac_init_help= -+ac_init_version=false -+# The variables have the same names as the options, with -+# dashes changed to underlines. -+cache_file=/dev/null -+exec_prefix=NONE -+no_create= -+no_recursion= -+prefix=NONE -+program_prefix=NONE -+program_suffix=NONE -+program_transform_name=s,x,x, -+silent= -+site= -+srcdir= -+verbose= -+x_includes=NONE -+x_libraries=NONE -+ -+# Installation directory options. -+# These are left unexpanded so users can "make install exec_prefix=/foo" -+# and all the variables that are supposed to be based on exec_prefix -+# by default will actually change. -+# Use braces instead of parens because sh, perl, etc. also accept them. -+bindir='${exec_prefix}/bin' -+sbindir='${exec_prefix}/sbin' -+libexecdir='${exec_prefix}/libexec' -+datadir='${prefix}/share' -+sysconfdir='${prefix}/etc' -+sharedstatedir='${prefix}/com' -+localstatedir='${prefix}/var' -+libdir='${exec_prefix}/lib' -+includedir='${prefix}/include' -+oldincludedir='/usr/include' -+infodir='${prefix}/info' -+mandir='${prefix}/man' -+ -+ac_prev= -+for ac_option -+do -+ # If the previous option needs an argument, assign it. -+ if test -n "$ac_prev"; then -+ eval "$ac_prev=\$ac_option" -+ ac_prev= -+ continue -+ fi -+ -+ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` -+ -+ # Accept the important Cygnus configure options, so we can diagnose typos. -+ -+ case $ac_option in -+ -+ -bindir | --bindir | --bindi | --bind | --bin | --bi) -+ ac_prev=bindir ;; -+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) -+ bindir=$ac_optarg ;; -+ -+ -build | --build | --buil | --bui | --bu) -+ ac_prev=build_alias ;; -+ -build=* | --build=* | --buil=* | --bui=* | --bu=*) -+ build_alias=$ac_optarg ;; -+ -+ -cache-file | --cache-file | --cache-fil | --cache-fi \ -+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) -+ ac_prev=cache_file ;; -+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ -+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) -+ cache_file=$ac_optarg ;; -+ -+ --config-cache | -C) -+ cache_file=config.cache ;; -+ -+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da) -+ ac_prev=datadir ;; -+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ -+ | --da=*) -+ datadir=$ac_optarg ;; -+ -+ -disable-* | --disable-*) -+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` -+ # Reject names that are not valid shell variable names. -+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && -+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2 -+ { (exit 1); exit 1; }; } -+ ac_feature=`echo $ac_feature | sed 's/-/_/g'` -+ eval "enable_$ac_feature=no" ;; -+ -+ -enable-* | --enable-*) -+ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` -+ # Reject names that are not valid shell variable names. -+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && -+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2 -+ { (exit 1); exit 1; }; } -+ ac_feature=`echo $ac_feature | sed 's/-/_/g'` -+ case $ac_option in -+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; -+ *) ac_optarg=yes ;; -+ esac -+ eval "enable_$ac_feature='$ac_optarg'" ;; -+ -+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ -+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ -+ | --exec | --exe | --ex) -+ ac_prev=exec_prefix ;; -+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ -+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ -+ | --exec=* | --exe=* | --ex=*) -+ exec_prefix=$ac_optarg ;; -+ -+ -gas | --gas | --ga | --g) -+ # Obsolete; use --with-gas. -+ with_gas=yes ;; -+ -+ -help | --help | --hel | --he | -h) -+ ac_init_help=long ;; -+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) -+ ac_init_help=recursive ;; -+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) -+ ac_init_help=short ;; -+ -+ -host | --host | --hos | --ho) -+ ac_prev=host_alias ;; -+ -host=* | --host=* | --hos=* | --ho=*) -+ host_alias=$ac_optarg ;; -+ -+ -includedir | --includedir | --includedi | --included | --include \ -+ | --includ | --inclu | --incl | --inc) -+ ac_prev=includedir ;; -+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ -+ | --includ=* | --inclu=* | --incl=* | --inc=*) -+ includedir=$ac_optarg ;; -+ -+ -infodir | --infodir | --infodi | --infod | --info | --inf) -+ ac_prev=infodir ;; -+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) -+ infodir=$ac_optarg ;; -+ -+ -libdir | --libdir | --libdi | --libd) -+ ac_prev=libdir ;; -+ -libdir=* | --libdir=* | --libdi=* | --libd=*) -+ libdir=$ac_optarg ;; -+ -+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ -+ | --libexe | --libex | --libe) -+ ac_prev=libexecdir ;; -+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ -+ | --libexe=* | --libex=* | --libe=*) -+ libexecdir=$ac_optarg ;; -+ -+ -localstatedir | --localstatedir | --localstatedi | --localstated \ -+ | --localstate | --localstat | --localsta | --localst \ -+ | --locals | --local | --loca | --loc | --lo) -+ ac_prev=localstatedir ;; -+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ -+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ -+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) -+ localstatedir=$ac_optarg ;; -+ -+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m) -+ ac_prev=mandir ;; -+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) -+ mandir=$ac_optarg ;; -+ -+ -nfp | --nfp | --nf) -+ # Obsolete; use --without-fp. -+ with_fp=no ;; -+ -+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \ -+ | --no-cr | --no-c | -n) -+ no_create=yes ;; -+ -+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \ -+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) -+ no_recursion=yes ;; -+ -+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ -+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ -+ | --oldin | --oldi | --old | --ol | --o) -+ ac_prev=oldincludedir ;; -+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ -+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ -+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) -+ oldincludedir=$ac_optarg ;; -+ -+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) -+ ac_prev=prefix ;; -+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) -+ prefix=$ac_optarg ;; -+ -+ -program-prefix | --program-prefix | --program-prefi | --program-pref \ -+ | --program-pre | --program-pr | --program-p) -+ ac_prev=program_prefix ;; -+ -program-prefix=* | --program-prefix=* | --program-prefi=* \ -+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) -+ program_prefix=$ac_optarg ;; -+ -+ -program-suffix | --program-suffix | --program-suffi | --program-suff \ -+ | --program-suf | --program-su | --program-s) -+ ac_prev=program_suffix ;; -+ -program-suffix=* | --program-suffix=* | --program-suffi=* \ -+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) -+ program_suffix=$ac_optarg ;; -+ -+ -program-transform-name | --program-transform-name \ -+ | --program-transform-nam | --program-transform-na \ -+ | --program-transform-n | --program-transform- \ -+ | --program-transform | --program-transfor \ -+ | --program-transfo | --program-transf \ -+ | --program-trans | --program-tran \ -+ | --progr-tra | --program-tr | --program-t) -+ ac_prev=program_transform_name ;; -+ -program-transform-name=* | --program-transform-name=* \ -+ | --program-transform-nam=* | --program-transform-na=* \ -+ | --program-transform-n=* | --program-transform-=* \ -+ | --program-transform=* | --program-transfor=* \ -+ | --program-transfo=* | --program-transf=* \ -+ | --program-trans=* | --program-tran=* \ -+ | --progr-tra=* | --program-tr=* | --program-t=*) -+ program_transform_name=$ac_optarg ;; -+ -+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ -+ | -silent | --silent | --silen | --sile | --sil) -+ silent=yes ;; -+ -+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) -+ ac_prev=sbindir ;; -+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ -+ | --sbi=* | --sb=*) -+ sbindir=$ac_optarg ;; -+ -+ -sharedstatedir | --sharedstatedir | --sharedstatedi \ -+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ -+ | --sharedst | --shareds | --shared | --share | --shar \ -+ | --sha | --sh) -+ ac_prev=sharedstatedir ;; -+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ -+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ -+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ -+ | --sha=* | --sh=*) -+ sharedstatedir=$ac_optarg ;; -+ -+ -site | --site | --sit) -+ ac_prev=site ;; -+ -site=* | --site=* | --sit=*) -+ site=$ac_optarg ;; -+ -+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) -+ ac_prev=srcdir ;; -+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) -+ srcdir=$ac_optarg ;; -+ -+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ -+ | --syscon | --sysco | --sysc | --sys | --sy) -+ ac_prev=sysconfdir ;; -+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ -+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) -+ sysconfdir=$ac_optarg ;; -+ -+ -target | --target | --targe | --targ | --tar | --ta | --t) -+ ac_prev=target_alias ;; -+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) -+ target_alias=$ac_optarg ;; -+ -+ -v | -verbose | --verbose | --verbos | --verbo | --verb) -+ verbose=yes ;; -+ -+ -version | --version | --versio | --versi | --vers | -V) -+ ac_init_version=: ;; -+ -+ -with-* | --with-*) -+ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` -+ # Reject names that are not valid shell variable names. -+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && -+ { echo "$as_me: error: invalid package name: $ac_package" >&2 -+ { (exit 1); exit 1; }; } -+ ac_package=`echo $ac_package| sed 's/-/_/g'` -+ case $ac_option in -+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; -+ *) ac_optarg=yes ;; -+ esac -+ eval "with_$ac_package='$ac_optarg'" ;; -+ -+ -without-* | --without-*) -+ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` -+ # Reject names that are not valid shell variable names. -+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && -+ { echo "$as_me: error: invalid package name: $ac_package" >&2 -+ { (exit 1); exit 1; }; } -+ ac_package=`echo $ac_package | sed 's/-/_/g'` -+ eval "with_$ac_package=no" ;; -+ -+ --x) -+ # Obsolete; use --with-x. -+ with_x=yes ;; -+ -+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ -+ | --x-incl | --x-inc | --x-in | --x-i) -+ ac_prev=x_includes ;; -+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ -+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) -+ x_includes=$ac_optarg ;; -+ -+ -x-libraries | --x-libraries | --x-librarie | --x-librari \ -+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) -+ ac_prev=x_libraries ;; -+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ -+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) -+ x_libraries=$ac_optarg ;; -+ -+ -*) { echo "$as_me: error: unrecognized option: $ac_option -+Try \`$0 --help' for more information." >&2 -+ { (exit 1); exit 1; }; } -+ ;; -+ -+ *=*) -+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` -+ # Reject names that are not valid shell variable names. -+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && -+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 -+ { (exit 1); exit 1; }; } -+ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` -+ eval "$ac_envvar='$ac_optarg'" -+ export $ac_envvar ;; -+ -+ *) -+ # FIXME: should be removed in autoconf 3.0. -+ echo "$as_me: WARNING: you should use --build, --host, --target" >&2 -+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && -+ echo "$as_me: WARNING: invalid host type: $ac_option" >&2 -+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} -+ ;; -+ -+ esac -+done -+ -+if test -n "$ac_prev"; then -+ ac_option=--`echo $ac_prev | sed 's/_/-/g'` -+ { echo "$as_me: error: missing argument to $ac_option" >&2 -+ { (exit 1); exit 1; }; } -+fi -+ -+# Be sure to have absolute paths. -+for ac_var in exec_prefix prefix -+do -+ eval ac_val=$`echo $ac_var` -+ case $ac_val in -+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;; -+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 -+ { (exit 1); exit 1; }; };; -+ esac -+done -+ -+# Be sure to have absolute paths. -+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ -+ localstatedir libdir includedir oldincludedir infodir mandir -+do -+ eval ac_val=$`echo $ac_var` -+ case $ac_val in -+ [\\/$]* | ?:[\\/]* ) ;; -+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 -+ { (exit 1); exit 1; }; };; -+ esac -+done -+ -+# There might be people who depend on the old broken behavior: `$host' -+# used to hold the argument of --host etc. -+# FIXME: To remove some day. -+build=$build_alias -+host=$host_alias -+target=$target_alias -+ -+# FIXME: To remove some day. -+if test "x$host_alias" != x; then -+ if test "x$build_alias" = x; then -+ cross_compiling=maybe -+ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. -+ If a cross compiler is detected then cross compile mode will be used." >&2 -+ elif test "x$build_alias" != "x$host_alias"; then -+ cross_compiling=yes -+ fi -+fi -+ -+ac_tool_prefix= -+test -n "$host_alias" && ac_tool_prefix=$host_alias- -+ -+test "$silent" = yes && exec 6>/dev/null -+ -+ -+# Find the source files, if location was not specified. -+if test -z "$srcdir"; then -+ ac_srcdir_defaulted=yes -+ # Try the directory containing this script, then its parent. -+ ac_confdir=`(dirname "$0") 2>/dev/null || -+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$0" : 'X\(//\)[^/]' \| \ -+ X"$0" : 'X\(//\)$' \| \ -+ X"$0" : 'X\(/\)' \| \ -+ . : '\(.\)' 2>/dev/null || -+echo X"$0" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -+ /^X\(\/\/\)[^/].*/{ s//\1/; q; } -+ /^X\(\/\/\)$/{ s//\1/; q; } -+ /^X\(\/\).*/{ s//\1/; q; } -+ s/.*/./; q'` -+ srcdir=$ac_confdir -+ if test ! -r $srcdir/$ac_unique_file; then -+ srcdir=.. -+ fi -+else -+ ac_srcdir_defaulted=no -+fi -+if test ! -r $srcdir/$ac_unique_file; then -+ if test "$ac_srcdir_defaulted" = yes; then -+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 -+ { (exit 1); exit 1; }; } -+ else -+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 -+ { (exit 1); exit 1; }; } -+ fi -+fi -+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || -+ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 -+ { (exit 1); exit 1; }; } -+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -+ac_env_build_alias_set=${build_alias+set} -+ac_env_build_alias_value=$build_alias -+ac_cv_env_build_alias_set=${build_alias+set} -+ac_cv_env_build_alias_value=$build_alias -+ac_env_host_alias_set=${host_alias+set} -+ac_env_host_alias_value=$host_alias -+ac_cv_env_host_alias_set=${host_alias+set} -+ac_cv_env_host_alias_value=$host_alias -+ac_env_target_alias_set=${target_alias+set} -+ac_env_target_alias_value=$target_alias -+ac_cv_env_target_alias_set=${target_alias+set} -+ac_cv_env_target_alias_value=$target_alias -+ac_env_CC_set=${CC+set} -+ac_env_CC_value=$CC -+ac_cv_env_CC_set=${CC+set} -+ac_cv_env_CC_value=$CC -+ac_env_CFLAGS_set=${CFLAGS+set} -+ac_env_CFLAGS_value=$CFLAGS -+ac_cv_env_CFLAGS_set=${CFLAGS+set} -+ac_cv_env_CFLAGS_value=$CFLAGS -+ac_env_LDFLAGS_set=${LDFLAGS+set} -+ac_env_LDFLAGS_value=$LDFLAGS -+ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -+ac_cv_env_LDFLAGS_value=$LDFLAGS -+ac_env_CPPFLAGS_set=${CPPFLAGS+set} -+ac_env_CPPFLAGS_value=$CPPFLAGS -+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -+ac_cv_env_CPPFLAGS_value=$CPPFLAGS -+ -+# -+# Report the --help message. -+# -+if test "$ac_init_help" = "long"; then -+ # Omit some internal or obsolete options to make the list less imposing. -+ # This message is too long to be a string in the A/UX 3.1 sh. -+ cat <<_ACEOF -+\`configure' configures this package to adapt to many kinds of systems. -+ -+Usage: $0 [OPTION]... [VAR=VALUE]... -+ -+To assign environment variables (e.g., CC, CFLAGS...), specify them as -+VAR=VALUE. See below for descriptions of some of the useful variables. -+ -+Defaults for the options are specified in brackets. -+ -+Configuration: -+ -h, --help display this help and exit -+ --help=short display options specific to this package -+ --help=recursive display the short help of all the included packages -+ -V, --version display version information and exit -+ -q, --quiet, --silent do not print \`checking...' messages -+ --cache-file=FILE cache test results in FILE [disabled] -+ -C, --config-cache alias for \`--cache-file=config.cache' -+ -n, --no-create do not create output files -+ --srcdir=DIR find the sources in DIR [configure dir or \`..'] -+ -+_ACEOF -+ -+ cat <<_ACEOF -+Installation directories: -+ --prefix=PREFIX install architecture-independent files in PREFIX -+ [$ac_default_prefix] -+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX -+ [PREFIX] -+ -+By default, \`make install' will install all the files in -+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -+an installation prefix other than \`$ac_default_prefix' using \`--prefix', -+for instance \`--prefix=\$HOME'. -+ -+For better control, use the options below. -+ -+Fine tuning of the installation directories: -+ --bindir=DIR user executables [EPREFIX/bin] -+ --sbindir=DIR system admin executables [EPREFIX/sbin] -+ --libexecdir=DIR program executables [EPREFIX/libexec] -+ --datadir=DIR read-only architecture-independent data [PREFIX/share] -+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] -+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] -+ --localstatedir=DIR modifiable single-machine data [PREFIX/var] -+ --libdir=DIR object code libraries [EPREFIX/lib] -+ --includedir=DIR C header files [PREFIX/include] -+ --oldincludedir=DIR C header files for non-gcc [/usr/include] -+ --infodir=DIR info documentation [PREFIX/info] -+ --mandir=DIR man documentation [PREFIX/man] -+_ACEOF -+ -+ cat <<\_ACEOF -+ -+Program names: -+ --program-prefix=PREFIX prepend PREFIX to installed program names -+ --program-suffix=SUFFIX append SUFFIX to installed program names -+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names -+_ACEOF -+fi -+ -+if test -n "$ac_init_help"; then -+ -+ cat <<\_ACEOF -+ -+Optional Features: -+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) -+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes] -+ --disable-dependency-tracking speeds up one-time build -+ --enable-dependency-tracking do not reject slow dependency extractors -+ -+Some influential environment variables: -+ CC C compiler command -+ CFLAGS C compiler flags -+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a -+ nonstandard directory <lib dir> -+ CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have -+ headers in a nonstandard directory <include dir> -+ -+Use these variables to override the choices made by `configure' or to help -+it to find libraries and programs with nonstandard names/locations. -+ -+_ACEOF -+fi -+ -+if test "$ac_init_help" = "recursive"; then -+ # If there are subdirs, report their specific --help. -+ ac_popdir=`pwd` -+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue -+ test -d $ac_dir || continue -+ ac_builddir=. -+ -+if test "$ac_dir" != .; then -+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` -+ # A "../" for each directory in $ac_dir_suffix. -+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -+else -+ ac_dir_suffix= ac_top_builddir= -+fi -+ -+case $srcdir in -+ .) # No --srcdir option. We are building in place. -+ ac_srcdir=. -+ if test -z "$ac_top_builddir"; then -+ ac_top_srcdir=. -+ else -+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` -+ fi ;; -+ [\\/]* | ?:[\\/]* ) # Absolute path. -+ ac_srcdir=$srcdir$ac_dir_suffix; -+ ac_top_srcdir=$srcdir ;; -+ *) # Relative path. -+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix -+ ac_top_srcdir=$ac_top_builddir$srcdir ;; -+esac -+ -+# Do not use `cd foo && pwd` to compute absolute paths, because -+# the directories may not exist. -+case `pwd` in -+.) ac_abs_builddir="$ac_dir";; -+*) -+ case "$ac_dir" in -+ .) ac_abs_builddir=`pwd`;; -+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; -+ *) ac_abs_builddir=`pwd`/"$ac_dir";; -+ esac;; -+esac -+case $ac_abs_builddir in -+.) ac_abs_top_builddir=${ac_top_builddir}.;; -+*) -+ case ${ac_top_builddir}. in -+ .) ac_abs_top_builddir=$ac_abs_builddir;; -+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; -+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; -+ esac;; -+esac -+case $ac_abs_builddir in -+.) ac_abs_srcdir=$ac_srcdir;; -+*) -+ case $ac_srcdir in -+ .) ac_abs_srcdir=$ac_abs_builddir;; -+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; -+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; -+ esac;; -+esac -+case $ac_abs_builddir in -+.) ac_abs_top_srcdir=$ac_top_srcdir;; -+*) -+ case $ac_top_srcdir in -+ .) ac_abs_top_srcdir=$ac_abs_builddir;; -+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; -+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; -+ esac;; -+esac -+ -+ cd $ac_dir -+ # Check for guested configure; otherwise get Cygnus style configure. -+ if test -f $ac_srcdir/configure.gnu; then -+ echo -+ $SHELL $ac_srcdir/configure.gnu --help=recursive -+ elif test -f $ac_srcdir/configure; then -+ echo -+ $SHELL $ac_srcdir/configure --help=recursive -+ elif test -f $ac_srcdir/configure.ac || -+ test -f $ac_srcdir/configure.in; then -+ echo -+ $ac_configure --help -+ else -+ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 -+ fi -+ cd "$ac_popdir" -+ done -+fi -+ -+test -n "$ac_init_help" && exit 0 -+if $ac_init_version; then -+ cat <<\_ACEOF -+ -+Copyright (C) 2003 Free Software Foundation, Inc. -+This configure script is free software; the Free Software Foundation -+gives unlimited permission to copy, distribute and modify it. -+_ACEOF -+ exit 0 -+fi -+exec 5>config.log -+cat >&5 <<_ACEOF -+This file contains any messages produced by compilers while -+running configure, to aid debugging if configure makes a mistake. -+ -+It was created by $as_me, which was -+generated by GNU Autoconf 2.59. Invocation command line was -+ -+ $ $0 $@ -+ -+_ACEOF -+{ -+cat <<_ASUNAME -+## --------- ## -+## Platform. ## -+## --------- ## -+ -+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -+uname -m = `(uname -m) 2>/dev/null || echo unknown` -+uname -r = `(uname -r) 2>/dev/null || echo unknown` -+uname -s = `(uname -s) 2>/dev/null || echo unknown` -+uname -v = `(uname -v) 2>/dev/null || echo unknown` -+ -+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` -+ -+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -+hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` -+ -+_ASUNAME -+ -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ echo "PATH: $as_dir" -+done -+ -+} >&5 -+ -+cat >&5 <<_ACEOF -+ -+ -+## ----------- ## -+## Core tests. ## -+## ----------- ## -+ -+_ACEOF -+ -+ -+# Keep a trace of the command line. -+# Strip out --no-create and --no-recursion so they do not pile up. -+# Strip out --silent because we don't want to record it for future runs. -+# Also quote any args containing shell meta-characters. -+# Make two passes to allow for proper duplicate-argument suppression. -+ac_configure_args= -+ac_configure_args0= -+ac_configure_args1= -+ac_sep= -+ac_must_keep_next=false -+for ac_pass in 1 2 -+do -+ for ac_arg -+ do -+ case $ac_arg in -+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ -+ | -silent | --silent | --silen | --sile | --sil) -+ continue ;; -+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) -+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; -+ esac -+ case $ac_pass in -+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; -+ 2) -+ ac_configure_args1="$ac_configure_args1 '$ac_arg'" -+ if test $ac_must_keep_next = true; then -+ ac_must_keep_next=false # Got value, back to normal. -+ else -+ case $ac_arg in -+ *=* | --config-cache | -C | -disable-* | --disable-* \ -+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ -+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ -+ | -with-* | --with-* | -without-* | --without-* | --x) -+ case "$ac_configure_args0 " in -+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; -+ esac -+ ;; -+ -* ) ac_must_keep_next=true ;; -+ esac -+ fi -+ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" -+ # Get rid of the leading space. -+ ac_sep=" " -+ ;; -+ esac -+ done -+done -+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } -+ -+# When interrupted or exit'd, cleanup temporary files, and complete -+# config.log. We remove comments because anyway the quotes in there -+# would cause problems or look ugly. -+# WARNING: Be sure not to use single quotes in there, as some shells, -+# such as our DU 5.0 friend, will then `close' the trap. -+trap 'exit_status=$? -+ # Save into config.log some information that might help in debugging. -+ { -+ echo -+ -+ cat <<\_ASBOX -+## ---------------- ## -+## Cache variables. ## -+## ---------------- ## -+_ASBOX -+ echo -+ # The following way of writing the cache mishandles newlines in values, -+{ -+ (set) 2>&1 | -+ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in -+ *ac_space=\ *) -+ sed -n \ -+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; -+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" -+ ;; -+ *) -+ sed -n \ -+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" -+ ;; -+ esac; -+} -+ echo -+ -+ cat <<\_ASBOX -+## ----------------- ## -+## Output variables. ## -+## ----------------- ## -+_ASBOX -+ echo -+ for ac_var in $ac_subst_vars -+ do -+ eval ac_val=$`echo $ac_var` -+ echo "$ac_var='"'"'$ac_val'"'"'" -+ done | sort -+ echo -+ -+ if test -n "$ac_subst_files"; then -+ cat <<\_ASBOX -+## ------------- ## -+## Output files. ## -+## ------------- ## -+_ASBOX -+ echo -+ for ac_var in $ac_subst_files -+ do -+ eval ac_val=$`echo $ac_var` -+ echo "$ac_var='"'"'$ac_val'"'"'" -+ done | sort -+ echo -+ fi -+ -+ if test -s confdefs.h; then -+ cat <<\_ASBOX -+## ----------- ## -+## confdefs.h. ## -+## ----------- ## -+_ASBOX -+ echo -+ sed "/^$/d" confdefs.h | sort -+ echo -+ fi -+ test "$ac_signal" != 0 && -+ echo "$as_me: caught signal $ac_signal" -+ echo "$as_me: exit $exit_status" -+ } >&5 -+ rm -f core *.core && -+ rm -rf conftest* confdefs* conf$$* $ac_clean_files && -+ exit $exit_status -+ ' 0 -+for ac_signal in 1 2 13 15; do -+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -+done -+ac_signal=0 -+ -+# confdefs.h avoids OS command line length limits that DEFS can exceed. -+rm -rf conftest* confdefs.h -+# AIX cpp loses on an empty file, so make sure it contains at least a newline. -+echo >confdefs.h -+ -+# Predefined preprocessor variables. -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE_NAME "$PACKAGE_NAME" -+_ACEOF -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -+_ACEOF -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE_VERSION "$PACKAGE_VERSION" -+_ACEOF -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE_STRING "$PACKAGE_STRING" -+_ACEOF -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -+_ACEOF -+ -+ -+# Let the site file select an alternate cache file if it wants to. -+# Prefer explicitly selected file to automatically selected ones. -+if test -z "$CONFIG_SITE"; then -+ if test "x$prefix" != xNONE; then -+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" -+ else -+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" -+ fi -+fi -+for ac_site_file in $CONFIG_SITE; do -+ if test -r "$ac_site_file"; then -+ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -+echo "$as_me: loading site script $ac_site_file" >&6;} -+ sed 's/^/| /' "$ac_site_file" >&5 -+ . "$ac_site_file" -+ fi -+done -+ -+if test -r "$cache_file"; then -+ # Some versions of bash will fail to source /dev/null (special -+ # files actually), so we avoid doing that. -+ if test -f "$cache_file"; then -+ { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -+echo "$as_me: loading cache $cache_file" >&6;} -+ case $cache_file in -+ [\\/]* | ?:[\\/]* ) . $cache_file;; -+ *) . ./$cache_file;; -+ esac -+ fi -+else -+ { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -+echo "$as_me: creating cache $cache_file" >&6;} -+ >$cache_file -+fi -+ -+# Check that the precious variables saved in the cache have kept the same -+# value. -+ac_cache_corrupted=false -+for ac_var in `(set) 2>&1 | -+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do -+ eval ac_old_set=\$ac_cv_env_${ac_var}_set -+ eval ac_new_set=\$ac_env_${ac_var}_set -+ eval ac_old_val="\$ac_cv_env_${ac_var}_value" -+ eval ac_new_val="\$ac_env_${ac_var}_value" -+ case $ac_old_set,$ac_new_set in -+ set,) -+ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} -+ ac_cache_corrupted=: ;; -+ ,set) -+ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} -+ ac_cache_corrupted=: ;; -+ ,);; -+ *) -+ if test "x$ac_old_val" != "x$ac_new_val"; then -+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} -+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -+echo "$as_me: former value: $ac_old_val" >&2;} -+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -+echo "$as_me: current value: $ac_new_val" >&2;} -+ ac_cache_corrupted=: -+ fi;; -+ esac -+ # Pass precious variables to config.status. -+ if test "$ac_new_set" = set; then -+ case $ac_new_val in -+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) -+ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; -+ *) ac_arg=$ac_var=$ac_new_val ;; -+ esac -+ case " $ac_configure_args " in -+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. -+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; -+ esac -+ fi -+done -+if $ac_cache_corrupted; then -+ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -+echo "$as_me: error: changes in the environment can compromise the build" >&2;} -+ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+am__api_version="1.8" -+ac_aux_dir= -+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do -+ if test -f $ac_dir/install-sh; then -+ ac_aux_dir=$ac_dir -+ ac_install_sh="$ac_aux_dir/install-sh -c" -+ break -+ elif test -f $ac_dir/install.sh; then -+ ac_aux_dir=$ac_dir -+ ac_install_sh="$ac_aux_dir/install.sh -c" -+ break -+ elif test -f $ac_dir/shtool; then -+ ac_aux_dir=$ac_dir -+ ac_install_sh="$ac_aux_dir/shtool install -c" -+ break -+ fi -+done -+if test -z "$ac_aux_dir"; then -+ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ac_config_guess="$SHELL $ac_aux_dir/config.guess" -+ac_config_sub="$SHELL $ac_aux_dir/config.sub" -+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. -+ -+# Find a good install program. We prefer a C program (faster), -+# so one script is as good as another. But avoid the broken or -+# incompatible versions: -+# SysV /etc/install, /usr/sbin/install -+# SunOS /usr/etc/install -+# IRIX /sbin/install -+# AIX /bin/install -+# AmigaOS /C/install, which installs bootblocks on floppy discs -+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -+# AFS /usr/afsws/bin/install, which mishandles nonexistent args -+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -+# OS/2's system install, which has a completely different semantic -+# ./install, which can be erroneously created by make from ./install.sh. -+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -+if test -z "$INSTALL"; then -+if test "${ac_cv_path_install+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ # Account for people who put trailing slashes in PATH elements. -+case $as_dir/ in -+ ./ | .// | /cC/* | \ -+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ -+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ -+ /usr/ucb/* ) ;; -+ *) -+ # OSF1 and SCO ODT 3.0 have their own names for install. -+ # Don't use installbsd from OSF since it installs stuff as root -+ # by default. -+ for ac_prog in ginstall scoinst install; do -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then -+ if test $ac_prog = install && -+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then -+ # AIX install. It has an incompatible calling convention. -+ : -+ elif test $ac_prog = install && -+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then -+ # program-specific install script used by HP pwplus--don't use. -+ : -+ else -+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" -+ break 3 -+ fi -+ fi -+ done -+ done -+ ;; -+esac -+done -+ -+ -+fi -+ if test "${ac_cv_path_install+set}" = set; then -+ INSTALL=$ac_cv_path_install -+ else -+ # As a last resort, use the slow shell script. We don't cache a -+ # path for INSTALL within a source directory, because that will -+ # break other packages using the cache if that directory is -+ # removed, or if the path is relative. -+ INSTALL=$ac_install_sh -+ fi -+fi -+echo "$as_me:$LINENO: result: $INSTALL" >&5 -+echo "${ECHO_T}$INSTALL" >&6 -+ -+# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -+# It thinks the first close brace ends the variable substitution. -+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' -+ -+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' -+ -+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -+ -+echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 -+# Just in case -+sleep 1 -+echo timestamp > conftest.file -+# Do `set' in a subshell so we don't clobber the current shell's -+# arguments. Must try -L first in case configure is actually a -+# symlink; some systems play weird games with the mod time of symlinks -+# (eg FreeBSD returns the mod time of the symlink's containing -+# directory). -+if ( -+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` -+ if test "$*" = "X"; then -+ # -L didn't work. -+ set X `ls -t $srcdir/configure conftest.file` -+ fi -+ rm -f conftest.file -+ if test "$*" != "X $srcdir/configure conftest.file" \ -+ && test "$*" != "X conftest.file $srcdir/configure"; then -+ -+ # If neither matched, then we have a broken ls. This can happen -+ # if, for instance, CONFIG_SHELL is bash and it inherits a -+ # broken ls alias from the environment. This has actually -+ # happened. Such a system could not be considered "sane". -+ { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -+alias in your environment" >&5 -+echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -+alias in your environment" >&2;} -+ { (exit 1); exit 1; }; } -+ fi -+ -+ test "$2" = conftest.file -+ ) -+then -+ # Ok. -+ : -+else -+ { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -+Check your system clock" >&5 -+echo "$as_me: error: newly created file is older than distributed files! -+Check your system clock" >&2;} -+ { (exit 1); exit 1; }; } -+fi -+echo "$as_me:$LINENO: result: yes" >&5 -+echo "${ECHO_T}yes" >&6 -+test "$program_prefix" != NONE && -+ program_transform_name="s,^,$program_prefix,;$program_transform_name" -+# Use a double $ so make ignores it. -+test "$program_suffix" != NONE && -+ program_transform_name="s,\$,$program_suffix,;$program_transform_name" -+# Double any \ or $. echo might interpret backslashes. -+# By default was `s,x,x', remove it if useless. -+cat <<\_ACEOF >conftest.sed -+s/[\\$]/&&/g;s/;s,x,x,$// -+_ACEOF -+program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -+rm conftest.sed -+ -+# expand $ac_aux_dir to an absolute path -+am_aux_dir=`cd $ac_aux_dir && pwd` -+ -+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -+# Use eval to expand $SHELL -+if eval "$MISSING --run true"; then -+ am_missing_run="$MISSING --run " -+else -+ am_missing_run= -+ { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -+echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -+fi -+ -+if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then -+ # Keeping the `.' argument allows $(mkdir_p) to be used without -+ # argument. Indeed, we sometimes output rules like -+ # $(mkdir_p) $(somedir) -+ # where $(somedir) is conditionally defined. -+ # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more -+ # expensive solution, as it forces Make to start a sub-shell.) -+ mkdir_p='mkdir -p -- .' -+else -+ # On NextStep and OpenStep, the `mkdir' command does not -+ # recognize any option. It will interpret all options as -+ # directories to create, and then abort because `.' already -+ # exists. -+ for d in ./-p ./--version; -+ do -+ test -d $d && rmdir $d -+ done -+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. -+ if test -f "$ac_aux_dir/mkinstalldirs"; then -+ mkdir_p='$(mkinstalldirs)' -+ else -+ mkdir_p='$(install_sh) -d' -+ fi -+fi -+ -+for ac_prog in gawk mawk nawk awk -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_AWK+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$AWK"; then -+ ac_cv_prog_AWK="$AWK" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_AWK="$ac_prog" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+fi -+fi -+AWK=$ac_cv_prog_AWK -+if test -n "$AWK"; then -+ echo "$as_me:$LINENO: result: $AWK" >&5 -+echo "${ECHO_T}$AWK" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+ test -n "$AWK" && break -+done -+ -+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.make <<\_ACEOF -+all: -+ @echo 'ac_maketemp="$(MAKE)"' -+_ACEOF -+# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -+if test -n "$ac_maketemp"; then -+ eval ac_cv_prog_make_${ac_make}_set=yes -+else -+ eval ac_cv_prog_make_${ac_make}_set=no -+fi -+rm -f conftest.make -+fi -+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then -+ echo "$as_me:$LINENO: result: yes" >&5 -+echo "${ECHO_T}yes" >&6 -+ SET_MAKE= -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+ SET_MAKE="MAKE=${MAKE-make}" -+fi -+ -+rm -rf .tst 2>/dev/null -+mkdir .tst 2>/dev/null -+if test -d .tst; then -+ am__leading_dot=. -+else -+ am__leading_dot=_ -+fi -+rmdir .tst 2>/dev/null -+ -+# test to see if srcdir already configured -+if test "`cd $srcdir && pwd`" != "`pwd`" && -+ test -f $srcdir/config.status; then -+ { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -+echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+# test whether we have cygpath -+if test -z "$CYGPATH_W"; then -+ if (cygpath --version) >/dev/null 2>/dev/null; then -+ CYGPATH_W='cygpath -w' -+ else -+ CYGPATH_W=echo -+ fi -+fi -+ -+ -+# Define the identity of the package. -+ PACKAGE=genext2fs -+ VERSION=1.3 -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE "$PACKAGE" -+_ACEOF -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define VERSION "$VERSION" -+_ACEOF -+ -+# Some tools Automake needs. -+ -+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} -+ -+ -+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} -+ -+ -+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} -+ -+ -+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} -+ -+ -+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -+ -+ -+AMTAR=${AMTAR-"${am_missing_run}tar"} -+ -+install_sh=${install_sh-"$am_aux_dir/install-sh"} -+ -+# Installed binaries are usually stripped using `strip' when the user -+# run `make install-strip'. However `strip' might not be the right -+# tool to use in cross-compilation environments, therefore Automake -+# will honor the `STRIP' environment variable to overrule this program. -+if test "$cross_compiling" != no; then -+ if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -+set dummy ${ac_tool_prefix}strip; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_STRIP+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$STRIP"; then -+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_STRIP="${ac_tool_prefix}strip" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+fi -+fi -+STRIP=$ac_cv_prog_STRIP -+if test -n "$STRIP"; then -+ echo "$as_me:$LINENO: result: $STRIP" >&5 -+echo "${ECHO_T}$STRIP" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+fi -+if test -z "$ac_cv_prog_STRIP"; then -+ ac_ct_STRIP=$STRIP -+ # Extract the first word of "strip", so it can be a program name with args. -+set dummy strip; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$ac_ct_STRIP"; then -+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_STRIP="strip" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+ test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -+fi -+fi -+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -+if test -n "$ac_ct_STRIP"; then -+ echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -+echo "${ECHO_T}$ac_ct_STRIP" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+ STRIP=$ac_ct_STRIP -+else -+ STRIP="$ac_cv_prog_STRIP" -+fi -+ -+fi -+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" -+ -+# We need awk for the "check" target. The system "awk" is bad on -+# some platforms. -+ -+ -+ -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -+set dummy ${ac_tool_prefix}gcc; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$CC" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_CC="${ac_tool_prefix}gcc" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ echo "$as_me:$LINENO: result: $CC" >&5 -+echo "${ECHO_T}$CC" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+fi -+if test -z "$ac_cv_prog_CC"; then -+ ac_ct_CC=$CC -+ # Extract the first word of "gcc", so it can be a program name with args. -+set dummy gcc; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$ac_ct_CC"; then -+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_CC="gcc" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+fi -+fi -+ac_ct_CC=$ac_cv_prog_ac_ct_CC -+if test -n "$ac_ct_CC"; then -+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -+echo "${ECHO_T}$ac_ct_CC" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+ CC=$ac_ct_CC -+else -+ CC="$ac_cv_prog_CC" -+fi -+ -+if test -z "$CC"; then -+ if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -+set dummy ${ac_tool_prefix}cc; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$CC" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_CC="${ac_tool_prefix}cc" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ echo "$as_me:$LINENO: result: $CC" >&5 -+echo "${ECHO_T}$CC" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+fi -+if test -z "$ac_cv_prog_CC"; then -+ ac_ct_CC=$CC -+ # Extract the first word of "cc", so it can be a program name with args. -+set dummy cc; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$ac_ct_CC"; then -+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_CC="cc" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+fi -+fi -+ac_ct_CC=$ac_cv_prog_ac_ct_CC -+if test -n "$ac_ct_CC"; then -+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -+echo "${ECHO_T}$ac_ct_CC" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+ CC=$ac_ct_CC -+else -+ CC="$ac_cv_prog_CC" -+fi -+ -+fi -+if test -z "$CC"; then -+ # Extract the first word of "cc", so it can be a program name with args. -+set dummy cc; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$CC" # Let the user override the test. -+else -+ ac_prog_rejected=no -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then -+ ac_prog_rejected=yes -+ continue -+ fi -+ ac_cv_prog_CC="cc" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+if test $ac_prog_rejected = yes; then -+ # We found a bogon in the path, so make sure we never use it. -+ set dummy $ac_cv_prog_CC -+ shift -+ if test $# != 0; then -+ # We chose a different compiler from the bogus one. -+ # However, it has the same basename, so the bogon will be chosen -+ # first if we set CC to just the basename; use the full file name. -+ shift -+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" -+ fi -+fi -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ echo "$as_me:$LINENO: result: $CC" >&5 -+echo "${ECHO_T}$CC" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+fi -+if test -z "$CC"; then -+ if test -n "$ac_tool_prefix"; then -+ for ac_prog in cl -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$CC" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ echo "$as_me:$LINENO: result: $CC" >&5 -+echo "${ECHO_T}$CC" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+ test -n "$CC" && break -+ done -+fi -+if test -z "$CC"; then -+ ac_ct_CC=$CC -+ for ac_prog in cl -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$ac_ct_CC"; then -+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_CC="$ac_prog" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+fi -+fi -+ac_ct_CC=$ac_cv_prog_ac_ct_CC -+if test -n "$ac_ct_CC"; then -+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -+echo "${ECHO_T}$ac_ct_CC" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+ test -n "$ac_ct_CC" && break -+done -+ -+ CC=$ac_ct_CC -+fi -+ -+fi -+ -+ -+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -+See \`config.log' for more details." >&5 -+echo "$as_me: error: no acceptable C compiler found in \$PATH -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; } -+ -+# Provide some information about the compiler. -+echo "$as_me:$LINENO:" \ -+ "checking for C compiler version" >&5 -+ac_compiler=`set X $ac_compile; echo $2` -+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5 -+ (eval $ac_compiler --version </dev/null >&5) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5 -+ (eval $ac_compiler -v </dev/null >&5) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5 -+ (eval $ac_compiler -V </dev/null >&5) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+ -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+ac_clean_files_save=$ac_clean_files -+ac_clean_files="$ac_clean_files a.out a.exe b.out" -+# Try to create an executable without -o first, disregard a.out. -+# It will help us diagnose broken compilers, and finding out an intuition -+# of exeext. -+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 -+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 -+ (eval $ac_link_default) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ # Find the output, starting from the most likely. This scheme is -+# not robust to junk in `.', hence go to wildcards (a.*) only as a last -+# resort. -+ -+# Be careful to initialize this variable, since it used to be cached. -+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -+ac_cv_exeext= -+# b.out is created by i960 compilers. -+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out -+do -+ test -f "$ac_file" || continue -+ case $ac_file in -+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) -+ ;; -+ conftest.$ac_ext ) -+ # This is the source file. -+ ;; -+ [ab].out ) -+ # We found the default executable, but exeext='' is most -+ # certainly right. -+ break;; -+ *.* ) -+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` -+ # FIXME: I believe we export ac_cv_exeext for Libtool, -+ # but it would be cool to find out if it's true. Does anybody -+ # maintain Libtool? --akim. -+ export ac_cv_exeext -+ break;; -+ * ) -+ break;; -+ esac -+done -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -+See \`config.log' for more details." >&5 -+echo "$as_me: error: C compiler cannot create executables -+See \`config.log' for more details." >&2;} -+ { (exit 77); exit 77; }; } -+fi -+ -+ac_exeext=$ac_cv_exeext -+echo "$as_me:$LINENO: result: $ac_file" >&5 -+echo "${ECHO_T}$ac_file" >&6 -+ -+# Check the compiler produces executables we can run. If not, either -+# the compiler is broken, or we cross compile. -+echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -+# If not cross compiling, check that we can run a simple program. -+if test "$cross_compiling" != yes; then -+ if { ac_try='./$ac_file' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ cross_compiling=no -+ else -+ if test "$cross_compiling" = maybe; then -+ cross_compiling=yes -+ else -+ { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -+If you meant to cross compile, use \`--host'. -+See \`config.log' for more details." >&5 -+echo "$as_me: error: cannot run C compiled programs. -+If you meant to cross compile, use \`--host'. -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; } -+ fi -+ fi -+fi -+echo "$as_me:$LINENO: result: yes" >&5 -+echo "${ECHO_T}yes" >&6 -+ -+rm -f a.out a.exe conftest$ac_cv_exeext b.out -+ac_clean_files=$ac_clean_files_save -+# Check the compiler produces executables we can run. If not, either -+# the compiler is broken, or we cross compile. -+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -+echo "$as_me:$LINENO: result: $cross_compiling" >&5 -+echo "${ECHO_T}$cross_compiling" >&6 -+ -+echo "$as_me:$LINENO: checking for suffix of executables" >&5 -+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -+ (eval $ac_link) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ # If both `conftest.exe' and `conftest' are `present' (well, observable) -+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -+# work properly (i.e., refer to `conftest.exe'), while it won't with -+# `rm'. -+for ac_file in conftest.exe conftest conftest.*; do -+ test -f "$ac_file" || continue -+ case $ac_file in -+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; -+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` -+ export ac_cv_exeext -+ break;; -+ * ) break;; -+ esac -+done -+else -+ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -+See \`config.log' for more details." >&5 -+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+rm -f conftest$ac_cv_exeext -+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -+echo "${ECHO_T}$ac_cv_exeext" >&6 -+ -+rm -f conftest.$ac_ext -+EXEEXT=$ac_cv_exeext -+ac_exeext=$EXEEXT -+echo "$as_me:$LINENO: checking for suffix of object files" >&5 -+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -+if test "${ac_cv_objext+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.o conftest.obj -+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do -+ case $ac_file in -+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; -+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` -+ break;; -+ esac -+done -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -+See \`config.log' for more details." >&5 -+echo "$as_me: error: cannot compute suffix of object files: cannot compile -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+rm -f conftest.$ac_cv_objext conftest.$ac_ext -+fi -+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -+echo "${ECHO_T}$ac_cv_objext" >&6 -+OBJEXT=$ac_cv_objext -+ac_objext=$OBJEXT -+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -+if test "${ac_cv_c_compiler_gnu+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+#ifndef __GNUC__ -+ choke me -+#endif -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_compiler_gnu=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ac_compiler_gnu=no -+fi -+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -+ac_cv_c_compiler_gnu=$ac_compiler_gnu -+ -+fi -+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -+GCC=`test $ac_compiler_gnu = yes && echo yes` -+ac_test_CFLAGS=${CFLAGS+set} -+ac_save_CFLAGS=$CFLAGS -+CFLAGS="-g" -+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -+if test "${ac_cv_prog_cc_g+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_prog_cc_g=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ac_cv_prog_cc_g=no -+fi -+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -+if test "$ac_test_CFLAGS" = set; then -+ CFLAGS=$ac_save_CFLAGS -+elif test $ac_cv_prog_cc_g = yes; then -+ if test "$GCC" = yes; then -+ CFLAGS="-g -O2" -+ else -+ CFLAGS="-g" -+ fi -+else -+ if test "$GCC" = yes; then -+ CFLAGS="-O2" -+ else -+ CFLAGS= -+ fi -+fi -+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -+if test "${ac_cv_prog_cc_stdc+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ ac_cv_prog_cc_stdc=no -+ac_save_CC=$CC -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <stdarg.h> -+#include <stdio.h> -+#include <sys/types.h> -+#include <sys/stat.h> -+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -+struct buf { int x; }; -+FILE * (*rcsopen) (struct buf *, struct stat *, int); -+static char *e (p, i) -+ char **p; -+ int i; -+{ -+ return p[i]; -+} -+static char *f (char * (*g) (char **, int), char **p, ...) -+{ -+ char *s; -+ va_list v; -+ va_start (v,p); -+ s = g (p, va_arg (v,int)); -+ va_end (v); -+ return s; -+} -+ -+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has -+ function prototypes and stuff, but not '\xHH' hex character constants. -+ These don't provoke an error unfortunately, instead are silently treated -+ as 'x'. The following induces an error, until -std1 is added to get -+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an -+ array size at least. It's necessary to write '\x00'==0 to get something -+ that's true only with -std1. */ -+int osf4_cc_array ['\x00' == 0 ? 1 : -1]; -+ -+int test (int i, double x); -+struct s1 {int (*f) (int a);}; -+struct s2 {int (*f) (double a);}; -+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -+int argc; -+char **argv; -+int -+main () -+{ -+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; -+ ; -+ return 0; -+} -+_ACEOF -+# Don't try gcc -ansi; that turns off useful extensions and -+# breaks some systems' header files. -+# AIX -qlanglvl=ansi -+# Ultrix and OSF/1 -std1 -+# HP-UX 10.20 and later -Ae -+# HP-UX older versions -Aa -D_HPUX_SOURCE -+# SVR4 -Xc -D__EXTENSIONS__ -+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -+do -+ CC="$ac_save_CC $ac_arg" -+ rm -f conftest.$ac_objext -+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_prog_cc_stdc=$ac_arg -+break -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+fi -+rm -f conftest.err conftest.$ac_objext -+done -+rm -f conftest.$ac_ext conftest.$ac_objext -+CC=$ac_save_CC -+ -+fi -+ -+case "x$ac_cv_prog_cc_stdc" in -+ x|xno) -+ echo "$as_me:$LINENO: result: none needed" >&5 -+echo "${ECHO_T}none needed" >&6 ;; -+ *) -+ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 -+ CC="$CC $ac_cv_prog_cc_stdc" ;; -+esac -+ -+# Some people use a C++ compiler to compile C. Since we use `exit', -+# in C++ we need to declare it. In case someone uses the same compiler -+# for both compiling C and C++ we need to have the C++ compiler decide -+# the declaration of exit, since it's the most demanding environment. -+cat >conftest.$ac_ext <<_ACEOF -+#ifndef __cplusplus -+ choke me -+#endif -+_ACEOF -+rm -f conftest.$ac_objext -+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ for ac_declaration in \ -+ '' \ -+ 'extern "C" void std::exit (int) throw (); using std::exit;' \ -+ 'extern "C" void std::exit (int); using std::exit;' \ -+ 'extern "C" void exit (int) throw ();' \ -+ 'extern "C" void exit (int);' \ -+ 'void exit (int);' -+do -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_declaration -+#include <stdlib.h> -+int -+main () -+{ -+exit (42); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ : -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+continue -+fi -+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_declaration -+int -+main () -+{ -+exit (42); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ break -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+fi -+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -+done -+rm -f conftest* -+if test -n "$ac_declaration"; then -+ echo '#ifdef __cplusplus' >>confdefs.h -+ echo $ac_declaration >>confdefs.h -+ echo '#endif' >>confdefs.h -+fi -+ -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+fi -+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+DEPDIR="${am__leading_dot}deps" -+ -+ ac_config_commands="$ac_config_commands depfiles" -+ -+ -+am_make=${MAKE-make} -+cat > confinc << 'END' -+am__doit: -+ @echo done -+.PHONY: am__doit -+END -+# If we don't find an include directive, just comment out the code. -+echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 -+am__include="#" -+am__quote= -+_am_result=none -+# First try GNU make style include. -+echo "include confinc" > confmf -+# We grep out `Entering directory' and `Leaving directory' -+# messages which can occur if `w' ends up in MAKEFLAGS. -+# In particular we don't look at `^make:' because GNU make might -+# be invoked under some other name (usually "gmake"), in which -+# case it prints its new name instead of `make'. -+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then -+ am__include=include -+ am__quote= -+ _am_result=GNU -+fi -+# Now try BSD make style include. -+if test "$am__include" = "#"; then -+ echo '.include "confinc"' > confmf -+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then -+ am__include=.include -+ am__quote="\"" -+ _am_result=BSD -+ fi -+fi -+ -+ -+echo "$as_me:$LINENO: result: $_am_result" >&5 -+echo "${ECHO_T}$_am_result" >&6 -+rm -f confinc confmf -+ -+# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. -+if test "${enable_dependency_tracking+set}" = set; then -+ enableval="$enable_dependency_tracking" -+ -+fi; -+if test "x$enable_dependency_tracking" != xno; then -+ am_depcomp="$ac_aux_dir/depcomp" -+ AMDEPBACKSLASH='\' -+fi -+ -+ -+if test "x$enable_dependency_tracking" != xno; then -+ AMDEP_TRUE= -+ AMDEP_FALSE='#' -+else -+ AMDEP_TRUE='#' -+ AMDEP_FALSE= -+fi -+ -+ -+ -+ -+depcc="$CC" am_compiler_list= -+ -+echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -+ # We make a subdir and do the tests there. Otherwise we can end up -+ # making bogus files that we don't know about and never remove. For -+ # instance it was reported that on HP-UX the gcc test will end up -+ # making a dummy file named `D' -- because `-MD' means `put the output -+ # in D'. -+ mkdir conftest.dir -+ # Copy depcomp to subdir because otherwise we won't find it if we're -+ # using a relative directory. -+ cp "$am_depcomp" conftest.dir -+ cd conftest.dir -+ # We will build objects and dependencies in a subdirectory because -+ # it helps to detect inapplicable dependency modes. For instance -+ # both Tru64's cc and ICC support -MD to output dependencies as a -+ # side effect of compilation, but ICC will put the dependencies in -+ # the current directory while Tru64 will put them in the object -+ # directory. -+ mkdir sub -+ -+ am_cv_CC_dependencies_compiler_type=none -+ if test "$am_compiler_list" = ""; then -+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` -+ fi -+ for depmode in $am_compiler_list; do -+ # Setup a source with many dependencies, because some compilers -+ # like to wrap large dependency lists on column 80 (with \), and -+ # we should not choose a depcomp mode which is confused by this. -+ # -+ # We need to recreate these files for each test, as the compiler may -+ # overwrite some of them when testing with obscure command lines. -+ # This happens at least with the AIX C compiler. -+ : > sub/conftest.c -+ for i in 1 2 3 4 5 6; do -+ echo '#include "conftst'$i'.h"' >> sub/conftest.c -+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with -+ # Solaris 8's {/usr,}/bin/sh. -+ touch sub/conftst$i.h -+ done -+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -+ -+ case $depmode in -+ nosideeffect) -+ # after this tag, mechanisms are not by side-effect, so they'll -+ # only be used when explicitly requested -+ if test "x$enable_dependency_tracking" = xyes; then -+ continue -+ else -+ break -+ fi -+ ;; -+ none) break ;; -+ esac -+ # We check with `-c' and `-o' for the sake of the "dashmstdout" -+ # mode. It turns out that the SunPro C++ compiler does not properly -+ # handle `-M -o', and we need to detect this. -+ if depmode=$depmode \ -+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ -+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ -+ >/dev/null 2>conftest.err && -+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && -+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then -+ # icc doesn't choke on unknown options, it will just issue warnings -+ # or remarks (even with -Werror). So we grep stderr for any message -+ # that says an option was ignored or not supported. -+ # When given -MP, icc 7.0 and 7.1 complain thusly: -+ # icc: Command line warning: ignoring option '-M'; no argument required -+ # The diagnosis changed in icc 8.0: -+ # icc: Command line remark: option '-MP' not supported -+ if (grep 'ignoring option' conftest.err || -+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else -+ am_cv_CC_dependencies_compiler_type=$depmode -+ break -+ fi -+ fi -+ done -+ -+ cd .. -+ rm -rf conftest.dir -+else -+ am_cv_CC_dependencies_compiler_type=none -+fi -+ -+fi -+echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 -+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type -+ -+ -+ -+if -+ test "x$enable_dependency_tracking" != xno \ -+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then -+ am__fastdepCC_TRUE= -+ am__fastdepCC_FALSE='#' -+else -+ am__fastdepCC_TRUE='#' -+ am__fastdepCC_FALSE= -+fi -+ -+ -+# Find a good install program. We prefer a C program (faster), -+# so one script is as good as another. But avoid the broken or -+# incompatible versions: -+# SysV /etc/install, /usr/sbin/install -+# SunOS /usr/etc/install -+# IRIX /sbin/install -+# AIX /bin/install -+# AmigaOS /C/install, which installs bootblocks on floppy discs -+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -+# AFS /usr/afsws/bin/install, which mishandles nonexistent args -+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -+# OS/2's system install, which has a completely different semantic -+# ./install, which can be erroneously created by make from ./install.sh. -+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -+if test -z "$INSTALL"; then -+if test "${ac_cv_path_install+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ # Account for people who put trailing slashes in PATH elements. -+case $as_dir/ in -+ ./ | .// | /cC/* | \ -+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ -+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ -+ /usr/ucb/* ) ;; -+ *) -+ # OSF1 and SCO ODT 3.0 have their own names for install. -+ # Don't use installbsd from OSF since it installs stuff as root -+ # by default. -+ for ac_prog in ginstall scoinst install; do -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then -+ if test $ac_prog = install && -+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then -+ # AIX install. It has an incompatible calling convention. -+ : -+ elif test $ac_prog = install && -+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then -+ # program-specific install script used by HP pwplus--don't use. -+ : -+ else -+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" -+ break 3 -+ fi -+ fi -+ done -+ done -+ ;; -+esac -+done -+ -+ -+fi -+ if test "${ac_cv_path_install+set}" = set; then -+ INSTALL=$ac_cv_path_install -+ else -+ # As a last resort, use the slow shell script. We don't cache a -+ # path for INSTALL within a source directory, because that will -+ # break other packages using the cache if that directory is -+ # removed, or if the path is relative. -+ INSTALL=$ac_install_sh -+ fi -+fi -+echo "$as_me:$LINENO: result: $INSTALL" >&5 -+echo "${ECHO_T}$INSTALL" >&6 -+ -+# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -+# It thinks the first close brace ends the variable substitution. -+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' -+ -+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' -+ -+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -+ -+ ac_config_files="$ac_config_files Makefile" -+cat >confcache <<\_ACEOF -+# This file is a shell script that caches the results of configure -+# tests run on this system so they can be shared between configure -+# scripts and configure runs, see configure's option --config-cache. -+# It is not useful on other systems. If it contains results you don't -+# want to keep, you may remove or edit it. -+# -+# config.status only pays attention to the cache file if you give it -+# the --recheck option to rerun configure. -+# -+# `ac_cv_env_foo' variables (set or unset) will be overridden when -+# loading this file, other *unset* `ac_cv_foo' will be assigned the -+# following values. -+ -+_ACEOF -+ -+# The following way of writing the cache mishandles newlines in values, -+# but we know of no workaround that is simple, portable, and efficient. -+# So, don't put newlines in cache variables' values. -+# Ultrix sh set writes to stderr and can't be redirected directly, -+# and sets the high bit in the cache file unless we assign to the vars. -+{ -+ (set) 2>&1 | -+ case `(ac_space=' '; set | grep ac_space) 2>&1` in -+ *ac_space=\ *) -+ # `set' does not quote correctly, so add quotes (double-quote -+ # substitution turns \\\\ into \\, and sed turns \\ into \). -+ sed -n \ -+ "s/'/'\\\\''/g; -+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" -+ ;; -+ *) -+ # `set' quotes correctly as required by POSIX, so do not add quotes. -+ sed -n \ -+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" -+ ;; -+ esac; -+} | -+ sed ' -+ t clear -+ : clear -+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ -+ t end -+ /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ -+ : end' >>confcache -+if diff $cache_file confcache >/dev/null 2>&1; then :; else -+ if test -w $cache_file; then -+ test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" -+ cat confcache >$cache_file -+ else -+ echo "not updating unwritable cache $cache_file" -+ fi -+fi -+rm -f confcache -+ -+test "x$prefix" = xNONE && prefix=$ac_default_prefix -+# Let make expand exec_prefix. -+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -+ -+# VPATH may cause trouble with some makes, so we remove $(srcdir), -+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -+# trailing colons and then remove the whole line if VPATH becomes empty -+# (actually we leave an empty line to preserve line numbers). -+if test "x$srcdir" = x.; then -+ ac_vpsub='/^[ ]*VPATH[ ]*=/{ -+s/:*\$(srcdir):*/:/; -+s/:*\${srcdir}:*/:/; -+s/:*@srcdir@:*/:/; -+s/^\([^=]*=[ ]*\):*/\1/; -+s/:*$//; -+s/^[^=]*=[ ]*$//; -+}' -+fi -+ -+# Transform confdefs.h into DEFS. -+# Protect against shell expansion while executing Makefile rules. -+# Protect against Makefile macro expansion. -+# -+# If the first sed substitution is executed (which looks for macros that -+# take arguments), then we branch to the quote section. Otherwise, -+# look for a macro that doesn't take arguments. -+cat >confdef2opt.sed <<\_ACEOF -+t clear -+: clear -+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g -+t quote -+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g -+t quote -+d -+: quote -+s,[ `~#$^&*(){}\\|;'"<>?],\\&,g -+s,\[,\\&,g -+s,\],\\&,g -+s,\$,$$,g -+p -+_ACEOF -+# We use echo to avoid assuming a particular line-breaking character. -+# The extra dot is to prevent the shell from consuming trailing -+# line-breaks from the sub-command output. A line-break within -+# single-quotes doesn't work because, if this script is created in a -+# platform that uses two characters for line-breaks (e.g., DOS), tr -+# would break. -+ac_LF_and_DOT=`echo; echo .` -+DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` -+rm -f confdef2opt.sed -+ -+ -+ac_libobjs= -+ac_ltlibobjs= -+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue -+ # 1. Remove the extension, and $U if already installed. -+ ac_i=`echo "$ac_i" | -+ sed 's/\$U\././;s/\.o$//;s/\.obj$//'` -+ # 2. Add them. -+ ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" -+ ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -+done -+LIBOBJS=$ac_libobjs -+ -+LTLIBOBJS=$ac_ltlibobjs -+ -+ -+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then -+ { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+echo "$as_me: error: conditional \"AMDEP\" was never defined. -+Usually this means the macro was only invoked conditionally." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then -+ { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -+Usually this means the macro was only invoked conditionally." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+: ${CONFIG_STATUS=./config.status} -+ac_clean_files_save=$ac_clean_files -+ac_clean_files="$ac_clean_files $CONFIG_STATUS" -+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -+echo "$as_me: creating $CONFIG_STATUS" >&6;} -+cat >$CONFIG_STATUS <<_ACEOF -+#! $SHELL -+# Generated by $as_me. -+# Run this file to recreate the current configuration. -+# Compiler output produced by configure, useful for debugging -+# configure, is in config.log if it exists. -+ -+debug=false -+ac_cs_recheck=false -+ac_cs_silent=false -+SHELL=\${CONFIG_SHELL-$SHELL} -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<\_ACEOF -+## --------------------- ## -+## M4sh Initialization. ## -+## --------------------- ## -+ -+# Be Bourne compatible -+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -+ emulate sh -+ NULLCMD=: -+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which -+ # is contrary to our usage. Disable this feature. -+ alias -g '${1+"$@"}'='"$@"' -+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then -+ set -o posix -+fi -+DUALCASE=1; export DUALCASE # for MKS sh -+ -+# Support unset when possible. -+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -+ as_unset=unset -+else -+ as_unset=false -+fi -+ -+ -+# Work around bugs in pre-3.0 UWIN ksh. -+$as_unset ENV MAIL MAILPATH -+PS1='$ ' -+PS2='> ' -+PS4='+ ' -+ -+# NLS nuisances. -+for as_var in \ -+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ -+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ -+ LC_TELEPHONE LC_TIME -+do -+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then -+ eval $as_var=C; export $as_var -+ else -+ $as_unset $as_var -+ fi -+done -+ -+# Required to use basename. -+if expr a : '\(a\)' >/dev/null 2>&1; then -+ as_expr=expr -+else -+ as_expr=false -+fi -+ -+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then -+ as_basename=basename -+else -+ as_basename=false -+fi -+ -+ -+# Name of the executable. -+as_me=`$as_basename "$0" || -+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ -+ X"$0" : 'X\(//\)$' \| \ -+ X"$0" : 'X\(/\)$' \| \ -+ . : '\(.\)' 2>/dev/null || -+echo X/"$0" | -+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } -+ /^X\/\(\/\/\)$/{ s//\1/; q; } -+ /^X\/\(\/\).*/{ s//\1/; q; } -+ s/.*/./; q'` -+ -+ -+# PATH needs CR, and LINENO needs CR and PATH. -+# Avoid depending upon Character Ranges. -+as_cr_letters='abcdefghijklmnopqrstuvwxyz' -+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -+as_cr_Letters=$as_cr_letters$as_cr_LETTERS -+as_cr_digits='0123456789' -+as_cr_alnum=$as_cr_Letters$as_cr_digits -+ -+# The user is always right. -+if test "${PATH_SEPARATOR+set}" != set; then -+ echo "#! /bin/sh" >conf$$.sh -+ echo "exit 0" >>conf$$.sh -+ chmod +x conf$$.sh -+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then -+ PATH_SEPARATOR=';' -+ else -+ PATH_SEPARATOR=: -+ fi -+ rm -f conf$$.sh -+fi -+ -+ -+ as_lineno_1=$LINENO -+ as_lineno_2=$LINENO -+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` -+ test "x$as_lineno_1" != "x$as_lineno_2" && -+ test "x$as_lineno_3" = "x$as_lineno_2" || { -+ # Find who we are. Look in the path if we contain no path at all -+ # relative or not. -+ case $0 in -+ *[\\/]* ) as_myself=$0 ;; -+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -+done -+ -+ ;; -+ esac -+ # We did not find ourselves, most probably we were run as `sh COMMAND' -+ # in which case we are not to be found in the path. -+ if test "x$as_myself" = x; then -+ as_myself=$0 -+ fi -+ if test ! -f "$as_myself"; then -+ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} -+ { (exit 1); exit 1; }; } -+ fi -+ case $CONFIG_SHELL in -+ '') -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for as_base in sh bash ksh sh5; do -+ case $as_dir in -+ /*) -+ if ("$as_dir/$as_base" -c ' -+ as_lineno_1=$LINENO -+ as_lineno_2=$LINENO -+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` -+ test "x$as_lineno_1" != "x$as_lineno_2" && -+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then -+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } -+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } -+ CONFIG_SHELL=$as_dir/$as_base -+ export CONFIG_SHELL -+ exec "$CONFIG_SHELL" "$0" ${1+"$@"} -+ fi;; -+ esac -+ done -+done -+;; -+ esac -+ -+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO -+ # uniformly replaced by the line number. The first 'sed' inserts a -+ # line-number line before each line; the second 'sed' does the real -+ # work. The second script uses 'N' to pair each line-number line -+ # with the numbered line, and appends trailing '-' during -+ # substitution so that $LINENO is not a special case at line end. -+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the -+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) -+ sed '=' <$as_myself | -+ sed ' -+ N -+ s,$,-, -+ : loop -+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, -+ t loop -+ s,-$,, -+ s,^['$as_cr_digits']*\n,, -+ ' >$as_me.lineno && -+ chmod +x $as_me.lineno || -+ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} -+ { (exit 1); exit 1; }; } -+ -+ # Don't try to exec as it changes $[0], causing all sort of problems -+ # (the dirname of $[0] is not the place where we might find the -+ # original and so on. Autoconf is especially sensible to this). -+ . ./$as_me.lineno -+ # Exit status is that of the last command. -+ exit -+} -+ -+ -+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in -+ *c*,-n*) ECHO_N= ECHO_C=' -+' ECHO_T=' ' ;; -+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; -+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -+esac -+ -+if expr a : '\(a\)' >/dev/null 2>&1; then -+ as_expr=expr -+else -+ as_expr=false -+fi -+ -+rm -f conf$$ conf$$.exe conf$$.file -+echo >conf$$.file -+if ln -s conf$$.file conf$$ 2>/dev/null; then -+ # We could just check for DJGPP; but this test a) works b) is more generic -+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). -+ if test -f conf$$.exe; then -+ # Don't use ln at all; we don't have any links -+ as_ln_s='cp -p' -+ else -+ as_ln_s='ln -s' -+ fi -+elif ln conf$$.file conf$$ 2>/dev/null; then -+ as_ln_s=ln -+else -+ as_ln_s='cp -p' -+fi -+rm -f conf$$ conf$$.exe conf$$.file -+ -+if mkdir -p . 2>/dev/null; then -+ as_mkdir_p=: -+else -+ test -d ./-p && rmdir ./-p -+ as_mkdir_p=false -+fi -+ -+as_executable_p="test -f" -+ -+# Sed expression to map a string onto a valid CPP name. -+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" -+ -+# Sed expression to map a string onto a valid variable name. -+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -+ -+ -+# IFS -+# We need space, tab and new line, in precisely that order. -+as_nl=' -+' -+IFS=" $as_nl" -+ -+# CDPATH. -+$as_unset CDPATH -+ -+exec 6>&1 -+ -+# Open the log real soon, to keep \$[0] and so on meaningful, and to -+# report actual input values of CONFIG_FILES etc. instead of their -+# values after options handling. Logging --version etc. is OK. -+exec 5>>config.log -+{ -+ echo -+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -+## Running $as_me. ## -+_ASBOX -+} >&5 -+cat >&5 <<_CSEOF -+ -+This file was extended by $as_me, which was -+generated by GNU Autoconf 2.59. Invocation command line was -+ -+ CONFIG_FILES = $CONFIG_FILES -+ CONFIG_HEADERS = $CONFIG_HEADERS -+ CONFIG_LINKS = $CONFIG_LINKS -+ CONFIG_COMMANDS = $CONFIG_COMMANDS -+ $ $0 $@ -+ -+_CSEOF -+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -+echo >&5 -+_ACEOF -+ -+# Files that config.status was made for. -+if test -n "$ac_config_files"; then -+ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -+fi -+ -+if test -n "$ac_config_headers"; then -+ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -+fi -+ -+if test -n "$ac_config_links"; then -+ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -+fi -+ -+if test -n "$ac_config_commands"; then -+ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -+fi -+ -+cat >>$CONFIG_STATUS <<\_ACEOF -+ -+ac_cs_usage="\ -+\`$as_me' instantiates files from templates according to the -+current configuration. -+ -+Usage: $0 [OPTIONS] [FILE]... -+ -+ -h, --help print this help, then exit -+ -V, --version print version number, then exit -+ -q, --quiet do not print progress messages -+ -d, --debug don't remove temporary files -+ --recheck update $as_me by reconfiguring in the same conditions -+ --file=FILE[:TEMPLATE] -+ instantiate the configuration file FILE -+ -+Configuration files: -+$config_files -+ -+Configuration commands: -+$config_commands -+ -+Report bugs to <bug-autoconf@gnu.org>." -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<_ACEOF -+ac_cs_version="\\ -+config.status -+configured by $0, generated by GNU Autoconf 2.59, -+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" -+ -+Copyright (C) 2003 Free Software Foundation, Inc. -+This config.status script is free software; the Free Software Foundation -+gives unlimited permission to copy, distribute and modify it." -+srcdir=$srcdir -+INSTALL="$INSTALL" -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<\_ACEOF -+# If no file are specified by the user, then we need to provide default -+# value. By we need to know if files were specified by the user. -+ac_need_defaults=: -+while test $# != 0 -+do -+ case $1 in -+ --*=*) -+ ac_option=`expr "x$1" : 'x\([^=]*\)='` -+ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` -+ ac_shift=: -+ ;; -+ -*) -+ ac_option=$1 -+ ac_optarg=$2 -+ ac_shift=shift -+ ;; -+ *) # This is not an option, so the user has probably given explicit -+ # arguments. -+ ac_option=$1 -+ ac_need_defaults=false;; -+ esac -+ -+ case $ac_option in -+ # Handling of the options. -+_ACEOF -+cat >>$CONFIG_STATUS <<\_ACEOF -+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) -+ ac_cs_recheck=: ;; -+ --version | --vers* | -V ) -+ echo "$ac_cs_version"; exit 0 ;; -+ --he | --h) -+ # Conflict between --help and --header -+ { { echo "$as_me:$LINENO: error: ambiguous option: $1 -+Try \`$0 --help' for more information." >&5 -+echo "$as_me: error: ambiguous option: $1 -+Try \`$0 --help' for more information." >&2;} -+ { (exit 1); exit 1; }; };; -+ --help | --hel | -h ) -+ echo "$ac_cs_usage"; exit 0 ;; -+ --debug | --d* | -d ) -+ debug=: ;; -+ --file | --fil | --fi | --f ) -+ $ac_shift -+ CONFIG_FILES="$CONFIG_FILES $ac_optarg" -+ ac_need_defaults=false;; -+ --header | --heade | --head | --hea ) -+ $ac_shift -+ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" -+ ac_need_defaults=false;; -+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ -+ | -silent | --silent | --silen | --sile | --sil | --si | --s) -+ ac_cs_silent=: ;; -+ -+ # This is an error. -+ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -+Try \`$0 --help' for more information." >&5 -+echo "$as_me: error: unrecognized option: $1 -+Try \`$0 --help' for more information." >&2;} -+ { (exit 1); exit 1; }; } ;; -+ -+ *) ac_config_targets="$ac_config_targets $1" ;; -+ -+ esac -+ shift -+done -+ -+ac_configure_extra_args= -+ -+if $ac_cs_silent; then -+ exec 6>/dev/null -+ ac_configure_extra_args="$ac_configure_extra_args --silent" -+fi -+ -+_ACEOF -+cat >>$CONFIG_STATUS <<_ACEOF -+if \$ac_cs_recheck; then -+ echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 -+ exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -+fi -+ -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<_ACEOF -+# -+# INIT-COMMANDS section. -+# -+ -+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" -+ -+_ACEOF -+ -+ -+ -+cat >>$CONFIG_STATUS <<\_ACEOF -+for ac_config_target in $ac_config_targets -+do -+ case "$ac_config_target" in -+ # Handling of arguments. -+ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; -+ "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; -+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -+echo "$as_me: error: invalid argument: $ac_config_target" >&2;} -+ { (exit 1); exit 1; }; };; -+ esac -+done -+ -+# If the user did not use the arguments to specify the items to instantiate, -+# then the envvar interface is used. Set only those that are not. -+# We use the long form for the default assignment because of an extremely -+# bizarre bug on SunOS 4.1.3. -+if $ac_need_defaults; then -+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -+fi -+ -+# Have a temporary directory for convenience. Make it in the build tree -+# simply because there is no reason to put it here, and in addition, -+# creating and moving files from /tmp can sometimes cause problems. -+# Create a temporary directory, and hook for its removal unless debugging. -+$debug || -+{ -+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 -+ trap '{ (exit 1); exit 1; }' 1 2 13 15 -+} -+ -+# Create a (secure) tmp directory for tmp files. -+ -+{ -+ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && -+ test -n "$tmp" && test -d "$tmp" -+} || -+{ -+ tmp=./confstat$$-$RANDOM -+ (umask 077 && mkdir $tmp) -+} || -+{ -+ echo "$me: cannot create a temporary directory in ." >&2 -+ { (exit 1); exit 1; } -+} -+ -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<_ACEOF -+ -+# -+# CONFIG_FILES section. -+# -+ -+# No need to generate the scripts if there are no CONFIG_FILES. -+# This happens for instance when ./config.status config.h -+if test -n "\$CONFIG_FILES"; then -+ # Protect against being on the right side of a sed subst in config.status. -+ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; -+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -+s,@SHELL@,$SHELL,;t t -+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -+s,@exec_prefix@,$exec_prefix,;t t -+s,@prefix@,$prefix,;t t -+s,@program_transform_name@,$program_transform_name,;t t -+s,@bindir@,$bindir,;t t -+s,@sbindir@,$sbindir,;t t -+s,@libexecdir@,$libexecdir,;t t -+s,@datadir@,$datadir,;t t -+s,@sysconfdir@,$sysconfdir,;t t -+s,@sharedstatedir@,$sharedstatedir,;t t -+s,@localstatedir@,$localstatedir,;t t -+s,@libdir@,$libdir,;t t -+s,@includedir@,$includedir,;t t -+s,@oldincludedir@,$oldincludedir,;t t -+s,@infodir@,$infodir,;t t -+s,@mandir@,$mandir,;t t -+s,@build_alias@,$build_alias,;t t -+s,@host_alias@,$host_alias,;t t -+s,@target_alias@,$target_alias,;t t -+s,@DEFS@,$DEFS,;t t -+s,@ECHO_C@,$ECHO_C,;t t -+s,@ECHO_N@,$ECHO_N,;t t -+s,@ECHO_T@,$ECHO_T,;t t -+s,@LIBS@,$LIBS,;t t -+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -+s,@INSTALL_DATA@,$INSTALL_DATA,;t t -+s,@CYGPATH_W@,$CYGPATH_W,;t t -+s,@PACKAGE@,$PACKAGE,;t t -+s,@VERSION@,$VERSION,;t t -+s,@ACLOCAL@,$ACLOCAL,;t t -+s,@AUTOCONF@,$AUTOCONF,;t t -+s,@AUTOMAKE@,$AUTOMAKE,;t t -+s,@AUTOHEADER@,$AUTOHEADER,;t t -+s,@MAKEINFO@,$MAKEINFO,;t t -+s,@AMTAR@,$AMTAR,;t t -+s,@install_sh@,$install_sh,;t t -+s,@STRIP@,$STRIP,;t t -+s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -+s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t -+s,@mkdir_p@,$mkdir_p,;t t -+s,@AWK@,$AWK,;t t -+s,@SET_MAKE@,$SET_MAKE,;t t -+s,@am__leading_dot@,$am__leading_dot,;t t -+s,@CC@,$CC,;t t -+s,@CFLAGS@,$CFLAGS,;t t -+s,@LDFLAGS@,$LDFLAGS,;t t -+s,@CPPFLAGS@,$CPPFLAGS,;t t -+s,@ac_ct_CC@,$ac_ct_CC,;t t -+s,@EXEEXT@,$EXEEXT,;t t -+s,@OBJEXT@,$OBJEXT,;t t -+s,@DEPDIR@,$DEPDIR,;t t -+s,@am__include@,$am__include,;t t -+s,@am__quote@,$am__quote,;t t -+s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t -+s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t -+s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t -+s,@CCDEPMODE@,$CCDEPMODE,;t t -+s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t -+s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t -+s,@LIBOBJS@,$LIBOBJS,;t t -+s,@LTLIBOBJS@,$LTLIBOBJS,;t t -+CEOF -+ -+_ACEOF -+ -+ cat >>$CONFIG_STATUS <<\_ACEOF -+ # Split the substitutions into bite-sized pieces for seds with -+ # small command number limits, like on Digital OSF/1 and HP-UX. -+ ac_max_sed_lines=48 -+ ac_sed_frag=1 # Number of current file. -+ ac_beg=1 # First line for current file. -+ ac_end=$ac_max_sed_lines # Line after last line for current file. -+ ac_more_lines=: -+ ac_sed_cmds= -+ while $ac_more_lines; do -+ if test $ac_beg -gt 1; then -+ sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag -+ else -+ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag -+ fi -+ if test ! -s $tmp/subs.frag; then -+ ac_more_lines=false -+ else -+ # The purpose of the label and of the branching condition is to -+ # speed up the sed processing (if there are no `@' at all, there -+ # is no need to browse any of the substitutions). -+ # These are the two extra sed commands mentioned above. -+ (echo ':t -+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed -+ if test -z "$ac_sed_cmds"; then -+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" -+ else -+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" -+ fi -+ ac_sed_frag=`expr $ac_sed_frag + 1` -+ ac_beg=$ac_end -+ ac_end=`expr $ac_end + $ac_max_sed_lines` -+ fi -+ done -+ if test -z "$ac_sed_cmds"; then -+ ac_sed_cmds=cat -+ fi -+fi # test -n "$CONFIG_FILES" -+ -+_ACEOF -+cat >>$CONFIG_STATUS <<\_ACEOF -+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue -+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". -+ case $ac_file in -+ - | *:- | *:-:* ) # input from stdin -+ cat >$tmp/stdin -+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` -+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; -+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` -+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; -+ * ) ac_file_in=$ac_file.in ;; -+ esac -+ -+ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. -+ ac_dir=`(dirname "$ac_file") 2>/dev/null || -+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$ac_file" : 'X\(//\)[^/]' \| \ -+ X"$ac_file" : 'X\(//\)$' \| \ -+ X"$ac_file" : 'X\(/\)' \| \ -+ . : '\(.\)' 2>/dev/null || -+echo X"$ac_file" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -+ /^X\(\/\/\)[^/].*/{ s//\1/; q; } -+ /^X\(\/\/\)$/{ s//\1/; q; } -+ /^X\(\/\).*/{ s//\1/; q; } -+ s/.*/./; q'` -+ { if $as_mkdir_p; then -+ mkdir -p "$ac_dir" -+ else -+ as_dir="$ac_dir" -+ as_dirs= -+ while test ! -d "$as_dir"; do -+ as_dirs="$as_dir $as_dirs" -+ as_dir=`(dirname "$as_dir") 2>/dev/null || -+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$as_dir" : 'X\(//\)[^/]' \| \ -+ X"$as_dir" : 'X\(//\)$' \| \ -+ X"$as_dir" : 'X\(/\)' \| \ -+ . : '\(.\)' 2>/dev/null || -+echo X"$as_dir" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -+ /^X\(\/\/\)[^/].*/{ s//\1/; q; } -+ /^X\(\/\/\)$/{ s//\1/; q; } -+ /^X\(\/\).*/{ s//\1/; q; } -+ s/.*/./; q'` -+ done -+ test ! -n "$as_dirs" || mkdir $as_dirs -+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} -+ { (exit 1); exit 1; }; }; } -+ -+ ac_builddir=. -+ -+if test "$ac_dir" != .; then -+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` -+ # A "../" for each directory in $ac_dir_suffix. -+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -+else -+ ac_dir_suffix= ac_top_builddir= -+fi -+ -+case $srcdir in -+ .) # No --srcdir option. We are building in place. -+ ac_srcdir=. -+ if test -z "$ac_top_builddir"; then -+ ac_top_srcdir=. -+ else -+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` -+ fi ;; -+ [\\/]* | ?:[\\/]* ) # Absolute path. -+ ac_srcdir=$srcdir$ac_dir_suffix; -+ ac_top_srcdir=$srcdir ;; -+ *) # Relative path. -+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix -+ ac_top_srcdir=$ac_top_builddir$srcdir ;; -+esac -+ -+# Do not use `cd foo && pwd` to compute absolute paths, because -+# the directories may not exist. -+case `pwd` in -+.) ac_abs_builddir="$ac_dir";; -+*) -+ case "$ac_dir" in -+ .) ac_abs_builddir=`pwd`;; -+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; -+ *) ac_abs_builddir=`pwd`/"$ac_dir";; -+ esac;; -+esac -+case $ac_abs_builddir in -+.) ac_abs_top_builddir=${ac_top_builddir}.;; -+*) -+ case ${ac_top_builddir}. in -+ .) ac_abs_top_builddir=$ac_abs_builddir;; -+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; -+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; -+ esac;; -+esac -+case $ac_abs_builddir in -+.) ac_abs_srcdir=$ac_srcdir;; -+*) -+ case $ac_srcdir in -+ .) ac_abs_srcdir=$ac_abs_builddir;; -+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; -+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; -+ esac;; -+esac -+case $ac_abs_builddir in -+.) ac_abs_top_srcdir=$ac_top_srcdir;; -+*) -+ case $ac_top_srcdir in -+ .) ac_abs_top_srcdir=$ac_abs_builddir;; -+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; -+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; -+ esac;; -+esac -+ -+ -+ case $INSTALL in -+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; -+ *) ac_INSTALL=$ac_top_builddir$INSTALL ;; -+ esac -+ -+ # Let's still pretend it is `configure' which instantiates (i.e., don't -+ # use $as_me), people would be surprised to read: -+ # /* config.h. Generated by config.status. */ -+ if test x"$ac_file" = x-; then -+ configure_input= -+ else -+ configure_input="$ac_file. " -+ fi -+ configure_input=$configure_input"Generated from `echo $ac_file_in | -+ sed 's,.*/,,'` by configure." -+ -+ # First look for the input files in the build tree, otherwise in the -+ # src tree. -+ ac_file_inputs=`IFS=: -+ for f in $ac_file_in; do -+ case $f in -+ -) echo $tmp/stdin ;; -+ [\\/$]*) -+ # Absolute (can't be DOS-style, as IFS=:) -+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -+echo "$as_me: error: cannot find input file: $f" >&2;} -+ { (exit 1); exit 1; }; } -+ echo "$f";; -+ *) # Relative -+ if test -f "$f"; then -+ # Build tree -+ echo "$f" -+ elif test -f "$srcdir/$f"; then -+ # Source tree -+ echo "$srcdir/$f" -+ else -+ # /dev/null tree -+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -+echo "$as_me: error: cannot find input file: $f" >&2;} -+ { (exit 1); exit 1; }; } -+ fi;; -+ esac -+ done` || { (exit 1); exit 1; } -+ -+ if test x"$ac_file" != x-; then -+ { echo "$as_me:$LINENO: creating $ac_file" >&5 -+echo "$as_me: creating $ac_file" >&6;} -+ rm -f "$ac_file" -+ fi -+_ACEOF -+cat >>$CONFIG_STATUS <<_ACEOF -+ sed "$ac_vpsub -+$extrasub -+_ACEOF -+cat >>$CONFIG_STATUS <<\_ACEOF -+:t -+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -+s,@configure_input@,$configure_input,;t t -+s,@srcdir@,$ac_srcdir,;t t -+s,@abs_srcdir@,$ac_abs_srcdir,;t t -+s,@top_srcdir@,$ac_top_srcdir,;t t -+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -+s,@builddir@,$ac_builddir,;t t -+s,@abs_builddir@,$ac_abs_builddir,;t t -+s,@top_builddir@,$ac_top_builddir,;t t -+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -+s,@INSTALL@,$ac_INSTALL,;t t -+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out -+ rm -f $tmp/stdin -+ if test x"$ac_file" != x-; then -+ mv $tmp/out $ac_file -+ else -+ cat $tmp/out -+ rm -f $tmp/out -+ fi -+ -+done -+_ACEOF -+cat >>$CONFIG_STATUS <<\_ACEOF -+ -+# -+# CONFIG_COMMANDS section. -+# -+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue -+ ac_dest=`echo "$ac_file" | sed 's,:.*,,'` -+ ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` -+ ac_dir=`(dirname "$ac_dest") 2>/dev/null || -+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$ac_dest" : 'X\(//\)[^/]' \| \ -+ X"$ac_dest" : 'X\(//\)$' \| \ -+ X"$ac_dest" : 'X\(/\)' \| \ -+ . : '\(.\)' 2>/dev/null || -+echo X"$ac_dest" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -+ /^X\(\/\/\)[^/].*/{ s//\1/; q; } -+ /^X\(\/\/\)$/{ s//\1/; q; } -+ /^X\(\/\).*/{ s//\1/; q; } -+ s/.*/./; q'` -+ { if $as_mkdir_p; then -+ mkdir -p "$ac_dir" -+ else -+ as_dir="$ac_dir" -+ as_dirs= -+ while test ! -d "$as_dir"; do -+ as_dirs="$as_dir $as_dirs" -+ as_dir=`(dirname "$as_dir") 2>/dev/null || -+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$as_dir" : 'X\(//\)[^/]' \| \ -+ X"$as_dir" : 'X\(//\)$' \| \ -+ X"$as_dir" : 'X\(/\)' \| \ -+ . : '\(.\)' 2>/dev/null || -+echo X"$as_dir" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -+ /^X\(\/\/\)[^/].*/{ s//\1/; q; } -+ /^X\(\/\/\)$/{ s//\1/; q; } -+ /^X\(\/\).*/{ s//\1/; q; } -+ s/.*/./; q'` -+ done -+ test ! -n "$as_dirs" || mkdir $as_dirs -+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} -+ { (exit 1); exit 1; }; }; } -+ -+ ac_builddir=. -+ -+if test "$ac_dir" != .; then -+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` -+ # A "../" for each directory in $ac_dir_suffix. -+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -+else -+ ac_dir_suffix= ac_top_builddir= -+fi -+ -+case $srcdir in -+ .) # No --srcdir option. We are building in place. -+ ac_srcdir=. -+ if test -z "$ac_top_builddir"; then -+ ac_top_srcdir=. -+ else -+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` -+ fi ;; -+ [\\/]* | ?:[\\/]* ) # Absolute path. -+ ac_srcdir=$srcdir$ac_dir_suffix; -+ ac_top_srcdir=$srcdir ;; -+ *) # Relative path. -+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix -+ ac_top_srcdir=$ac_top_builddir$srcdir ;; -+esac -+ -+# Do not use `cd foo && pwd` to compute absolute paths, because -+# the directories may not exist. -+case `pwd` in -+.) ac_abs_builddir="$ac_dir";; -+*) -+ case "$ac_dir" in -+ .) ac_abs_builddir=`pwd`;; -+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; -+ *) ac_abs_builddir=`pwd`/"$ac_dir";; -+ esac;; -+esac -+case $ac_abs_builddir in -+.) ac_abs_top_builddir=${ac_top_builddir}.;; -+*) -+ case ${ac_top_builddir}. in -+ .) ac_abs_top_builddir=$ac_abs_builddir;; -+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; -+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; -+ esac;; -+esac -+case $ac_abs_builddir in -+.) ac_abs_srcdir=$ac_srcdir;; -+*) -+ case $ac_srcdir in -+ .) ac_abs_srcdir=$ac_abs_builddir;; -+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; -+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; -+ esac;; -+esac -+case $ac_abs_builddir in -+.) ac_abs_top_srcdir=$ac_top_srcdir;; -+*) -+ case $ac_top_srcdir in -+ .) ac_abs_top_srcdir=$ac_abs_builddir;; -+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; -+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; -+ esac;; -+esac -+ -+ -+ { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -+echo "$as_me: executing $ac_dest commands" >&6;} -+ case $ac_dest in -+ depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do -+ # Strip MF so we end up with the name of the file. -+ mf=`echo "$mf" | sed -e 's/:.*$//'` -+ # Check whether this is an Automake generated Makefile or not. -+ # We used to match only the files named `Makefile.in', but -+ # some people rename them; so instead we look at the file content. -+ # Grep'ing the first line is not enough: some people post-process -+ # each Makefile.in and add a new line on top of each file to say so. -+ # So let's grep whole file. -+ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then -+ dirpart=`(dirname "$mf") 2>/dev/null || -+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$mf" : 'X\(//\)[^/]' \| \ -+ X"$mf" : 'X\(//\)$' \| \ -+ X"$mf" : 'X\(/\)' \| \ -+ . : '\(.\)' 2>/dev/null || -+echo X"$mf" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -+ /^X\(\/\/\)[^/].*/{ s//\1/; q; } -+ /^X\(\/\/\)$/{ s//\1/; q; } -+ /^X\(\/\).*/{ s//\1/; q; } -+ s/.*/./; q'` -+ else -+ continue -+ fi -+ grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue -+ # Extract the definition of DEP_FILES from the Makefile without -+ # running `make'. -+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` -+ test -z "$DEPDIR" && continue -+ # When using ansi2knr, U may be empty or an underscore; expand it -+ U=`sed -n 's/^U = //p' < "$mf"` -+ test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" -+ # We invoke sed twice because it is the simplest approach to -+ # changing $(DEPDIR) to its actual value in the expansion. -+ for file in `sed -n ' -+ /^DEP_FILES = .*\\\\$/ { -+ s/^DEP_FILES = // -+ :loop -+ s/\\\\$// -+ p -+ n -+ /\\\\$/ b loop -+ p -+ } -+ /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ -+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do -+ # Make sure the directory exists. -+ test -f "$dirpart/$file" && continue -+ fdir=`(dirname "$file") 2>/dev/null || -+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$file" : 'X\(//\)[^/]' \| \ -+ X"$file" : 'X\(//\)$' \| \ -+ X"$file" : 'X\(/\)' \| \ -+ . : '\(.\)' 2>/dev/null || -+echo X"$file" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -+ /^X\(\/\/\)[^/].*/{ s//\1/; q; } -+ /^X\(\/\/\)$/{ s//\1/; q; } -+ /^X\(\/\).*/{ s//\1/; q; } -+ s/.*/./; q'` -+ { if $as_mkdir_p; then -+ mkdir -p $dirpart/$fdir -+ else -+ as_dir=$dirpart/$fdir -+ as_dirs= -+ while test ! -d "$as_dir"; do -+ as_dirs="$as_dir $as_dirs" -+ as_dir=`(dirname "$as_dir") 2>/dev/null || -+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$as_dir" : 'X\(//\)[^/]' \| \ -+ X"$as_dir" : 'X\(//\)$' \| \ -+ X"$as_dir" : 'X\(/\)' \| \ -+ . : '\(.\)' 2>/dev/null || -+echo X"$as_dir" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -+ /^X\(\/\/\)[^/].*/{ s//\1/; q; } -+ /^X\(\/\/\)$/{ s//\1/; q; } -+ /^X\(\/\).*/{ s//\1/; q; } -+ s/.*/./; q'` -+ done -+ test ! -n "$as_dirs" || mkdir $as_dirs -+ fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 -+echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} -+ { (exit 1); exit 1; }; }; } -+ -+ # echo "creating $dirpart/$file" -+ echo '# dummy' > "$dirpart/$file" -+ done -+done -+ ;; -+ esac -+done -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<\_ACEOF -+ -+{ (exit 0); exit 0; } -+_ACEOF -+chmod +x $CONFIG_STATUS -+ac_clean_files=$ac_clean_files_save -+ -+ -+# configure is writing to config.log, and then calls config.status. -+# config.status does its own redirection, appending to config.log. -+# Unfortunately, on DOS this fails, as config.log is still kept open -+# by configure, so config.status won't be able to write to it; its -+# output is simply discarded. So we exec the FD to /dev/null, -+# effectively closing config.log, so it can be properly (re)opened and -+# appended to by config.status. When coming back to configure, we -+# need to make the FD available again. -+if test "$no_create" != yes; then -+ ac_cs_success=: -+ ac_config_status_args= -+ test "$silent" = yes && -+ ac_config_status_args="$ac_config_status_args --quiet" -+ exec 5>/dev/null -+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false -+ exec 5>>config.log -+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which -+ # would make configure fail if this is the last instruction. -+ $ac_cs_success || { (exit 1); exit 1; } -+fi -+ -diff --exclude CVS -urN genext2fs-1.3.orig/configure.in genext2fs/configure.in ---- genext2fs-1.3.orig/configure.in 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/configure.in 2001-05-02 12:20:05.000000000 -0600 -@@ -0,0 +1,5 @@ -+AC_INIT(genext2fs.c) -+AM_INIT_AUTOMAKE(genext2fs,1.3) -+AC_PROG_CC -+AC_PROG_INSTALL -+AC_OUTPUT(Makefile) -diff --exclude CVS -urN genext2fs-1.3.orig/debian/changelog genext2fs/debian/changelog ---- genext2fs-1.3.orig/debian/changelog 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/debian/changelog 2001-07-26 22:41:25.000000000 -0600 -@@ -0,0 +1,9 @@ -+genext2fs (1.3-1) unstable; urgency=low -+ -+ * Initial Release. (closes: #105263) -+ -+ -- David Kimdon <dwhedon@debian.org> Sat, 14 Jul 2001 13:24:49 -0700 -+ -+Local variables: -+mode: debian-changelog -+End: -diff --exclude CVS -urN genext2fs-1.3.orig/debian/control genext2fs/debian/control ---- genext2fs-1.3.orig/debian/control 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/debian/control 2001-07-16 18:01:00.000000000 -0600 -@@ -0,0 +1,19 @@ -+Source: genext2fs -+Section: admin -+Priority: optional -+Maintainer: David Kimdon <dwhedon@debian.org> -+Build-Depends: debhelper (>> 3.0.0) -+Standards-Version: 3.5.2 -+ -+Package: genext2fs -+Architecture: any -+Depends: ${shlibs:Depends} -+Description: ext2 filesystem generator for embedded systems -+ `genext2fs' is meant to generate an ext2 filesystem -+ as a normal (non-root) user. It doesn't require you to mount -+ the image file to copy files on it. It doesn't even require -+ you to be the superuser to make device nodes. -+ . -+ Warning ! `genext2fs' has been designed for embedded -+ systems. As such, it will generate a filesystem for single-user -+ usage: all files/directories/etc... will belong to UID/GID 0 -diff --exclude CVS -urN genext2fs-1.3.orig/debian/copyright genext2fs/debian/copyright ---- genext2fs-1.3.orig/debian/copyright 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/debian/copyright 2001-07-16 18:01:00.000000000 -0600 -@@ -0,0 +1,15 @@ -+This package was debianized by David Kimdon <dwhedon@debian.org> on -+Sat, 14 Jul 2001 13:24:49 -0700. -+ -+It was downloaded from http://freshmeat.net/projects/genext2fs/ -+Upstream Author(s): Xavier Bestel <xbestel@aplio.fr> -+ -+Copyright (C) 2000 Xavier Bestel <xavier.bestel@free.fr> -+ -+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; version -+2 of the License. -+ -+On Debian systems, the complete text of the GNU General Public -+License can be found in /usr/share/common-licenses/GPL file. -diff --exclude CVS -urN genext2fs-1.3.orig/debian/rules genext2fs/debian/rules ---- genext2fs-1.3.orig/debian/rules 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/debian/rules 2001-07-27 09:08:16.000000000 -0600 -@@ -0,0 +1,69 @@ -+#!/usr/bin/make -f -+# Sample debian/rules that uses debhelper. -+# GNU copyright 1997 to 1999 by Joey Hess. -+ -+# Uncomment this to turn on verbose mode. -+#export DH_VERBOSE=1 -+ -+# This is the debhelper compatability version to use. -+export DH_COMPAT=2 -+ -+configure: configure-stamp -+configure-stamp: -+ dh_testdir -+ # Add here commands to configure the package. -+ # ./configure --prefix=/usr --mandir=/usr/share/man/ -+ -+ touch configure-stamp -+ -+build: configure-stamp build-stamp -+build-stamp: -+ dh_testdir -+ -+ # Add here commands to compile the package. -+ $(MAKE) -+ -+ touch build-stamp -+ -+clean: -+ dh_testdir -+ dh_testroot -+ rm -f build-stamp configure-stamp -+ -+ # Add here commands to clean up after the build process. -+ -$(MAKE) clean -+ -+ dh_clean -+ -+install: build -+ dh_testdir -+ dh_testroot -+ dh_clean -k -+ dh_installdirs -+ -+ # Add here commands to install the package into debian/genext2fs. -+ $(MAKE) install DESTDIR=`pwd`/debian/genext2fs -+ -+ -+# Build architecture-independent files here. -+binary-indep: build install -+# We have nothing to do by default. -+ -+# Build architecture-dependent files here. -+binary-arch: build install -+ dh_testdir -+ dh_testroot -+ dh_installdocs -+ dh_installchangelogs -+ dh_link -+ dh_strip -+ dh_compress -+ dh_fixperms -+ dh_installdeb -+ dh_shlibdeps -+ dh_gencontrol -+ dh_md5sums -+ dh_builddeb -+ -+binary: binary-indep binary-arch -+.PHONY: build clean binary-indep binary-arch binary install configure -diff --exclude CVS -urN genext2fs-1.3.orig/depcomp genext2fs/depcomp ---- genext2fs-1.3.orig/depcomp 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/depcomp 2004-12-27 13:03:47.000000000 -0700 -@@ -0,0 +1,526 @@ -+#! /bin/sh -+# depcomp - compile a program generating dependencies as side-effects -+ -+scriptversion=2004-04-25.13 -+ -+# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 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. -+ -+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. -+ -+case $1 in -+ '') -+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2 -+ exit 1; -+ ;; -+ -h | --h*) -+ cat <<\EOF -+Usage: depcomp [--help] [--version] PROGRAM [ARGS] -+ -+Run PROGRAMS ARGS to compile a file, generating dependencies -+as side-effects. -+ -+Environment variables: -+ depmode Dependency tracking mode. -+ source Source file read by `PROGRAMS ARGS'. -+ object Object file output by `PROGRAMS ARGS'. -+ depfile Dependency file to output. -+ tmpdepfile Temporary file to use when outputing dependencies. -+ libtool Whether libtool is used (yes/no). -+ -+Report bugs to <bug-automake@gnu.org>. -+EOF -+ exit 0 -+ ;; -+ -v | --v*) -+ echo "depcomp $scriptversion" -+ exit 0 -+ ;; -+esac -+ -+if test -z "$depmode" || test -z "$source" || test -z "$object"; then -+ echo "depcomp: Variables source, object and depmode must be set" 1>&2 -+ exit 1 -+fi -+# `libtool' can also be set to `yes' or `no'. -+ -+if test -z "$depfile"; then -+ base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` -+ dir=`echo "$object" | sed 's,/.*$,/,'` -+ if test "$dir" = "$object"; then -+ dir= -+ fi -+ # FIXME: should be _deps on DOS. -+ depfile="$dir.deps/$base" -+fi -+ -+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} -+ -+rm -f "$tmpdepfile" -+ -+# Some modes work just like other modes, but use different flags. We -+# parameterize here, but still list the modes in the big case below, -+# to make depend.m4 easier to write. Note that we *cannot* use a case -+# here, because this file can only contain one case statement. -+if test "$depmode" = hp; then -+ # HP compiler uses -M and no extra arg. -+ gccflag=-M -+ depmode=gcc -+fi -+ -+if test "$depmode" = dashXmstdout; then -+ # This is just like dashmstdout with a different argument. -+ dashmflag=-xM -+ depmode=dashmstdout -+fi -+ -+case "$depmode" in -+gcc3) -+## gcc 3 implements dependency tracking that does exactly what -+## we want. Yay! Note: for some reason libtool 1.4 doesn't like -+## it if -MD -MP comes after the -MF stuff. Hmm. -+ "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" -+ stat=$? -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile" -+ exit $stat -+ fi -+ mv "$tmpdepfile" "$depfile" -+ ;; -+ -+gcc) -+## There are various ways to get dependency output from gcc. Here's -+## why we pick this rather obscure method: -+## - Don't want to use -MD because we'd like the dependencies to end -+## up in a subdir. Having to rename by hand is ugly. -+## (We might end up doing this anyway to support other compilers.) -+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -+## -MM, not -M (despite what the docs say). -+## - Using -M directly means running the compiler twice (even worse -+## than renaming). -+ if test -z "$gccflag"; then -+ gccflag=-MD, -+ fi -+ "$@" -Wp,"$gccflag$tmpdepfile" -+ stat=$? -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile" -+ exit $stat -+ fi -+ rm -f "$depfile" -+ echo "$object : \\" > "$depfile" -+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -+## The second -e expression handles DOS-style file names with drive letters. -+ sed -e 's/^[^:]*: / /' \ -+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -+## This next piece of magic avoids the `deleted header file' problem. -+## The problem is that when a header file which appears in a .P file -+## is deleted, the dependency causes make to die (because there is -+## typically no way to rebuild the header). We avoid this by adding -+## dummy dependencies for each header file. Too bad gcc doesn't do -+## this for us directly. -+ tr ' ' ' -+' < "$tmpdepfile" | -+## Some versions of gcc put a space before the `:'. On the theory -+## that the space means something, we add a space to the output as -+## well. -+## Some versions of the HPUX 10.20 sed can't process this invocation -+## correctly. Breaking it into two sed invocations is a workaround. -+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" -+ rm -f "$tmpdepfile" -+ ;; -+ -+hp) -+ # This case exists only to let depend.m4 do its work. It works by -+ # looking at the text of this script. This case will never be run, -+ # since it is checked for above. -+ exit 1 -+ ;; -+ -+sgi) -+ if test "$libtool" = yes; then -+ "$@" "-Wp,-MDupdate,$tmpdepfile" -+ else -+ "$@" -MDupdate "$tmpdepfile" -+ fi -+ stat=$? -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile" -+ exit $stat -+ fi -+ rm -f "$depfile" -+ -+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files -+ echo "$object : \\" > "$depfile" -+ -+ # Clip off the initial element (the dependent). Don't try to be -+ # clever and replace this with sed code, as IRIX sed won't handle -+ # lines with more than a fixed number of characters (4096 in -+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; -+ # the IRIX cc adds comments like `#:fec' to the end of the -+ # dependency line. -+ tr ' ' ' -+' < "$tmpdepfile" \ -+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ -+ tr ' -+' ' ' >> $depfile -+ echo >> $depfile -+ -+ # The second pass generates a dummy entry for each header file. -+ tr ' ' ' -+' < "$tmpdepfile" \ -+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ -+ >> $depfile -+ else -+ # The sourcefile does not contain any dependencies, so just -+ # store a dummy comment line, to avoid errors with the Makefile -+ # "include basename.Plo" scheme. -+ echo "#dummy" > "$depfile" -+ fi -+ rm -f "$tmpdepfile" -+ ;; -+ -+aix) -+ # The C for AIX Compiler uses -M and outputs the dependencies -+ # in a .u file. In older versions, this file always lives in the -+ # current directory. Also, the AIX compiler puts `$object:' at the -+ # start of each line; $object doesn't have directory information. -+ # Version 6 uses the directory in both cases. -+ stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` -+ tmpdepfile="$stripped.u" -+ if test "$libtool" = yes; then -+ "$@" -Wc,-M -+ else -+ "$@" -M -+ fi -+ stat=$? -+ -+ if test -f "$tmpdepfile"; then : -+ else -+ stripped=`echo "$stripped" | sed 's,^.*/,,'` -+ tmpdepfile="$stripped.u" -+ fi -+ -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile" -+ exit $stat -+ fi -+ -+ if test -f "$tmpdepfile"; then -+ outname="$stripped.o" -+ # Each line is of the form `foo.o: dependent.h'. -+ # Do two passes, one to just change these to -+ # `$object: dependent.h' and one to simply `dependent.h:'. -+ sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" -+ sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" -+ else -+ # The sourcefile does not contain any dependencies, so just -+ # store a dummy comment line, to avoid errors with the Makefile -+ # "include basename.Plo" scheme. -+ echo "#dummy" > "$depfile" -+ fi -+ rm -f "$tmpdepfile" -+ ;; -+ -+icc) -+ # Intel's C compiler understands `-MD -MF file'. However on -+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c -+ # ICC 7.0 will fill foo.d with something like -+ # foo.o: sub/foo.c -+ # foo.o: sub/foo.h -+ # which is wrong. We want: -+ # sub/foo.o: sub/foo.c -+ # sub/foo.o: sub/foo.h -+ # sub/foo.c: -+ # sub/foo.h: -+ # ICC 7.1 will output -+ # foo.o: sub/foo.c sub/foo.h -+ # and will wrap long lines using \ : -+ # foo.o: sub/foo.c ... \ -+ # sub/foo.h ... \ -+ # ... -+ -+ "$@" -MD -MF "$tmpdepfile" -+ stat=$? -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile" -+ exit $stat -+ fi -+ rm -f "$depfile" -+ # Each line is of the form `foo.o: dependent.h', -+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. -+ # Do two passes, one to just change these to -+ # `$object: dependent.h' and one to simply `dependent.h:'. -+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" -+ # Some versions of the HPUX 10.20 sed can't process this invocation -+ # correctly. Breaking it into two sed invocations is a workaround. -+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | -+ sed -e 's/$/ :/' >> "$depfile" -+ rm -f "$tmpdepfile" -+ ;; -+ -+tru64) -+ # The Tru64 compiler uses -MD to generate dependencies as a side -+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. -+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put -+ # dependencies in `foo.d' instead, so we check for that too. -+ # Subdirectories are respected. -+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` -+ test "x$dir" = "x$object" && dir= -+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` -+ -+ if test "$libtool" = yes; then -+ # Dependencies are output in .lo.d with libtool 1.4. -+ # They are output in .o.d with libtool 1.5. -+ tmpdepfile1="$dir.libs/$base.lo.d" -+ tmpdepfile2="$dir.libs/$base.o.d" -+ tmpdepfile3="$dir.libs/$base.d" -+ "$@" -Wc,-MD -+ else -+ tmpdepfile1="$dir$base.o.d" -+ tmpdepfile2="$dir$base.d" -+ tmpdepfile3="$dir$base.d" -+ "$@" -MD -+ fi -+ -+ stat=$? -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" -+ exit $stat -+ fi -+ -+ if test -f "$tmpdepfile1"; then -+ tmpdepfile="$tmpdepfile1" -+ elif test -f "$tmpdepfile2"; then -+ tmpdepfile="$tmpdepfile2" -+ else -+ tmpdepfile="$tmpdepfile3" -+ fi -+ if test -f "$tmpdepfile"; then -+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" -+ # That's a tab and a space in the []. -+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" -+ else -+ echo "#dummy" > "$depfile" -+ fi -+ rm -f "$tmpdepfile" -+ ;; -+ -+#nosideeffect) -+ # This comment above is used by automake to tell side-effect -+ # dependency tracking mechanisms from slower ones. -+ -+dashmstdout) -+ # Important note: in order to support this mode, a compiler *must* -+ # always write the preprocessed file to stdout, regardless of -o. -+ "$@" || exit $? -+ -+ # Remove the call to Libtool. -+ if test "$libtool" = yes; then -+ while test $1 != '--mode=compile'; do -+ shift -+ done -+ shift -+ fi -+ -+ # Remove `-o $object'. -+ IFS=" " -+ for arg -+ do -+ case $arg in -+ -o) -+ shift -+ ;; -+ $object) -+ shift -+ ;; -+ *) -+ set fnord "$@" "$arg" -+ shift # fnord -+ shift # $arg -+ ;; -+ esac -+ done -+ -+ test -z "$dashmflag" && dashmflag=-M -+ # Require at least two characters before searching for `:' -+ # in the target name. This is to cope with DOS-style filenames: -+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. -+ "$@" $dashmflag | -+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" -+ rm -f "$depfile" -+ cat < "$tmpdepfile" > "$depfile" -+ tr ' ' ' -+' < "$tmpdepfile" | \ -+## Some versions of the HPUX 10.20 sed can't process this invocation -+## correctly. Breaking it into two sed invocations is a workaround. -+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" -+ rm -f "$tmpdepfile" -+ ;; -+ -+dashXmstdout) -+ # This case only exists to satisfy depend.m4. It is never actually -+ # run, as this mode is specially recognized in the preamble. -+ exit 1 -+ ;; -+ -+makedepend) -+ "$@" || exit $? -+ # Remove any Libtool call -+ if test "$libtool" = yes; then -+ while test $1 != '--mode=compile'; do -+ shift -+ done -+ shift -+ fi -+ # X makedepend -+ shift -+ cleared=no -+ for arg in "$@"; do -+ case $cleared in -+ no) -+ set ""; shift -+ cleared=yes ;; -+ esac -+ case "$arg" in -+ -D*|-I*) -+ set fnord "$@" "$arg"; shift ;; -+ # Strip any option that makedepend may not understand. Remove -+ # the object too, otherwise makedepend will parse it as a source file. -+ -*|$object) -+ ;; -+ *) -+ set fnord "$@" "$arg"; shift ;; -+ esac -+ done -+ obj_suffix="`echo $object | sed 's/^.*\././'`" -+ touch "$tmpdepfile" -+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" -+ rm -f "$depfile" -+ cat < "$tmpdepfile" > "$depfile" -+ sed '1,2d' "$tmpdepfile" | tr ' ' ' -+' | \ -+## Some versions of the HPUX 10.20 sed can't process this invocation -+## correctly. Breaking it into two sed invocations is a workaround. -+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" -+ rm -f "$tmpdepfile" "$tmpdepfile".bak -+ ;; -+ -+cpp) -+ # Important note: in order to support this mode, a compiler *must* -+ # always write the preprocessed file to stdout. -+ "$@" || exit $? -+ -+ # Remove the call to Libtool. -+ if test "$libtool" = yes; then -+ while test $1 != '--mode=compile'; do -+ shift -+ done -+ shift -+ fi -+ -+ # Remove `-o $object'. -+ IFS=" " -+ for arg -+ do -+ case $arg in -+ -o) -+ shift -+ ;; -+ $object) -+ shift -+ ;; -+ *) -+ set fnord "$@" "$arg" -+ shift # fnord -+ shift # $arg -+ ;; -+ esac -+ done -+ -+ "$@" -E | -+ sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | -+ sed '$ s: \\$::' > "$tmpdepfile" -+ rm -f "$depfile" -+ echo "$object : \\" > "$depfile" -+ cat < "$tmpdepfile" >> "$depfile" -+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" -+ rm -f "$tmpdepfile" -+ ;; -+ -+msvisualcpp) -+ # Important note: in order to support this mode, a compiler *must* -+ # always write the preprocessed file to stdout, regardless of -o, -+ # because we must use -o when running libtool. -+ "$@" || exit $? -+ IFS=" " -+ for arg -+ do -+ case "$arg" in -+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") -+ set fnord "$@" -+ shift -+ shift -+ ;; -+ *) -+ set fnord "$@" "$arg" -+ shift -+ shift -+ ;; -+ esac -+ done -+ "$@" -E | -+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" -+ rm -f "$depfile" -+ echo "$object : \\" > "$depfile" -+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" -+ echo " " >> "$depfile" -+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" -+ rm -f "$tmpdepfile" -+ ;; -+ -+none) -+ exec "$@" -+ ;; -+ -+*) -+ echo "Unknown depmode $depmode" 1>&2 -+ exit 1 -+ ;; -+esac -+ -+exit 0 -+ -+# Local Variables: -+# mode: shell-script -+# sh-indentation: 2 -+# eval: (add-hook 'write-file-hooks 'time-stamp) -+# time-stamp-start: "scriptversion=" -+# time-stamp-format: "%:y-%02m-%02d.%02H" -+# time-stamp-end: "$" -+# End: -diff --exclude CVS -urN genext2fs-1.3.orig/dev.txt genext2fs/dev.txt ---- genext2fs-1.3.orig/dev.txt 2000-09-28 09:03:19.000000000 -0600 -+++ genext2fs/dev.txt 1969-12-31 17:00:00.000000000 -0700 -@@ -1,94 +0,0 @@ --drwx /dev --crw- 10,190 /dev/lcd --crw- 10,191 /dev/splc781 --crw- 4,0 /dev/console --crw- 5,64 /dev/cua0 --crw- 5,65 /dev/cua1 --crw- 5,66 /dev/cua2 --crw- 5,70 /dev/cua6 --crw- 5,71 /dev/cua7 --crw- 5,72 /dev/cua8 --crw- 5,73 /dev/cua9 --crw- 29,0 /dev/fb0 --crw- 29,32 /dev/fb1 --crw- 1,2 /dev/kmem --crw- 1,1 /dev/mem --crw- 1,3 /dev/null --crw- 2,2 /dev/ptyp2 --crw- 2,3 /dev/ptyp3 --crw- 2,5 /dev/ptyp5 --crw- 2,4 /dev/ptyp4 --crw- 10,178 /dev/triokb --crw- 2,0 /dev/ptyp0 --crw- 2,6 /dev/ptyp6 --crw- 2,7 /dev/ptyp7 --crw- 2,8 /dev/ptyp8 --crw- 2,9 /dev/ptyp9 --crw- 2,10 /dev/ptypa --crw- 2,11 /dev/ptypb --crw- 2,12 /dev/ptypc --crw- 2,13 /dev/ptypd --crw- 2,14 /dev/ptype --crw- 2,15 /dev/ptypf --brw- 1,0 /dev/ram0 --brw- 1,1 /dev/ram1 --brw- 1,2 /dev/ram2 --brw- 1,3 /dev/ram3 --br-- 31,0 /dev/rom0 --brw- 31,1 /dev/rom1 --brw- 31,2 /dev/rom2 --brw- 31,3 /dev/rom3 --crw- 5,0 /dev/tty --crw- 4,0 /dev/tty0 --crwx 4,1 /dev/tty1 --crwx 4,2 /dev/tty2 --crwx 4,3 /dev/tty3 --crwx 4,4 /dev/tty4 --crw- 4,5 /dev/tty5 --crwx 4,6 /dev/tty6 --crw- 4,7 /dev/tty7 --crw- 4,8 /dev/tty8 --crw- 4,9 /dev/tty9 --crw- 4,64 /dev/ttyS0 --crw- 4,65 /dev/ttyS1 --crw- 4,66 /dev/ttyS2 --crw- 4,67 /dev/ttyS3 --crw- 4,68 /dev/ttyS4 --crw- 4,69 /dev/ttyS5 --crw- 4,70 /dev/ttyS6 --crw- 4,71 /dev/ttyS7 --crw- 4,72 /dev/ttyS8 --crw- 4,73 /dev/ttyS9 --crw- 3,0 /dev/ttyp0 --crw- 3,1 /dev/ttyp1 --crw- 3,2 /dev/ttyp2 --crw- 3,3 /dev/ttyp3 --crw- 3,4 /dev/ttyp4 --crw- 3,5 /dev/ttyp5 --crw- 3,6 /dev/ttyp6 --crw- 3,7 /dev/ttyp7 --crw- 3,8 /dev/ttyp8 --crw- 3,9 /dev/ttyp9 --crw- 3,10 /dev/ttypa --crw- 3,11 /dev/ttypb --crw- 3,12 /dev/ttypc --crw- 3,13 /dev/ttypd --crw- 3,14 /dev/ttype --crw- 3,15 /dev/ttypf --crw- 1,5 /dev/zero --crwx 10,111 /dev/dtedrv --crwx 4,110 /dev/ttyM --crw- 77,1 /dev/tssnd --crw- 77,2 /dev/tstone --crw- 2,1 /dev/ptyp1 --crwx 10,180 /dev/triohook --crw- 90,0 /dev/mtd0 --brw- 44,0 /dev/ftl0 --crw- 10,175 /dev/tporta --crw- 10,176 /dev/tportb --crwx 10,100 /dev/softmodem --crwx 10,101 /dev/softmodem_signals --crwx 10,181 /dev/triovoice --crw- 5,67 /dev/cua3 --crw- 5,68 /dev/cua4 --crw- 5,69 /dev/cua5 -diff --exclude CVS -urN genext2fs-1.3.orig/device_table.txt genext2fs/device_table.txt ---- genext2fs-1.3.orig/device_table.txt 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/device_table.txt 2004-10-24 02:43:50.000000000 -0600 -@@ -0,0 +1,129 @@ -+# When building a target filesystem, it is desirable to not have to -+# become root and then run 'mknod' a thousand times. Using a device -+# table you can create device nodes and directories "on the fly". -+# -+# This is a sample device table file for use with genext2fs. You can -+# do all sorts of interesting things with a device table file. For -+# example, if you want to adjust the permissions on a particular file -+# you can just add an entry like: -+# /sbin/foobar f 2755 0 0 - - - - - -+# and (assuming the file /sbin/foobar exists) it will be made setuid -+# root (regardless of what its permissions are on the host filesystem. -+# Furthermore, you can use a single table entry to create a many device -+# minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15] -+# I could just use the following two table entries: -+# /dev/hda b 640 0 0 3 0 0 0 - -+# /dev/hda b 640 0 0 3 1 1 1 15 -+# -+# Device table entries take the form of: -+# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count> -+# where name is the file name, type can be one of: -+# f A regular file -+# d Directory -+# c Character special device file -+# b Block special device file -+# p Fifo (named pipe) -+# uid is the user id for the target file, gid is the group id for the -+# target file. The rest of the entries (major, minor, etc) apply only -+# to device special files. -+ -+# Have fun -+# -Erik Andersen <andersen@codepoet.org> -+# -+ -+#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count> -+/dev d 755 0 0 - - - - - -+/dev/mem c 640 0 0 1 1 0 0 - -+/dev/kmem c 640 0 0 1 2 0 0 - -+/dev/null c 640 0 0 1 3 0 0 - -+/dev/zero c 640 0 0 1 5 0 0 - -+/dev/random c 640 0 0 1 8 0 0 - -+/dev/urandom c 640 0 0 1 9 0 0 - -+/dev/tty c 666 0 0 5 0 0 0 - -+/dev/tty c 666 0 0 4 0 0 1 6 -+/dev/console c 640 0 0 5 1 0 0 - -+/dev/ram b 640 0 0 1 1 0 0 - -+/dev/ram b 640 0 0 1 0 0 1 4 -+/dev/loop b 640 0 0 7 0 0 1 2 -+/dev/ptmx c 666 0 0 5 2 0 0 - -+#/dev/ttyS c 640 0 0 4 64 0 1 4 -+#/dev/psaux c 640 0 0 10 1 0 0 - -+#/dev/rtc c 640 0 0 10 135 0 0 - -+ -+# Adjust permissions on some normal files -+#/etc/shadow f 600 0 0 - - - - - -+#/bin/tinylogin f 4755 0 0 - - - - - -+ -+# User-mode Linux stuff -+/dev/ubda b 640 0 0 98 0 0 0 - -+/dev/ubda b 640 0 0 98 1 1 1 15 -+ -+# IDE Devices -+/dev/hda b 640 0 0 3 0 0 0 - -+/dev/hda b 640 0 0 3 1 1 1 15 -+/dev/hdb b 640 0 0 3 64 0 0 - -+/dev/hdb b 640 0 0 3 65 1 1 15 -+#/dev/hdc b 640 0 0 22 0 0 0 - -+#/dev/hdc b 640 0 0 22 1 1 1 15 -+#/dev/hdd b 640 0 0 22 64 0 0 - -+#/dev/hdd b 640 0 0 22 65 1 1 15 -+#/dev/hde b 640 0 0 33 0 0 0 - -+#/dev/hde b 640 0 0 33 1 1 1 15 -+#/dev/hdf b 640 0 0 33 64 0 0 - -+#/dev/hdf b 640 0 0 33 65 1 1 15 -+#/dev/hdg b 640 0 0 34 0 0 0 - -+#/dev/hdg b 640 0 0 34 1 1 1 15 -+#/dev/hdh b 640 0 0 34 64 0 0 - -+#/dev/hdh b 640 0 0 34 65 1 1 15 -+ -+# SCSI Devices -+#/dev/sda b 640 0 0 8 0 0 0 - -+#/dev/sda b 640 0 0 8 1 1 1 15 -+#/dev/sdb b 640 0 0 8 16 0 0 - -+#/dev/sdb b 640 0 0 8 17 1 1 15 -+#/dev/sdc b 640 0 0 8 32 0 0 - -+#/dev/sdc b 640 0 0 8 33 1 1 15 -+#/dev/sdd b 640 0 0 8 48 0 0 - -+#/dev/sdd b 640 0 0 8 49 1 1 15 -+#/dev/sde b 640 0 0 8 64 0 0 - -+#/dev/sde b 640 0 0 8 65 1 1 15 -+#/dev/sdf b 640 0 0 8 80 0 0 - -+#/dev/sdf b 640 0 0 8 81 1 1 15 -+#/dev/sdg b 640 0 0 8 96 0 0 - -+#/dev/sdg b 640 0 0 8 97 1 1 15 -+#/dev/sdh b 640 0 0 8 112 0 0 - -+#/dev/sdh b 640 0 0 8 113 1 1 15 -+#/dev/sg c 640 0 0 21 0 0 1 15 -+#/dev/scd b 640 0 0 11 0 0 1 15 -+#/dev/st c 640 0 0 9 0 0 1 8 -+#/dev/nst c 640 0 0 9 128 0 1 8 -+#/dev/st c 640 0 0 9 32 1 1 4 -+#/dev/st c 640 0 0 9 64 1 1 4 -+#/dev/st c 640 0 0 9 96 1 1 4 -+ -+# Floppy disk devices -+#/dev/fd b 640 0 0 2 0 0 1 2 -+#/dev/fd0d360 b 640 0 0 2 4 0 0 - -+#/dev/fd1d360 b 640 0 0 2 5 0 0 - -+#/dev/fd0h1200 b 640 0 0 2 8 0 0 - -+#/dev/fd1h1200 b 640 0 0 2 9 0 0 - -+#/dev/fd0u1440 b 640 0 0 2 28 0 0 - -+#/dev/fd1u1440 b 640 0 0 2 29 0 0 - -+#/dev/fd0u2880 b 640 0 0 2 32 0 0 - -+#/dev/fd1u2880 b 640 0 0 2 33 0 0 - -+ -+# All the proprietary cdrom devices in the world -+#/dev/aztcd b 640 0 0 29 0 0 0 - -+#/dev/bpcd b 640 0 0 41 0 0 0 - -+#/dev/capi20 c 640 0 0 68 0 0 1 2 -+#/dev/cdu31a b 640 0 0 15 0 0 0 - -+#/dev/cdu535 b 640 0 0 24 0 0 0 - -+#/dev/cm206cd b 640 0 0 32 0 0 0 - -+#/dev/sjcd b 640 0 0 18 0 0 0 - -+#/dev/sonycd b 640 0 0 15 0 0 0 - -+#/dev/gscd b 640 0 0 16 0 0 0 - -+#/dev/sbpcd b 640 0 0 25 0 0 0 - -+#/dev/sbpcd b 640 0 0 25 0 0 1 4 -+#/dev/mcd b 640 0 0 23 0 0 0 - -+#/dev/optcd b 640 0 0 17 0 0 0 - -+ -diff --exclude CVS -urN genext2fs-1.3.orig/genext2fs.8 genext2fs/genext2fs.8 ---- genext2fs-1.3.orig/genext2fs.8 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/genext2fs.8 2004-10-24 02:43:50.000000000 -0600 -@@ -0,0 +1,129 @@ -+.\" Hey, EMACS: -*- nroff -*- -+.\" First parameter, NAME, should be all caps -+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection -+.\" other parameters are allowed: see man(7), man(1) -+.TH GENEXT2FS 8 "July 14, 2001" -+.\" Please adjust this date whenever revising the manpage. -+.\" -+.\" Some roff macros, for reference: -+.\" .nh disable hyphenation -+.\" .hy enable hyphenation -+.\" .ad l left justify -+.\" .ad b justify to both left and right margins -+.\" .nf disable filling -+.\" .fi enable filling -+.\" .br insert line break -+.\" .sp <n> insert n+1 empty lines -+.\" for manpage-specific macros, see man(7) -+.SH NAME -+genext2fs \- ext2 filesystem generator for embedded systems -+.SH SYNOPSIS -+.B genext2fs -+.RI [ options ] " image" -+.SH DESCRIPTION -+\fBgenext2fs\fP generates an ext2 filesystem -+as a normal (non-root) user. It doesn't require you to mount -+the image file to copy files on it. It doesn't even require -+you to be the superuser to make device nodes. -+.SH WARNING -+\fBgenext2fs\fP has been designed for embedded -+systems. As such, it will generate a filesystem for single-user -+usage: all files/directories/etc... will belong to UID/GID 0 -+.SH OPTIONS -+.TP -+.BI -x \ image -+Use this image as a starting point -+.TP -+.BI -d \ directory -+Add this directory as source -+.TP -+.BI -f \ FILE -+.TP -+.BI -D \ FILE -+Uses the named FILE as a device table file, to create device -+nodes and directories "on the fly". -+.TP -+.BI -b \ blocks -+Size in blocks -+.TP -+.BI -i \ inodes -+Number of inodes -+.TP -+.BI -r \ reserved -+Number of reserved blocks -+.TP -+.BI -g \ path -+Generate a block map file for this path -+.TP -+.BI -e \ value -+Fill unallocated blocks with value -+.TP -+.BI -z -+Make files with holes -+.TP -+.BI -U -+Squash owners making all files be owned by root -+.TP -+.BI -P -+Squash permissions on all files -+.TP -+.BI -q -+Squash permissions and owners (same as -P -U) -+.TP -+.BI -v -+Print resulting filesystem structure -+.TP -+.BI -h -+Display help -+.TP -+.SH EXAMPLES -+ -+.EX -+.B -+ genext2fs -b 1440 -d src /dev/fd0 -+.EE -+ -+All files in the -+.I src -+directory will be written to -+.B /dev/fd0 -+as a new ext2 filesystem image. You can then mount the floppy as -+usual. -+ -+.EX -+.B -+ genext2fs -b 1024 -d src -D device_table.txt flashdisk.img -+.EE -+ -+This example builds a filesystem from all the files in -+.I src -+, then device nodes are created based on the content the device_table file -+.I dev.txt. -+An example device file follows: -+ -+.EX -+ #<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count> -+ /dev d 755 0 0 - - - - - -+ /dev/mem c 640 0 0 1 1 0 0 - -+ /dev/tty c 666 0 0 5 0 0 0 - -+ /dev/tty c 666 0 0 4 0 0 1 6 -+ /dev/loop b 640 0 0 7 0 0 1 2 -+ /dev/hda b 640 0 0 3 0 0 0 - -+ /dev/hda b 640 0 0 3 1 1 1 16 -+.EE -+ -+This device table creates the /dev directory, a character device -+node /dev/mem (major 1, minor 1), it also creates /dev/tty, -+/dev/tty[0-5], /dev/loop[0-1], /dev/hda, and /dev/hda0 to /dev/hda15 -+.SH BUGS -+\fBgenext2fs\fP does not support hard links. Hard links present in the input -+tree will be represented as separate files in the ext2 image. -+ -+.SH SEE ALSO -+.BR mkfs (8), -+.BR genromfs (8), -+.BR mkisofs (8). -+.br -+.SH AUTHOR -+This manual page was written by David Kimdon <dwhedon@debian.org>, -+for the Debian GNU/Linux system (but may be used by others). -diff --exclude CVS -urN genext2fs-1.3.orig/genext2fs.c genext2fs/genext2fs.c ---- genext2fs-1.3.orig/genext2fs.c 2001-06-18 02:11:32.000000000 -0600 -+++ genext2fs/genext2fs.c 2004-12-08 04:51:42.000000000 -0700 -@@ -1,8 +1,14 @@ -+/* vi: set sw=8 ts=8: */ - // genext2fs.c - // - // ext2 filesystem generator for embedded systems - // Copyright (C) 2000 Xavier Bestel <xavier.bestel@free.fr> - // -+// 'du' portions taken from coreutils/du.c in busybox: -+// Copyright (C) 1999,2000 by Lineo, inc. and John Beppu -+// Copyright (C) 1999,2000,2001 by John Beppu <beppu@codepoet.org> -+// Copyright (C) 2002 Edward Betts <edward@debian.org> -+// - // 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; version -@@ -26,6 +32,23 @@ - // Bugfix: getcwd values for Solaris xavier.gueguen@col.bsf.alcatel.fr - // Bugfix: ANSI scanf for non-GNU C xavier.gueguen@col.bsf.alcatel.fr - // 28 Jun 2001 Bugfix: getcwd differs for Solaris/GNU mike@sowbug.com -+// 8 Mar 2002 Bugfix: endianness swap of x-indirects -+// 23 Mar 2002 Bugfix: test for IFCHR or IFBLK was flawed -+// 10 Oct 2002 Added comments,makefile targets, vsundar@ixiacom.com -+// endianess swap assert check. -+// Copyright (C) 2002 Ixia communications -+// 12 Oct 2002 Added support for triple indirection vsundar@ixiacom.com -+// Copyright (C) 2002 Ixia communications -+// 14 Oct 2002 Added support for groups vsundar@ixiacom.com -+// Copyright (C) 2002 Ixia communications -+// 5 Jan 2003 Bugfixes: reserved inodes should be set vsundar@usc.edu -+// only in the first group; directory names -+// need to be null padded at the end; and -+// number of blocks per group should be a -+// multiple of 8. Updated md5 values. -+// 6 Jan 2003 Erik Andersen <andersee@debian.org> added -+// mkfs.jffs2 compatible device table support, -+// along with -q, -P, -U - - - // `genext2fs' is a mean to generate an ext2 filesystem -@@ -33,10 +56,6 @@ - // the image file to copy files on it. It doesn't even require - // you to be the superuser to make device nodes. - // --// Warning ! `genext2fs' has been designed for embedded --// systems. As such, it will generate a filesystem for single-user --// usage: all files/directories/etc... will belong to UID/GID 0 --// - // Example usage: - // - // # genext2fs -b 1440 -d srcdir /dev/fd0 -@@ -45,41 +64,131 @@ - // a new ext2 filesystem image. You can then mount the floppy as - // usual. - // --// # genext2fs -b 1024 -d builddir -f devices.txt flashdisk.img -+// # genext2fs -b 1024 -d builddir -D device_table.txt flashdisk.img - // - // This one would build a filesystem from all the files in builddir, --// then would read a devices list and make apropriate nodes. The --// format for the device list is: --// --// drwx /dev --// crw- 10,190 /dev/lcd --// brw- 1,0 /dev/ram0 --// --// This device list builds the /dev directory, a character device --// node /dev/lcd (major 10, minor 190) and a block device node --// /dev/ram0 (major 1, minor 0) -- -+// then would read the device_table.txt file and make apropriate nodes. -+// The format for the device table file is covered in detail in the sample -+// device_table.txt file provided with the genext2fs source. - -+#define _GNU_SOURCE - #include <stdio.h> - #include <stdlib.h> - #include <string.h> - #include <dirent.h> -+#include <libgen.h> - #include <stdarg.h> - #include <unistd.h> - #include <sys/stat.h> -+#include <assert.h> -+#include <time.h> -+#include <ctype.h> -+#include <errno.h> -+#include <fcntl.h> -+#include <sys/types.h> -+#include <getopt.h> -+ -+struct stats { -+ unsigned long nblocks; -+ unsigned long ninodes; -+}; -+ -+#if 0 -+#define HASH_SIZE 311 /* Should be prime */ -+#define hash_inode(i) ((i) % HASH_SIZE) -+ -+typedef struct ino_dev_hash_bucket_struct { -+ struct ino_dev_hash_bucket_struct *next; -+ ino_t ino; -+ dev_t dev; -+ char name[1]; -+} ino_dev_hashtable_bucket_t; -+ -+static ino_dev_hashtable_bucket_t *ino_dev_hashtable[HASH_SIZE]; -+ -+static int is_in_ino_dev_hashtable(const struct stat *statbuf, char **name) -+{ -+ ino_dev_hashtable_bucket_t *bucket; -+ -+ bucket = ino_dev_hashtable[hash_inode(statbuf->st_ino)]; -+ while (bucket != NULL) { -+ if ((bucket->ino == statbuf->st_ino) && -+ (bucket->dev == statbuf->st_dev)) -+ { -+ if (name) *name = bucket->name; -+ return 1; -+ } -+ bucket = bucket->next; -+ } -+ return 0; -+} - -+/* Add statbuf to statbuf hash table */ -+static void add_to_ino_dev_hashtable(const struct stat *statbuf, const char *name) -+{ -+ int i; -+ size_t s; -+ ino_dev_hashtable_bucket_t *bucket; -+ -+ i = hash_inode(statbuf->st_ino); -+ s = name ? strlen(name) : 0; -+ bucket = malloc(sizeof(ino_dev_hashtable_bucket_t) + s); -+ bucket->ino = statbuf->st_ino; -+ bucket->dev = statbuf->st_dev; -+ if (name) -+ strcpy(bucket->name, name); -+ else -+ bucket->name[0] = '\0'; -+ bucket->next = ino_dev_hashtable[i]; -+ ino_dev_hashtable[i] = bucket; -+} - -+/* Clear statbuf hash table */ -+static void reset_ino_dev_hashtable(void) -+{ -+ int i; -+ ino_dev_hashtable_bucket_t *bucket; - -+ for (i = 0; i < HASH_SIZE; i++) { -+ while (ino_dev_hashtable[i] != NULL) { -+ bucket = ino_dev_hashtable[i]->next; -+ free(ino_dev_hashtable[i]); -+ ino_dev_hashtable[i] = bucket; -+ } -+ } -+} -+ -+static int count_ino_in_hashtable(void) -+{ -+ long count = 0; -+ int i; -+ -+ for (i = 0; i < HASH_SIZE; i++) { -+ ino_dev_hashtable_bucket_t *bucket = ino_dev_hashtable[i]; -+ while (bucket != NULL) { -+ count++; -+ bucket = bucket->next; -+ } -+ } -+ -+ return count; -+} -+#endif - - // block size - - #define BLOCKSIZE 1024 - #define BLOCKS_PER_GROUP 8192 - #define BYTES_PER_INODE (8*BLOCKSIZE) --#define RESERVED_INODES 5/100 -+/* Percentage of blocks that are reserved.*/ -+#define RESERVED_BLOCKS 5/100 -+#define MAX_RESERVED_BLOCKS 25/100 - - - // inode block size (why is it != BLOCKSIZE ?!?) -+/* The field i_blocks in the ext2 inode stores the number of data blocks -+ but in terms of 512 bytes. That is what INODE_BLOCKSIZE represents. -+ INOBLK is the number of such blocks in an actual disk block */ - - #define INODE_BLOCKSIZE 512 - #define INOBLK (BLOCKSIZE / INODE_BLOCKSIZE) -@@ -115,18 +224,20 @@ - // file modes - - #define FM_IFMT 0xF000 // format mask --#define FM_IFLNK 0xA000 // socket --#define FM_IFSOCK 0xC000 // symbolic link -+#define FM_IFLNK 0xA000 // symbolic link -+#define FM_IFSOCK 0xC000 // socket - #define FM_IFREG 0x8000 // regular file - #define FM_IFBLK 0x6000 // block device - #define FM_IFDIR 0x4000 // directory - #define FM_IFCHR 0x2000 // character device - #define FM_IFIFO 0x1000 // fifo - -+#define FM_IMASK 0x0FFF // all perms - #define FM_ISUID 0x0800 // SUID - #define FM_ISGID 0x0400 // SGID - #define FM_ISVTX 0x0200 // sticky bit - -+ - #define FM_IRWXU 0x01C0 // user mask - #define FM_IRUSR 0x0100 // read - #define FM_IWUSR 0x0080 // write -@@ -147,6 +258,39 @@ - - #define OP_HOLES 0x01 // make files with holes - -+/* Defines for accessing group details */ -+ -+// Number of groups in the filesystem -+#define GRP_NBGROUPS(fs) (((fs)->sb.s_blocks_count+(fs)->sb.s_blocks_per_group-1)/(fs)->sb.s_blocks_per_group) -+ -+// Get group block bitmap (bbm) given the group number -+#define GRP_GET_GROUP_BBM(fs,grp) ( get_blk((fs),(fs)->gd[(grp)].bg_block_bitmap) ) -+ -+// Get group inode bitmap (ibm) given the group number -+#define GRP_GET_GROUP_IBM(fs,grp) ( get_blk((fs),(fs)->gd[(grp)].bg_inode_bitmap) ) -+ -+// Given an inode number find the group it belongs to -+#define GRP_GROUP_OF_INODE(fs,nod) ( ((nod)-1) / (fs)->sb.s_inodes_per_group) -+ -+//Given an inode number get the inode bitmap that covers it -+#define GRP_GET_INODE_BITMAP(fs,nod) \ -+ ( GRP_GET_GROUP_IBM((fs),GRP_GROUP_OF_INODE((fs),(nod))) ) -+ -+//Given an inode number find its offset within the inode bitmap that covers it -+#define GRP_IBM_OFFSET(fs,nod) \ -+ ( (nod) - GRP_GROUP_OF_INODE((fs),(nod))*(fs)->sb.s_inodes_per_group ) -+ -+// Given a block number find the group it belongs to -+#define GRP_GROUP_OF_BLOCK(fs,blk) ( ((blk)-1) / (fs)->sb.s_blocks_per_group) -+ -+//Given a block number get the block bitmap that covers it -+#define GRP_GET_BLOCK_BITMAP(fs,blk) \ -+ ( GRP_GET_GROUP_BBM((fs),GRP_GROUP_OF_BLOCK((fs),(blk))) ) -+ -+//Given a block number find its offset within the block bitmap that covers it -+#define GRP_BBM_OFFSET(fs,blk) \ -+ ( (blk) - GRP_GROUP_OF_BLOCK((fs),(blk))*(fs)->sb.s_blocks_per_group ) -+ - - // used types - -@@ -176,7 +320,7 @@ - #define SCANF_PREFIX "511" - #define SCANF_STRING(s) (s = malloc(512)) - #define GETCWD_SIZE -1 --inline int snprintf(char *str, size_t n, const char *fmt, ...) -+static inline int snprintf(char *str, size_t n, const char *fmt, ...) - { - int ret; - va_list ap; -@@ -190,12 +334,12 @@ - - // endianness swap - --inline uint16 swab16(uint16 val) -+static inline uint16 swab16(uint16 val) - { - return (val >> 8) | (val << 8); - } - --inline uint32 swab32(uint32 val) -+static inline uint32 swab32(uint32 val) - { - return ((val>>24) | ((val>>8)&0xFF00) | - ((val<<8)&0xFF0000) | (val<<24)); -@@ -287,7 +431,6 @@ - { - groupdescriptor_decl - uint32 bg_reserved[3]; -- uint32 bg_pad_to_bk[(BLOCKSIZE-32)/sizeof(uint32)]; - } groupdescriptor; - - typedef struct -@@ -304,6 +447,32 @@ - - typedef uint8 block[BLOCKSIZE]; - -+/* blockwalker fields: -+ The blockwalker is used to access all the blocks of a file (including -+ the indirection blocks) through repeated calls to walk_bw. -+ -+ bpdir -> index into the inode->i_block[]. Indicates level of indirection. -+ bnum -> total number of blocks so far accessed. including indirection -+ blocks. -+ bpind,bpdind,bptind -> index into indirection blocks. -+ -+ bpind, bpdind, bptind do *NOT* index into single, double and triple -+ indirect blocks resp. as you might expect from their names. Instead -+ they are in order the 1st, 2nd & 3rd index to be used -+ -+ As an example.. -+ To access data block number 70000: -+ bpdir: 15 (we are doing triple indirection) -+ bpind: 0 ( index into the triple indirection block) -+ bpdind: 16 ( index into the double indirection block) -+ bptind: 99 ( index into the single indirection block) -+ 70000 = 12 + 256 + 256*256 + 16*256 + 100 (indexing starts from zero) -+ -+ So,for double indirection bpind will index into the double indirection -+ block and bpdind into the single indirection block. For single indirection -+ only bpind will be used. -+*/ -+ - typedef struct - { - uint32 bnum; -@@ -313,15 +482,14 @@ - uint32 bptind; - } blockwalker; - -+ -+/* Filesystem structure that support groups */ - #if BLOCKSIZE == 1024 - typedef struct - { -- block zero; // The famous block 0 -- superblock sb; // The superblock -- groupdescriptor gd; // The group desciptor -- block bbm; // The block bitmap -- block ibm; // The inode bitmap -- inode itab[0]; // The inode table -+ block zero; // The famous block 0 -+ superblock sb; // The superblock -+ groupdescriptor gd[0]; // The group descriptors - } filesystem; - #else - #error UNHANDLED BLOCKSIZE -@@ -345,35 +513,35 @@ - #define udecl32(x) this->x = swab32(this->x); - #define utdecl32(x,n) { int i; for(i=0; i<n; i++) this->x[i] = swab32(this->x[i]); } - --void swap_sb(superblock *sb) -+static void swap_sb(superblock *sb) - { - #define this sb - superblock_decl - #undef this - } - --void swap_gd(groupdescriptor *gd) -+static void swap_gd(groupdescriptor *gd) - { - #define this gd - groupdescriptor_decl - #undef this - } - --void swap_nod(inode *nod) -+static void swap_nod(inode *nod) - { - #define this nod - inode_decl - #undef this - } - --void swap_dir(directory *dir) -+static void swap_dir(directory *dir) - { - #define this dir - directory_decl - #undef this - } - --void swap_block(block b) -+static void swap_block(block b) - { - int i; - uint32 *blk = (uint32*)b; -@@ -389,67 +557,158 @@ - #undef udecl32 - #undef utdecl32 - --char * argv0; -+static char * app_name; -+static const char *const memory_exhausted = "memory exhausted"; - - // error (un)handling --inline void errexit(const char *fmt, ...) -+static void verror_msg(const char *s, va_list p) - { -- va_list ap; -- fprintf(stderr, "%s: ", argv0); -- va_start(ap, fmt); -- vfprintf(stderr, fmt, ap); -- va_end(ap); -- fprintf(stderr, "\n"); -- exit(1); -+ fflush(stdout); -+ fprintf(stderr, "%s: ", app_name); -+ vfprintf(stderr, s, p); -+} -+static void error_msg(const char *s, ...) -+{ -+ va_list p; -+ va_start(p, s); -+ verror_msg(s, p); -+ va_end(p); -+ putc('\n', stderr); -+} -+ -+static void error_msg_and_die(const char *s, ...) -+{ -+ va_list p; -+ va_start(p, s); -+ verror_msg(s, p); -+ va_end(p); -+ putc('\n', stderr); -+ exit(EXIT_FAILURE); -+} -+ -+static void vperror_msg(const char *s, va_list p) -+{ -+ int err = errno; -+ if (s == 0) -+ s = ""; -+ verror_msg(s, p); -+ if (*s) -+ s = ": "; -+ fprintf(stderr, "%s%s\n", s, strerror(err)); -+} -+#if 0 -+static void perror_msg(const char *s, ...) -+{ -+ va_list p; -+ va_start(p, s); -+ vperror_msg(s, p); -+ va_end(p); -+} -+#endif -+static void perror_msg_and_die(const char *s, ...) -+{ -+ va_list p; -+ va_start(p, s); -+ vperror_msg(s, p); -+ va_end(p); -+ exit(EXIT_FAILURE); -+} -+ -+static FILE *xfopen(const char *path, const char *mode) -+{ -+ FILE *fp; -+ if ((fp = fopen(path, mode)) == NULL) -+ perror_msg_and_die("%s", path); -+ return fp; -+} -+ -+static char *xstrdup(const char *s) -+{ -+ char *t; -+ -+ if (s == NULL) -+ return NULL; -+ t = strdup(s); -+ if (t == NULL) -+ error_msg_and_die(memory_exhausted); -+ return t; - } - --inline void pexit(const char * fname) -+static void *xrealloc(void *ptr, size_t size) - { -- fprintf(stderr, "%s: ", argv0); -- perror(fname); -- exit(1); -+ ptr = realloc(ptr, size); -+ if (ptr == NULL && size != 0) -+ error_msg_and_die(memory_exhausted); -+ return ptr; -+} -+ -+static char *xreadlink(const char *path) -+{ -+ static const int GROWBY = 80; /* how large we will grow strings by */ -+ -+ char *buf = NULL; -+ int bufsize = 0, readsize = 0; -+ -+ do { -+ buf = xrealloc(buf, bufsize += GROWBY); -+ readsize = readlink(path, buf, bufsize); /* 1st try */ -+ if (readsize == -1) { -+ perror_msg_and_die("%s:%s", app_name, path); -+ } -+ } -+ while (bufsize < readsize + 1); -+ -+ buf[readsize] = '\0'; -+ return buf; - } - - // printf helper macro - #define plural(a) (a), ((a) > 1) ? "s" : "" - - // temporary working block --inline uint8 * get_workblk(void) -+static inline uint8 * get_workblk(void) - { -- static block b; -+ unsigned char* b=calloc(1,BLOCKSIZE); - return b; - } --inline void free_workblk(block b) -+static inline void free_workblk(block b) - { -+ free(b); - } - --// rounds a quantity up to a blocksize --uint32 rndup(uint32 qty, uint32 siz) -+/* Rounds qty upto a multiple of siz. siz should be a power of 2 */ -+static uint32 rndup(uint32 qty, uint32 siz) - { - return (qty + (siz - 1)) & ~(siz - 1); - } - - // check if something is allocated in the bitmap --inline uint32 allocated(block b, uint32 item) -+static inline uint32 allocated(block b, uint32 item) - { - return b[(item-1) / 8] & (1 << ((item-1) % 8)); - } - - // return a given block from a filesystem --inline uint8 * get_blk(filesystem *fs, uint32 blk) -+static inline uint8 * get_blk(filesystem *fs, uint32 blk) - { - return (uint8*)fs + blk*BLOCKSIZE; - } - - // return a given inode from a filesystem --inline inode * get_nod(filesystem *fs, uint32 nod) -+static inline inode * get_nod(filesystem *fs, uint32 nod) - { -- return &fs->itab[nod-1]; -+ int grp,offset; -+ inode *itab; -+ -+ offset = GRP_IBM_OFFSET(fs,nod); -+ grp = GRP_GROUP_OF_INODE(fs,nod); -+ itab = (inode *)get_blk(fs, fs->gd[grp].bg_inode_table); -+ return itab+offset-1; - } - - // allocate a given block/inode in the bitmap - // allocate first free if item == 0 --uint32 allocate(block b, uint32 item) -+static uint32 allocate(block b, uint32 item) - { - if(!item) - { -@@ -473,39 +732,67 @@ - } - - // deallocate a given block/inode --void deallocate(block b, uint32 item) -+static void deallocate(block b, uint32 item) - { - b[(item-1) / 8] &= ~(1 << ((item-1) % 8)); - } - - // allocate a block --uint32 alloc_blk(filesystem *fs) -+static uint32 alloc_blk(filesystem *fs, uint32 nod) - { -- uint32 bk; -- if(!(bk = allocate(fs->bbm, 0))) -- errexit("couldn't allocate a block (no free space)"); -- if(!(fs->gd.bg_free_blocks_count--)) -- errexit("group descr. free blocks count == 0 (corrupted fs?)"); -+ uint32 bk=0; -+ uint32 grp,nbgroups; -+ -+ grp = nod/fs->sb.s_inodes_per_group; -+ nbgroups = ( fs->sb.s_blocks_count - fs->sb.s_first_data_block + fs->sb.s_blocks_per_group -1 ) / -+ fs->sb.s_blocks_per_group; -+ if(!(bk = allocate(get_blk(fs,fs->gd[grp].bg_block_bitmap), 0))) { -+ for(grp=0;grp<nbgroups && !bk;grp++) -+ bk=allocate(get_blk(fs,fs->gd[grp].bg_block_bitmap),0); -+ grp--; -+ } -+ if (!bk) -+ error_msg_and_die("couldn't allocate a block (no free space)"); -+ if(!(fs->gd[grp].bg_free_blocks_count--)) -+ error_msg_and_die("group descr %d. free blocks count == 0 (corrupted fs?)",grp); - if(!(fs->sb.s_free_blocks_count--)) -- errexit("superblock free blocks count == 0 (corrupted fs?)"); -- return bk; -+ error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)"); -+ return fs->sb.s_blocks_per_group*grp + bk; - } - - // allocate an inode --uint32 alloc_nod(filesystem *fs) -+static uint32 alloc_nod(filesystem *fs) - { -- uint32 nod; -- if(!(nod = allocate(fs->ibm, 0))) -- errexit("couldn't allocate an inode (no free inode)"); -- if(!(fs->gd.bg_free_inodes_count--)) -- errexit("group descr. free blocks count == 0 (corrupted fs?)"); -+ uint32 nod=0,best_group=0; -+ uint32 grp,nbgroups,avefreei; -+ -+ nbgroups = ( fs->sb.s_blocks_count - fs->sb.s_first_data_block + fs->sb.s_blocks_per_group -1 ) / -+ fs->sb.s_blocks_per_group; -+ -+ /* Distribute inodes amongst all the blocks */ -+ /* For every block group with more than average number of free inodes */ -+ /* find the one with the most free blocks and allocate node there */ -+ /* Idea from find_group_dir in fs/ext2/ialloc.c in 2.4.19 kernel */ -+ /* We do it for all inodes. */ -+ avefreei = fs->sb.s_free_inodes_count / nbgroups; -+ for(grp=0;grp<nbgroups && !nod;grp++) { -+ if (fs->gd[grp].bg_free_inodes_count < avefreei) -+ continue; -+ if (!best_group || -+ fs->gd[grp].bg_free_blocks_count > fs->gd[best_group].bg_free_blocks_count) -+ best_group = grp; -+ } -+ if (!(nod = allocate(get_blk(fs,fs->gd[best_group].bg_inode_bitmap),0))) -+ error_msg_and_die("couldn't allocate an inode (no free inode)"); -+ if(!(fs->gd[best_group].bg_free_inodes_count--)) -+ error_msg_and_die("group descr. free blocks count == 0 (corrupted fs?)"); - if(!(fs->sb.s_free_inodes_count--)) -- errexit("superblock free blocks count == 0 (corrupted fs?)"); -- return nod; -+ error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)"); -+ return fs->sb.s_inodes_per_group*best_group+nod; - } - - // print a bitmap allocation --void print_bm(block b, uint32 max) -+static void print_bm(block b, uint32 max) - { - uint32 i; - printf("----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0\n"); -@@ -520,7 +807,7 @@ - } - - // initalize a blockwalker (iterator for blocks list) --void init_bw(filesystem *fs, uint32 nod, blockwalker *bw) -+static void init_bw(filesystem *fs, uint32 nod, blockwalker *bw) - { - bw->bnum = 0; - bw->bpdir = EXT2_INIT_BLOCK; -@@ -529,7 +816,7 @@ - // return next block of inode (WALK_END for end) - // if create>0, append a newly allocated block at the end - // if hole!=0, create a hole in the file --uint32 walk_bw(filesystem *fs, uint32 nod, blockwalker *bw, uint32 *create, uint32 hole) -+static uint32 walk_bw(filesystem *fs, uint32 nod, blockwalker *bw, uint32 *create, uint32 hole) - { - uint32 *bkref = 0; - uint32 *b; -@@ -546,14 +833,14 @@ - { - bkref = &get_nod(fs, nod)->i_block[bw->bpdir = 0]; - if(extend) // allocate first block -- *bkref = hole ? 0 : alloc_blk(fs); -+ *bkref = hole ? 0 : alloc_blk(fs,nod); - } - // direct block - else if(bw->bpdir < EXT2_NDIR_BLOCKS) - { - bkref = &get_nod(fs, nod)->i_block[++bw->bpdir]; - if(extend) // allocate block -- *bkref = hole ? 0 : alloc_blk(fs); -+ *bkref = hole ? 0 : alloc_blk(fs,nod); - } - // first block in indirect block - else if(bw->bpdir == EXT2_NDIR_BLOCKS) -@@ -562,11 +849,11 @@ - bw->bpdir = EXT2_IND_BLOCK; - bw->bpind = 0; - if(extend) // allocate indirect block -- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs); -+ get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod); - b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]); - bkref = &b[bw->bpind]; - if(extend) // allocate first block -- *bkref = hole ? 0 : alloc_blk(fs); -+ *bkref = hole ? 0 : alloc_blk(fs,nod); - } - // block in indirect block - else if((bw->bpdir == EXT2_IND_BLOCK) && (bw->bpind < BLOCKSIZE/4 - 1)) -@@ -575,7 +862,7 @@ - b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]); - bkref = &b[bw->bpind]; - if(extend) // allocate block -- *bkref = hole ? 0 : alloc_blk(fs); -+ *bkref = hole ? 0 : alloc_blk(fs,nod); - } - // first block in first indirect block in first double indirect block - else if(bw->bpdir == EXT2_IND_BLOCK) -@@ -585,14 +872,14 @@ - bw->bpind = 0; - bw->bpdind = 0; - if(extend) // allocate double indirect block -- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs); -+ get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod); - b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]); - if(extend) // allocate first indirect block -- b[bw->bpind] = alloc_blk(fs); -+ b[bw->bpind] = alloc_blk(fs,nod); - b = (uint32*)get_blk(fs, b[bw->bpind]); - bkref = &b[bw->bpdind]; - if(extend) // allocate first block -- *bkref = hole ? 0 : alloc_blk(fs); -+ *bkref = hole ? 0 : alloc_blk(fs,nod); - } - // block in indirect block in double indirect block - else if((bw->bpdir == EXT2_DIND_BLOCK) && (bw->bpdind < BLOCKSIZE/4 - 1)) -@@ -602,7 +889,7 @@ - b = (uint32*)get_blk(fs, b[bw->bpind]); - bkref = &b[bw->bpdind]; - if(extend) // allocate block -- *bkref = hole ? 0 : alloc_blk(fs); -+ *bkref = hole ? 0 : alloc_blk(fs,nod); - } - // first block in indirect block in double indirect block - else if((bw->bpdir == EXT2_DIND_BLOCK) && (bw->bpind < BLOCKSIZE/4 - 1)) -@@ -612,20 +899,100 @@ - bw->bpind++; - b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]); - if(extend) // allocate indirect block -- b[bw->bpind] = alloc_blk(fs); -+ b[bw->bpind] = alloc_blk(fs,nod); - b = (uint32*)get_blk(fs, b[bw->bpind]); - bkref = &b[bw->bpdind]; - if(extend) // allocate first block -- *bkref = hole ? 0 : alloc_blk(fs); -+ *bkref = hole ? 0 : alloc_blk(fs,nod); -+ } -+ -+ /* Adding support for triple indirection */ -+ /* Just starting triple indirection. Allocate the indirection -+ blocks and the first data block -+ */ -+ else if (bw->bpdir == EXT2_DIND_BLOCK) -+ { -+ bw->bnum += 3; -+ bw->bpdir = EXT2_TIND_BLOCK; -+ bw->bpind = 0; -+ bw->bpdind = 0; -+ bw->bptind = 0; -+ if(extend) // allocate triple indirect block -+ get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod); -+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]); -+ if(extend) // allocate first double indirect block -+ b[bw->bpind] = alloc_blk(fs,nod); -+ b = (uint32*)get_blk(fs, b[bw->bpind]); -+ if(extend) // allocate first indirect block -+ b[bw->bpdind] = alloc_blk(fs,nod); -+ b = (uint32*)get_blk(fs, b[bw->bpdind]); -+ bkref = &b[bw->bptind]; -+ if(extend) // allocate first data block -+ *bkref = hole ? 0 : alloc_blk(fs,nod); -+ } -+ /* Still processing a single indirect block down the indirection -+ chain.Allocate a data block for it -+ */ -+ else if ( (bw->bpdir == EXT2_TIND_BLOCK) && -+ (bw->bptind < BLOCKSIZE/4 -1) ) -+ { -+ bw->bptind++; -+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]); -+ b = (uint32*)get_blk(fs, b[bw->bpind]); -+ b = (uint32*)get_blk(fs, b[bw->bpdind]); -+ bkref = &b[bw->bptind]; -+ if(extend) // allocate data block -+ *bkref = hole ? 0 : alloc_blk(fs,nod); -+ } -+ /* Finished processing a single indirect block. But still in the -+ same double indirect block. Allocate new single indirect block -+ for it and a data block -+ */ -+ else if ( (bw->bpdir == EXT2_TIND_BLOCK) && -+ (bw->bpdind < BLOCKSIZE/4 -1) ) -+ { -+ bw->bnum++; -+ bw->bptind = 0; -+ bw->bpdind++; -+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]); -+ b = (uint32*)get_blk(fs, b[bw->bpind]); -+ if (extend) // allocate single indirect block -+ b[bw->bpdind] = alloc_blk(fs,nod); -+ b = (uint32*)get_blk(fs, b[bw->bpdind]); -+ bkref = &b[bw->bptind]; -+ if(extend) // allocate first data block -+ *bkref = hole ? 0 : alloc_blk(fs,nod); -+ } -+ /* Finished processing a double indirect block. Allocate the next -+ double indirect block and the single,data blocks for it -+ */ -+ else if ( (bw->bpdir == EXT2_TIND_BLOCK) && -+ (bw->bpind < BLOCKSIZE/4 - 1) ) -+ { -+ bw->bnum += 2; -+ bw->bpdind = 0; -+ bw->bptind = 0; -+ bw->bpind++; -+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]); -+ if(extend) // allocate double indirect block -+ b[bw->bpind] = alloc_blk(fs,nod); -+ b = (uint32*)get_blk(fs, b[bw->bpind]); -+ if(extend) // allocate single indirect block -+ b[bw->bpdind] = alloc_blk(fs,nod); -+ b = (uint32*)get_blk(fs, b[bw->bpdind]); -+ bkref = &b[bw->bptind]; -+ if(extend) // allocate first block -+ *bkref = hole ? 0 : alloc_blk(fs,nod); - } -- // I don't do triple indirect - it's such a small filesystem ... - else -- errexit("file too big ! blocks list for inode %d extends past double indirect blocks!", nod); -+ error_msg_and_die("file too big !"); -+ /* End change for walking triple indirection */ -+ - if(*bkref) - { - bw->bnum++; -- if(!allocated(fs->bbm, *bkref)) -- errexit("[block %d of inode %d is unallocated !]", *bkref, nod); -+ if(!allocated(GRP_GET_BLOCK_BITMAP(fs,*bkref), GRP_BBM_OFFSET(fs,*bkref))) -+ error_msg_and_die("[block %d of inode %d is unallocated !]", *bkref, nod); - } - if(extend) - get_nod(fs, nod)->i_blocks = bw->bnum * INOBLK; -@@ -633,7 +1000,7 @@ - } - - // add blocks to an inode (file/dir/etc...) --void extend_blk(filesystem *fs, uint32 nod, block b, int amount) -+static void extend_blk(filesystem *fs, uint32 nod, block b, int amount) - { - int create = amount; - blockwalker bw, lbw; -@@ -662,24 +1029,35 @@ - } - } - -+static void truncate_nod(filesystem *fs, uint32 nod) -+{ -+ inode *node = get_nod(fs, nod); -+assert(!node->i_size); -+#warning truncate_nod() no yet implemented -+} -+ - // link an entry (inode #) to a directory --void add2dir(filesystem *fs, uint32 dnod, uint32 nod, const char* name) -+static void add2dir(filesystem *fs, uint32 dnod, uint32 nod, const char* name) - { - blockwalker bw; - uint32 bk; - uint8 *b; - directory *d; - int reclen, nlen; -- if((get_nod(fs, dnod)->i_mode & FM_IFMT) != FM_IFDIR) -- errexit("can't add '%s' to a non-directory", name); -+ inode *node; -+ inode *pnode; -+ -+ pnode = get_nod(fs, dnod); -+ if((pnode->i_mode & FM_IFMT) != FM_IFDIR) -+ error_msg_and_die("can't add '%s' to a non-directory", name); - if(!*name) -- errexit("bad name '%s' (not meaningful)", name); -+ error_msg_and_die("can't create an inode with an empty name"); - if(strchr(name, '/')) -- errexit("bad name '%s' (contains a slash)", name); -+ error_msg_and_die("bad name '%s' (contains a slash)", name); - nlen = strlen(name); - reclen = sizeof(directory) + rndup(nlen, 4); - if(reclen > BLOCKSIZE) -- errexit("bad name '%s' (too long)", name); -+ error_msg_and_die("bad name '%s' (too long)", name); - init_bw(fs, dnod, &bw); - while((bk = walk_bw(fs, dnod, &bw, 0, 0)) != WALK_END) // for all blocks in dir - { -@@ -691,7 +1069,8 @@ - if((!d->d_inode) && (d->d_rec_len >= reclen)) - { - d->d_inode = nod; -- get_nod(fs, nod)->i_links_count++; -+ node = get_nod(fs, nod); -+ node->i_links_count++; - d->d_name_len = nlen; - strncpy(d->d_name, name, nlen); - return; -@@ -705,7 +1084,8 @@ - d = (directory*) (((int8*)d) + d->d_rec_len); - d->d_rec_len = reclen; - d->d_inode = nod; -- get_nod(fs, nod)->i_links_count++; -+ node = get_nod(fs, nod); -+ node->i_links_count++; - d->d_name_len = nlen; - strncpy(d->d_name, name, nlen); - return; -@@ -716,7 +1096,8 @@ - b = get_workblk(); - d = (directory*)b; - d->d_inode = nod; -- get_nod(fs, nod)->i_links_count++; -+ node = get_nod(fs, nod); -+ node->i_links_count++; - d->d_rec_len = BLOCKSIZE; - d->d_name_len = nlen; - strncpy(d->d_name, name, nlen); -@@ -726,7 +1107,7 @@ - } - - // find an entry in a directory --uint32 find_dir(filesystem *fs, uint32 nod, const char * name) -+static uint32 find_dir(filesystem *fs, uint32 nod, const char * name) - { - blockwalker bw; - uint32 bk; -@@ -745,9 +1126,9 @@ - } - - // find the inode of a full path --uint32 find_path(filesystem *fs, uint32 nod, const char * name) -+static uint32 find_path(filesystem *fs, uint32 nod, const char * name) - { -- char *p, *n, *n2 = strdup(name); -+ char *p, *n, *n2 = xstrdup(name); - n = n2; - while(*n == '/') - { -@@ -769,28 +1150,62 @@ - return nod; - } - --// make a full-fledged directory (i.e. with "." & "..") --uint32 mkdir_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode) -+// create a simple inode -+static uint32 mknod_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, uint16 uid, uint16 gid, uint8 major, uint8 minor, uint32 ctime, uint32 mtime) - { - uint32 nod; -+ inode *node; - if((nod = find_dir(fs, parent_nod, name))) -- return nod; -- nod = alloc_nod(fs); -- get_nod(fs, nod)->i_mode = FM_IFDIR | mode; -- add2dir(fs, parent_nod, nod, name); -- add2dir(fs, nod, nod, "."); -- add2dir(fs, nod, parent_nod, ".."); -- fs->gd.bg_used_dirs_count++; -+ { -+ node = get_nod(fs, nod); -+ if((node->i_mode & FM_IFMT) != (mode & FM_IFMT)) -+ error_msg_and_die("node '%s' already exists and isn't of the same type", name); -+ node->i_mode = mode; -+ } -+ else -+ { -+ nod = alloc_nod(fs); -+ node = get_nod(fs, nod); -+ node->i_mode = mode; -+ add2dir(fs, parent_nod, nod, name); -+ switch(mode & FM_IFMT) -+ { -+ case FM_IFLNK: -+ mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO; -+ break; -+ case FM_IFBLK: -+ case FM_IFCHR: -+ ((uint8*)get_nod(fs, nod)->i_block)[0] = minor; -+ ((uint8*)get_nod(fs, nod)->i_block)[1] = major; -+ break; -+ case FM_IFDIR: -+ add2dir(fs, nod, nod, "."); -+ add2dir(fs, nod, parent_nod, ".."); -+ fs->gd[GRP_GROUP_OF_INODE(fs,nod)].bg_used_dirs_count++; -+ break; -+ } -+ } -+ node->i_uid = uid; -+ node->i_gid = gid; -+ node->i_atime = mtime; -+ node->i_ctime = ctime; -+ node->i_mtime = mtime; - return nod; - } - -+// make a full-fledged directory (i.e. with "." & "..") -+static inline uint32 mkdir_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, -+ uid_t uid, gid_t gid, uint32 ctime, uint32 mtime) -+{ -+ return mknod_fs(fs, parent_nod, name, mode|FM_IFDIR, uid, gid, 0, 0, ctime, mtime); -+} -+ - // make a symlink --uint32 mklink_fs(filesystem *fs, uint32 parent_nod, const char *name, size_t size, uint8 * b) -+static uint32 mklink_fs(filesystem *fs, uint32 parent_nod, const char *name, size_t size, uint8 *b, uid_t uid, gid_t gid, uint32 ctime, uint32 mtime) - { -- uint32 nod = alloc_nod(fs); -- get_nod(fs, nod)->i_mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO; -+ uint32 nod = mknod_fs(fs, parent_nod, name, FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO, uid, gid, 0, 0, ctime, mtime); -+ truncate_nod(fs, nod); - get_nod(fs, nod)->i_size = size; -- add2dir(fs, parent_nod, nod, name); - if(size <= 4 * (EXT2_TIND_BLOCK+1)) - { - strncpy((char*)get_nod(fs, nod)->i_block, (char*)b, size); -@@ -801,228 +1216,361 @@ - } - - // make a file from a FILE* --uint32 mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, size_t size, FILE *f) -+static uint32 mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, size_t size, FILE *f, uid_t uid, gid_t gid, uint32 ctime, uint32 mtime) - { - uint8 * b; -- uint32 nod = alloc_nod(fs); -- get_nod(fs, nod)->i_mode = FM_IFREG | mode; -+ uint32 nod = mknod_fs(fs, parent_nod, name, mode|FM_IFREG, uid, gid, 0, 0, ctime, mtime); -+ truncate_nod(fs, nod); - get_nod(fs, nod)->i_size = size; -- add2dir(fs, parent_nod, nod, name); - if(!(b = (uint8*)malloc(rndup(size, BLOCKSIZE)))) -- errexit("not enough mem to read file '%s'", name); -+ error_msg_and_die("not enough mem to read file '%s'", name); - memset(b, 0,rndup(size, BLOCKSIZE)); - if(f) -- fread(b, size, 1, f); -+ fread(b, size, 1, f); // FIXME: ugly. use mmap() ... - else -- memset(b, 0, size); -+ memset(b, 0, size); // .. or handle b = 0 - extend_blk(fs, nod, b, rndup(size, BLOCKSIZE) / BLOCKSIZE); - free(b); - return nod; - } - - // retrieves a mode info from a struct stat --uint32 get_mode(struct stat *st) -+static uint32 get_mode(struct stat *st) - { - uint32 mode = 0; -+ - if(st->st_mode & S_IRUSR) -- mode |= FM_IRUSR | FM_IRGRP | FM_IROTH; -+ mode |= FM_IRUSR; - if(st->st_mode & S_IWUSR) -- mode |= FM_IWUSR | FM_IWGRP | FM_IWOTH; -+ mode |= FM_IWUSR; - if(st->st_mode & S_IXUSR) -- mode |= FM_IXUSR | FM_IXGRP | FM_IXOTH; -+ mode |= FM_IXUSR; -+ if(st->st_mode & S_IRGRP) -+ mode |= FM_IRGRP; -+ if(st->st_mode & S_IWGRP) -+ mode |= FM_IWGRP; -+ if(st->st_mode & S_IXGRP) -+ mode |= FM_IXGRP; -+ if(st->st_mode & S_IROTH) -+ mode |= FM_IROTH; -+ if(st->st_mode & S_IWOTH) -+ mode |= FM_IWOTH; -+ if(st->st_mode & S_IXOTH) -+ mode |= FM_IXOTH; -+ if(st->st_mode & S_ISUID) -+ mode |= FM_ISUID; -+ if(st->st_mode & S_ISGID) -+ mode |= FM_ISGID; -+ if(st->st_mode & S_ISVTX) -+ mode |= FM_ISVTX; - return mode; - } - --// retrieves a mode info from a string --uint32 get_modestr(const char *p) --{ -- uint32 mode = 0; -- if(p[0] == 'r') -- mode |= FM_IRUSR | FM_IRGRP | FM_IROTH; -- if(p[1] == 'w') -- mode |= FM_IWUSR | FM_IWGRP | FM_IWOTH; -- if(p[2] == 'x' || p[2] == 's') -- mode |= FM_IXUSR | FM_IXGRP | FM_IXOTH; -- return mode; --} -- --// basename of a path - free me --char * basename(const char * fullpath) --{ -- char * p = strrchr(fullpath, '/'); -- return strdup(p ? p + 1 : fullpath); --} -- --// dirname of a path - free me --char * dirname(const char * fullpath) --{ -- char * p, * n = strdup(fullpath); -- if((p = strrchr(n, '/'))) -- *(p+1) = 0; -- else -- *n = 0; -- return n; --} -+// add or fixup entries to the filesystem from a text file -+/* device table entries take the form of: -+ <path> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count> -+ /dev/mem c 640 0 0 1 1 0 0 - -+ -+ type can be one of: -+ f A regular file -+ d Directory -+ c Character special device file -+ b Block special device file -+ p Fifo (named pipe) -+ -+ I don't bother with symlinks (permissions are irrelevant), hard -+ links (special cases of regular files), or sockets (why bother). -+ -+ Regular files must exist in the target root directory. If a char, -+ block, fifo, or directory does not exist, it will be created. -+*/ -+ -+static void add2fs_from_file(filesystem *fs, uint32 this_nod, FILE * fh, int squash_uids, int squash_perms, struct stats *stats) -+{ -+ unsigned long mode, uid, gid, major, minor; -+ unsigned long start, increment, count; -+ uint32 nod, ctime, mtime; -+ char *c, type, *path = NULL, *path2 = NULL, *dir, *name, *line = NULL; -+ size_t len; -+ struct stat st; -+ int nbargs, lineno = 0; - --// adds entries to the filesystem from a text file --void add2fs_from_file(filesystem *fs, uint32 this_nod, FILE * fh) --{ -- uint32 mode; -- uint32 nod, nod2; -- char cmod[11], *path, *name, *dir; -- int major, minor; -- while(fscanf(fh, "%10s", cmod)) -- { -- if(feof(fh)) -- break; -- mode = get_modestr(cmod + 1); -- switch(*cmod) -+ fstat(fileno(fh), &st); -+ ctime = st.st_ctime; -+ mtime = st.st_mtime; -+ while(getline(&line, &len, fh) >= 0) -+ { -+ mode = uid = gid = major = minor = 0; -+ start = 0; increment = 1; count = 0; -+ lineno++; -+ if((c = strchr(line, '#'))) -+ *c = 0; -+ free(path); path = NULL; -+ free(path2); path2 = NULL; -+ nbargs = sscanf (line, "%" SCANF_PREFIX "s %c %lo %lu %lu %lu %lu %lu %lu %lu", -+ SCANF_STRING(path), &type, &mode, &uid, &gid, &major, &minor, -+ &start, &increment, &count); -+ if(nbargs < 3) - { -- case 'd': -- fscanf(fh, "%" SCANF_PREFIX "s\n", SCANF_STRING(path)); -- break; -- case 'c': -- mode |= FM_IFCHR; -- fscanf(fh, "%i, %i %" SCANF_PREFIX "s\n", &major, &minor, SCANF_STRING(path)); -- break; -- case 'b': -- mode |= FM_IFBLK; -- fscanf(fh, "%i, %i %" SCANF_PREFIX "s\n", &major, &minor, SCANF_STRING(path)); -- break; -- case '#': -- while(fgetc(fh) != '\n'); -- continue; -- default: -- errexit("malformed text input file"); -+ if(nbargs > 0) -+ error_msg("device table line %d skipped: bad format for entry '%s'", lineno, path); -+ continue; - } -- name = basename(path); -- dir = dirname(path); -- free(path); -- if(!(nod = find_path(fs, this_nod, dir))) -- errexit("can't find directory '%s' to create '%s''", dir, name); -- free(dir); -- if((!strcmp(name, ".")) || (!strcmp(name, ".."))) -+ if(stats) - { -- free(name); -- continue; -+ stats->ninodes += count ? count : 1; - } -- switch(*cmod) -+ else - { -- case 'd': -- mkdir_fs(fs, nod, name, mode); -- break; -- case 'c': -- case 'b': -- nod2 = alloc_nod(fs); -- get_nod(fs, nod2)->i_mode = mode; -- ((uint8*)get_nod(fs, nod2)->i_block)[0] = minor; -- ((uint8*)get_nod(fs, nod2)->i_block)[1] = major; -- add2dir(fs, nod, nod2, name); -- break; -+ if(squash_uids) -+ uid = gid = 0; -+ if(squash_perms) -+ mode &= ~(FM_IRWXG | FM_IRWXO); -+ mode &= FM_IMASK; -+ path2 = strdup(path); -+ name = basename(path); -+ dir = dirname(path2); -+ if(!(nod = find_path(fs, this_nod, dir))) -+ { -+ error_msg("device table line %d skipped: can't find directory '%s' to create '%s''", lineno, dir, name); -+ continue; -+ } -+ if((!strcmp(name, ".")) || (!strcmp(name, ".."))) -+ { -+ error_msg("device table line %d skipped", lineno); -+ continue; -+ } -+ -+ switch (type) -+ { -+ case 'd': -+ mode |= FM_IFDIR; -+ break; -+ case 'f': -+ mode |= FM_IFREG; -+ break; -+ case 'p': -+ mode |= FM_IFIFO; -+ break; -+ case 'c': -+ mode |= FM_IFCHR; -+ break; -+ case 'b': -+ mode |= FM_IFBLK; -+ break; -+ default: -+ error_msg("device table line %d skipped: bad type '%c' for entry '%s'", lineno, type, name); -+ continue; -+ } -+ if(count > 0) -+ { -+ char *dname; -+ unsigned i, len; -+ len = strlen(name) + 10; -+ dname = malloc(len + 1); -+ for(i = start; i < count; i++) -+ { -+ snprintf(dname, len, "%s%u", name, i); -+ mknod_fs(fs, nod, dname, mode, uid, gid, major, minor + (i * increment - start), ctime, mtime); -+ } -+ free(dname); -+ } -+ else -+ mknod_fs(fs, nod, name, mode, uid, gid, major, minor, ctime, mtime); - } -- free(name); - } -+ free(line); -+ free(path); -+ free(path2); - } - - // adds a tree of entries to the filesystem from current dir --void add2fs_from_dir(filesystem *fs, uint32 this_nod) -+static void add2fs_from_dir(filesystem *fs, uint32 this_nod, int squash_uids, int squash_perms, struct stats *stats) - { - uint32 nod; -+ uint32 uid, gid, mode, ctime, mtime; -+ const char *name; - FILE *fh; - DIR *dh; - struct dirent *dent; - struct stat st; - uint8 *b; - if(!(dh = opendir("."))) -- pexit("."); -+ perror_msg_and_die("."); - while((dent = readdir(dh))) - { - if((!strcmp(dent->d_name, ".")) || (!strcmp(dent->d_name, ".."))) - continue; - lstat(dent->d_name, &st); -- switch(st.st_mode & S_IFMT) -- { -- case S_IFCHR: -- case S_IFBLK: -- nod = alloc_nod(fs); -- get_nod(fs, nod)->i_mode = (((st.st_mode & S_IFMT) == S_IFCHR) ? FM_IFCHR : FM_IFBLK) | get_mode(&st); -- ((uint8*)get_nod(fs, nod)->i_block)[0] = (st.st_rdev & 0xff); -- ((uint8*)get_nod(fs, nod)->i_block)[1] = (st.st_rdev >> 8); -- add2dir(fs, this_nod, nod, dent->d_name); -- break; -- case S_IFLNK: -- if(!(b = (uint8*)malloc(rndup(st.st_size, BLOCKSIZE)))) -- errexit("out of memory"); -- if(readlink(dent->d_name, (char*)b, st.st_size) < 0) -- pexit(dent->d_name); -- mklink_fs(fs, this_nod, dent->d_name, st.st_size, b); -- free(b); -- break; -- case S_IFREG: -- if(!(fh = fopen(dent->d_name, "r"))) -- pexit(dent->d_name); -- mkfile_fs(fs, this_nod, dent->d_name, get_mode(&st), st.st_size, fh); -- fclose(fh); -- break; -- case S_IFDIR: -- nod = mkdir_fs(fs, this_nod, dent->d_name, get_mode(&st)); -- if(chdir(dent->d_name) < 0) -- pexit(dent->d_name); -- add2fs_from_dir(fs, nod); -- chdir(".."); -- break; -- default: -- fprintf(stderr, "ignoring entry %s", dent->d_name); -- } -+ uid = st.st_uid; -+ gid = st.st_gid; -+ ctime = st.st_ctime; -+ mtime = st.st_mtime; -+ name = dent->d_name; -+ mode = get_mode(&st); -+ if(squash_uids) -+ uid = gid = 0; -+ if(squash_perms) -+ mode &= ~(FM_IRWXG | FM_IRWXO); -+ if(stats) -+ switch(st.st_mode & S_IFMT) -+ { -+ case S_IFLNK: -+ case S_IFREG: -+ if((st.st_mode & S_IFMT) == S_IFREG || st.st_size > 4 * (EXT2_TIND_BLOCK+1)) -+ stats->nblocks += (st.st_size + BLOCKSIZE - 1) / BLOCKSIZE; -+ case S_IFCHR: -+ case S_IFBLK: -+ case S_IFIFO: -+ stats->ninodes++; -+ break; -+ case S_IFDIR: -+ stats->ninodes++; -+ if(chdir(dent->d_name) < 0) -+ perror_msg_and_die(dent->d_name); -+ add2fs_from_dir(fs, nod, squash_uids, squash_perms, stats); -+ chdir(".."); -+ break; -+ default: -+ break; -+ } -+ else -+ switch(st.st_mode & S_IFMT) -+ { -+ case S_IFCHR: -+ mknod_fs(fs, this_nod, name, mode|FM_IFCHR, uid, gid, st.st_rdev >> 8, st.st_rdev & 0xff, ctime, mtime); -+ break; -+ case S_IFBLK: -+ mknod_fs(fs, this_nod, name, mode|FM_IFBLK, uid, gid, st.st_rdev >> 8, st.st_rdev & 0xff, ctime, mtime); -+ break; -+ case S_IFIFO: -+ mknod_fs(fs, this_nod, name, mode|FM_IFIFO, uid, gid, 0, 0, ctime, mtime); -+ break; -+ case S_IFLNK: -+ b = xreadlink(dent->d_name); -+ mklink_fs(fs, this_nod, name, st.st_size, b, uid, gid, ctime, mtime); -+ free(b); -+ break; -+ case S_IFREG: -+ fh = xfopen(dent->d_name, "r"); -+ mkfile_fs(fs, this_nod, name, mode, st.st_size, fh, uid, gid, ctime, mtime); -+ fclose(fh); -+ break; -+ case S_IFDIR: -+ nod = mkdir_fs(fs, this_nod, name, mode, uid, gid, ctime, mtime); -+ if(chdir(dent->d_name) < 0) -+ perror_msg_and_die(name); -+ add2fs_from_dir(fs, nod, squash_uids, squash_perms, stats); -+ chdir(".."); -+ break; -+ default: -+ error_msg("ignoring entry %s", name); -+ } - } - closedir(dh); - } - - // endianness swap of x-indirect blocks --void swap_goodblocks(filesystem *fs, inode *nod) -+static void swap_goodblocks(filesystem *fs, inode *nod) - { -- int i; -+ int i,j,done=0; -+ uint32 *b,*b2; -+ - int nblk = nod->i_blocks / INOBLK; -- if((nod->i_size && !nblk) || (nod->i_mode & (FM_IFBLK | FM_IFCHR))) -+ if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR)) - for(i = 0; i <= EXT2_TIND_BLOCK; i++) - nod->i_block[i] = swab32(nod->i_block[i]); - if(nblk <= EXT2_IND_BLOCK) - return; - swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK])); -- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4) -+ if(nblk <= EXT2_DIND_BLOCK + BLOCKSIZE/4) - return; -+ /* Currently this will fail b'cos the number of blocks as stored -+ in i_blocks also includes the indirection blocks (see -+ walk_bw). But this function assumes that i_blocks only -+ stores the count of data blocks ( Actually according to -+ "Understanding the Linux Kernel" (Table 17-3 p502 1st Ed) -+ i_blocks IS supposed to store the count of data blocks). so -+ with a file of size 268K nblk would be 269.The above check -+ will be false even though double indirection hasn't been -+ started.This is benign as 0 means block 0 which has been -+ zeroed out and therefore points back to itself from any offset -+ */ -+ // FIXME: I have fixed that, but I have the feeling the rest of -+ // ths function needs to be fixed for the same reasons - Xav -+ assert(nod->i_block[EXT2_DIND_BLOCK] != 0); - for(i = 0; i < BLOCKSIZE/4; i++) -- if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + i) -+ if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + (BLOCKSIZE/4)*i ) - swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i])); - swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK])); - if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4) - return; -- errexit("too big file on the filesystem"); -+ /* Adding support for triple indirection */ -+ b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]); -+ for(i=0;i < BLOCKSIZE/4 && !done ; i++) { -+ b2 = (uint32*)get_blk(fs,b[i]); -+ for(j=0; j<BLOCKSIZE/4;j++) { -+ if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 + -+ (BLOCKSIZE/4)*(BLOCKSIZE/4) + -+ i*(BLOCKSIZE/4)*(BLOCKSIZE/4) + -+ j*(BLOCKSIZE/4)) ) -+ swap_block(get_blk(fs,b2[j])); -+ else { -+ done = 1; -+ break; -+ } -+ } -+ swap_block((uint8 *)b2); -+ } -+ swap_block((uint8 *)b); -+ return; - } - --void swap_badblocks(filesystem *fs, inode *nod) -+static void swap_badblocks(filesystem *fs, inode *nod) - { -- int i; -+ int i,j,done=0; -+ uint32 *b,*b2; -+ - int nblk = nod->i_blocks / INOBLK; -- if((nod->i_size && !nblk) || (nod->i_mode & (FM_IFBLK | FM_IFCHR))) -+ if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR)) - for(i = 0; i <= EXT2_TIND_BLOCK; i++) - nod->i_block[i] = swab32(nod->i_block[i]); - if(nblk <= EXT2_IND_BLOCK) - return; - swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK])); -- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4) -+ if(nblk <= EXT2_DIND_BLOCK + BLOCKSIZE/4) - return; -+ /* See comment in swap_goodblocks */ -+ assert(nod->i_block[EXT2_DIND_BLOCK] != 0); - swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK])); - for(i = 0; i < BLOCKSIZE/4; i++) -- if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + i) -+ if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + (BLOCKSIZE/4)*i ) - swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i])); - if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4) - return; -- errexit("too big file on the filesystem"); -+ /* Adding support for triple indirection */ -+ b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]); -+ swap_block((uint8 *)b); -+ for(i=0;i < BLOCKSIZE/4 && !done ; i++) { -+ b2 = (uint32*)get_blk(fs,b[i]); -+ swap_block((uint8 *)b2); -+ for(j=0; j<BLOCKSIZE/4;j++) { -+ if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 + -+ (BLOCKSIZE/4)*(BLOCKSIZE/4) + -+ i*(BLOCKSIZE/4)*(BLOCKSIZE/4) + -+ j*(BLOCKSIZE/4)) ) -+ swap_block(get_blk(fs,b2[j])); -+ else { -+ done = 1; -+ break; -+ } -+ } -+ } -+ return; - } - - // endianness swap of the whole filesystem --void swap_goodfs(filesystem *fs) -+static void swap_goodfs(filesystem *fs) - { - int i; - for(i = 1; i < fs->sb.s_inodes_count; i++) -@@ -1045,15 +1593,17 @@ - swap_goodblocks(fs, nod); - swap_nod(nod); - } -- swap_gd(&fs->gd); -+ for(i=0;i<GRP_NBGROUPS(fs);i++) -+ swap_gd(&(fs->gd[i])); - swap_sb(&fs->sb); - } - --void swap_badfs(filesystem *fs) -+static void swap_badfs(filesystem *fs) - { - int i; - swap_sb(&fs->sb); -- swap_gd(&fs->gd); -+ for(i=0;i<GRP_NBGROUPS(fs);i++) -+ swap_gd(&(fs->gd[i])); - for(i = 1; i < fs->sb.s_inodes_count; i++) - { - inode *nod = get_nod(fs, i); -@@ -1077,60 +1627,123 @@ - } - - // initialize an empty filesystem --filesystem * init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes) -+static filesystem * init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes) - { - int i; - filesystem *fs; - directory *d; - uint8 * b; - uint32 nod; -+ uint32 nbgroups,nbinodes_per_group,overhead_per_group,free_blocks, -+ free_blocks_per_group,nbblocks_per_group; -+ uint32 gd,itbl,ibmpos,bbmpos,itblpos; -+ int j; -+ uint8 *bbm,*ibm; -+ inode *itab0; -+ uint32 now = time(NULL); - - if(nbblocks < 16) // totally arbitrary -- errexit("too small filesystem"); -- if(nbblocks >BLOCKS_PER_GROUP) // I build only one group -- errexit("too big filesystem"); -+ error_msg_and_die("too small filesystem"); -+ -+ /* nbblocks is the total number of blocks in the filesystem. First -+ * calculate the size of each group assuming each group has -+ * BLOCKS_PER_GROUP blocks (which is the maximum). Then recalculate -+ * blocks per group so that each group (except possibly the last one) -+ * has the same number of blocks. nbinodes is the total number of -+ * inodes in the system. These are divided between all groups. -+ * Then calculate the overhead blocks - inode table blocks, bitmap -+ * blocks, group descriptor blocks etc. -+ */ -+ -+ nbgroups = (nbblocks + BLOCKS_PER_GROUP - 1) / BLOCKS_PER_GROUP; -+ nbblocks_per_group = rndup((nbblocks + nbgroups - 1)/nbgroups, 8); -+ nbinodes_per_group = rndup((nbinodes + nbgroups - 1)/nbgroups, -+ (BLOCKSIZE/sizeof(inode))); -+ if (nbinodes_per_group < 16) -+ nbinodes_per_group = 16; //minimum number b'cos the first 10 are reserved -+ -+ gd = rndup(nbgroups*sizeof(groupdescriptor),BLOCKSIZE)/BLOCKSIZE; -+ itbl = nbinodes_per_group * sizeof(inode)/BLOCKSIZE; -+ overhead_per_group = 3 /*sb,ibm,bbm*/ + itbl + gd; -+ free_blocks = nbblocks - overhead_per_group*nbgroups - 1 /*boot block*/; -+ free_blocks_per_group = nbblocks_per_group - overhead_per_group; -+ - if(!(fs = (filesystem*)calloc(nbblocks, BLOCKSIZE))) -- errexit("not enough memory for filesystem"); -+ error_msg_and_die("not enough memory for filesystem"); - - // create the superblock for an empty filesystem -- fs->sb.s_inodes_count = rndup(nbinodes, BLOCKSIZE/sizeof(inode)); -+ fs->sb.s_inodes_count = nbinodes_per_group * nbgroups; - fs->sb.s_blocks_count = nbblocks; - fs->sb.s_r_blocks_count = nbresrvd; -- fs->sb.s_free_blocks_count = nbblocks; -+ fs->sb.s_free_blocks_count = free_blocks; - fs->sb.s_free_inodes_count = fs->sb.s_inodes_count - EXT2_FIRST_INO + 1; - fs->sb.s_first_data_block = (BLOCKSIZE == 1024); - fs->sb.s_log_block_size = BLOCKSIZE >> 11; - fs->sb.s_log_frag_size = BLOCKSIZE >> 11; -- fs->sb.s_blocks_per_group = BLOCKS_PER_GROUP; -- fs->sb.s_frags_per_group = BLOCKS_PER_GROUP; -- fs->sb.s_inodes_per_group = fs->sb.s_inodes_count; -+ fs->sb.s_blocks_per_group = nbblocks_per_group; -+ fs->sb.s_frags_per_group = nbblocks_per_group; -+ fs->sb.s_inodes_per_group = nbinodes_per_group; - fs->sb.s_magic = EXT2_MAGIC_NUMBER; - - // set up groupdescriptors -- fs->sb.s_free_blocks_count -= 5 + fs->sb.s_inodes_count * sizeof(inode) / BLOCKSIZE; -- fs->gd.bg_free_blocks_count = fs->sb.s_free_blocks_count; -- fs->gd.bg_free_inodes_count = fs->sb.s_free_inodes_count; -- fs->gd.bg_used_dirs_count = 1; -- fs->gd.bg_block_bitmap = 3; -- fs->gd.bg_inode_bitmap = 4; -- fs->gd.bg_inode_table = 5; -- -- // mark non-filesystem blocks and inodes as allocated -- for(i = fs->sb.s_blocks_count; i <= BLOCKSIZE * 8; i++) -- allocate(fs->bbm, i); -- for(i = fs->sb.s_inodes_count + 1; i <= BLOCKSIZE * 8; i++) -- allocate(fs->ibm, i); -- -- // mark system blocsk and inodes as allocated -- for(i = 1; i <= 4 + fs->sb.s_inodes_count * sizeof(inode) / BLOCKSIZE; i++) -- allocate(fs->bbm, i); -- for(i = 1; i < EXT2_FIRST_INO; i++) -- allocate(fs->ibm, i); -+ for(i = 0,bbmpos=2+gd,ibmpos=3+gd,itblpos =4+gd; -+ i<nbgroups; -+ i++, bbmpos += nbblocks_per_group,ibmpos += nbblocks_per_group, -+ itblpos += nbblocks_per_group) { -+ -+ if(free_blocks > free_blocks_per_group) { -+ fs->gd[i].bg_free_blocks_count = free_blocks_per_group; -+ free_blocks -= free_blocks_per_group; -+ } else { -+ fs->gd[i].bg_free_blocks_count = free_blocks; -+ free_blocks = 0; // this is the last block group -+ } -+ if(i) -+ fs->gd[i].bg_free_inodes_count = nbinodes_per_group; -+ else -+ fs->gd[i].bg_free_inodes_count = nbinodes_per_group - -+ EXT2_FIRST_INO + 2; -+ fs->gd[i].bg_used_dirs_count = 0; -+ fs->gd[i].bg_block_bitmap = bbmpos; -+ fs->gd[i].bg_inode_bitmap = ibmpos; -+ fs->gd[i].bg_inode_table = itblpos; -+ } -+ -+ /* Mark non-filesystem blocks and inodes as allocated */ -+ /* Mark system blocks and inodes as allocated */ -+ for(i = 0; i<nbgroups;i++) { -+ -+ /* Block bitmap */ -+ bbm = get_blk(fs,fs->gd[i].bg_block_bitmap); -+ //non-filesystem blocks -+ for(j = fs->gd[i].bg_free_blocks_count -+ + overhead_per_group + 1; j <= BLOCKSIZE * 8; j++) -+ allocate(bbm, j); -+ //system blocks -+ for(j = 1; j <= overhead_per_group; j++) -+ allocate(bbm, j); -+ -+ /* Inode bitmap */ -+ ibm = get_blk(fs,fs->gd[i].bg_inode_bitmap); -+ //non-filesystem inodes -+ for(j = fs->sb.s_inodes_per_group+1; j <= BLOCKSIZE * 8; j++) -+ allocate(ibm, j); -+ //system inodes -+ if(i == 0) -+ for(j = 1; j < EXT2_FIRST_INO; j++) -+ allocate(ibm, j); -+ } - - // make root inode and directory -- fs->itab[EXT2_ROOT_INO-1].i_mode = FM_IFDIR | FM_IRWXU | FM_IRWXG | FM_IRWXO; -- fs->itab[EXT2_ROOT_INO-1].i_size = BLOCKSIZE; -- fs->itab[EXT2_ROOT_INO-1].i_links_count = 2; -+ /* We have groups now. Add the root filesystem in group 0 */ -+ /* Also increment the directory count for group 0 */ -+ fs->gd[0].bg_free_inodes_count--; -+ fs->gd[0].bg_used_dirs_count = 1; -+ itab0 = (inode *)get_blk(fs,fs->gd[0].bg_inode_table); -+ itab0[EXT2_ROOT_INO-1].i_mode = FM_IFDIR | FM_IRWXU | FM_IRGRP | FM_IROTH | FM_IXGRP | FM_IXOTH; -+ itab0[EXT2_ROOT_INO-1].i_size = BLOCKSIZE; -+ itab0[EXT2_ROOT_INO-1].i_links_count = 2; -+ - b = get_workblk(); - d = (directory*)b; - d->d_inode = EXT2_ROOT_INO; -@@ -1147,9 +1760,14 @@ - // make lost+found directory and reserve blocks - if(fs->sb.s_r_blocks_count) - { -- nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", FM_IRWXU | FM_IRWXG | FM_IRWXO); -+ nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", FM_IRWXU, 0, 0, now, now); - memset(b, 0, BLOCKSIZE); - ((directory*)b)->d_rec_len = BLOCKSIZE; -+ /* We run into problems with e2fsck if directory lost+found grows -+ * bigger than this. Need to find out why this happens - sundar -+ */ -+ if (fs->sb.s_r_blocks_count > fs->sb.s_blocks_count * MAX_RESERVED_BLOCKS ) -+ fs->sb.s_r_blocks_count = fs->sb.s_blocks_count * MAX_RESERVED_BLOCKS; - for(i = 1; i < fs->sb.s_r_blocks_count; i++) - extend_blk(fs, nod, b, 1); - get_nod(fs, nod)->i_size = fs->sb.s_r_blocks_count * BLOCKSIZE; -@@ -1168,36 +1786,34 @@ - } - - // loads a filesystem from disk --filesystem * load_fs(FILE * fh, int swapit) -+static filesystem * load_fs(FILE * fh, int swapit) - { - size_t fssize; - filesystem *fs; - if((fseek(fh, 0, SEEK_END) < 0) || ((fssize = ftell(fh)) < 0)) -- pexit("input filesystem image"); -+ perror_msg_and_die("input filesystem image"); - rewind(fh); - fssize = (fssize + BLOCKSIZE - 1) / BLOCKSIZE; - if(fssize < 16) // totally arbitrary -- errexit("too small filesystem"); -- if(fssize > BLOCKS_PER_GROUP) // I build only one group -- errexit("too big filesystem"); -+ error_msg_and_die("too small filesystem"); - if(!(fs = (filesystem*)calloc(fssize, BLOCKSIZE))) -- errexit("not enough memory for filesystem"); -+ error_msg_and_die("not enough memory for filesystem"); - if(fread(fs, BLOCKSIZE, fssize, fh) != fssize) -- pexit("input filesystem image"); -+ perror_msg_and_die("input filesystem image"); - if(swapit) - swap_badfs(fs); - if(fs->sb.s_rev_level || (fs->sb.s_magic != EXT2_MAGIC_NUMBER)) -- errexit("not a suitable ext2 filesystem"); -+ error_msg_and_die("not a suitable ext2 filesystem"); - return fs; - } - --void free_fs(filesystem *fs) -+static void free_fs(filesystem *fs) - { - free(fs); - } - - // just walk through blocks list --void flist_blocks(filesystem *fs, uint32 nod, FILE *fh) -+static void flist_blocks(filesystem *fs, uint32 nod, FILE *fh) - { - blockwalker bw; - uint32 bk; -@@ -1208,7 +1824,7 @@ - } - - // walk through blocks list --void list_blocks(filesystem *fs, uint32 nod) -+static void list_blocks(filesystem *fs, uint32 nod) - { - int bn = 0; - blockwalker bw; -@@ -1221,7 +1837,7 @@ - } - - // saves blocks to FILE* --void write_blocks(filesystem *fs, uint32 nod, FILE* f) -+static void write_blocks(filesystem *fs, uint32 nod, FILE* f) - { - blockwalker bw; - uint32 bk; -@@ -1230,15 +1846,15 @@ - while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END) - { - if(fsize <= 0) -- errexit("wrong size while saving inode %d", nod); -+ error_msg_and_die("wrong size while saving inode %d", nod); - if(fwrite(get_blk(fs, bk), (fsize > BLOCKSIZE) ? BLOCKSIZE : fsize, 1, f) != 1) -- errexit("error while saving inode %d", nod); -+ error_msg_and_die("error while saving inode %d", nod); - fsize -= BLOCKSIZE; - } - } - - // hexdumps blocks to a FILE* --void hexdump_blocks(filesystem *fs, uint32 nod, FILE* f) -+static void hexdump_blocks(filesystem *fs, uint32 nod, FILE* f) - { - blockwalker bw; - uint32 bk; -@@ -1250,7 +1866,7 @@ - { - int i, j; - if(fsize <= 0) -- errexit("wrong size while saving inode %d", nod); -+ error_msg_and_die("wrong size while saving inode %d", nod); - b = get_blk(fs, bk); - for(i = 0; i < 64; i++) - { -@@ -1273,7 +1889,7 @@ - } - - // print block/char device minor and major --void print_dev(filesystem *fs, uint32 nod) -+static void print_dev(filesystem *fs, uint32 nod) - { - int minor, major; - minor = ((uint8*)get_nod(fs, nod)->i_block)[0]; -@@ -1282,7 +1898,7 @@ - } - - // print an inode as a directory --void print_dir(filesystem *fs, uint32 nod) -+static void print_dir(filesystem *fs, uint32 nod) - { - blockwalker bw; - uint32 bk; -@@ -1306,7 +1922,7 @@ - } - - // print a symbolic link --void print_link(filesystem *fs, uint32 nod) -+static void print_link(filesystem *fs, uint32 nod) - { - if(!get_nod(fs, nod)->i_blocks) - printf("links to '%s'\n", (char*)get_nod(fs, nod)->i_block); -@@ -1319,7 +1935,7 @@ - } - - // make a ls-like printout of permissions --void make_perms(uint32 mode, char perms[11]) -+static void make_perms(uint32 mode, char perms[11]) - { - strcpy(perms, "----------"); - if(mode & FM_IRUSR) -@@ -1378,7 +1994,7 @@ - } - - // print an inode --void print_inode(filesystem *fs, uint32 nod) -+static void print_inode(filesystem *fs, uint32 nod) - { - char *s; - char perms[11]; -@@ -1406,7 +2022,7 @@ - s = (nod >= EXT2_FIRST_INO) ? "normal" : "unknown reserved"; - } - printf("inode %d (%s, %d links): ", nod, s, get_nod(fs, nod)->i_links_count); -- if(!allocated(fs->ibm, nod)) -+ if(!allocated(GRP_GET_INODE_BITMAP(fs,nod), GRP_IBM_OFFSET(fs,nod))) - { - printf("unallocated\n"); - return; -@@ -1440,58 +2056,76 @@ - default: - list_blocks(fs, nod); - } -+ printf("Done with inode %d\n",nod); - } - - // describes various fields in a filesystem --void print_fs(filesystem *fs) -+static void print_fs(filesystem *fs) - { - int i; -- printf("%d blocks (%d free, %d reserved), first data block: %d\n", fs->sb.s_blocks_count, fs->sb.s_free_blocks_count, fs->sb.s_r_blocks_count, fs->sb.s_first_data_block); -- printf("%d inodes (%d free)\n", fs->sb.s_inodes_count, fs->sb.s_free_inodes_count); -- printf("block size = %d, frag size = %d\n", fs->sb.s_log_block_size ? (fs->sb.s_log_block_size << 11) : 1024, fs->sb.s_log_frag_size ? (fs->sb.s_log_frag_size << 11) : 1024); -- printf("%d blocks per group, %d frags per group, %d inodes per group\n", fs->sb.s_blocks_per_group, fs->sb.s_frags_per_group, fs->sb.s_inodes_per_group); -- printf("block bitmap: block %d, inode bitmap: block %d, inode table: block %d\n", fs->gd.bg_block_bitmap, fs->gd.bg_inode_bitmap, fs->gd.bg_inode_table); -- printf("block bitmap allocation:\n"); -- print_bm(fs->bbm, fs->sb.s_blocks_count); -- printf("inode bitmap allocation:\n"); -- print_bm(fs->ibm, fs->sb.s_inodes_count); -- for(i=1; i<=fs->sb.s_inodes_count; i++) -- if(allocated(fs->ibm, i)) -- print_inode(fs, i); -+ uint8 *ibm; -+ -+ printf("%d blocks (%d free, %d reserved), first data block: %d\n", -+ fs->sb.s_blocks_count, fs->sb.s_free_blocks_count, -+ fs->sb.s_r_blocks_count, fs->sb.s_first_data_block); -+ printf("%d inodes (%d free)\n", fs->sb.s_inodes_count, -+ fs->sb.s_free_inodes_count); -+ printf("block size = %d, frag size = %d\n", -+ fs->sb.s_log_block_size ? (fs->sb.s_log_block_size << 11) : 1024, -+ fs->sb.s_log_frag_size ? (fs->sb.s_log_frag_size << 11) : 1024); -+ printf("number of groups: %d\n",GRP_NBGROUPS(fs)); -+ printf("%d blocks per group,%d frags per group,%d inodes per group\n", -+ fs->sb.s_blocks_per_group, fs->sb.s_frags_per_group, -+ fs->sb.s_inodes_per_group); -+ printf("Size of inode table: %d blocks\n", -+ fs->sb.s_inodes_per_group * sizeof(inode)/BLOCKSIZE); -+ for (i = 0; i < GRP_NBGROUPS(fs); i++) { -+ printf("Group No: %d\n", i+1); -+ printf("block bitmap: block %d,inode bitmap: block %d, inode table: block %d\n", -+ fs->gd[i].bg_block_bitmap, fs->gd[i].bg_inode_bitmap, -+ fs->gd[i].bg_inode_table); -+ printf("block bitmap allocation:\n"); -+ print_bm(GRP_GET_GROUP_BBM(fs, i),fs->sb.s_blocks_per_group); -+ printf("inode bitmap allocation:\n"); -+ ibm = GRP_GET_GROUP_IBM(fs, i); -+ print_bm(ibm, fs->sb.s_inodes_per_group); -+ for (i = 1; i <= fs->sb.s_inodes_per_group; i++) -+ if (allocated(ibm, i)) -+ print_inode(fs, i); -+ } - } - --void dump_fs(filesystem *fs, FILE * fh, int swapit) -+static void dump_fs(filesystem *fs, FILE * fh, int swapit) - { - int nbblocks = fs->sb.s_blocks_count; - fs->sb.s_reserved[200] = 0; - if(swapit) - swap_goodfs(fs); - if(fwrite(fs, BLOCKSIZE, nbblocks, fh) < nbblocks) -- pexit("output filesystem image"); -+ perror_msg_and_die("output filesystem image"); - if(swapit) - swap_badfs(fs); - } - --void showhelp(void) -+static void showhelp(void) - { - fprintf(stderr, "Usage: %s [options] image\n" - "Create an ext2 filesystem image from directories/files\n\n" -- " -x image Use this image as a starting point\n" -- " -d directory Add this directory as source\n" -- " -f file Add nodes (e.g. devices) from this spec file\n" -- " -b blocks Size in blocks\n" -- " -i inodes Number of inodes\n" -- " -r reserved Number of reserved blocks\n" -- " -g path Generate a block map file for this path\n" -- " -e value Fill unallocated blocks with value\n" -- " -z Make files with holes\n" -- " -v Print resulting filesystem structure\n" -- " -h Show this help\n\n" -- "Example of spec file:\n" -- "drwx /dev\n" -- "crw- 10,190 /dev/lcd\n" -- "brw- 1,0 /dev/ram0\n\n" -- "Report bugs to xavier.bestel@free.fr\n", argv0); -+ " -x image Use this image as a starting point\n" -+ " -d directory Add this directory as source\n" -+ " -b blocks Size in blocks\n" -+ " -i inodes Number of inodes\n" -+ " -r reserved Number of reserved blocks\n" -+ " -g path Generate a block map file for this path\n" -+ " -e value Fill unallocated blocks with value\n" -+ " -z Make files with holes\n" -+ " -D,-f Use the named FILE as a device table file\n" -+ " -q Squash permissions and owners making all files be owned by root\n" -+ " -U Squash owners making all files be owned by root\n" -+ " -P Squash permissions on all files\n" -+ " -v Print resulting filesystem structure\n" -+ " -h Show this help\n\n" -+ "Report bugs to genext2fs-devel@lists.sourceforge.net\n", app_name); - } - - #define MAX_DOPT 128 -@@ -1507,6 +2141,8 @@ - int nbblocks = -1; - int nbinodes = -1; - int nbresrvd = -1; -+ int tmp_nbblocks = -1; -+ int tmp_nbinodes = -1; - char * fsout = "-"; - char * fsin = 0; - char * dopt[MAX_DOPT]; -@@ -1516,19 +2152,17 @@ - int verbose = 0; - int holes = 0; - int emptyval = 0; -+ int squash_uids = 0; -+ int squash_perms = 0; - uint16 endian = 1; - int bigendian = !*(char*)&endian; - filesystem *fs; - int i; - int c; -+ struct stats stats; - -- argv0 = argv[0]; -- if(argc <= 1) -- { -- showhelp(); -- exit(1); -- } -- while((c = getopt(argc, argv, "x:f:d:b:i:r:g:e:zvh")) != EOF) -+ app_name = argv[0]; -+ while((c = getopt(argc, argv, "x:d:b:i:r:g:e:zvhD:f:qUP")) != EOF) - switch(c) - { - case 'x': -@@ -1536,6 +2170,7 @@ - break; - case 'd': - case 'f': -+ case 'D': - dopt[didx++] = optarg; - break; - case 'b': -@@ -1556,6 +2191,16 @@ - case 'z': - holes = 1; - break; -+ case 'q': -+ squash_uids = 1; -+ squash_perms = 1; -+ break; -+ case 'U': -+ squash_uids = 1; -+ break; -+ case 'P': -+ squash_perms = 1; -+ break; - case 'v': - verbose = 1; - break; -@@ -1565,17 +2210,16 @@ - default: - exit(1); - } -+ - if(optind < (argc - 1)) -- errexit("too many arguments"); -+ error_msg_and_die("too many arguments"); - if(optind == (argc - 1)) - fsout = argv[optind]; - if(fsin) - { - if(strcmp(fsin, "-")) - { -- FILE * fh = fopen(fsin, "r"); -- if(!fh) -- pexit(fsin); -+ FILE * fh = xfopen(fsin, "r"); - fs = load_fs(fh, bigendian); - fclose(fh); - } -@@ -1584,12 +2228,55 @@ - } - else - { -+ stats.ninodes = 0; -+ stats.nblocks = 0; -+ for(i = 0; i < didx; i++) -+ { -+ struct stat st; -+ FILE *fh; -+ char *pdir; -+ stat(dopt[i], &st); -+ switch(st.st_mode & S_IFMT) -+ { -+ case S_IFREG: -+ fh = xfopen(dopt[i], "r"); -+ add2fs_from_file(fs, EXT2_ROOT_INO, fh, squash_uids, squash_perms, &stats); -+ fclose(fh); -+ break; -+ case S_IFDIR: -+ if(!(pdir = getcwd(0, GETCWD_SIZE))) -+ perror_msg_and_die(dopt[i]); -+ if(chdir(dopt[i]) < 0) -+ perror_msg_and_die(dopt[i]); -+ add2fs_from_dir(fs, EXT2_ROOT_INO, squash_uids, squash_perms, &stats); -+ if(chdir(pdir) < 0) -+ perror_msg_and_die(pdir); -+ free(pdir); -+ break; -+ default: -+ error_msg_and_die("%s in neither a file nor a directory", dopt[i]); -+ } -+ } -+ -+ tmp_nbinodes = stats.ninodes + EXT2_FIRST_INO + 1; -+ tmp_nbblocks = stats.nblocks; // FIXME: should add space taken by inodes too -+ -+ if(tmp_nbblocks > nbblocks) -+ { -+ printf("number of blocks too low, increasing to %d\n",tmp_nbblocks); -+ nbblocks = tmp_nbblocks; -+ } -+ if(tmp_nbinodes > nbinodes) -+ { -+ printf("number of inodes too low, increasing to %d\n",tmp_nbinodes); -+ nbinodes = tmp_nbinodes; -+ } - if(nbblocks == -1) -- errexit("filesystem size unspecified"); -+ error_msg_and_die("filesystem size unspecified"); - if(nbinodes == -1) - nbinodes = nbblocks * BLOCKSIZE / rndup(BYTES_PER_INODE, BLOCKSIZE); - if(nbresrvd == -1) -- nbresrvd = nbblocks * RESERVED_INODES; -+ nbresrvd = nbblocks * RESERVED_BLOCKS; - fs = init_fs(nbblocks, nbinodes, nbresrvd, holes); - } - for(i = 0; i < didx; i++) -@@ -1601,28 +2288,27 @@ - switch(st.st_mode & S_IFMT) - { - case S_IFREG: -- if(!(fh = fopen(dopt[i], "r"))) -- pexit(dopt[i]); -- add2fs_from_file(fs, EXT2_ROOT_INO, fh); -+ fh = xfopen(dopt[i], "r"); -+ add2fs_from_file(fs, EXT2_ROOT_INO, fh, squash_uids, squash_perms, NULL); - fclose(fh); - break; - case S_IFDIR: - if(!(pdir = getcwd(0, GETCWD_SIZE))) -- pexit(dopt[i]); -+ perror_msg_and_die(dopt[i]); - if(chdir(dopt[i]) < 0) -- pexit(dopt[i]); -- add2fs_from_dir(fs, EXT2_ROOT_INO); -+ perror_msg_and_die(dopt[i]); -+ add2fs_from_dir(fs, EXT2_ROOT_INO, squash_uids, squash_perms, NULL); - if(chdir(pdir) < 0) -- pexit(pdir); -+ perror_msg_and_die(pdir); - free(pdir); - break; - default: -- errexit("%s in neither a file nor a directory", dopt[i]); -+ error_msg_and_die("%s in neither a file nor a directory", dopt[i]); - } - } - if(emptyval) - for(i = 1; i < fs->sb.s_blocks_count; i++) -- if(!allocated(fs->bbm, i)) -+ if(!allocated(GRP_GET_BLOCK_BITMAP(fs,i),GRP_BBM_OFFSET(fs,i))) - memset(get_blk(fs, i), emptyval, BLOCKSIZE); - if(verbose) - print_fs(fs); -@@ -1633,25 +2319,23 @@ - char *p; - FILE *fh; - if(!(nod = find_path(fs, EXT2_ROOT_INO, gopt[i]))) -- errexit("path %s not found in filesystem", gopt[i]); -+ error_msg_and_die("path %s not found in filesystem", gopt[i]); - while((p = strchr(gopt[i], '/'))) - *p = '_'; - snprintf(fname, MAX_FILENAME-1, "%s.blk", gopt[i]); -- if(!(fh = fopen(fname, "w"))) -- pexit(fname); -+ fh = xfopen(fname, "w"); - fprintf(fh, "%d:", get_nod(fs, nod)->i_size); - flist_blocks(fs, nod, fh); - fclose(fh); - } - if(strcmp(fsout, "-")) - { -- FILE * fh = fopen(fsout, "w"); -- if(!fh) -- pexit(fsout); -+ FILE * fh = xfopen(fsout, "w"); - dump_fs(fs, fh, bigendian); - fclose(fh); - } - else - dump_fs(fs, stdout, bigendian); -+ free_fs(fs); - return 0; - } -diff --exclude CVS -urN genext2fs-1.3.orig/install-sh genext2fs/install-sh ---- genext2fs-1.3.orig/install-sh 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/install-sh 2004-12-27 13:03:47.000000000 -0700 -@@ -0,0 +1,325 @@ -+#!/bin/sh -+# install - install a program, script, or datafile -+ -+scriptversion=2004-04-01.17 -+ -+# This originates from X11R5 (mit/util/scripts/install.sh), which was -+# later released in X11R6 (xc/config/util/install.sh) with the -+# following copyright and license. -+# -+# Copyright (C) 1994 X Consortium -+# -+# Permission is hereby granted, free of charge, to any person obtaining a copy -+# of this software and associated documentation files (the "Software"), to -+# deal in the Software without restriction, including without limitation the -+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -+# sell copies of the Software, and to permit persons to whom the Software is -+# furnished to do so, subject to the following conditions: -+# -+# The above copyright notice and this permission notice shall be included in -+# all copies or substantial portions of the Software. -+# -+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -+# -+# Except as contained in this notice, the name of the X Consortium shall not -+# be used in advertising or otherwise to promote the sale, use or other deal- -+# ings in this Software without prior written authorization from the X Consor- -+# tium. -+# -+# -+# FSF changes to this file are in the public domain. -+# -+# Calling this script install-sh is preferred over install.sh, to prevent -+# `make' implicit rules from creating a file called install from it -+# when there is no Makefile. -+# -+# This script is compatible with the BSD install script, but was written -+# from scratch. It can only install one file at a time, a restriction -+# shared with many OS's install programs. -+ -+# set DOITPROG to echo to test this script -+ -+# Don't use :- since 4.3BSD and earlier shells don't like it. -+doit="${DOITPROG-}" -+ -+# put in absolute paths if you don't have them in your path; or use env. vars. -+ -+mvprog="${MVPROG-mv}" -+cpprog="${CPPROG-cp}" -+chmodprog="${CHMODPROG-chmod}" -+chownprog="${CHOWNPROG-chown}" -+chgrpprog="${CHGRPPROG-chgrp}" -+stripprog="${STRIPPROG-strip}" -+rmprog="${RMPROG-rm}" -+mkdirprog="${MKDIRPROG-mkdir}" -+ -+transformbasename= -+transform_arg= -+instcmd="$mvprog" -+chmodcmd="$chmodprog 0755" -+chowncmd= -+chgrpcmd= -+stripcmd= -+rmcmd="$rmprog -f" -+mvcmd="$mvprog" -+src= -+dst= -+dir_arg= -+ -+usage="Usage: $0 [OPTION]... SRCFILE DSTFILE -+ or: $0 [OPTION]... SRCFILES... DIRECTORY -+ or: $0 -d DIRECTORIES... -+ -+In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default. -+In the second, create the directory path DIR. -+ -+Options: -+-b=TRANSFORMBASENAME -+-c copy source (using $cpprog) instead of moving (using $mvprog). -+-d create directories instead of installing files. -+-g GROUP $chgrp installed files to GROUP. -+-m MODE $chmod installed files to MODE. -+-o USER $chown installed files to USER. -+-s strip installed files (using $stripprog). -+-t=TRANSFORM -+--help display this help and exit. -+--version display version info and exit. -+ -+Environment variables override the default commands: -+ CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG -+" -+ -+while test -n "$1"; do -+ case $1 in -+ -b=*) transformbasename=`echo $1 | sed 's/-b=//'` -+ shift -+ continue;; -+ -+ -c) instcmd=$cpprog -+ shift -+ continue;; -+ -+ -d) dir_arg=true -+ shift -+ continue;; -+ -+ -g) chgrpcmd="$chgrpprog $2" -+ shift -+ shift -+ continue;; -+ -+ --help) echo "$usage"; exit 0;; -+ -+ -m) chmodcmd="$chmodprog $2" -+ shift -+ shift -+ continue;; -+ -+ -o) chowncmd="$chownprog $2" -+ shift -+ shift -+ continue;; -+ -+ -s) stripcmd=$stripprog -+ shift -+ continue;; -+ -+ -t=*) transformarg=`echo $1 | sed 's/-t=//'` -+ shift -+ continue;; -+ -+ --version) echo "$0 $scriptversion"; exit 0;; -+ -+ *) # When -d is used, all remaining arguments are directories to create. -+ test -n "$dir_arg" && break -+ # Otherwise, the last argument is the destination. Remove it from $@. -+ for arg -+ do -+ if test -n "$dstarg"; then -+ # $@ is not empty: it contains at least $arg. -+ set fnord "$@" "$dstarg" -+ shift # fnord -+ fi -+ shift # arg -+ dstarg=$arg -+ done -+ break;; -+ esac -+done -+ -+if test -z "$1"; then -+ if test -z "$dir_arg"; then -+ echo "$0: no input file specified." >&2 -+ exit 1 -+ fi -+ # It's OK to call `install-sh -d' without argument. -+ # This can happen when creating conditional directories. -+ exit 0 -+fi -+ -+for src -+do -+ # Protect names starting with `-'. -+ case $src in -+ -*) src=./$src ;; -+ esac -+ -+ if test -n "$dir_arg"; then -+ dst=$src -+ src= -+ -+ if test -d "$dst"; then -+ instcmd=: -+ chmodcmd= -+ else -+ instcmd=$mkdirprog -+ fi -+ else -+ # Waiting for this to be detected by the "$instcmd $src $dsttmp" command -+ # might cause directories to be created, which would be especially bad -+ # if $src (and thus $dsttmp) contains '*'. -+ if test ! -f "$src" && test ! -d "$src"; then -+ echo "$0: $src does not exist." >&2 -+ exit 1 -+ fi -+ -+ if test -z "$dstarg"; then -+ echo "$0: no destination specified." >&2 -+ exit 1 -+ fi -+ -+ dst=$dstarg -+ # Protect names starting with `-'. -+ case $dst in -+ -*) dst=./$dst ;; -+ esac -+ -+ # If destination is a directory, append the input filename; won't work -+ # if double slashes aren't ignored. -+ if test -d "$dst"; then -+ dst=$dst/`basename "$src"` -+ fi -+ fi -+ -+ # This sed command emulates the dirname command. -+ dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` -+ -+ # Make sure that the destination directory exists. -+ -+ # Skip lots of stat calls in the usual case. -+ if test ! -d "$dstdir"; then -+ defaultIFS=' -+ ' -+ IFS="${IFS-$defaultIFS}" -+ -+ oIFS=$IFS -+ # Some sh's can't handle IFS=/ for some reason. -+ IFS='%' -+ set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` -+ IFS=$oIFS -+ -+ pathcomp= -+ -+ while test $# -ne 0 ; do -+ pathcomp=$pathcomp$1 -+ shift -+ if test ! -d "$pathcomp"; then -+ $mkdirprog "$pathcomp" || lasterr=$? -+ # mkdir can fail with a `File exist' error in case several -+ # install-sh are creating the directory concurrently. This -+ # is OK. -+ test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; } -+ fi -+ pathcomp=$pathcomp/ -+ done -+ fi -+ -+ if test -n "$dir_arg"; then -+ $doit $instcmd "$dst" \ -+ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ -+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ -+ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ -+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } -+ -+ else -+ # If we're going to rename the final executable, determine the name now. -+ if test -z "$transformarg"; then -+ dstfile=`basename "$dst"` -+ else -+ dstfile=`basename "$dst" $transformbasename \ -+ | sed $transformarg`$transformbasename -+ fi -+ -+ # don't allow the sed command to completely eliminate the filename. -+ test -z "$dstfile" && dstfile=`basename "$dst"` -+ -+ # Make a couple of temp file names in the proper directory. -+ dsttmp=$dstdir/_inst.$$_ -+ rmtmp=$dstdir/_rm.$$_ -+ -+ # Trap to clean up those temp files at exit. -+ trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 -+ trap '(exit $?); exit' 1 2 13 15 -+ -+ # Move or copy the file name to the temp name -+ $doit $instcmd "$src" "$dsttmp" && -+ -+ # and set any options; do chmod last to preserve setuid bits. -+ # -+ # If any of these fail, we abort the whole thing. If we want to -+ # ignore errors from any of these, just make sure not to ignore -+ # errors from the above "$doit $instcmd $src $dsttmp" command. -+ # -+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ -+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ -+ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ -+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && -+ -+ # Now rename the file to the real destination. -+ { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ -+ || { -+ # The rename failed, perhaps because mv can't rename something else -+ # to itself, or perhaps because mv is so ancient that it does not -+ # support -f. -+ -+ # Now remove or move aside any old file at destination location. -+ # We try this two ways since rm can't unlink itself on some -+ # systems and the destination file might be busy for other -+ # reasons. In this case, the final cleanup might fail but the new -+ # file should still install successfully. -+ { -+ if test -f "$dstdir/$dstfile"; then -+ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ -+ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ -+ || { -+ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 -+ (exit 1); exit -+ } -+ else -+ : -+ fi -+ } && -+ -+ # Now rename the file to the real destination. -+ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" -+ } -+ } -+ fi || { (exit 1); exit; } -+done -+ -+# The final little trick to "correctly" pass the exit status to the exit trap. -+{ -+ (exit 0); exit -+} -+ -+# Local variables: -+# eval: (add-hook 'write-file-hooks 'time-stamp) -+# time-stamp-start: "scriptversion=" -+# time-stamp-format: "%:y-%02m-%02d.%02H" -+# time-stamp-end: "$" -+# End: -diff --exclude CVS -urN genext2fs-1.3.orig/missing genext2fs/missing ---- genext2fs-1.3.orig/missing 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/missing 2004-12-27 13:03:47.000000000 -0700 -@@ -0,0 +1,360 @@ -+#! /bin/sh -+# Common stub for a few missing GNU programs while installing. -+ -+scriptversion=2003-09-02.23 -+ -+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 -+# Free Software Foundation, Inc. -+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2, or (at your option) -+# any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 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. -+ -+if test $# -eq 0; then -+ echo 1>&2 "Try \`$0 --help' for more information" -+ exit 1 -+fi -+ -+run=: -+ -+# In the cases where this matters, `missing' is being run in the -+# srcdir already. -+if test -f configure.ac; then -+ configure_ac=configure.ac -+else -+ configure_ac=configure.in -+fi -+ -+msg="missing on your system" -+ -+case "$1" in -+--run) -+ # Try to run requested program, and just exit if it succeeds. -+ run= -+ shift -+ "$@" && exit 0 -+ # Exit code 63 means version mismatch. This often happens -+ # when the user try to use an ancient version of a tool on -+ # a file that requires a minimum version. In this case we -+ # we should proceed has if the program had been absent, or -+ # if --run hadn't been passed. -+ if test $? = 63; then -+ run=: -+ msg="probably too old" -+ fi -+ ;; -+esac -+ -+# If it does not exist, or fails to run (possibly an outdated version), -+# try to emulate it. -+case "$1" in -+ -+ -h|--h|--he|--hel|--help) -+ echo "\ -+$0 [OPTION]... PROGRAM [ARGUMENT]... -+ -+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -+error status if there is no known handling for PROGRAM. -+ -+Options: -+ -h, --help display this help and exit -+ -v, --version output version information and exit -+ --run try to run the given command, and emulate it if it fails -+ -+Supported PROGRAM values: -+ aclocal touch file \`aclocal.m4' -+ autoconf touch file \`configure' -+ autoheader touch file \`config.h.in' -+ automake touch all \`Makefile.in' files -+ bison create \`y.tab.[ch]', if possible, from existing .[ch] -+ flex create \`lex.yy.c', if possible, from existing .c -+ help2man touch the output file -+ lex create \`lex.yy.c', if possible, from existing .c -+ makeinfo touch the output file -+ tar try tar, gnutar, gtar, then tar without non-portable flags -+ yacc create \`y.tab.[ch]', if possible, from existing .[ch] -+ -+Send bug reports to <bug-automake@gnu.org>." -+ ;; -+ -+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version) -+ echo "missing $scriptversion (GNU Automake)" -+ ;; -+ -+ -*) -+ echo 1>&2 "$0: Unknown \`$1' option" -+ echo 1>&2 "Try \`$0 --help' for more information" -+ exit 1 -+ ;; -+ -+ aclocal*) -+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then -+ # We have it, but it failed. -+ exit 1 -+ fi -+ -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want -+ to install the \`Automake' and \`Perl' packages. Grab them from -+ any GNU archive site." -+ touch aclocal.m4 -+ ;; -+ -+ autoconf) -+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then -+ # We have it, but it failed. -+ exit 1 -+ fi -+ -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified \`${configure_ac}'. You might want to install the -+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU -+ archive site." -+ touch configure -+ ;; -+ -+ autoheader) -+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then -+ # We have it, but it failed. -+ exit 1 -+ fi -+ -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified \`acconfig.h' or \`${configure_ac}'. You might want -+ to install the \`Autoconf' and \`GNU m4' packages. Grab them -+ from any GNU archive site." -+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` -+ test -z "$files" && files="config.h" -+ touch_files= -+ for f in $files; do -+ case "$f" in -+ *:*) touch_files="$touch_files "`echo "$f" | -+ sed -e 's/^[^:]*://' -e 's/:.*//'`;; -+ *) touch_files="$touch_files $f.in";; -+ esac -+ done -+ touch $touch_files -+ ;; -+ -+ automake*) -+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then -+ # We have it, but it failed. -+ exit 1 -+ fi -+ -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. -+ You might want to install the \`Automake' and \`Perl' packages. -+ Grab them from any GNU archive site." -+ find . -type f -name Makefile.am -print | -+ sed 's/\.am$/.in/' | -+ while read f; do touch "$f"; done -+ ;; -+ -+ autom4te) -+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then -+ # We have it, but it failed. -+ exit 1 -+ fi -+ -+ echo 1>&2 "\ -+WARNING: \`$1' is needed, but is $msg. -+ You might have modified some files without having the -+ proper tools for further handling them. -+ You can get \`$1' as part of \`Autoconf' from any GNU -+ archive site." -+ -+ file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` -+ test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` -+ if test -f "$file"; then -+ touch $file -+ else -+ test -z "$file" || exec >$file -+ echo "#! /bin/sh" -+ echo "# Created by GNU Automake missing as a replacement of" -+ echo "# $ $@" -+ echo "exit 0" -+ chmod +x $file -+ exit 1 -+ fi -+ ;; -+ -+ bison|yacc) -+ echo 1>&2 "\ -+WARNING: \`$1' $msg. You should only need it if -+ you modified a \`.y' file. You may need the \`Bison' package -+ in order for those modifications to take effect. You can get -+ \`Bison' from any GNU archive site." -+ rm -f y.tab.c y.tab.h -+ if [ $# -ne 1 ]; then -+ eval LASTARG="\${$#}" -+ case "$LASTARG" in -+ *.y) -+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` -+ if [ -f "$SRCFILE" ]; then -+ cp "$SRCFILE" y.tab.c -+ fi -+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` -+ if [ -f "$SRCFILE" ]; then -+ cp "$SRCFILE" y.tab.h -+ fi -+ ;; -+ esac -+ fi -+ if [ ! -f y.tab.h ]; then -+ echo >y.tab.h -+ fi -+ if [ ! -f y.tab.c ]; then -+ echo 'main() { return 0; }' >y.tab.c -+ fi -+ ;; -+ -+ lex|flex) -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified a \`.l' file. You may need the \`Flex' package -+ in order for those modifications to take effect. You can get -+ \`Flex' from any GNU archive site." -+ rm -f lex.yy.c -+ if [ $# -ne 1 ]; then -+ eval LASTARG="\${$#}" -+ case "$LASTARG" in -+ *.l) -+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` -+ if [ -f "$SRCFILE" ]; then -+ cp "$SRCFILE" lex.yy.c -+ fi -+ ;; -+ esac -+ fi -+ if [ ! -f lex.yy.c ]; then -+ echo 'main() { return 0; }' >lex.yy.c -+ fi -+ ;; -+ -+ help2man) -+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then -+ # We have it, but it failed. -+ exit 1 -+ fi -+ -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified a dependency of a manual page. You may need the -+ \`Help2man' package in order for those modifications to take -+ effect. You can get \`Help2man' from any GNU archive site." -+ -+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` -+ if test -z "$file"; then -+ file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` -+ fi -+ if [ -f "$file" ]; then -+ touch $file -+ else -+ test -z "$file" || exec >$file -+ echo ".ab help2man is required to generate this page" -+ exit 1 -+ fi -+ ;; -+ -+ makeinfo) -+ if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then -+ # We have makeinfo, but it failed. -+ exit 1 -+ fi -+ -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified a \`.texi' or \`.texinfo' file, or any other file -+ indirectly affecting the aspect of the manual. The spurious -+ call might also be the consequence of using a buggy \`make' (AIX, -+ DU, IRIX). You might want to install the \`Texinfo' package or -+ the \`GNU make' package. Grab either from any GNU archive site." -+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` -+ if test -z "$file"; then -+ file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` -+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` -+ fi -+ touch $file -+ ;; -+ -+ tar) -+ shift -+ if test -n "$run"; then -+ echo 1>&2 "ERROR: \`tar' requires --run" -+ exit 1 -+ fi -+ -+ # We have already tried tar in the generic part. -+ # Look for gnutar/gtar before invocation to avoid ugly error -+ # messages. -+ if (gnutar --version > /dev/null 2>&1); then -+ gnutar "$@" && exit 0 -+ fi -+ if (gtar --version > /dev/null 2>&1); then -+ gtar "$@" && exit 0 -+ fi -+ firstarg="$1" -+ if shift; then -+ case "$firstarg" in -+ *o*) -+ firstarg=`echo "$firstarg" | sed s/o//` -+ tar "$firstarg" "$@" && exit 0 -+ ;; -+ esac -+ case "$firstarg" in -+ *h*) -+ firstarg=`echo "$firstarg" | sed s/h//` -+ tar "$firstarg" "$@" && exit 0 -+ ;; -+ esac -+ fi -+ -+ echo 1>&2 "\ -+WARNING: I can't seem to be able to run \`tar' with the given arguments. -+ You may want to install GNU tar or Free paxutils, or check the -+ command line arguments." -+ exit 1 -+ ;; -+ -+ *) -+ echo 1>&2 "\ -+WARNING: \`$1' is needed, and is $msg. -+ You might have modified some files without having the -+ proper tools for further handling them. Check the \`README' file, -+ it often tells you about the needed prerequisites for installing -+ this package. You may also peek at any GNU archive site, in case -+ some other package would contain this missing \`$1' program." -+ exit 1 -+ ;; -+esac -+ -+exit 0 -+ -+# Local variables: -+# eval: (add-hook 'write-file-hooks 'time-stamp) -+# time-stamp-start: "scriptversion=" -+# time-stamp-format: "%:y-%02m-%02d.%02H" -+# time-stamp-end: "$" -+# End: -diff --exclude CVS -urN genext2fs-1.3.orig/test-mount.sh genext2fs/test-mount.sh ---- genext2fs-1.3.orig/test-mount.sh 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/test-mount.sh 2004-10-24 02:43:50.000000000 -0600 -@@ -0,0 +1,96 @@ -+#!/bin/sh -+set -e -+ -+cleanup () { -+ set +e -+ umount mnt 2>/dev/null -+ rm -rf mnt ext2.img lsout fout test 2>/dev/null -+} -+ -+# dtest - Uses the -d directory option of genext2fs -+# Creates an image with a file of given size and verifies it -+# Usage: dtest file-size number-of-blocks -+dtest () { -+ size=$1; blocks=$2;fname=$size -+ echo "Testing with file of size $size " -+ mkdir -p test -+ cd test -+ dd if=/dev/zero of=file.$1 bs=1 count=$size -+ cd .. -+ ./genext2fs -b $blocks -d test ext2.img -+ md5=`md5sum ext2.img | cut -f1 -d " "` -+ if ! /sbin/e2fsck -fn ext2.img ; then -+ echo "fsck failed" -+ echo FAILED -+ cleanup -+ exit 1 -+ fi -+ mkdir -p mnt -+ if ! mount -t ext2 -o loop ext2.img mnt; then -+ echo FAILED -+ cleanup -+ exit 1 -+ fi -+ if (! [ -f mnt/file.$fname ]) || \ -+ [ $fname != "`ls -al mnt | grep file.$fname |awk '{print $5}'`" ] ; then -+ echo FAILED -+ cleanup -+ exit 1 -+ fi -+ echo PASSED "(md5 checksum for the image: $md5)" -+ cleanup -+} -+ -+# ftest - Uses the -f spec-file option of genext2fs -+# Creates an image with the devices mentioned in the given spec -+# file and verifies it -+# Usage: ftest spec-file number-of-blocks -+ftest () { -+ fname=$1; blocks=$2; -+ echo "Testing with devices file $fname" -+ ./genext2fs -b $blocks -f $fname ext2.img -+ md5=`md5sum ext2.img | cut -f 1 -d " "` -+ if ! /sbin/e2fsck -fn ext2.img ; then -+ echo "fsck failed" -+ echo FAILED -+ cleanup -+ exit 1 -+ fi -+ mkdir -p mnt -+ if ! mount -t ext2 -o loop ext2.img mnt; then -+ echo FAILED -+ cleanup -+ exit 1 -+ fi -+ if ! [ -d mnt/dev ] ; then -+ echo FAILED -+ cleanup -+ exit 1 -+ fi -+ cat dev.txt | grep ^[bc] | \ -+ awk '{print $1substr($1,2)substr($1,2),$2,$3}'| \ -+ sort -d -k3.6 > fout -+ ls -al mnt/dev | grep ^[bc] | \ -+ awk '{ print $1,$5$6,"/dev/"$10}' | \ -+ sort -d -k3.6 > lsout -+ if ! diff fout lsout ; then -+ echo FAILED -+ cleanup -+ exit 1 -+ fi -+ echo PASSED "(md5 checksum for the image: $md5)" -+ cleanup -+} -+ -+dtest 0 4096 -+dtest 0 8193 -+dtest 0 8194 -+dtest 1 4096 -+dtest 12288 4096 -+dtest 274432 4096 -+dtest 8388608 9000 -+dtest 16777216 20000 -+ -+ftest dev.txt 4096 -+ -+exit 0 -diff --exclude CVS -urN genext2fs-1.3.orig/test.sh genext2fs/test.sh ---- genext2fs-1.3.orig/test.sh 1969-12-31 17:00:00.000000000 -0700 -+++ genext2fs/test.sh 2004-10-24 02:43:50.000000000 -0600 -@@ -0,0 +1,53 @@ -+#!/bin/sh -+set -e -+ -+# dtest - Uses the -d directory option of genext2fs -+# Creates an image with a file of given size and verifies it -+# Usage: dtest file-size number-of-blocks correct-checksum -+dtest () { -+ size=$1; blocks=$2; checksum=$3 -+ echo "Testing with file of size $size " -+ mkdir -p test -+ cd test -+ dd if=/dev/zero of=file.$1 bs=1 count=$size -+ cd .. -+ ./genext2fs -b $blocks -d test ext2.img -+ md5=`md5sum ext2.img | cut -d" " -f1` -+ rm -rf ext2.img test -+ if [ $md5 == $checksum ] ; then -+ echo PASSED -+ else -+ echo FAILED -+ exit 1 -+ fi -+} -+ -+# ftest - Uses the -f spec-file option of genext2fs -+# Creates an image with the devices mentioned in the given spec -+# file and verifies it -+# Usage: ftest spec-file number-of-blocks correct-checksum -+ftest () { -+ fname=$1; blocks=$2; checksum=$3 -+ echo "Testing with devices file $fname" -+ ./genext2fs -b $blocks -f $fname ext2.img -+ md5=`md5sum ext2.img | cut -d" " -f1` -+ rm -rf ext2.img -+ if [ $md5 == $checksum ] ; then -+ echo PASSED -+ else -+ echo FAILED -+ exit 1 -+ fi -+} -+ -+dtest 0 4096 491a43ab93c2e5c186c9f1f72d88e5c5 -+dtest 0 8193 6289224f0b7f151994479ba156c43505 -+dtest 0 8194 3272c43c25e8d0c3768935861a643a65 -+dtest 1 4096 5ee24486d33af88c63080b09d8cadfb5 -+dtest 12288 4096 494498364defdc27b2770d1f9c1e3387 -+dtest 274432 4096 65c4bd8d30bf563fa5434119a12abff1 -+dtest 8388608 9000 9a49b0461ee236b7fd7c452fb6a1f2dc -+dtest 16777216 20000 91e16429c901b68d30f783263f0611b7 -+ -+ftest dev.txt 4096 921ee9343b0759e16ad8d979d7dd16ec -+exit 0 diff --git a/target/ext2/genext2fs-02-nosquash_devtable.patch b/target/ext2/genext2fs-02-nosquash_devtable.patch deleted file mode 100644 index 947e61ac3..000000000 --- a/target/ext2/genext2fs-02-nosquash_devtable.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- genext2fs-1.3/genext2fs.c~ 2005-02-15 02:21:18.000000000 -0700 -+++ genext2fs-1.3/genext2fs.c 2005-02-15 02:17:09.000000000 -0700 -@@ -1322,10 +1324,6 @@ - } - else - { -- if(squash_uids) -- uid = gid = 0; -- if(squash_perms) -- mode &= ~(FM_IRWXG | FM_IRWXO); - mode &= FM_IMASK; - path2 = strdup(path); - name = basename(path); diff --git a/target/ext2/genext2fs-1.4-nosquash.patch b/target/ext2/genext2fs-1.4-nosquash.patch new file mode 100644 index 000000000..236dfccdf --- /dev/null +++ b/target/ext2/genext2fs-1.4-nosquash.patch @@ -0,0 +1,14 @@ +diff -ru genext2fs-1.4/genext2fs.c genext2fs-1.4-nosquash/genext2fs.c +--- genext2fs-1.4/genext2fs.c 2006-12-19 17:45:31.000000000 +0100 ++++ genext2fs-1.4-nosquash/genext2fs.c 2007-02-09 10:47:05.000000000 +0100 +@@ -1629,10 +1629,6 @@ + mtime = st.st_mtime; + name = dent->d_name; + mode = get_mode(&st); +- if(squash_uids) +- uid = gid = 0; +- if(squash_perms) +- mode &= ~(FM_IRWXG | FM_IRWXO); + if(stats) + switch(st.st_mode & S_IFMT) + { diff --git a/target/ext2/genext2fs-1.4-remove_ugly_warnings.patch b/target/ext2/genext2fs-1.4-remove_ugly_warnings.patch new file mode 100644 index 000000000..ef23dfbe8 --- /dev/null +++ b/target/ext2/genext2fs-1.4-remove_ugly_warnings.patch @@ -0,0 +1,21 @@ +diff -ru genext2fs-1.4/genext2fs.c genext2fs-1.4-remove_ugly_warnings/genext2fs.c +--- genext2fs-1.4/genext2fs.c 2007-02-09 10:54:56.000000000 +0100 ++++ genext2fs-1.4-remove_ugly_warnings/genext2fs.c 2007-02-09 10:54:30.000000000 +0100 +@@ -1606,7 +1606,7 @@ + static void + add2fs_from_dir(filesystem *fs, uint32 this_nod, int squash_uids, int squash_perms, uint32 fs_timestamp, struct stats *stats) + { +- uint32 nod; ++ uint32 nod = 0; + uint32 uid, gid, mode, ctime, mtime; + const char *name; + FILE *fh; +@@ -2056,7 +2056,7 @@ + static filesystem * + load_fs(FILE * fh, int swapit) + { +- size_t fssize; ++ size_t fssize = 0; + filesystem *fs; + if((fseek(fh, 0, SEEK_END) < 0) || ((ssize_t)(fssize = ftell(fh)) == -1)) + perror_msg_and_die("input filesystem image"); |