-2004-07-03 00:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-15 22:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * configure.ac: version 0.30
+ * NEWS, configure.ac:
-2004-05-27 14:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ version 0.30.208
- * distrib/install-fc1: fixed DOS lineends (Arne Blankerts)
+2005-07-15 21:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-04-23 13:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * configure.ac, lib/personalityflag.c, lib/personalitytype.c,
+ m4/ensc_personality.m4:
- * NEWS, configure.ac: version 0.29.5
+ check whether enums from <linux/personality.h> are available before using
+ them (https://savannah.nongnu.org/bugs/?func=detailitem&item_id=12921)
-2004-04-23 13:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-15 21:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * util-vserver.spec.in: cleanups
+ * util-vserver.spec.in:
-2004-04-20 20:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ - require the -lib subpackage by -devel
+ - copy GPG keys from /etc/pki/rpm-gpg/
- * sysv/: rebootmgr.subst, vservers.subst: made '--force-reload' an
- alias for 'restart' (Noèl Köthe,
- http://savannah.nongnu.org/patch/?func=detailitem&item_id=2633)
+2005-07-15 21:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-04-20 20:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/testsuite/rpm-fake-test.sh:
- * scripts/distrib-info: added patch from Matthew Lavy for Debian
- support
+ fixed paths so that it works again...
-2004-04-03 03:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-15 21:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * distrib/Makefile-files: added the fc* files
+ * sysv/vprocunhide:
-2004-04-03 03:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ do not run when IATTR feature is not supported
- * NEWS, configure.ac: version 0.29.4
+2005-07-15 21:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-04-03 02:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/: vserver.start, vserver.suexec:
- * util-vserver.spec.in: removed doc/FAQ.txt from %doc-list
+ readded the limit-ulimits-per-vserver stuff due popular request
+ (http://savannah.nongnu.org/bugs/?func=detailitem&item_id=12840)
-2004-04-03 02:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-15 20:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * distrib/: fc1-minimum, install-fc1: initial checkin (provided by
- Arne Blankerts)
+ * lib/getinsecurebcaps.c:
-2004-04-03 01:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ - adjusted insecure caps for the added CAP_AUDIT* and removed
+ CAP_QUOTACTL stuff
+ - assume every unknown capability as insecure
- * distrib/rh9.0-minimum: replaced with list from 'vserver 0.29'
- package (reported by Arne Blankerts)
+2005-07-15 20:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-04-03 01:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/testsuite/.cvsignore:
- * distrib/sample.conf: s!-H!-HS! (reported by Arne Blankerts)
+ added 'personality'
-2004-03-18 19:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-15 20:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * doc/: FAQ.txt[DEAD], Makefile-files, changelog.txt[DEAD]: removed
- FAQ.txt and changelog.txt; they are containing errormessages only
+ * lib/: syscall_netadd-net.hc, syscall_netremove-net.hc:
-2004-03-09 05:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ changed code so that it *compiles* with current kernel headers
- * m4/ensc_syscallnr.m4: stopped to confuse users with wrong error
- messages; the correct CPPFLAGS are '-D...' but not '-D=...'
+2005-07-15 20:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-03-05 06:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/: syscall_getiattr-fscompat.hc, syscall_setiattr-fscompat.hc:
- * m4/ensc_syscallnr.m4: use $ensc_cv_path_kernelheaders instead of
- $kernelincludedir
+ Changed the barrier-code so that it sets both the 't' ext2-flag and
+ chmod-0 permissions. This is required to work with 1.2.10 patch;
+ formerly the chmod-0 sufficed. [reported by Bjoern Steinbrink,
+ http://savannah.nongnu.org/bugs/?func=detailitem&item_id=13170]
-2004-03-05 05:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-15 18:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * src/reducecap.c: use strncasecmp() instead of strncmp() include
- <strings.h>
+ * lib/capabilities.c:
-2004-03-04 04:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ use a static '29' for QUOTACTL capability as VC_CAP_QUOTACTL was removed
- * NEWS, configure.ac: version 0.29.3
+2005-07-15 18:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-03-04 04:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/ccaps-v13.c:
- * lib/Makefile-files: do not use '-I $kernelincludedir' anymore
+ added VC_VXC_{SYSLOG,BINARY_MOUNT,QUOTA_CTL}
+ added/moved some aliases
-2004-03-04 04:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-15 18:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * m4/ensc_syscallnr.m4: require AC_PROG_CPP
+ * lib/bcaps-v13.c:
-2004-03-04 04:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ removed VC_CAP_QUOTACTL
+ added VC_CAP_AUDIT*
- * m4/: ensc_cflags.m4, ensc_kerneldir.m4, ensc_syscall.m4,
- ensc_syscallnr.m4, validate.am: merged with HEAD
+2005-07-15 18:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-03-04 01:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/vserver.h:
- * src/reducecap.c: BUGFIX/ENHANCEMENTS: the CLI interface of
- 'reducecap' was fixed significantly: now it is possible to remove
- capabilities like CHOWN'. Formerly, only privileged caps like
- SYS_* or *_ADMIN could be removed because of a coding error.
- Changes in the related code are making it possible that both
- '--CAP_XXX' and '--XXX' syntax will be recognized (based on
- patches and reports by Bodo Eggert).
+ removed VC_CAP_QUOTACTL
+ added VC_CAP_AUDIT*
+ added VC_VXC_{SYSLOG,BINARY_MOUNT,QUOTA_CTL}
-2004-02-20 20:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-15 18:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * configure.ac: version 0.29.2
+ * contrib/: Makefile-files, yum-2.3.4-chroot.patch:
-2004-02-20 20:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added yum-2.3.4-chroot patch
- * lib/syscall_rlimit-v11.hc: vc_get_rlimit_mask_v11(): use correct
- datastructure (backported from HEAD)
+2005-07-15 18:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-02-20 20:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * kernel/: network.h, network_cmd.h, switch.h, xid.h:
- * src/vlimit.c: * changed logic to skip entries without chance for
- success (backported from HEAD) * fixed '--help' message * give
- vc_set_rlimit() the context instead of a static '-2' * require a
- ctx on the CLI
+ updated to patch-2.6.12.2-vs2.0-rc7
-2004-02-19 23:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-05 00:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/syscall-compat.hc: vc_set_ipv4root_compat(): fixed off-by-one
- error while checking number of allowed IPs (backported from HEAD)
+ * scripts/vserver-build.functions:
-2004-02-19 23:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ check whether context is already active before starting the build
+ (http://savannah.nongnu.org/bugs/?func=detailitem&item_id=12849)
- * m4/ensc_e2fscheck.m4: tell correct packagename for Debian's
- e2fsprogs-devel (backported from HEAD) tell packagename for
- Mandrake (backported from HEAD)
+2005-07-05 00:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-02-14 01:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/vserver-info.c:
- * configure.ac: version 0.29.1 use new syscall# detection code
- (backported from HEAD)
+ allow to pass a numeric xid to 'vserver-info ... RUNNING'
-2004-02-14 01:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-05 00:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/vserver-internal.h: use new syscall# detection code
- (backported from HEAD)
+ * lib_internal/: Makefile-files, util-isnumber.c, util.h:
-2004-02-14 01:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ isNumber(): added
- * m4/ensc_syscallnr.m4: initial checkin (backported from HEAD)
+2005-07-04 20:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-02-11 22:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/vserver-build.debootstrap:
- * NEWS, configure.ac: version 0.29
+ give out status message before downloading debootstrap
+ (http://savannah.nongnu.org/bugs/?func=detailitem&item_id=13472)
-2004-02-10 00:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-04 20:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * configure.ac: version 0.28.91
+ * lib/syscall-alternative.h:
-2004-02-10 00:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ updated to http://vserver.13thfloor.at/Experimental/SYSCALL/syscall.h
+ from 2005-05-07
- * Makefile.am, src/Makefile-files: remove src/setattr on 'clean'
- (reported by Noèl Köthe)
+2005-07-04 00:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-02-09 23:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * distrib/misc/debootstrap.uri:
- * scripts/vserver-copy, src/vbuild.cc: further chattr "fixes"
+ oops... set the wrong value
-2004-02-06 23:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-04 00:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * configure.ac: version 0.28.90
+ * distrib/misc/debootstrap.uri:
-2004-02-06 23:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ updated
- * util-vserver.spec.in: require chattr set 't' attribute on
- /vservers
+2005-07-04 00:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-02-06 23:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * distrib/Makefile.am:
- * distrib/install-pre.sh, distrib/install-rh7.2,
- distrib/install-rh7.3, scripts/vserver: when creating new vserver
- topdirectories, call 'chattr -t' on them
+ register fc4 as rh-style distribution
-2004-02-05 04:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-03 22:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * configure.ac, lib/syscall-legacy.hc, lib/vserver-internal.h,
- m4/ensc_syscall.m4: backported ENSC_SYSCALL_TRADITIONAL from HEAD
- version 0.28.1
+ * configure.ac:
-2004-01-29 22:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ check for 'nohup'
- * scripts/vserver-copy: fixed copyright, it is still at Mark
- Lawrence
+2005-07-03 19:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-01-28 12:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * contrib/manifest.dat.pathsubst:
- * configure.ac: version 0.28
+ removed chroot_* + C++ programs
+ added chroot_sh + vwait
-2004-01-26 19:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-03 19:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * NEWS: version 0.27.91
+ * Makefile.am, lib/virtual.h:
-2004-01-26 19:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ updated used kernel headers to 2.6.12.2-vs2.0-rc5
- * configure.ac: version 0.27.91 use new ext2fs.h test
+2005-07-03 19:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-01-26 19:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/: syscall_getvhiname-v13.hc, syscall_setvhiname-v13.hc:
- * src/ext2fs.h: updated to new ext2fs.h test
+ - s!VCMD_vx_.et_vhi_name!VCMD_.et_vhi_name!
+ - added workaround for older kernels not having the naming above
-2004-01-26 19:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-03 19:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * m4/: ensc_cflags.m4, ensc_kerneldir.m4, ensc_uv_vrootdir.m4:
- added missing quotes
+ * scripts/vshelper:
-2004-01-26 19:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ accept 'async' method
- * m4/ensc_e2fscheck.m4: initial checkin
+2005-07-03 19:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-01-26 19:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/vserver.start:
- * lib/syscall_kill-v11.hc: fixed warnings about missing initializer
+ pipe 'popd' output to /dev/null
-2004-01-26 19:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-03 19:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/: getversion.c, vserver.h: vc_get_version(): removed 'int
- cat' parameter
+ * scripts/vserver.functions:
-2004-01-22 21:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ initSync(): fixed parameter naming
+ initSync(): set 'async' method when 'vwait' is available
+ _waitForVWait(): read pipe after 'wait' returned
- * NEWS, configure.ac: version 0.27.90
+2005-07-03 19:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-01-22 20:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/vserver-build:
- * scripts/vserver: call 'chkconfig' to fix initscripts *after*
- generating the configuration (reported by DUCLOS Andre)
+ do not set OPTION_KEEP
-2004-01-22 17:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-03 19:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * scripts/vserver: allow to override start/stop commands (patch by
- Erik Smit)
+ * scripts/util-vserver-vars.pathsubst:
-2004-01-20 00:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added vwait
- * scripts/vserver-copy: use an argument on 'mktemp' call
+2005-07-03 19:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-01-17 07:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/pkgmgmt:
- * scripts/vserver-copy: autodetect the mktemp/tempfile command
- (reported by DUCLOS Andre)
+ - cleanups
+ - unset %_dbpath at 'internalize' operation
-2004-01-17 07:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-03 19:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * scripts/vserver: start programs with 'exec' on the 'suexec' (and
- related) commands (patch by Alec Thomas)
+ * scripts/functions:
-2004-01-07 17:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ vshelper.initSync(): fixed parameter naming
- * src/chcontext.c: backported from HEAD: * removed obsolete and
- unused 'fakeinit' variable * fixed ctx-creation with fakeinit and
- static ctx-id's; fakeinit requires a second call for ctx -2 to
- take effect
+2005-07-03 19:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2004-01-07 17:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/chroot-sh.c:
- * lib/vserver-internal.h: fixed handling of errors within
- utilvserver_checkCompatVersion() to return real error-code but
- not -EINVAL
+ implemented 'testfile' subcommand
-2003-12-30 20:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-03 16:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * configure.ac: version 0.27
+ * contrib/: Makefile-files, yum-2.3.3-chroot.patch:
-2003-12-30 15:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added yum-2.3.3-chroot.patch
- * NEWS, configure.ac: version 0.26.90
+2005-07-03 16:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-12-30 15:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/functions:
- * configure.ac: * another s!sys_virtual_context!vserver! * test for
- ext2fs.h headers with the C++ compiler; this will detect
- problems with RH rawhide headers very early
- (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=112448)
+ do not quote $_VSHELPER in help message (reported by Roman Barczynski,
+ https://savannah.nongnu.org/bugs/?func=detailitem&item_id=13162)
-2003-12-30 15:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-03 16:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/vserver-internal.h: another s!sys_virtual_context!vserver!
+ * doc/configuration.xml:
-2003-12-30 15:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ mentioned the working directory for the scripts
- * lib/syscall_kill-v11.hc: made it compilable with non-C99
- compilers
+2005-07-03 16:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-12-30 14:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * kernel/: context.h, context_cmd.h, cvirt_cmd.h, debug.h,
+ namespace.h, namespace_cmd.h, network.h, network_cmd.h, switch.h:
- * scripts/vserver: added basic Slackware support (patch by Stephen
- Pearce)
+ updated to 2.6.12.2-vs2.0-rc5
-2003-12-30 14:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2005-07-03 15:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * src/vkill.c: * s!ctx_t!xid_t! * use native vc_ctx_kill() only
- when legacy-API is disabled * fixed help-msg
+ * scripts/vserver.start:
-2003-12-30 14:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ execute the prepre script in the configuration directory (*not* the
+ vdir directory); this should not cause legacy problems as formerly the
+ directory was not changed overall
- * lib/syscall_rlimit.c, lib/vserver-internal.h, lib/vserver.h,
- lib/getctx-compat.hc, lib/getctx-legacy.hc, lib/getctx.c,
- lib/syscall-compat.hc, lib/syscall.c, lib/syscall_kill-v11.hc,
- lib/syscall_kill.c, lib/syscall_rlimit-v11.hc, src/vlimit.c,
- configure.ac, compat.h: s!ctx_t!xid_t!
+2005-07-03 15:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ check whether filesystem is mounted readonly; if so, execute
+ $_SECURE_MOUNT with the '-n' argument
+
+2005-07-03 15:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build.apt-rpm, vserver-build.debootstrap,
+ vserver-build.rpm:
+
+ execute base.setSuccess() at the end
+
+2005-07-03 15:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake-resolver.c:
+
+ implemented better error-handling in the read() and write() functions
+
+2005-07-03 14:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/: wrappers-io.hc, wrappers-iosock.hc,
+ wrappers-unistd.hc:
+
+ store result of read*(2) and write*(2) fucntions into signed variables;
+ error handling is more cleaner in this way
+
+2005-07-03 14:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ - cleanups
+ - multiply RSS value with PAGESIZE
+ (https://savannah.nongnu.org/bugs/?func=detailitem&item_id=13184)
+ - prepare the '-O' option: calculate vserver names earlier and use
+ some more helper functions
+
+2005-07-03 14:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ - doPwStringRequest(): fixed x86_64 issue; rpm-fake.so transmitted a
+ 'size_t' value, but rpm-fake-resolver expected an uint32_t
+ - minor cleanups
+
+2005-07-03 11:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/: Makefile-files, vector-foreach.c, vector.h,
+ vector.hc:
+
+ added Vector_foreach*() functions
+
+2005-07-02 11:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: Makefile-files, vbuild.cc[DEAD], vcheck.cc[DEAD],
+ vfiles.cc[DEAD], vserver.cc[DEAD], vserver.hh[DEAD],
+ vutil.cc[DEAD], vutil.h[DEAD], vutil.p[DEAD]:
+
+ removed the C++ tools; they do not work with recent configuration and
+ are adding huge dependencies
+
+2005-06-30 08:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop:
+
+ use vwait infrastructure
+
+2005-06-30 08:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build.functions.pkgmgmt, vserver.functions:
+
+ use CHROOT_SH instead of CHROOT_*
+ use vwait
+
+2005-06-30 08:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions:
+
+ remove generated vserver when build fails and '--keep' was not specified
+
+2005-06-30 08:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build.apt-rpm, vserver-build.debootstrap,
+ vserver-build.rpm, vserver-build.skeleton, vserver-build.yum:
+
+ use 'base.init' instead of 'base.initVariables'
+
+2005-06-30 08:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build:
+
+ added '--keep' option
+
+2005-06-30 08:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: X, util-vserver-vars.pathsubst:
+
+ removed CHROOT_*
+ added CHROOT_SH
+
+2005-06-30 08:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/pkgmgmt:
+
+ use CHROOT_SH instead of CHROOT_*
+
+2005-06-30 08:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ include signal_cmd.h instead of signal.h
+
+2005-06-30 08:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added %dist tag
+ buildrequire 'which' and 'diffutils'
+ require 'apt' on i386 only
+
+2005-06-30 08:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/fc4/: apt/rpmpriorities, apt/sources.list, yum/yum.conf,
+ yum.repos.d/fedora-devel.repo,
+ yum.repos.d/fedora-updates-testing.repo,
+ yum.repos.d/fedora-updates.repo, yum.repos.d/fedora.repo,
+ pkgs/01, pkgs/02, pkgs/03, rpmlist.d/00.lst:
+
+ initial checkin
+
+2005-06-30 08:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpost:
+
+ use CHROOT_SH instead of CHROOT_*
+
+2005-06-30 07:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: .cvsignore, Makefile-files, chroot-cat.c[DEAD],
+ chroot-rm.c[DEAD], chroot-sh.c:
+
+ replaced all the small chroot-* programs with a single 'chroot-sh'
+ program
+
+2005-05-19 20:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added @NOHUP@
+
+2005-05-19 20:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/pkgmgmt:
+
+ use new chroot-cat CLI
+
+2005-05-19 20:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * kernel/: context.h, cvirt.h, dlimit.h, dlimit_cmd.h, inode_cmd.h,
+ legacy.h, signal_cmd.h, xid.h, signal.h[DEAD]:
+
+ updated
+
+2005-05-19 20:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: issupported.c, issupportedstring.c, vserver.h:
+
+ vc_isSupported() et.al: added VWAIT feature
+
+2005-05-19 20:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_syscall.m4:
+
+ s!enable_val!enableval!
+
+2005-05-19 20:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ fixed calculation of hours (%24 instead of %60); reported in
+ http://savannah.nongnu.org/bugs/?func=detailitem&item_id=13048 by
+ Roman Barczynski
+
+2005-05-19 20:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chroot-cat.c:
+
+ added '-i', '-o' and '-a' options to cat or override a file, or to
+ append something
+
+2005-05-19 19:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpost:
+
+ use safe chroot-cat commands
+
+2005-05-05 21:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4:
+
+ - give out a more correct helpstring for the '--enable/disable-dietlibc'
+ option
+ - use AS_HELP_STRING instead of AC_HELP_STRING
+
+2005-05-05 20:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ - removed call to ENSC_FPIC_SYSCALL
+ - enhanced dietlibc version check to the 64 bit version of hppa
+
+2005-05-05 11:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added vwait
+
+2005-05-05 11:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vwait.c:
+
+ initial checkin
+
+2005-05-05 11:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vshelper-sync.c:
+
+ use '__linux__' instead of '__linux' (reported by Ola Lundqvist)
+
+2005-05-05 11:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/exec-cd.c:
+
+ minor cosmetical cleanup
+
+2005-05-05 11:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chroot-cat.c:
+
+ - added support for '--help' and '--version'
+ - added '-a' option to append information instead of truncating the
+ file
+
+2005-05-05 11:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ - 'chroot-cat' supports now the '--help' and '--version' options so
+ removed it from AM_INSTALLCHECK_STD_OPTIONS_EXEMPT
+ - added vwait
+
+2005-05-05 11:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/install-notify.am:
+
+ s!^# !## !
+
+2005-05-05 11:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: Makefile-files, syscall_waitexit-v13.hc,
+ syscall_waitexit.c, vserver.h:
+
+ vc_wait_exit(): implemented support for this syscall
+
+2005-05-02 23:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/compat-pivot_root.h:
+
+ use <syscall-wrap.h>
+
+2005-05-02 23:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_syscall.m4:
+
+ minor cosmetical cleanups
+
+2005-05-02 23:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_fpicsyscall.m4[DEAD]:
+
+ obsoleted
+
+2005-05-02 23:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_fpicsyscall.m4:
+
+ use ENSC_SYSCALL_ALTERNATIVE
+
+2005-05-02 23:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ cleaned up '#include <*syscall.h>' stuff
+
+2005-05-02 23:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall-legacy.hc, syscall-wrap.h:
+
+ include <syscall.h> also
+
+2005-05-02 23:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration-xhtml.xsl:
+
+ use class 'directoryname' instead of 'directory' for '<directory/>'
+ markup
+
+2005-05-02 23:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am, distrib/Makefile.am, m4/install-notify.am:
+
+ give out additional information about the 'make install' process
+
+2005-04-28 21:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.30.207
+
+2005-04-28 20:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ adjusted dietlibc requirements
+
+2005-04-28 20:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ allow to override the execution domain (personality); added
+ '--personality-type' and '--personality-flags' options
+
+2005-04-28 20:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake-resolver.c:
+
+ added a TEMP_FAILURE_RETRY around a read(2)
+
+2005-04-28 20:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.start, vserver.suexec:
+
+ added support for a rescue mode
+
+2005-04-28 20:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ * _generatePersonalityOptions(): added and use it
+ * added support for a rescue mode
+
+2005-04-28 20:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.pkgmgmt:
+
+ YUM_RELEASEPKGS: added
+
+2005-04-28 20:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ fixed docu for 'stop' and 'start'
+
+2005-04-28 20:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/pkgmgmt:
+
+ * verifyInternalPackages(): added
+ * added some sanity checks for a sany environment when internalizing
+ the package management
+
+2005-04-28 20:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ * isRegularFile(): fixed evaluation of params
+ * hasSubstring(): added
+ * getAllVservers(): fixed typo
+
+2005-04-28 20:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/sys_clone.h:
+
+ cleanups; do not include <sys/syscall.h>
+
+2005-04-28 20:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: Makefile-files, sys_personality.h:
+
+ added sys_personality.h
+
+2005-04-28 19:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-copy[DEAD], legacy/vserver-copy:
+
+ moved to legacy
+
+2005-04-28 19:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/: Makefile-files, personality.c:
+
+ added testcases for the vc_*personality*() functions
+
+2005-04-28 19:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added prototypes for vc_*personality* support
+
+2005-04-28 19:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ updated to new kernel headers
+
+2005-04-28 19:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/cflags_list-v13.c:
+
+ do not include <string.h> anymore
+
+2005-04-28 19:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/internal.h:
+
+ utilvserver_listparser_uint*(): removed the 'nonnull' attribute for the 'mask' param
+
+2005-04-28 19:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: Makefile-files, personalityflag.c, personalityflag_list.c,
+ personalitytype.c:
+
+ added personality* files
+
+2005-04-28 19:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ * added some markup
+ * documented 'personality'
+
+2005-04-28 19:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: configuration-xhtml.xsl, configuration.dtd:
+
+ added support for <directory> and <filename> markup
+
+2005-04-28 19:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/fc3/yum/yum.conf:
+
+ s!redhat-release!fedora-release!
+
+2005-04-28 19:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/fc3/pkgs/02:
+
+ removed 'coreutils'
+
+2005-04-28 19:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/fc3/rpmlist.d/00.lst:
+
+ added some more packages
+
+2005-04-28 19:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/: fc1/apt/rpmpriorities, fc2/apt/rpmpriorities,
+ fc3/apt/rpmpriorities, rh9/apt/rpmpriorities:
+
+ added *-release packages
+
+2005-04-28 19:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst, scripts/Makefile-files:
+
+ moved vserver-copy to legacy
+
+2005-04-28 19:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added new kernel headers
+
+2005-04-28 13:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * kernel/: context.h, context_cmd.h, cvirt.h, cvirt_cmd.h,
+ cvirt_def.h, debug.h, debug_cmd.h, dlimit.h, dlimit_cmd.h,
+ inode.h, inode_cmd.h, legacy.h, limit.h, limit_cmd.h,
+ limit_def.h, namespace.h, network.h, network_cmd.h, sched.h,
+ sched_cmd.h, sched_def.h, switch.h, xid.h:
+
+ updated to headers from patch-2.6.11.7-vs2.0-pre2
+
+2005-04-24 22:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ showContexts(): added 'const' qualifier
+
+2005-04-24 22:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: start-vservers, vsomething:
+
+ use the new getAllVservers() functionality to specify special kinds of
+ vservers
+
+2005-04-24 22:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ * isRegularFile(): allow to override the '-f' classifier
+ * getAllVservers(): added several types of vservers (marked, unmarked,
+ running...)
+ * getAllVserversByArg()" added
+
+2005-04-24 22:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc_compat.m4:
+
+ * ENSC_DIETLIBC_NEED_COMPAT: use the 'syscall-wrap.h' header and the
+ results from ENSC_SYSCALL_ALTERNATIVE
+
+2005-04-24 22:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_syscall.m4:
+
+ * ENSC_SYSCALL_ALTERNATIVE: added
+ * ENSC_SYSCALL: use the 'syscall-wrap.h' header and the results from
+ ENSC_SYSCALL_ALTERNATIVE
+
+2005-04-24 22:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h, lib_internal/sys_clone.h:
+
+ include "syscall-wrap.h"
+
+2005-04-24 22:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: ncaps-net.c, nflags-net.c:
+
+ VALUES: added an empty field to make it compile with gcc4
+
+2005-04-24 22:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: ncaps_list-net.c, nflags_list-net.c:
+
+ made it compatible to the new utilvserver_listparser_uint*() API and
+ added wrappers with a third 'bool *' arg
+
+2005-04-24 22:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/listparser.hc:
+
+ * parser function has now to set a 'bool *' arg to signal errors
+ * when 'mask' argument is null, the special modifiers like '~', '!' or
+ 'any' are not allowed
+
+2005-04-24 22:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/internal.h:
+
+ utilvserver_listparser_uint*(): added a third 'bool *' arg for the
+ parser function so that errors can be better propagated
+
+2005-04-24 22:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: bcaps_list-v13.c, ccaps_list-v13.c, cflags_list-v13.c:
+
+ made it compatible to the new utilvserver_listparser_uint*() API and
+ added wrappers with a third 'bool *' arg
+
+2005-04-24 22:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: Makefile-files, syscall-alternative.h, syscall-wrap.h:
+
+ added syscall-alternative.h and syscall-wrap.h
+
+2005-04-24 22:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * update-doc:
+
+ exclude some static files
+
+2005-04-24 22:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * build-all:
+
+ remove config.cache when CLEAN is set
+ disabled gcc33 build
+
+2005-04-24 13:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: configuration-xhtml.xsl, configuration.dtd,
+ configuration.xml:
+
+ added new markup
+ added new CSS from Nicolas Costes
+
+2005-04-16 23:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ cleanups
+ added '--disable-extra-optimizations' option
+
+2005-04-16 23:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build.functions, vserver-build.functions.apt,
+ vserver-build.functions.rpm, vserver-build.functions.yum,
+ vserver.functions:
+
+ use the common isRegularFile() method to filter out backup-files
+
+2005-04-16 23:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ isRegularFile(): added
+
+2005-04-16 23:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ cleanups
+ added changelog entry for 0.30.206
+
+2005-04-13 00:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.30.206
+
+2005-04-12 23:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ implemented VERIFYPROC method
+
+2005-04-12 23:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ added verify-proc sanity check
+
+2005-04-12 23:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ killContext(): commented out the more correct
+ (but not working) kill-sequence
+
+2005-04-12 23:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ ship the yum patches
+
+2005-04-12 23:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added '--no-wrap -S' to the CVS2CL_AMFLAGS
+
+2005-04-12 21:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ adjusted min-dietlibc requirements
+
+2005-04-12 21:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4:
+
+ ENSC_ENABLE_DIETLIBC(): allow 'min_ver' to be a shell variable
+
+2005-04-12 20:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ vshelper.isDebug(): fixed logic
+
+2005-04-10 14:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ send the signals for endgrent() and endpwent()
+
+2005-04-10 14:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/: Makefile-files, yum-2.2.1-chroot.patch,
+ yum-2.3.2-chroot.patch:
+
+ added patches for yum
+
+2005-04-10 14:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ include m4/libsel.am
+
+2005-04-10 03:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/context-sync.hc:
+
+ ignore errors during setsid(2) execution (required for vs1.9.5.12+)
+
+2005-04-10 03:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ * kill vserver processes explicitly with 'killContext'; userspace
+ reboot helper may assume that 'reboot(2)' never returns...
+ * added 'async' method
+
+2005-04-10 02:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop:
+
+ implicate '--sync' option; it is not possible to stop asynchronously
+ send SIGINT to pid 1 instead of trying to determine initpid
+
+2005-04-10 02:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ use 'killContext()' instead of invoking 'vkill' manually
+ set an initial runlevel for 'minit' style also
+ set 'async' vshelper method for non-sync mode
+
+2005-04-10 02:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vprocunhide:
+
+ fixed missing quoting of '~'; this may cause very slow booting when
+ NIS/LDAP servers are local vservers as bash tries to expand this to a
+ homedir...
+
+2005-04-10 02:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ spawn(), killContext(): added
+
+2005-04-10 02:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/libsel.am:
+
+ initial checkin
+
+2005-04-10 02:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4:
+
+ use a more modern version which accepts 'DIET' and 'DIETFLAGS' as
+ global configure variables
+
+2005-04-10 02:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_cxxcompiler.m4:
+
+ fixed typo
+
+2005-04-10 02:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ defined ENSC_USE_DIETLIBC + ENSC_USE_GLIBC
+
+2005-04-10 02:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ removed 'DIET' and 'DIETFLAGS' variables; they are set by configure now
+
+2005-04-08 21:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vyum-worker:
+
+ added better test for patched yum
+
+2005-04-08 21:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ fixed typo
+
+2005-04-08 21:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.suexec:
+
+ fixed typo (reported by Paul S. Gumerman)
+
+2005-04-08 21:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.yum:
+
+ substitute @YUMLOCKDIR@
+
+2005-04-08 21:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ fixed operation when context was not specified
+
+2005-04-08 21:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpre:
+
+ reverted the patch adding '/usr/X11'
+ create '/sbin/new-kernel-pkg'; 'initpost' would be too late for FC4
+
+2005-04-08 21:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpost:
+
+ use 'ln -sf' instead of 'ln -s'
+
+2005-04-08 21:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/fc3/yum/yum.conf:
+
+ add 'lockfile'
+
+2005-04-08 21:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added 'fc3' to 'redhat_style'
+
+2005-04-08 21:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ use DIETFLAGS instead of DIET_FLAGS
+
+2005-03-29 04:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/Makefile-files:
+
+ use $(LIBENSCVECTOR) instead of libensc_vector.a
+
+2005-03-25 22:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop:
+
+ fixed typo
+
+2005-03-25 18:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ minor cleanups: call vkill with '--xid' instead of '-c'
+
+2005-03-25 17:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop:
+
+ address both the context and the pid when sending SIGINT to init
+
+2005-03-25 03:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/copy-check:
+
+ do not use '-s' with 'cmp' but display verbose error reason
+
+2005-03-25 03:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/switchtowatchxid.c:
+
+ simplified it and made it work with recent kernels
+
+2005-03-25 03:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration-xhtml.xsl:
+
+ use 'alternate stylesheet' instead of 'stylesheet' (reported by Herbert
+ Poetzl)
+
+2005-03-25 03:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ fixed quoting of % in %description
+
+2005-03-24 15:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am, REQUIREMENTS:
+
+ added REQUIREMENTS
+
+2005-03-24 14:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac, util-vserver.spec.in:
+
+ version 0.30.205
+
+2005-03-24 14:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added some %descriptions
+
+2005-03-24 13:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vhashify.c:
+
+ s!write()!Vwrite()! at some places
+ add 'volatile' qualifier at variables used around 'setjmp'
+ use sigsetjmp() instead of setjmp()
+ minor code cleanups
+
+2005-03-24 13:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ s!write()!Vwrite()! at some places
+ use Echdir() instead of chdir()
+
+2005-03-24 13:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/filetime.c, src/lsxid.c, src/readlink.c, src/reducecap.c,
+ src/showattr.c, src/vattribute.c, src/vcontext.c, src/vcopy.c,
+ src/vdlimit.c, src/vlimit.c, src/vps.c, src/vserver-stat.c,
+ src/vuname.c, src/vunify.c, vserver-start/interface-read.c:
+
+ s!write()!Vwrite()! at some places
+
+2005-03-24 13:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/sigbus.c:
+
+ use Etruncate() instead of truncate()
+
+2005-03-24 13:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/copy-check:
+
+ added new tests and better diagnostic
+
+2005-03-24 13:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-copy.c:
+
+ moved 'volatile' qualifiers to a better place
+ minor code cleanups
+
+2005-03-24 13:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-unistd.hc:
+
+ E*truncate(): added
+
+2005-03-24 13:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/testsuite/test2.c:
+
+ #undef NDEBUG
+
+2005-03-24 02:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/sigbus.c:
+
+ unlink temporary files on exit
+
+2005-03-24 01:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-unify.c:
+
+ Unify_unify(): block signals while executing the non-atomic operations
+
+2005-03-24 01:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vhashify.c:
+
+ optimized directory creation
+
+2005-03-24 01:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-copy.c:
+
+ prepared for sigbus testcase
+ added some 'volatile' modifiers
+ use siglongjmp() instead of longjmp()
+
+2005-03-24 01:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/matchvserverinfo-init.c:
+
+ minor code cleanups
+
+2005-03-24 01:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/: .cvsignore, Makefile-files, sigbus.c:
+
+ added sigbus testcase
+
+2005-03-23 03:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/testsuite/.cvsignore:
+
+ updated
+
+2005-03-23 03:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vhashify-init.hc, vhashify.c:
+
+ added lots of new code...
+
+2005-03-23 03:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ is_selinux_enabled(): added
+
+2005-03-23 03:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build.apt-rpm, vserver-build.rpm,
+ vserver-build.yum:
+
+ execute '--initdb' before importing pubkeys
+ import pubkeys from /etc/vservers/.distributions/.common/pubkeys also
+
+2005-03-23 03:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ added 'hashify' target
+
+2005-03-23 03:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_VHASHIFY
+
+2005-03-23 03:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/matchlist-initrefserverlist.c:
+
+ fixed initialization of 'vserver'
+
+2005-03-23 03:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ create /etc/.../.distributions/.common/pubkeys/
+ create /etc/.../.defaults/apps/vunify/hash
+
+2005-03-23 03:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ copy GPG keys from the system into the confdir
+ buildrequire dietlibc-0.25
+
+2005-03-23 03:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * build-all:
+
+ build with debug settings
+
+2005-03-22 16:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ honor return codes of read(2) and write(2) when communication with the rpm-fake-helper
+ call read(2) and write(2) through TEMP_FAILURE_RETRY()
+ use Vwrite() instead of write(2) at some places
+
+2005-03-22 16:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/command-exec.c:
+
+ call write(2) through TEMP_FAILURE_RETRY()
+
+2005-03-22 16:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ BuildRequire beecrypt-devel
+
+2005-03-22 16:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chcontext.c, vhashify.c:
+
+ workaround warning messages regarding 'warn_unused_return_value' when
+ using _FORTIFY_SOURCE.
+
+2005-03-22 15:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvservervdir.c, lib_internal/coreassert.h,
+ lib_internal/matchlist-initmanually.c,
+ lib_internal/matchlist-printid.c,
+ lib_internal/util-exitlikeprocess.c, lib_internal/util-io.h:
+
+ workaround warning messages regarding 'warn_unused_return_value' when
+ using _FORTIFY_SOURCE.
+
+2005-03-22 15:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added vhashify + vdlimit
+
+2005-03-22 15:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ cleanups
+ use %global instead of %define
+
+2005-03-22 15:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * build-all:
+
+ set _FORTIFY_SOURCE
+
+2005-03-19 04:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * .cvsignore:
+
+ updated
+
+2005-03-19 03:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * update-doc:
+
+ initial checkin
+
+2005-03-19 03:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ do not use '--create' for dynamic contexts
+
+2005-03-19 03:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/vkillall[DEAD], tests/attack.spec[DEAD]:
+
+ obsoleted
+
+2005-03-19 03:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/vkillall, tests/attack.spec:
+
+ added to be removed...
+
+2005-03-19 03:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initsignal[DEAD]:
+
+ obsoleted
+
+2005-03-19 03:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initsignal:
+
+ added to be removed soon...
+
+2005-03-19 03:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vnet.c[DEAD]:
+
+ obsoleted...
+
+2005-03-19 03:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/vunify-verbosity.txt, lib/apidoc/list2xxx.descr, scripts/X,
+ src/vnet.c:
+
+ initial checkin
+
+2005-03-19 03:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/: interface-add.c, interface-print.c,
+ interface-remove.c, main.c:
+
+ avoid warnings regarding unused params
+
+2005-03-19 03:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ moved vdlimit into the only-C99 section
+ build vhashify only with C99 and beecrypt
+ cleanups
+
+2005-03-19 03:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/copy-check:
+
+ cleanups
+ conditionalize expensive tests
+
+2005-03-19 03:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files, lib/Makefile-files:
+
+ moved *dlimit* files into the only-C99 section
+ clean all potentially built libraries
+
+2005-03-19 03:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/list-free.c:
+
+ some minor C89 compatibility changes
+
+2005-03-19 03:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/Makefile-files:
+
+ use 'lib-dietlibc-not-enabled-error.a' consistently
+ clean all libraries inclusive those which might not be built
+
+2005-03-19 03:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.dtd:
+
+ readded
+
+2005-03-19 03:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented the 'vhashify' configuration
+ moved '<default>' tags before '<description>'
+
+2005-03-19 03:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration-xhtml.xsl:
+
+ applied changes regarding the new www-location on savannah
+
+2005-03-19 02:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/Makefile-files:
+
+ (re)added xsltproc support
+
+2005-03-19 02:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added tests for XSLTPROC
+ added '--disable-expensive-tests'
+ added beecrypt tests
+ cosmetical cleanups + enhancements
+
+2005-03-19 02:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ set some values in TESTS_ENVIRONMENT
+ added some hacks for lib-dietlibc-not-enabled-error.a
+
+2005-03-18 04:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/.cvsignore:
+
+ updated
+
+2005-03-18 04:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify.h, src/vunify.h:
+
+ include <sys/stat.h> instead of defining a 'struct stat'; this prevents
+ problems with the 64bit interface of the filesystem functions
+
+2005-03-18 04:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-copy.c:
+
+ use a sparse-file friendly method for copying files
+
+2005-03-18 04:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/: Makefile-files, copy-check, copy.c:
+
+ added testcases for Unify_copy()
+
+2005-03-18 01:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/Makefile-files:
+
+ use $(LIBENSCVECTOR) instead of libensc_vector.a
+
+2005-03-18 01:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vhashify-init.hc, vhashify.c, vhashify.h:
+
+ made it work...
+
+2005-03-18 01:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vcopy-init.hc, vunify-init.hc:
+
+ applied changes in the MatchList-API
+
+2005-03-18 01:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ use $(LIBENSCVECTOR) instead of libensc_vector.a
+ use $(LIBVSERVER_GLIBC) instead of lib/libvserver.la
+
+2005-03-18 01:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vpkg:
+
+ exit with returncode of '2' when pkgmgmt can not be determined
+
+2005-03-18 01:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/Makefile-files:
+
+ use $(LIBENSCVECTOR) instead of libensc_vector.a
+
+2005-03-18 01:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: unify-isiunlinkable.c, unify.h:
+
+ Unify_isIUnlinkable(): changed return-type
+
+2005-03-18 01:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-copy.c:
+
+ implemented copyReg() with mmap(2) instead of read(2)+write(2) sequences
+
+2005-03-18 01:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/string.hc:
+
+ String_free(): added
+
+2005-03-18 01:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/string.h:
+
+ renamed String_destroy() to String_free()
+
+2005-03-18 01:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/string-destroy.c[DEAD]:
+
+ obsoleted; String_free() is now inlined
+
+2005-03-18 01:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: matchlist-initbyvserver.c,
+ matchlist-initmanually.c, matchlist-initrefserverlist.c,
+ matchlist.h:
+
+ applied lot of API changes
+
+2005-03-18 01:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/matchlist-destroy.c:
+
+ use String_free() instead of String_destroy()
+
+2005-03-18 01:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ added matchvserverinfo-*
+ removed string-destroy.c
+
+2005-03-18 01:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: matchvserverinfo-free.c, matchvserverinfo-init.c:
+
+ initial checkin
+
+2005-03-18 01:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/testsuite/Makefile-files,
+ lib/testsuite/Makefile-files:
+
+ use $(LIBENSCVECTOR) instead of libensc_vector.a
+
+2005-03-18 01:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/Makefile-files, lib/Makefile-files:
+
+ split into a -glibc and a -diet part
+
+2005-03-18 01:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ HACK: set 'enable_static=no' for dietlibc case and postpone AC_PROG_LIBTOOL execution
+
+2005-03-18 01:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ use $(LIBVSERVER) instead of lib/libvserver.la
+ use $(LIBENSCVECTOR_DIET) instead of $(ENSC_VECTOR_LIBS)
+
+2005-03-17 15:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ updated
+
+2005-03-17 15:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.c:
+
+ use new Unify_unify() API
+ rearranged some code; I do not try to be C89 compliant in C99 progams anymore...
+
+2005-03-17 15:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcopy.c:
+
+ use new Unify_unify() API
+
+2005-03-17 15:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vhashify-init.hc, vhashify.c, vhashify.h:
+
+ initial checkin
+
+2005-03-17 15:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ use $(LIBINTERNAL) instead of lib_internal/libinternal.a
+ added vhashify*
+
+2005-03-17 15:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * build-all:
+
+ updated
+
+2005-03-17 15:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/Makefile-files,
+ src/testsuite/Makefile-files, vserver-start/Makefile-files:
+
+ use $(LIBINTERNAL) instead of lib_internal/libinternal.a
+
+2005-03-17 15:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify.h:
+
+ * added an 'ignore_zero' argument to Unify_unify()
+ * Unify_isIUnlinkable(): added
+
+2005-03-17 15:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-unify.c:
+
+ added an 'ignore_zero' argument to Unify_unify()
+
+2005-03-17 15:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-isiunlinkable.c:
+
+ initial checkin
+
+2005-03-17 15:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ * create both libinternal-diet.a and libinternal-glibc.a. This is
+ needed to avoid segfaults with gcc4 when linking against glibc based
+ libraries like 'beecrypt'. Perhaps, these segfaults are a problem
+ with gcc4 as they do not happen with gcc33...
+
+ * added unify-isiunlinkable.c
+
+2005-03-17 15:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/testsuite/test1.c:
+
+ added tests for Vector_searchSelfOrg()
+
+2005-03-17 15:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/testsuite/Makefile-files:
+
+ added test2
+
+2005-03-17 15:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/: vector.h, vector.hc:
+
+ Vector_searchSelfOrg*(): added
+
+2005-03-17 15:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/: list-add.c, list-at.c, list-free.c, list-init.c,
+ list-insertinternal.c, list-internal.h, list-search.c,
+ list-searchselforg.c, list.h, list.hc, vector-searchselforg.c,
+ testsuite/test2.c:
+
+ initial checkin
+
+2005-03-17 15:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/Makefile-files:
+
+ added list-* files
+ added vector-searchselforg.c
+
+2005-03-17 15:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_fmt/: fmt.h, fmtx-32.c:
+
+ fixed declaration of the *_x*int() methods; they do not take a 'base' argument
+
+2005-03-09 15:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ added XIDTYPE support
+
+2005-03-09 15:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/context-sync.hc:
+
+ use EopenD() instead of Eopen()
+
+2005-03-09 15:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_initrddir.m4:
+
+ fixed typo
+
+2005-03-09 15:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ vc_getXIDType(): added
+
+2005-03-09 15:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ added some magic to avoid warnings with gcc4
+
+2005-03-09 15:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: Makefile-files, getxidtype.c:
+
+ added getxidtype.c
+
+2005-03-09 15:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpre:
+
+ create /usr/X11 also
+
+2005-03-09 15:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/: Makefile.am, fc3/apt/rpmpriorities,
+ fc3/apt/sources.list:
+
+ added apt support for FC3
+
+2005-03-02 02:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_adddlimit.c, syscall_getdlimit.c,
+ syscall_remdlimit.c, syscall_setdlimit.c,
+ syscall_adddlimit-v13.hc, syscall_getdlimit-v13.hc,
+ syscall_remdlimit-v13.hc, syscall_setdlimit-v13.hc:
+
+ use CALL_VC_V13B instead of CALL_VC_V13
+
+2005-03-02 02:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vyum:
+
+ allow '--all' param
+
+2005-03-02 02:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/cflags.c:
+
+ avoid some compiler warnings
+
+2005-03-02 02:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added some VC_ATTR_NONNULL() statements
+
+2005-03-02 02:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_adddlimit-v13.hc, syscall_remdlimit-v13.hc,
+ vserver-internal.h:
+
+ minor cleanups
+
+2005-03-02 01:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ do not assume 'nodev' on 'devpts'
+
+2005-03-02 01:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ CDLIM_USER2KERNEL/CDLIM_KERNEL2USER(): added
+
+2005-03-02 01:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files, lib/syscall_adddlimit-v13.hc,
+ lib/syscall_adddlimit.c, lib/syscall_getdlimit-v13.hc,
+ lib/syscall_getdlimit.c, lib/syscall_remdlimit-v13.hc,
+ lib/syscall_remdlimit.c, lib/syscall_setdlimit-v13.hc,
+ lib/syscall_setdlimit.c, lib/virtual.h, lib/vserver.h,
+ src/Makefile-files, src/vdlimit.c:
+
+ added *vdlimit functions + tools (patch provided by Daniel Hokka Zakrisson)
+
+2005-02-26 00:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ added some sanity checks
+
+2005-02-26 00:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/: Makefile-files, wrappers-string.hc, wrappers.h:
+
+ added wrapper around string functions
+
+2005-02-26 00:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ /me should learn to differ between script-languages and C... strings in C are still marked by >"< but not by >'<...
+ fixed allocation of the newly generated option string
+
+2005-02-25 22:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vapt-get-worker, vyum-worker:
+
+ deprecate usage of $_YUM and $_APT_GET
+
+2005-02-25 22:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpost, scripts/functions, scripts/pkgmgmt,
+ scripts/start-vservers, scripts/util-vserver-vars.pathsubst,
+ scripts/vprocunhide, scripts/vpstree, scripts/vserver,
+ scripts/vserver-build, scripts/vserver-build.apt-rpm,
+ scripts/vserver-build.debootstrap,
+ scripts/vserver-build.functions,
+ scripts/vserver-build.functions.apt,
+ scripts/vserver-build.functions.pkgmgmt,
+ scripts/vserver-build.functions.rpm,
+ scripts/vserver-build.functions.yum, scripts/vserver-build.rpm,
+ scripts/vserver-build.yum, scripts/vserver-copy,
+ scripts/vserver-setup.functions, scripts/vserver.functions,
+ scripts/vserver.start, scripts/vserver.stop,
+ scripts/vservers.grabinfo.sh, scripts/vshelper,
+ scripts/vsysvwrapper, scripts/vtop, scripts/legacy/distrib-info,
+ scripts/legacy/rootshell, scripts/legacy/vserver, sysv/rebootmgr,
+ sysv/vservers-legacy:
+
+ LEGACY BREAKAGE FOR 3RD PARTY PATCHES: introduced a more common naming
+ scheme: global, immutable variables names are now named like '$__ABC'
+ instead of '$ABC'. This happens at much places and will break a lot of
+ patches therefore.
+
+2005-02-25 22:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ changed my GPG key
+
+2005-02-25 22:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ assume 'nodev' by default
+
+2005-02-25 21:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build.functions.yum, vyum-worker:
+
+ added preliminary support for the patch from
+ https://bugzilla.redhat.com/beta/attachment.cgi?id=111435&action=view
+
+2005-02-25 21:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.pkgmgmt:
+
+ avoid ambiguous usage of $PKGDIR, use $PKGINSTALLDIR instead of
+ use $SETUP_CONFDIR instead of $confdir
+
+2005-02-25 21:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build.apt-rpm, vserver-build.yum:
+
+ avoid ambiguous usage of $PKGDIR, use $PKGINSTALLDIR instead of
+
+2005-02-21 00:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.rpm:
+
+ rpm.initFilesystem(): fixed variable-names; this caused e.g. an unset %_dbpath macro formerly
+
+2005-02-16 00:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.30.204
+
+2005-02-15 23:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added information where the 'ip' and 'vconfig' programs can be found
+
+2005-02-15 23:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ adjusted the order of cli options evaluation; automake-1.9.5 redirects
+ input from /dev/null so the 'tty -s' check gets triggered and 'make
+ distcheck' fails in the '... --version/--help' tests
+
+2005-02-15 19:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/save_ctxinfo.c:
+
+ fixed name of the run.rev symlink; there was a '/' missing which
+ caused a pollution of the /etc/vservers/.defaults directory with
+ 'run.revXXX' entries. (reported and analyzed by Olivier Poitrey).
+
+2005-02-07 19:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions, scripts/vserver-build.functions.pkgmgmt,
+ src/vunify.c:
+
+ fixed typos
+
+2005-02-07 19:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented the *namespace options
+
+2005-02-04 13:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ SECURITY: fixed detection of the mtab-location (Georg Glas)
+ https://savannah.nongnu.org/bugs/?func=detailitem&item_id=11844
+
+2005-02-04 03:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ fixed one of the previously added 'test -n'
+
+2005-02-02 15:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_pathprog.m4:
+
+ ENSC_PATHPROG_INIT(): fixed doc
+ ENSC_PATHPROG(): added a '<DESCR>' parameter
+
+2005-02-02 14:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: compatibility-xhtml.xsl, compatibility.css:
+
+ applied http://vserver.lauft.net/wegen/util-vserver/patches/merge/util-vserver--merge--0.0--patch-2.patch
+
+2005-02-01 18:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.30.203
+
+2005-02-01 18:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ added vyum-worker to AM_INSTALLCHECK_STD_OPTIONS_EXEMPT
+
+2005-02-01 18:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vyum-worker:
+
+ minor cosmetical change
+
+2005-02-01 18:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: functions, pkgmgmt:
+
+ fixed 'local VAR=$(ACTION) || ERROR' constructs; the 'local VAR=$(ACTION)'
+ succeeds everytime so ERROR will be never executed. So, it is rewritten to
+ 'local VAR; VAR=$(ACTION) || ERROR'.
+
+2005-02-01 18:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.30.202
+
+2005-02-01 17:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/fc3/rpmlist.d/00.lst:
+
+ initial checkin
+
+2005-02-01 17:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.rpm:
+
+ moved installPackages into vserver-build.functions.rpm
+ added support for preconfigured package-lists
+
+2005-02-01 17:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.rpm:
+
+ rpmlist.*(): added
+
+2005-02-01 17:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build:
+
+ documented the '--empty' switch for the '-m rpm' method
+ allow an increasing debug-level
+
+2005-02-01 17:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ vshelper.isDebug(): fixed it...
+
+2005-02-01 17:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added the fc3 rpmlist.d directory + content
+
+2005-02-01 17:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added vserver-build.rpm
+
+2005-02-01 03:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/matchlist-initbyvserver.c,
+ lib_internal/matchlist-initmanually.c,
+ lib_internal/matchlist-initrefserverlist.c, src/vcopy-init.hc,
+ src/vunify-init.hc:
+
+ changed matchlist-API to pass additional information about a
+ vserver. This allows to turn off pkgmgmt-queries for not-yet
+ existent vservers in 'vcopy'
+
+2005-02-01 03:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/matchlist.h:
+
+ struct MatchVserverInfo: added; it allows to pass additional information about the vserver
+
+2005-02-01 03:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-copy.c:
+
+ copyReg(): open out_fd with O_RDWR, fixed resource leak in error-case
+
+2005-02-01 01:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/createskeleton-full.hc:
+
+ argl... fixed overflow when appending the '/'
+
+2005-02-01 00:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml, scripts/functions, scripts/vshelper:
+
+ added 'debug' option for vshelper
+
+2005-02-01 00:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ added delegation support (Herbert Poetzl)
+ http://vserver.13thfloor.at/Experimental/NGNET/delta-vshelper-delegate.diff
+
+2005-01-31 23:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions:
+
+ getDistribution(): added support for a default distribution
+
+2005-01-31 23:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: Makefile-files, vserver-build, vserver-build.rpm:
+
+ added the '-m rpm' method
+
+2005-01-31 23:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/: Makefile.am, template/initpost, template/initpre:
+
+ added the 'template' distribution
+
+2005-01-31 18:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ fixed environment unsetting: it will be now done shortly before execve(2)
+ but not on initialization anymore. This solves the problem when 'rpm' is
+ a wrapper only calling the real 'rpm?'. Then, LD_PRELOAD et.al. was unset
+ and the wrapper not used.
+
+2005-01-31 18:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ fixed the (currently non-existent) child->parent traversal
+
+2005-01-31 18:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/apidoc/Doxyfile.in:
+
+ added DOT_TRANSPARENT + DOT_MULTI_TARGET
+
+2005-01-31 18:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ updated
+
+2005-01-31 18:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am, util-vserver.spec.in, lib/createskeleton-full.hc,
+ scripts/vserver-build.functions, scripts/vserver-setup.functions,
+ src/save_ctxinfo.c:
+
+ removed 'run.rev' as a vserver-local variable and made it a system-wide setting
+
+2005-01-28 02:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ reindented it
+ fixed vshelper documentation
+
+2005-01-27 22:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: functions, pkgmgmt, start-vservers, vapt-get, vpkg,
+ vprocunhide, vrpm, vrpm-preload, vserver, vserver-build,
+ vserver-build.debootstrap, vserver-build.functions.rpm,
+ vserver-setup.functions, vserver-wrapper, vserver.functions,
+ vserver.start, vserver.stop, vshelper, vsomething:
+
+ use 'test -n "..."' instead of 'test "..."'; when "..." expands to '-v'
+ or a similar string, the expression will be misinterpreted (noticed by
+ Werner Schalk)
+
+2005-01-27 21:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.30.201
+
+2005-01-27 21:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: reducecap.c, vserver-info.c:
+
+ reworked the capability.h stuff
+
+2005-01-27 21:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: Makefile-files, capability-compat.h:
+
+ added capability-compat.h
+
+2005-01-27 21:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added check for <sys/capability.h> header
+
+2005-01-27 21:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ removed the linuxcaps.h bits
+
+2005-01-27 20:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ implemented capability-support check
+
+2005-01-27 20:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ fixed execution order of chroot(2) and context-creation; this caused
+ errors on kernel 2.6 when the vserver is not running yet
+
+2005-01-27 20:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: .cvsignore, Makefile-files:
+
+ added check-unixfile
+
+2005-01-27 20:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ execute sanityCheck()
+
+2005-01-27 20:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ moved sanity checks which were spread in various functions into the sanityCheck() method
+ implemented checks for non-newline terminated files and missing capability support
+
+2005-01-27 20:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.yum, scripts/vserver-build.yum,
+ scripts/vsomething, scripts/vyum, scripts/vyum-worker,
+ src/check-unixfile.c:
+
+ initial checkin
+
+2005-01-27 20:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build:
+
+ added 'yum' support
+
+2005-01-27 20:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vrpm-preload:
+
+ reorganized; moved lots of code into the 'functions' file
+
+2005-01-27 20:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added yum* files + vsomething + check-unixfile
+
+2005-01-27 20:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ added yum* support
+ reorganized the rpmFake stuff
+
+2005-01-27 20:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ added the yum* files + vsomething
+
+2005-01-27 20:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpre:
+
+ added missing newline
+
+2005-01-27 20:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/fc3/: pkgs/01, pkgs/02, pkgs/03, yum/yum.conf,
+ yum.repos.d/fedora-devel.repo,
+ yum.repos.d/fedora-updates-testing.repo,
+ yum.repos.d/fedora-updates.repo, yum.repos.d/fedora.repo:
+
+ initial checkin
+
+2005-01-27 20:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added the yum* stuff for fc3
+
+2005-01-27 20:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added the yum* files + check-unixfile
+
+2005-01-27 20:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * README:
+
+ mentioned the '-m yum' buildmethod
+
+2005-01-27 00:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvservercfgstyle.c:
+
+ allow dangling symlinks as /etc/vservers/.../vdir also
+
+2005-01-27 00:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.30.199
+
+2005-01-26 22:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ do not ship the /vservers directory itself; as it is immutable, the
+ extraction will fail else
+
+2005-01-26 21:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/.cvsignore:
+
+ updated
+
+2005-01-26 21:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ rearranged some scriptlets to avoid comments after '-p /sbin/ldconfig'
+
+2005-01-26 16:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ added (untested) support for '/' in the vserver fstab
+
+2005-01-26 16:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ use unique prefixes for variables used in functions with 'eval' statements
+ mountRootFS(): added
+
+2005-01-26 16:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ use unique prefixes for variables used in functions with 'eval' statements
+
+2005-01-26 16:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/filecfg-ml.c:
+
+ include <string.h> + <ctype.h>
+
+2005-01-26 16:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ moved rootshell to legacy
+
+2005-01-26 16:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/defaulttty.c:
+
+ include <string.h>
+
+2005-01-26 16:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ added '--rootfs' option
+
+2005-01-26 16:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ moved the v_* initscripts to legacy
+
+2005-01-26 15:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ updated BuildRequires:
+ use 'setattr --barrier' instead of 'chattr +t' in the %post scriptlet
+ moved the v_* initscripts to legacy
+
+2005-01-25 17:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/rootshell[DEAD], contrib/manifest.dat.pathsubst,
+ scripts/legacy/rootshell:
+
+ moved rootshell script to legacy
+
+2005-01-21 14:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/legacy/vserver:
+
+ fixed http://savannah.nongnu.org/bugs/?func=detailitem&item_id=11570:
+
+ "vserver myvserver start" gives exit code 1 if there is no file
+ /etc/vservers/myvserver.sh, since the last statement in vserver
+ ("test -x /etc/vservers/$1.sh && ...") evaluates to 1 in this case.
+
+ [Daniel Hermann]
+
+2005-01-21 14:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ be more verbosely when vserver could not be determined and give hints
+ about possible solutions (based upon ideas by Thorsten Gunkel)
+
+2005-01-21 14:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ interface-configuration: give out a warning when no device was configured
+
+2005-01-21 14:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ * interface-configuration: accept 'nodev' without a configured 'dev';
+ formerly the interface was silently ignored when 'dev' was missing
+ * added some sanity checks for the behaviour described above
+
+2005-01-21 14:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ added rpm_execcon() wrapper to make it work in SELinux environments
+ call execve(2) directly instead of execv(3)
+
+2005-01-07 18:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * README:
+
+ fixed typos
+ cleanups + enhancements
+
+2005-01-07 17:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * README:
+
+ "Notes for distributors" + "Which version shall I use?" added
+
+2005-01-07 17:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4:
+
+ Fixed last patch: use '[[' instead of '[' (found by Hans Ulrich Niedermann)
+
+2005-01-07 00:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ call ENSC_DIETLIBC_SANITYCHECK, AC_CANONICAL_HOST + AC_CANONICAL_BUILD
+
+2005-01-07 00:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4:
+
+ ENSC_DIETLIBC_SANITYCHECK(): added
+ made ENSC_VERSION_DIETLIBC uppercase
+ ignore extra specifiers in dietlibc's minor version (reported by Hans Ulrich Niedermann)
+
+2005-01-07 00:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ fix typo in $_MKTEMPDIR: Use $_MKTEMP not $MKTEMP (fixed by Hans Ulrich Niedermann)
+
+2004-12-28 20:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: functions, pkgmgmt, start-vservers,
+ util-vserver-vars.pathsubst, vpkg, vrpm-preload,
+ vserver-build.debootstrap, vserver-build.functions.apt,
+ vserver-wrapper, vserver.start, vserver.stop:
+
+ use $_<prog> (which expands to absolute paths) instead of trusting into a good $PATH
+
+2004-12-28 20:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ use $_<prog> (which expands to absolute paths) instead of trusting into a good $PATH
+ a small VLAN fix (do not quote the splitted dev)
+ minor cleanups
+
+2004-12-28 20:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ use ENSC_PATHPROG & friends
+
+2004-12-28 20:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_pathprog.m4:
+
+ initial checkin
+
+2004-12-28 20:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ use ${ENSC_PATHPROG_SED} when substituting prognames
+
+2004-12-28 13:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc_compat.m4:
+
+ check more syscall variants
+
+2004-12-28 13:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ s!\params!\param!
+ added doc about vc_get_iattr()
+
+2004-12-28 12:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/cfg.txt[DEAD]:
+
+ removed since obsoleted by configuration.xml
+
+2004-12-21 08:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vsched.c:
+
+ fixed segfault when no arguments are given (reported by Adrian Reyer)
+
+2004-12-16 01:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/keep-ctx-alive.c:
+
+ renamed the 'fd_set' variable to 'fdset'. former name causes problems
+ with certain FD_* implementations (reported by Adrian Reyer)
+
+2004-12-09 14:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * build-all:
+
+ added fc-3 host
+
+2004-12-09 14:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ getfilecontext.c: added
+
+2004-12-09 14:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getfilecontext.c, vserver.h:
+
+ vc_getfilecontext(): as noticed by daniel_hozac in IRC, this function
+ was horribly broken. Fixed and moved it into an own file as it is too
+ complex for an inline function. Documentation was added also.
+
+2004-12-07 12:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/main.c:
+
+ include <unistd.h>
+
+2004-12-07 12:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ read enter-shell from the defaults-directory also
+ use prio-bias instead of cpu-mask
+
+2004-12-07 12:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/filecfg-iteratemultiline.c:
+
+ include <string.h>
+
+2004-12-07 12:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/cflags.c:
+
+ added some new flags
+
+2004-12-07 12:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ do not mention the /hostname + /domainname params anymore
+ removed vsched/cpu-mask
+ added vsched/priority-bias
+
+2004-10-21 21:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added/updated flags and capabilities
+
+2004-10-21 21:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/islink.c:
+
+ initial checkin
+
+2004-10-21 21:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/internal.h:
+
+ utilvserver_isLink(): added prototype
+
+2004-10-21 21:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/cflags-v13.c:
+
+ added lots of new flags
+
+2004-10-21 20:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/ccaps-v13.c:
+
+ added 'remount' + 'icmp' cap; 'ping' is kept for compatibility reasons
+
+2004-10-21 20:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added islink.c
+
+2004-10-20 01:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ getFileValue(): modified to accept a list of candidates
+
+2004-10-20 01:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ merged from UV_NAMESPACE_AFTER_CHROOT branch
+
+2004-10-20 01:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added 'update-doc' target
+
+2004-10-20 01:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-vserver.hc:
+
+ Evc_{new,enter}_namespace(): added
+
+2004-10-19 23:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.30.196
+
+2004-10-19 23:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * kernel/: context.h, cvirt.h:
+
+ updated to vs1.9.3-rc4
+
+2004-10-19 23:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/: configuration-init.c, configuration.c,
+ configuration.h, interface.c, interface.h, main.c, scriptlets.c,
+ vserver-start.h:
+
+ added lots of new code
+
+2004-10-19 23:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/defaulttty.c,
+ lib_internal/filecfg-iteratemultiline.c,
+ lib_internal/testsuite/filecfg-ml.c:
+
+ initial checkin
+
+2004-10-19 23:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/Makefile-files:
+
+ added defaulttty.c
+
+2004-10-19 23:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/reducecap.c:
+
+ use some dirty hacks to include <linuxcaps.h> cleanly
+
+2004-10-19 23:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop:
+
+ execute 'prepareStop()'
+
+2004-10-19 23:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ made runlevel_{start,stop} global variables
+ prepareStop(): added
+ set PREVLEVEL on 'vserver ... stop' (required by Debian)
+
+2004-10-19 23:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ s!prefix!prefixlen!
+
+2004-10-19 23:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/Makefile-files:
+
+ added filecfg-ml test
+
+2004-10-19 23:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/string.hc:
+
+ String_c_str(): added
+
+2004-10-19 23:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/string.h:
+
+ ENSC_STRING_*FIXED(): added
+
+2004-10-19 23:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/filecfg.h:
+
+ FileCfg_iterateOverMultiLine(): added prototypes and related declarations
+
+2004-10-19 23:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ added filecfg-iteratemultiline.c
+
+2004-10-19 23:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_setsched-v13.hc:
+
+ vc_set_sched_v13obs(): use VCMD_set_sched_v2 instead of VCMD_set_sched
+
+2004-10-19 23:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-unistd.hc:
+
+ Enice(): added
+
+2004-10-19 23:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ s!prefix!prefix-length!
+
+2004-10-19 23:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added new kernel headers
+ changed substition of linuxcaps.h; oldish 'sed' versions do not understand '\<' regexs
+
+2004-10-18 18:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ do not include "linuxcaps.h" anymore
+
+2004-10-18 18:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * kernel/: context.h, cvirt.h, inode.h, legacy.h, limit.h,
+ namespace.h, network.h, sched.h, signal.h, switch.h, xid.h:
+
+ updated
+
+2004-10-18 18:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/Makefile-files:
+
+ removed stylesheets and images from the main-package; they are now in the web-CVS
+
+2004-10-18 18:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: configuration-flower.css[DEAD],
+ configuration-lsd.css[DEAD], configuration-lsd1.css[DEAD],
+ flowers.png[DEAD], flowers1.png[DEAD], flowers2.png[DEAD]:
+
+ moved into web-CVS
+
+2004-10-18 17:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * kernel/: debug.h, dlimit.h:
+
+ updated
+
+2004-10-06 05:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * README:
+
+ updated note about 'vserver-stat' and differ between 2.4 and 2.6
+ kernel
+
+2004-10-06 05:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-unify.c:
+
+ retain 'errno' on the final unlink()
+
+2004-10-06 05:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ link secure-mount against libvserver
+
+2004-10-06 05:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ added better diagnostic when fstab-parsing fails
+ use strsep() instead of strtok_r() in the parser to make the line-number counter work
+
+2004-10-01 14:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.30.195
+
+2004-10-01 14:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ _getProcNumberCount(): s!$_ctx!$1!
+
+2004-10-01 13:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac, m4/ensc_dietlibc.m4:
+
+ give out information about version of the found dietlibc
+
+2004-10-01 13:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4:
+
+ fixed version-detection when additional information are following the
+ number
+
+2004-10-01 13:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ use more efficient ways to detect number of processes in a context
+ (access /proc/virtual/... information instead of executing vps)
+
+2004-10-01 12:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build, vserver-build.debootstrap:
+
+ allowed to specify additional debootstrap options
+
+2004-10-01 12:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vps.c, vserver-stat.c:
+
+ added warnings regarding procfs-security
+
+2004-09-24 17:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ removed a __THROW which is not needed and causes errors with newer gcc
+
+2004-09-24 17:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_setvhiname-v13.hc:
+
+ use a better method to copy labels; formerly, bad parameters could
+ cause undefined behaviour
+
+2004-09-24 17:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/Makefile-files:
+
+ fixed typo
+
+2004-09-24 01:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ added some comments for interfaces/../{name,nodev}
+
+2004-09-24 01:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: configuration-flower.css, configuration-lsd.css,
+ configuration-lsd1.css, configuration-xhtml.xsl,
+ configuration.css:
+
+ made it validate as xhtml
+
+2004-09-24 00:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * build-all:
+
+ fixed CLEAN=1 usecase
+ use gcc4 instead of gcc35
+
+2004-09-24 00:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.debootstrap:
+
+ added better diagnostic for failed debootstrap download
+
+2004-09-24 00:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.css:
+
+ added *.elements templates
+
+2004-09-24 00:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ updated rlimits description (reported by Nikola Donev)
+ added warning about explicit 'fakeinit' usage
+
+2004-09-24 00:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration-xhtml.xsl:
+
+ added new stylesheets
+ implemented <elements>...</elements> support
+
+2004-09-24 00:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/Makefile-files:
+
+ added new stylesheets and images
+
+2004-09-24 00:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: configuration-flower.css, configuration-lsd1.css,
+ flowers.png, flowers1.png, flowers2.png:
+
+ initial checkin
+
+2004-09-24 00:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/debootstrap.uri:
+
+ updated
+
+2004-09-22 22:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ s!commented!documented!
+
+2004-09-22 22:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ commented the possible options for 'rpmbuild'
+
+2004-09-22 22:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vsched.c:
+
+ use new vc_set_sched structure
+ generalized CLI options a little bit
+
+2004-09-22 22:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vattribute.c:
+
+ set the "secure" flags on '--secure' manually. This is a crude hack
+ and must be solved better.
+
+2004-09-22 22:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ struct vc_set_sched: updated + added some flags
+ vc_get_insecureflags(): removed again; it is now handled by the utilities
+
+2004-09-22 22:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ ENSC_STRUCT_IDX, ENSC_SAME_STRUCT_IDX: added
+
+2004-09-22 22:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_setsched.c:
+
+ added support for the new 'struct vcmd_set_sched_v3'
+
+2004-09-22 22:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_setsched-v13.hc:
+
+ updated to new 'struct vcmd_set_sched_v3'
+ added some optimizations
+
+2004-09-22 22:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * kernel/sched.h:
+
+ added 'struct vcmd_set_sched_v3' plus macros
+
+2004-09-10 13:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ CALL_VC_V13B(), CALL_VC_V13OBS(): added
+
+2004-09-10 02:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ fixed missing argument for '--xid' switch
+
+2004-09-07 22:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vattribute.c:
+
+ use vc_get_insecureflags() on '--secure' option
+
+2004-09-07 22:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ vc_get_insecureflags(): added (does this really make sense??)
+
+2004-09-07 22:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ fixed concatenation of flags + caps
+
+2004-09-07 22:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added an explicit requirement for version 1.9 of automake
+
+2004-08-27 23:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.30.193
+
+2004-08-27 23:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.stop, vserver, vserver.start:
+
+ follow LSB behavior when starting/stopping a vserver (no error, when already running/stopped)
+ adjusted some exit-codes
+
+2004-08-27 16:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ showHelp(): improved message
+
+2004-08-27 10:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/debootstrap.uri:
+
+ updated again...
+
+2004-08-27 10:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/save_ctxinfo.c:
+
+ append '\0' to the buffer read by readlink()
+
+2004-08-27 10:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/keep-ctx-alive.c:
+
+ include <sys/select.h>
+
+2004-08-27 10:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-unistd.hc:
+
+ Ereadlink*(): return the count of written chars
+
+2004-08-25 02:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions, scripts/pkgmgmt, scripts/vserver.functions,
+ vserver-start/mount.c:
+
+ use the new 'secure-mount' CLI
+
+2004-08-25 02:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ reworked it; '--chroot' does not accept an argument now, and '--secure'
+ is deprecated. Lots of code was modernized
+
+2004-08-19 18:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/: configuration-init.c, configuration.c,
+ configuration.h, interface-add.c, interface-read.c, interface.c,
+ interface.h, main.c, scriptlets.c, vshelper.c:
+
+ added lots of new code
+
+2004-08-19 17:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/: interface-print.c, interface-remove.c, mount.c,
+ mount.h, undo.c, undo.h:
+
+ initial checkin
+
+2004-08-19 16:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vnamespace.c:
+
+ fixed some #includes for the new position of sys_clone.h
+
+2004-08-19 16:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vkill.c:
+
+ define ENSC_WRAPPERS_UNISTD; it is used for some legacy code
+
+2004-08-19 16:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ fixed some #includes to reflect changed position of sys_clone.h
+
+2004-08-19 16:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/fstool.h:
+
+ checkForRace(), resolveCtx(): removed prototypes
+
+2004-08-19 16:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/fstool.c:
+
+ checkForRace(): removed as unused
+
+2004-08-19 16:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chxid.c:
+
+ use vc_xidopt2xid() instead of resolveCtx()
+
+2004-08-19 16:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/sys_clone.h[DEAD]:
+
+ moved into lib_internal/
+
+2004-08-19 16:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/fstool-resolvectx.c[DEAD]:
+
+ obsoleted; functionality is already in libvserver
+
+2004-08-19 16:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/command.c:
+
+ applied API changes
+
+2004-08-19 16:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/command.h:
+
+ added support for plain-style char** args
+
+2004-08-19 16:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: command-appendparameter.c, command-exec.c,
+ command-free.c, command-init.c:
+
+ handle plain-style char** args also
+
+2004-08-19 16:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: command-setparams.c, sys_clone.h:
+
+ initial checkin
+
+2004-08-19 16:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ added command-setparams.c and sys_clone.h
+
+2004-08-19 16:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ marked vserver.start.bin as C99-only
+
+2004-08-19 16:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * pathconfig.h.pathsubst:
+
+ added some new paths
+
+2004-08-19 16:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ automake-1.9 fixes: s!VSERVER_LDFLAGS!VSERVER_LDFLGS!
+ removed some libtool-hacks which are not needed with automake-1.9 anymore
+
+2004-08-19 16:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/Makefile-files:
+
+ automake-1.9 fixes: s!VSERVER_LDFLAGS!VSERVER_LDFLGS!
+ added lots of new files
+
+2004-08-19 16:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ automake-1.9 fixes: s!VSERVER_LDFLAGS!VSERVER_LDFLGS!
+ removed src/sys_clone.h (now in lib_internal/)
+ removed src/fstool-resolvectx.c
+
+2004-08-19 15:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/Makefile-files, tests/Makefile-files:
+
+ automake-1.9 fixes: s!VSERVER_LDFLAGS!VSERVER_LDFLGS!
+
+2004-08-19 15:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/xidopt2xid.c:
+
+ removed code without an effect
+
+2004-08-19 15:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall-syscall.c:
+
+ gcc35 fixes: do not make vc_syscall() an alias for vserver() but execute it.
+
+2004-08-19 15:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/isfile.c:
+
+ initial checkin
+
+2004-08-19 15:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/internal.h:
+
+ utilvserver_isFile(): added prototype
+
+2004-08-19 15:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvservercfgstyle.c:
+
+ fixed detection of legacy-style (check for file but not directory)
+
+2004-08-19 15:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ addded 'isfile.c'
+
+2004-08-19 15:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-stdlib.hc:
+
+ Esetenv(): added
+
+2004-08-19 15:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-socket.hc:
+
+ Esend(), Esocketpair(): added
+
+2004-08-19 15:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_fmt/fmt-internal.h:
+
+ minor optimizations
+
+2004-08-19 15:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration-xhtml.xsl:
+
+ add '<ulink>' tag
+
+2004-07-08 13:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented vdir, run, run.rev (provided by Olivier Poitrey)
+ added some links about [bc]capabilities and flags
+ added more scheduler doc (provided by Olivier Poitrey)
+ added some comments about 2.4 vs. 2.6 at rlimits/ulimits
+ added doc about rlimit's 'min' setting
+
+2004-07-03 04:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.30.190
+
+2004-07-03 03:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ fixed path of the xsd file
+
+2004-07-03 03:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * build-all:
+
+ added fc-2
+
+2004-07-03 03:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ prepareInit(): fixed case when .autofsck does not exist
+
+2004-07-03 03:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ accept --xid and prefer it against --ctx in the doc
+ added --silentexist option at --create
+
+2004-07-03 03:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/suse91/apt/rpmpriorities:
+
+ initial checkin
+
+2004-07-03 03:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/rc.sysinit:
+
+ call 'true' finally
+
+2004-07-03 03:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpost:
+
+ added comment about possible races
+ fixed /etc/inittab substitution
+
+2004-07-03 03:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added redhat/rc.sysinit
+ added suse/apt/rpmpriorities
+ moved suse/apt/sources.list into the cfgdir
+
+2004-07-03 03:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added vserver.start.bin
+
+2004-07-03 03:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/Makefile-files:
+
+ use AM_INSTALLCHECK_STD_OPTIONS_EXEMPT for now
+
+2004-07-03 02:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added suse91 files
+
+2004-07-03 02:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/: redhat/rc.sysinit, suse91/apt/sources.list,
+ suse91/initpost, suse91/pkgs/01, suse91/pkgs/02,
+ suse91/rpm/macros:
+
+ initial checkin
+
+2004-07-03 02:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpost:
+
+ some enhancements for 'plain' initstyle
+
+2004-07-03 02:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/.cvsignore:
+
+ added some files
+
+2004-07-03 02:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/.cvsignore:
+
+ initial checkin
+
+2004-07-03 02:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/: configuration-init.c, configuration.c,
+ configuration.h, interface-add.c, interface-free.hc,
+ interface-init.hc, interface-read.c, interface.c, interface.h,
+ main.c, scriptlets.c, vserver-start.h, vshelper.c, vshelper.h:
+
+ initial checkin
+
+2004-07-03 02:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/Makefile-files:
+
+ added lots of files
+
+2004-07-03 02:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ added CANONIFY tag
+
+2004-07-03 02:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ rewrite 'ext*' to 'ufs'
+
+2004-07-03 01:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.start, vserver.stop:
+
+ use a canonified lockfile-name
+
+2004-07-03 01:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ function prepareInit(): do some cleanups in the plain-mode
+
+2004-07-03 01:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ vshelper.initSync(): use $1 instead of $VSERVER_DIR
+
+2004-07-03 01:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util.h:
+
+ include util-lockfile.h
+ canonifyVserverName(): added prototype
+
+2004-07-03 01:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util-mem.h:
+
+ optimized it a little bit
+
+2004-07-03 01:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/pathinfo.h:
+
+ ENSC_PI_DECLARE(): added
+
+2004-07-03 01:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/command-wait.c:
+
+ fixed stupid typo
+
+2004-07-03 01:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ added lots of new files
+
+2004-07-03 01:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: errinfo-writeerrno.c, errinfo.h,
+ filecfg-readentryflag.c, filecfg-readentrystr.c, filecfg.h,
+ util-canonify.c, util-lockfile.c, util-lockfile.h:
+
+ initial checkin
+
+2004-07-03 01:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ small cosmetical cleanups
+
+2004-07-03 01:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/mtab:
+
+ s!ext2!ufs!
+
+2004-07-03 01:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * pathconfig.h.pathsubst:
+
+ added lots of PATH_* and PROG_* macros needed for vserver-start.bin
+
+2004-07-03 01:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * build-all:
+
+ removed gcc34 target (now default)
+ added gcc35 target (not working currently)
+
+2004-07-01 13:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ (re)enabled nice-support for 2.6 vservers which was omitted inadvertently
+
+2004-07-01 12:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ fixed misinterpretation of '--xid' introduced by rev 1.17
+
+2004-06-29 18:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.apt-rpm:
+
+ fixed installation at non-standard places
+
+2004-06-29 18:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build:
+
+ fixed doc ('pkgcfgbase' vs. 'pkgbase')
+
+2004-06-27 16:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ added command* files and testsuite/
+
+2004-06-27 16:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/command-appendparameter.c,
+ lib_internal/command-exec.c, lib_internal/command-free.c,
+ lib_internal/command-init.c, lib_internal/command-reset.c,
+ lib_internal/command-wait.c, lib_internal/command.h,
+ lib_internal/testsuite/.cvsignore,
+ lib_internal/testsuite/Makefile-files,
+ lib_internal/testsuite/command.c, build-all:
+
+ initial checkin
+
+2004-06-27 15:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ enhanced output for old-style vservers
+
+2004-06-27 15:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/debootstrap.uri:
+
+ updated...
+
+2004-06-27 15:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ assume '- SYSINFO' when no other options are given
+
+2004-06-27 15:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcopy.c:
+
+ made it work...
+
+2004-06-27 15:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.skeleton:
+
+ do not fail when '-d' is not specified and distribution can not be detected
+
+2004-06-27 15:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions:
+
+ getDistribution(): added detection for slackware and gentoo
+
+2004-06-27 15:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vprocunhide:
+
+ fixed typos
+
+2004-06-27 15:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-unify.c:
+
+ Unify_unify(): made it work also when destination file does not exist (needed for vcopy)
+
+2004-06-27 15:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-settime.c:
+
+ Unify_setTime(): skip operation on symlinks
+
+2004-06-27 15:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ vc_syscall(): added prototype
+ added/updated some doc
+
+2004-06-27 15:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall-syscall.c:
+
+ initial checkin
+
+2004-06-27 15:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getvserverbyctx-compat.hc, getvserverctx.c:
+
+ added legacy support
+
+2004-06-27 15:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added syscall-syscall.c
+
+2004-06-27 15:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_fmt/fmt.h:
+
+ cleanups; removed unneeded #undef's
+
+2004-06-27 14:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ added comment about 'capabilities' file and kernelversion
+
+2004-06-17 23:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * vserver-start/Makefile-files:
+
+ initial checkin
+
+2004-06-17 23:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added silent.% target
+ include ensc_fmt/ and vserver-start/ files
+ minor cosmetical fixes
+
+2004-06-16 12:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/: Makefile-files, vector-zeroend.c, vector.h:
+
+ added Vector_zeroEnd() function
+
+2004-06-16 12:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ moved fmt* functionality into the 'ensc_fmt' module
+ removed '-D_REENTRANT' as it is defined globally
+
+2004-06-16 12:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_fmt/.cvsignore, ensc_fmt/Makefile-files, ensc_fmt/fmt-32.c,
+ ensc_fmt/fmt-64.c, ensc_fmt/fmt-internal.h,
+ ensc_fmt/fmt-tai64n.c, ensc_fmt/fmt.h, ensc_fmt/fmt.hc,
+ ensc_fmt/fmtx-32.c, ensc_fmt/fmtx-64.c, ensc_fmt/fmtx.hc,
+ lib/fmt-32.c[DEAD], lib/fmt-64.c[DEAD], lib/fmt-internal.h[DEAD],
+ lib/fmt.h, lib/fmt.hc[DEAD], lib/fmtx-32.c[DEAD],
+ lib/fmtx-64.c[DEAD], lib/fmtx.hc[DEAD]:
+
+ moved fmt* functionality into the 'ensc_fmt' module
+
+2004-05-27 02:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ s!fakeinit!initpid! at some places
+
+2004-05-27 02:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ use '--fakeinit' by default; users will have to disable it explicitly
+ by putting '~fakeinit' into the 'flags' configuration file
+
+2004-05-27 02:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.debootstrap:
+
+ cleanups
+
+2004-05-27 02:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * README:
+
+ fixed typos
+
+2004-05-27 02:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ s!fakeinit!initpid! at some places
+
+2004-05-27 02:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/debootstrap.uri:
+
+ updated
+
+2004-05-27 02:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ (re)added the MANIFEST_* variables which were lost some time ago; this
+ will preserve %%config files...
+
+2004-05-27 02:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ make util-vserver.spec readonly to prevent losing of changes
+
+2004-05-27 02:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * README:
+
+ added content
+
+2004-05-22 02:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/vprocunhide:
+
+ fixed rc conflict with /etc/rc.d/functions; reported by taxcollector
+ in https://savannah.nongnu.org/bugs/?func=detailitem&item_id=9052
+
+2004-05-21 17:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac, m4/gpgsig.am:
+
+ added support for the default GPG key
+
+2004-05-21 17:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: functions, vapt-get, vrpm:
+
+ added some color to the life
+
+2004-05-20 02:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: pkgmgmt, vserver:
+
+ mount filesystems on 'vserver ... pkgmgmt ...' operations
+
+2004-05-19 01:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS:
+
+ version 0.29.214
+
+2004-05-19 01:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/debootstrap.uri:
+
+ updated URL (again...)
+
+2004-05-19 01:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/: Makefile.am, fc2/apt/rpmpriorities,
+ fc2/apt/sources.list, fc2/pkgs/01, fc2/pkgs/02:
+
+ added fc2 support
+
+2004-05-19 01:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ removed clearenv, added sigexec
+
+2004-05-19 01:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ s!@PACAKGE@!%name! at some places
+
+2004-05-19 01:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ substitute ENV
+
+2004-05-11 20:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac, scripts/util-vserver-vars.pathsubst,
+ scripts/vserver.start, src/Makefile-files, src/clearenv.c[DEAD]:
+
+ use 'env' instead of 'clearenv'; the '-i' switch is SUSv3 and every implementation should have it...
+
+2004-05-11 20:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/sigexec.c:
+
+ initial checkin
+
+2004-05-11 20:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: context-sync.hc, vnamespace.c, vps.c:
+
+ set SIGCHLD sigmask to an expected value (SIG_DFL)
+ use new exitLikeProcess() interface
+
+2004-05-11 20:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chcontext.c, secure-mount.c, vcontext.c, vkill.c:
+
+ set SIGCHLD sigmask to an expected value (SIG_DFL)
+
+2004-05-11 20:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ execute vshelper through 'sigexec' to set expected sigmask
+
+2004-05-11 20:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: .cvsignore, Makefile-files:
+
+ added sigexec
+
+2004-05-11 20:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util-exitlikeprocess.h:
+
+ exitLikeProcess(): readded the 'NORETURN' and added a 'ret' parameter
+
+2004-05-11 20:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util-exitlikeprocess.c:
+
+ exitLikeProcess(): never return...
+
+2004-05-11 20:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/switchtowatchxid.c:
+
+ switchToWatchXid(): modified the new migrate-path to work when there exists a process in xid 1 already
+
+2004-05-08 04:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac, NEWS:
+
+ version 0.29.213
+
+2004-05-08 03:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/exec-ulimit.c:
+
+ added support for 'core'
+
+2004-05-08 03:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vps.c:
+
+ use new exitLikeProcess() interface
+ better error-handling
+
+2004-05-08 03:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: context-sync.hc, vnamespace.c:
+
+ use new exitLikeProcess() interface
+
+2004-05-08 03:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.start, vserver.stop:
+
+ added locking
+ call setDefaultTTY() correctly
+
+2004-05-08 03:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.apt-rpm:
+
+ call 'vapt-get -- clean' after building the vserver
+
+2004-05-08 03:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ setDefaultTTY(): redirect every descriptors
+
+2004-05-08 03:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util-exitlikeprocess.h:
+
+ exitLikeProcess(): removed the 'NORETURN'; this causes strange error when the function returns
+ exitLikeProcess(): added a second, 'char *' parameter for the human readable command
+
+2004-05-08 03:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util-exitlikeprocess.c:
+
+ be more verbose when sending a signal
+
+2004-05-08 03:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/cflags.c:
+
+ some changes to make gcc34 happy
+
+2004-05-08 03:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/val2text.hc:
+
+ include <strings.h>
+
+2004-05-08 03:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvservername.c:
+
+ getRecentName(): use realpath(3) instead of errorprone 'chdir()' calls
+
+2004-05-08 03:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getvserverbyctx-compat.hc, getvserverctx.c:
+
+ optimized buffersizes
+
+2004-05-08 03:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ fixed apps/vunify/logfile documentation; it must be configured on a
+ per-system, but not per-vserver base
+
+2004-05-08 03:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/debootstrap.uri:
+
+ updated again
+
+2004-05-05 21:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/clearenv.c:
+
+ fixed case when '--' is used
+
+2004-05-05 21:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ fixed typo
+
+2004-05-05 21:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ use 'clearenv' in the new path also
+
+2004-05-05 21:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ sendKillSequence(): be silent and succeed everytime
+
+2004-05-05 21:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ removed legacy code
+
+2004-05-05 21:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vrpm-preload, src/rpm-fake-resolver.c, src/rpm-fake.c:
+
+ added code to preserve capabilities and flags
+
+2004-05-05 21:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-unify.c:
+
+ added some doc
+
+2004-05-05 21:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_setiattr-fscompat.hc:
+
+ be more carefully regarding signed vs. unsigned int...
+
+2004-05-05 21:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/bcaps-v13.c:
+
+ removePrefix(): fixed another 'len' issue
+ include <strings.h>
+
+2004-04-30 12:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/bcaps-v13.c:
+
+ removePrefix(): fixed case when len<4
+
+2004-04-28 21:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/changelog.txt[DEAD]:
+
+ removed since unused
+
+2004-04-28 20:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/apidoc/Makefile-files:
+
+ added list2xxx.syntax
+
+2004-04-28 20:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/readlink.c:
+
+ enhanced errormessages
+
+2004-04-28 20:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: rpm-fake.c, vattribute.c:
+
+ use vc_get_insecurebcaps() instead of vc_get_insecurecaps()
+ set secure ccapabilities
+
+2004-04-28 20:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chcontext.c, reducecap.c:
+
+ use vc_get_insecurebcaps() instead of vc_get_insecurecaps()
+
+2004-04-28 20:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ added coreassert.h
+
+2004-04-28 20:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/cflags.c:
+
+ use <lib_internal/coreassert.h>
+ added new testcases
+
+2004-04-28 20:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/: fmt.c, parselimit.c:
+
+ use <lib_internal/coreassert.h>
+
+2004-04-28 20:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/Makefile-files:
+
+ define ENSC_TESTSUITE
+
+2004-04-28 20:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/apidoc/list2xxx.syntax, lib_internal/coreassert.h:
+
+ initial checkin
+
+2004-04-28 20:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/apidoc/Doxyfile.in:
+
+ set EXAMPLE_PATH
+
+2004-04-28 20:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ vc_get_insecureccaps(): added
+ cleanups
+ added documentation
+
+2004-04-28 20:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/val2text.hc:
+
+ use strncasecmp() instead of strncmp()
+
+2004-04-28 20:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/listparser.hc:
+
+ improved error-detection for the '^' prefix
+ added support for 'none'
+ allow '0'
+
+2004-04-28 19:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/bcaps-v13.c:
+
+ added bcapability names
+ added code to remove a 'CAP_' prefix
+
+2004-04-28 19:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: Makefile-files, getinsecurebcaps.c,
+ getinsecurecaps.c[DEAD]:
+
+ renamed getinsecurecaps.c to getinsecurebcaps.c
+
+2004-04-23 18:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration-lsd.css, NEWS, configure.ac:
+
+ version 0.29.211
+
+2004-04-23 18:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ readjusted Release:
+
+2004-04-23 16:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ cleaned up the %file-lists
+ buildrequire 'xalan-j' (can be disabled with '--without xalan')
+ removed 'libxslt' buildrequire
+
+2004-04-23 16:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/Makefile-files:
+
+ remove *.html only, when we can recreate them
+
+2004-04-23 13:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ fixed typo
+
+2004-04-23 13:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/Makefile-files:
+
+ removed FAQ.txt and configuration.dtd
+ added configuration.xsd
+
+2004-04-23 13:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/FAQ.txt[DEAD]:
+
+ obsoleted
+
+2004-04-22 22:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added 'net' API
+ disable 'legacy' API by default
+
+2004-04-22 22:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ added nid_t
+
+2004-04-22 22:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/reducecap.c:
+
+ fixed warnings when compiled without legacy-mode
+
+2004-04-22 22:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: Makefile-files, ncaps-net.c, ncaps_list-net.c,
+ nflags-net.c, nflags_list-net.c, syscall_getncaps-net.hc,
+ syscall_getncaps.c, syscall_getnflags-net.hc,
+ syscall_getnflags.c, syscall_getnxinfo-net.hc,
+ syscall_getnxinfo.c, syscall_gettasknid-net.hc,
+ syscall_gettasknid.c, syscall_netadd-net.hc, syscall_netadd.c,
+ syscall_netcreate-net.hc, syscall_netcreate.c,
+ syscall_netmigrate-net.hc, syscall_netmigrate.c,
+ syscall_netremove-net.hc, syscall_netremove.c,
+ syscall_setncaps-net.hc, syscall_setncaps.c,
+ syscall_setnflags-net.hc, syscall_setnflags.c,
+ vserver-internal.h, vserver.h:
+
+ added network layer functions
+
+2004-04-22 22:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_ctxcreate-v13.hc:
+
+ fixed return value
+
+2004-04-22 21:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.dtd[DEAD]:
+
+ obsoleted by configuration.xsd
+
+2004-04-22 21:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * THANKS:
+
+ added Olivier Poitrey
+
+2004-04-22 21:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ use xalan instead of xsltproc
+
+2004-04-22 21:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: configuration-xhtml.xsl, configuration.xml,
+ configuration.xsd:
+
+ use the new, XSD-based format which was defined by Olivier Poitrey
+
+2004-04-22 21:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration-xhtml.xsl:
+
+ made it work with xalan
+ removed debug message
+
+2004-04-22 21:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/beautify.xsl[DEAD]:
+
+ obsoleted
+
+2004-04-22 21:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/Makefile-files:
+
+ use xalan
+
+2004-04-22 20:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * kernel/: network.h, sched.h:
+
+ updated to vs1.9.0pre12
+
+2004-04-22 17:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: cflags-v13.c, testsuite/cflags.c:
+
+ use more specific names for the flags
+
+2004-04-21 23:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ give correct vserver-name in the hints ($VSERVER_DIR instead of $VSERVER_NAME)
+
+2004-04-21 23:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ moved the 'ip_only' handling to the right place
+
+2004-04-21 11:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vshelper-sync.c:
+
+ fixed missing initialization of a timeout struct
+
+2004-04-21 11:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ use uint64_t for the uptime counter to handle medium+large uptimes
+ (>49 days) correctly
+
+2004-04-21 02:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ made 'nodev' work
+
+2004-04-20 20:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added chain-echo
+
+2004-04-20 20:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added chain-echo
+
+2004-04-20 20:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ use '--defaulttty'
+
+2004-04-20 20:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop:
+
+ use setDefaultTTY()
+
+2004-04-20 20:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ use setDefaultTTY()
+ added explicit synchronization step for fakeinit with the old methods
+
+2004-04-20 20:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ added '--defaulttty' option
+
+2004-04-20 20:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/start-vservers:
+
+ use --defaulttty options instead of setting tty manually
+
+2004-04-20 20:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ setDefaultTTY(): added
+
+2004-04-20 19:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvservercfgstyle.c:
+
+ * vc_getVserverCfgStyle(): interprete relative ('./') and absolute
+ paths ('/...') as vcCFG_RECENT_FULL only
+ * vc_getVserverCfgStyle(): use utilvserver_isDirectory (fstat(2))
+ instead of access(2) to check for directories
+
+2004-04-20 19:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-unistd.hc:
+
+ Edup(): added
+
+2004-04-20 19:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-fcntl.hc:
+
+ Efcntl(): added
+
+2004-04-20 19:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/debootstrap.uri:
+
+ added some entries
+
+2004-04-20 19:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/vunify-exclude:
+
+ updated
+
+2004-04-20 19:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst,
+ scripts/util-vserver-vars.pathsubst:
+
+ added chain-echo
+
+2004-04-20 19:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chain-echo.c:
+
+ initial checkin
+
+2004-04-15 04:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.29.209
+
+2004-04-15 04:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ setFlags(): optimized (nearly state of 1.10)
+
+2004-04-15 04:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.suexec:
+
+ call chbind when entering vservers
+
+2004-04-15 03:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ call vattribute with '--flag fakeinit' additionally to the '--fakeinit' flag of vcontext
+
+2004-04-15 03:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ callInNamespace(): do not accept non-running vservers
+
+2004-04-15 03:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/debootstrap.uri:
+
+ updated
+
+2004-04-15 01:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ applied new kernel API (*flags* -> *cflags*, *_context -> ctx_*)
+ fixed '--fakeinit' option
+
+2004-04-15 01:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ fixed another brokeness in CLI option handling
+
+2004-04-15 01:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ lock(): do not execute the pipe; this does not work on 2.6
+
+2004-04-15 01:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/.cvsignore:
+
+ added cflags
+
+2004-04-15 01:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ added some comments about uts/context
+
+2004-04-15 01:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration-xhtml.xsl:
+
+ added a new boring stylesheet
+
+2004-04-15 01:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.css:
+
+ initial checkin
+
+2004-04-15 01:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/: make-manifest, manifest.dat.pathsubst:
+
+ added support for '%config(...)' (or whatever) annotations
+
+2004-04-15 01:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-vserver.hc,
+ lib_internal/switchtowatchxid.c, src/chcontext.c,
+ src/reducecap.c, src/rpm-fake-resolver.c, src/rpm-fake.c,
+ src/vattribute.c:
+
+ applied new kernel API (*flags* -> *cflags*, *_context -> ctx_*)
+
+2004-04-15 01:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: Makefile-files, util.h:
+
+ added util-debug.h
+
+2004-04-15 01:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util-debug.h:
+
+ initial checkin
+
+2004-04-15 01:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * kernel/: context.h, cvirt.h, inode.h, legacy.h, limit.h,
+ namespace.h, network.h, sched.h, switch.h, xid.h:
+
+ updated to vs1.90pre9
+
+2004-04-15 01:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall-compat.hc, vserver.h, testsuite/Makefile-files,
+ testsuite/cflags.c, testsuite/flags.c[DEAD]:
+
+ applied new kernel API
+ renamed functions so that they correspond to the new kernel API
+
+2004-04-15 01:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: Makefile-files, cflags-compat.c, cflags-v13.c,
+ cflags_list-compat.c, cflags_list-v13.c, flags-compat.c[DEAD],
+ flags-v13.c[DEAD], flags_list-compat.c[DEAD],
+ flags_list-v13.c[DEAD], syscall_createcontext-v13.hc[DEAD],
+ syscall_createcontext.c[DEAD], syscall_ctxcreate-v13.hc,
+ syscall_ctxcreate.c, syscall_ctxmigrate-v13.hc,
+ syscall_ctxmigrate.c, syscall_getcflags-v13.hc,
+ syscall_getcflags.c, syscall_getflags-v13.hc[DEAD],
+ syscall_getflags.c[DEAD], syscall_migratecontext-v13.hc[DEAD],
+ syscall_migratecontext.c[DEAD], syscall_setcflags-v13.hc,
+ syscall_setcflags.c, syscall_setflags-v13.hc[DEAD],
+ syscall_setflags.c[DEAD]:
+
+ renamed files so that their names are corresponding the kernel
+ API. Especially, *_context was renamed to ctx_*, and *flags* to
+ *cflags*.
+
+2004-04-13 10:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ further locking fixes
+
+2004-04-13 10:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/lockfile.c:
+
+ propagate errors
+
+2004-04-13 10:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chroot-rm.c:
+
+ cleanups
+
+2004-04-13 10:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ open FD 0
+ evaluate CLI options depending on used kernel API
+
+2004-04-13 10:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ use new locking mechanism
+
+2004-04-13 10:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: issupported.c, issupportedstring.c, vserver.h:
+
+ added VSHELPER0 feature
+
+2004-04-08 10:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ execScriptlets(): fixed initialization of 'start'
+ execScriptlets(): declare some variables as readonly
+ _sourceWrap(): added some variables
+
+2004-04-08 08:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ implemented support for default-scriptlets (inspired by ideas of
+ Olivier Poitrey)
+
+2004-04-08 08:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: rootshell, vapt-get-worker, vprocunhide, vrpm,
+ vrpm-worker, vserver-build, vshelper:
+
+ give more verbose error-messages
+
+2004-04-08 08:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall.c:
+
+ added link-warning for vc_new_s_context()
+
+2004-04-08 08:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ added general description for the scripts and documented
+ $DONT_SKIP_DEFAULTS
+
+2004-04-08 08:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ LINK_WARNING(): added
+
+2004-04-07 01:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext, scripts/pkgmgmt, scripts/start-vservers,
+ scripts/vapt-get, scripts/vpkg, scripts/vpstree,
+ scripts/vrpm-preload, scripts/vserver, scripts/vserver-copy,
+ scripts/vserver-wrapper, scripts/vservers.grabinfo.sh,
+ scripts/vsysvwrapper, scripts/vtop, scripts/legacy/distrib-info,
+ scripts/legacy/vserver, sysv/rebootmgr, sysv/vprocunhide,
+ sysv/vservers-legacy:
+
+ give more comprehensive error-message
+
+2004-04-07 01:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vps.c, vserver-info.c, vserver-stat.c:
+
+ use switchToWatchXid()
+
+2004-04-07 00:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ link some files against libinternal.a
+
+2004-04-07 00:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util.h:
+
+ switchToWatchXid(): added prototype
+
+2004-04-07 00:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/switchtowatchxid.c:
+
+ initial checkin
+
+2004-04-07 00:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ added switchtowatchxid.c
+
+2004-04-07 00:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ VC_ATTR_DEPRECATED: added
+
+2004-04-07 00:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall-compat.hc:
+
+ vc_chrootsafe_compat(): removed
+
+2004-04-06 10:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.c:
+
+ applied new MatchList_compare() interface
+
+2004-04-06 10:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ started support for HZ!=100
+ cleanups
+
+2004-04-06 10:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcopy.c:
+
+ implement support for SKIP files
+
+2004-04-06 10:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: rpm-fake-resolver.c, rpm-fake.c:
+
+ do not call vc_new_s_context() when COMPAT API is not available
+
+2004-04-06 10:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ cleanups
+ vshelper.doInit(): added another sanity check
+
+2004-04-06 10:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: matchlist-appendfiles.c, matchlist-compare.c,
+ matchlist.h:
+
+ implemented support for SKIP (~) files
+
+2004-04-06 10:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/flags.c:
+
+ added tests for new flags
+
+2004-04-06 10:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ updated VC_VXF_* constants
+ added VC_VXC_* constants
+
+2004-04-06 10:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/flags-v13.c:
+
+ added/updated flaglist
+
+2004-04-06 10:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/ccaps-v13.c:
+
+ added ccap names
+
+2004-04-06 10:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-vserver.hc:
+
+ cleanups
+
+2004-04-06 10:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/vunify-exclude:
+
+ exclude keyfiles completely
+ made some big files in /etc canditates for unify
+
+2004-04-06 10:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * kernel/: context.h, inode.h, legacy.h, limit.h, namespace.h,
+ sched.h, signal.h, xid.h:
+
+ updated to 2.6.5-vs1.9.0pre4
+
+2004-03-31 05:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/lockfile.c:
+
+ optimized some things
+ now check, if getppid()==original_parent instead of getppid()!=1 (might make a difference in vservers)
+
+2004-03-31 05:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ added some doc
+ s!_UV_LOCKS!_VS_LOCKS!
+
+2004-03-31 02:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/lockfile.c:
+
+ fixed '--help' output
+
+2004-03-31 02:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst, src/.cvsignore:
+
+ added lockfile
+
+2004-03-31 02:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/lockfile.c:
+
+ initial checkin
+
+2004-03-31 02:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added lockfile
+
+2004-03-31 02:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ enableInterfaces(), disableInterfaces(): added locking
+ enableInterfaces(), disableInterfaces(): added IP_ADDR_FLUSH type
+
+2004-03-31 02:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ $_LOCKFILE, $LOCKDIR: added
+
+2004-03-31 02:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ lock(),unlock(): added
+ isNumber(): added doc
+
+2004-03-30 22:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ made it work...
+
+2004-03-30 22:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ isNumber(): fixed '0' case
+
+2004-03-30 21:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ implemented parts of Liam Helmer's dummy-interface method
+
+2004-03-30 21:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ isNumber(): added
+
+2004-03-30 20:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am, configure.ac, scripts/util-vserver-vars.pathsubst:
+
+ added substitutions/tests for iptables, modprobe, rmmod and nameif
+ (required for Liam Helmer's dummy-interfaces)
+
+2004-03-30 19:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vshelper-sync.c:
+
+ implemented it with select() instead of alarm(); races are much nicer to handle
+
+2004-03-30 18:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vshelper-sync.c:
+
+ use sigaction() instead of signal() to remove SA_RESTART flag explicitly
+
+2004-03-30 18:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/pipe-sync.c[DEAD]:
+
+ obsoleted by vshelper-sync
+
+2004-03-30 17:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * kernel/: context.h, cvirt.h, limit.h, network.h, sched.h,
+ switch.h:
+
+ updated from vs0.09.28
+
+2004-03-30 17:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst, src/Makefile-files:
+
+ removed pipe-sync
+
+2004-03-27 05:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.29.207
+
+2004-03-26 10:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ use 'findObject -e' instead of 'findFile' to find /dev/null also
+
+2004-03-26 10:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ fixed call of vshelper.isEnabled
+
+2004-03-26 10:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ fixed some typos
+
+2004-03-26 10:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented apps/vshelper/logfile symlink
+
+2004-03-26 10:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ ignore 'restart2' event; this seems to be issued at vserver *start*
+ added support for a logfile
+ enable logfile-logging when invoked from kernel (no tty)
+
+2004-03-26 09:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ fixed order of variables
+ fixed _VSHELPER path
+
+2004-03-26 09:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ fixed vshelper path
+ added vshelper-sync
+
+2004-03-26 09:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added some Requires:
+ own %dir /var/run/vshelper
+
+2004-03-26 09:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added substition for @VSHELPERSTATEDIR@
+ minor cosmetical cleanups
+
+2004-03-26 08:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added vshelper-sync
+
+2004-03-26 08:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vshelper-sync.c:
+
+ initial checkin
+
+2004-03-26 08:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ - added tgID and tgPXID support
+ - accept 'true' as boolean value
+ - optimized the code a little bit so that the xid will be looked up
+ only when really needed
+
+2004-03-26 08:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vps.c:
+
+ in output, added a ' ' on overlong vserver-names
+
+2004-03-26 08:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ rewrote some parts to cope better with '-o' options (required for -bme
+ patches to work)
+
+2004-03-26 08:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added vshelper-sync
+
+2004-03-26 08:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vshelper:
+
+ initial checkin
+
+2004-03-26 08:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop:
+
+ added VSHELPER & synchronization code
+
+2004-03-26 08:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ added documentation about failure reasons
+ added VSHELPER code
+
+2004-03-26 08:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ adapted code to new getFileArray() behavior
+ added VSHELPER support
+ added "LEGACY ALERT" messages
+ initSync(),waitForSync(): added
+
+2004-03-26 08:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ added a "LEGACY ALERT"
+
+2004-03-26 08:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build:
+
+ fixed code to work with new behavior of getFileArray
+
+2004-03-26 08:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added some missing variables
+ added the vshelper variables
+
+2004-03-26 08:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/pkgmgmt:
+
+ use pkgmgmt.isAptAvailable()
+
+2004-03-26 08:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ logging(),warning(),panic(),execute(): added
+ pkgmgmt.isAptAvailable(): added
+ vshelper.*(): added
+ getFileArray(): fail, when file does not exist
+
+2004-03-26 08:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ added vshelper
+
+2004-03-26 08:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ - minor cleanups
+ - added vcFEATURE_VSHELPER
+ - vc_isSupported(): annotated it
+ - vc_get_insecurecaps(): moved it into an own file; CAP_SYS_BOOT
+ requires a special handling so inlining is not really usefully
+ anymore
+
+2004-03-26 08:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: issupported.c, issupportedstring.c:
+
+ added VSHELPER
+
+2004-03-26 08:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added getinsecurecaps.c
+
+2004-03-26 08:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getinsecurecaps.c:
+
+ initial checkin
+
+2004-03-26 08:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented the vshelper stuff
+
+2004-03-26 08:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.dtd:
+
+ added a type for 'script'
+
+2004-03-26 08:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ cleanups in the directory creation rules
+
+2004-03-26 08:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added vshelper
+
+2004-03-26 08:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ use 'install-distribution' instead of 'install-vserverdir'
+ added vshelper stuff
+
+2004-03-26 08:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ cleanups and enhancements in the directory installation rules
+
+2004-03-24 06:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS:
+
+ version 0.29.205
+
+2004-03-24 06:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ fixed LDADD flags for capchroot
+
+2004-03-24 06:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vsched.c:
+
+ enhanced the in-chain operation; make it a noop when called without opts
+ enhanced error messages
+
+2004-03-24 06:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: util-vserver-vars.pathsubst, vserver.functions,
+ vserver.start:
+
+ added scheduler support
+
+2004-03-24 06:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ added basic documentation for bcapabilities, ccapabilities and schedule
+
+2004-03-24 05:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h, src/chcontext.c, src/reducecap.c, src/rpm-fake.c,
+ src/vattribute.c, src/vps.c:
+
+ renamed vc_get_securecaps() to vc_get_insecurecaps()
+
+2004-03-24 05:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ added missing '\'
+
+2004-03-24 05:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vattribute.c, vcontext.c, vlimit.c, vnamespace.c,
+ vserver-info.c, vuname.c:
+
+ use vc_xidopt2xid()
+
+2004-03-24 05:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chcontext.c, vkill.c, vsched.c:
+
+ prefer '--xid' instead of '--ctx'
+ use vc_xidopt2xid()
+
+2004-03-24 05:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ added support for $VSERVER_EXTRA_CMDS[] which can be set in userscripts
+
+2004-03-24 05:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.debootstrap:
+
+ call 'wget' with '-nv' instead of '-q'
+
+2004-03-24 05:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ vc_xidopt2xid(): added prototype
+
+2004-03-24 05:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added xidopt2xid.c
+
+2004-03-24 05:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/xidopt2xid.c:
+
+ initial checkin
+
+2004-03-24 05:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-vserver.hc:
+
+ Evc_xidopt2xid(): added
+
+2004-03-24 05:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/debootstrap.uri:
+
+ updated to recent version
+
+2004-03-24 05:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ fixed Requires()
+ fixed some %dir's
+
+2004-03-24 02:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ cleaned up CLI: '--xid' is supported now, removed '-h' and '-v' options
+ minor cleanups
+
+2004-03-24 02:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/vservers-legacy:
+
+ initial checkin
+
+2004-03-24 02:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/: rebootmgr, rebootmgr.subst[DEAD]:
+
+ 'rebootmgr' is now a src-script
+
+2004-03-24 02:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/Makefile-files:
+
+ 'rebootmgr' is now a src-script
+ added vservers-legacy
+
+2004-03-24 02:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vattribute.c:
+
+ initialize 'bmask' member of struct vc_ctx_caps
+ use negative logic of --bcap (this should be the 'old' behavior of '--cap')
+
+2004-03-24 02:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ initialize 'bmask' member of struct vc_ctx_caps
+
+2004-03-24 02:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: capchroot.c, filetime.c, readlink.c:
+
+ rewrote it
+
+2004-03-24 02:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ cleanups; moved some programs into $legacydir
+
+2004-03-24 02:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added more legacy programs
+
+2004-03-24 02:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/legacy/vserver:
+
+ use $_XXXX variables instead of static commandnames
+ use variables for paths
+
+2004-03-24 02:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/legacy/distrib-info:
+
+ moved parserpmdump to legacy
+
+2004-03-24 02:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_REBOOTMGR
+
+2004-03-24 02:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4:
+
+ fixed copy&paste error
+
+2004-03-24 02:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/.cvsignore, lib_internal/.cvsignore, ChangeLog.sed,
+ cvsusers.map:
+
+ initial checkin
+
+2004-03-24 02:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * .cvsignore, distrib/.cvsignore, ensc_vector/testsuite/.cvsignore,
+ lib/.cvsignore, lib/testsuite/.cvsignore, src/.cvsignore,
+ src/testsuite/.cvsignore, tests/.cvsignore:
+
+ added some standardfiles; I do not want to wait until Savannah fixes
+ its scripts and allows access to CVSROOT/cvsignore again.
+
+2004-03-24 02:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util-perror.h:
+
+ placed a 'do ... while (0)' block around the macros
+
+2004-03-24 02:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: bcaps_list-v13.c, syscall_getccaps-v13.hc,
+ syscall_setccaps-v13.hc:
+
+ handle the new struct vc_ctx_caps::bmask member
+
+2004-03-24 02:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ moved some files into legacy
+ handle sysv scripts
+
+2004-03-24 02:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added formerly missing 'v_gated' registration
+ updated -legacy subpackage and moved some initscripts into it
+
+2004-03-24 02:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ do not use PURE before gcc 3.3.3
+ use a more effective way to determine gcc revision
+ struct vc_ctx_caps: added 'bmask' member
+
+2004-03-24 02:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ do not use PURE before gcc 3.3.3
+ use a more effective way to determine gcc revision
+
+2004-03-23 02:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-wrapper:
+
+ fixed typo (missing 's')
+
+2004-03-23 00:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions:
+
+ added basic support for SuSE (patch from Thomas Guettler)
+ give more hints in errormessages (patch from Thomas Guettler)
+
+2004-03-23 00:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vpkg:
+
+ give out errormessage on unknown distribution type
+
+2004-03-23 00:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ added basic support for SuSE
+
+2004-03-19 17:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ fixed race when process disappeared shortly after reading /proc
+
+2004-03-19 17:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented apps/init/{mark,depends}
+ mentioned the gentoo initstyle
+
+2004-03-19 17:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration-lsd.css:
+
+ followed Bertl's suggestion and added a subliminal message
+
+2004-03-19 17:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ require at least version 0.24 of dietlibc
+
+2004-03-19 17:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4:
+
+ allow to specify a <min-version>
+
+2004-03-18 07:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.29.204
+
+2004-03-18 07:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util-dotfile.h:
+
+ do not use PURE; it is not applicable for inline declarations
+
+2004-03-18 06:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ fixed broken condition for PURE
+ define __builtin_expect() when needed
+
+2004-03-18 06:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.c:
+
+ cleanups in the verbosity code
+
+2004-03-18 06:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/legacy/: vps.pathsubst, vserver:
+
+ use 'chcontext-compat' instead of 'chcontext'
+
+2004-03-18 06:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop:
+
+ call isVserverRunning to cleanup rundir
+
+2004-03-18 06:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.pkgmgmt:
+
+ ignore candidates for location of pkgmgmt-dir when $ROOTDIR is empty
+
+2004-03-18 06:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build:
+
+ cleanups; use full parenthesis in case ... esac
+
+2004-03-18 06:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ implemenented 'pkgmgmt' command
+
+2004-03-18 06:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vrpm:
+
+ allow both internal and external packagemanagement
+
+2004-03-18 06:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vpkg:
+
+ cleanups; generalized some functions and moved them into the 'functions' file
+
+2004-03-18 06:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vapt-get:
+
+ support both internal and external packagemanagement
+
+2004-03-18 06:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_PKGMGMT and $_TAR
+
+2004-03-18 06:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/start-vservers:
+
+ filter out non-matching vservers *before* adding them to the makefile
+
+2004-03-18 06:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ getVserverStatus(): fix problems with leading whitespaces in numerical values
+ pkgmgmt.guessStyle(), pkgmgmt.isInternal(): added
+
+2004-03-18 06:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/pkgmgmt:
+
+ initial checkin
+
+2004-03-18 06:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ added pkgmgmt
+
+2004-03-18 06:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/matchlist-initmanually.c:
+
+ some cleanups in the verbosity code
+
+2004-03-18 06:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvservercfgstyle.c:
+
+ filter out relative and absolute paths; when they are not pointing to
+ an existing directory, the function fails
+
+2004-03-18 06:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers_handler.hc:
+
+ use __builtin_expect
+
+2004-03-18 06:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/defaults/apt/apt.conf:
+
+ added '@autogenerated@' tag plus small warning
+
+2004-03-18 06:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added pkgmgmt script
+
+2004-03-18 06:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ look for tar
+
+2004-03-18 06:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ substitute @TAR@
+
+2004-03-16 15:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chbind.c:
+
+ use vc_get_nb_ipv4root() instead of hardcoded '16' value
+
+2004-03-16 15:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ CONST: added
+
+2004-03-16 15:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ VC_ATTR_CONST: added
+ vc_get_nb_ipv4root(): added
+
+2004-03-16 15:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added getnbipv4root.c
+
+2004-03-16 15:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getnbipv4root.c:
+
+ initial checkin
+
+2004-03-16 05:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ added the sysvwrappers to AM_INSTALLCHECK_STD_OPTIONS_EXEMPT
+
+2004-03-16 05:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.29.202
+
+2004-03-16 04:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/Makefile-files:
+
+ added vservers-default
+ removed vservers
+
+2004-03-16 04:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/vservers.subst[DEAD]:
+
+ obsoleted by new initscript
+
+2004-03-16 04:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/vservers-default:
+
+ initial checkin
+
+2004-03-16 04:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ implemented INITPID for the compat API
+
+2004-03-16 04:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ implemented/fixed the non-legacy part
+ cleanups
+
+2004-03-16 04:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake-resolver.c:
+
+ implemented/fixed the non-legacy part
+
+2004-03-16 04:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.suexec:
+
+ added internal mode to use 'suexec' for stopped vservers also
+
+2004-03-16 04:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop:
+
+ added a more efficient stop method for fakeinit vservers
+
+2004-03-16 04:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ finxed incomplete quoting
+
+2004-03-16 04:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ handle fakeinit separately
+ cleanups and fixes in the flag-generation
+
+2004-03-16 04:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-wrapper:
+
+ initial checkin
+
+2004-03-16 04:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ added support for an internal command mode
+
+2004-03-16 04:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_INITSYNC_MINIT_* variables
+ added $_START_VSERVERS
+
+2004-03-16 04:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/start-vservers:
+
+ added ok/passed/failed logic
+
+2004-03-16 04:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ ship vsyswrapper again
+
+2004-03-16 04:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ vc_is_dynamic_xid(): added
+
+2004-03-16 04:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added isdynamicxid.c
+
+2004-03-16 04:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-vserver.hc:
+
+ Evc_set_ccaps(): added
+
+2004-03-16 04:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpre, lib/isdynamicxid.c:
+
+ initial checkin
+
+2004-03-16 04:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpost:
+
+ use internal 'chkconfig' command
+
+2004-03-16 04:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added initpre to handle rpm's misclassification of %_netsharedpath
+
+2004-03-16 04:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/: make-manifest, manifest.dat.pathsubst:
+
+ handle some sysv files too
+
+2004-03-16 04:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ updated the -sysv package
+
+2004-03-15 22:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ cleanups; remove unused code
+ added '--silentexist'
+ use context-sync.hc
+
+2004-03-15 22:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chcontext.c:
+
+ use code from context-sync.hc
+
+2004-03-15 22:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/context-sync.hc:
+
+ initial checkin
+
+2004-03-15 22:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added context-sync.hc
+
+2004-03-15 22:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.apt-rpm:
+
+ cleanups; full parenthesis for case ... esac statements
+
+2004-03-15 22:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ cleanups; full parenthesis for case ... esac statements
+ give more helpful error messages
+
+2004-03-15 22:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: jail.h, jailintotempdir.c:
+
+ return indication about place of error
+
+2004-03-15 21:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ print correct $prefix when '--prefix' is not specified
+
+2004-03-13 04:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.29.201
+
+2004-03-13 04:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ added another #warning
+
+2004-03-13 04:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ fixed '--uid' option (it's required_argument but not no_argument)
+ drop privileges after migrate()
+
+2004-03-13 04:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ call $_SAVE_CTXINFO until we have something better
+
+2004-03-13 03:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ updated to new kernel behavior
+
+2004-03-13 03:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vattribute.c:
+
+ renamed set*() to parse*()
+ set the correct secure attributes
+ call set_flags/set_ccaps only, when there is something to do
+
+2004-03-13 03:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: chcontext, vserver.start:
+
+ applied new CLI
+
+2004-03-13 03:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ added jail* files
+
+2004-03-13 03:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: jail.h, jailintotempdir.c:
+
+ initial checkin
+
+2004-03-13 03:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-vserver.hc:
+
+ Evc_get_ccaps(): added declaration
+
+2004-03-12 20:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vuname.c:
+
+ rewrote it; CLI should be more usable now
+
+2004-03-12 20:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: chcontext, vserver.start:
+
+ use new vuname syntax
+
+2004-03-12 07:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vattribute.c:
+
+ set caps before flags so that caps can be changed in the same transaction
+ which deletes 'setup'
+
+2004-03-12 05:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.suexec:
+
+ added some explicit '--'
+
+2004-03-12 05:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ added some doc
+ getVserverStatus(): fixed it
+
+2004-03-12 05:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/save_ctxinfo.c:
+
+ use strncat() instead of strcat() to enforce correct length
+
+2004-03-12 04:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.29.200
+
+2004-03-12 04:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: chcontext, vserver.start:
+
+ remove the setup flag
+
+2004-03-12 04:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ cleanups
+
+2004-03-12 04:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ give '--xid' in migrate case
+
+2004-03-12 04:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ fixed migrate vs. migrate-self
+
+2004-03-12 04:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added kernel headers
+
+2004-03-12 04:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * kernel/: context.h, inode.h, legacy.h, limit.h, namespace.h,
+ network.h, sched.h, signal.h, switch.h:
+
+ initial checkin
+
+2004-03-12 04:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/vprocunhide:
+
+ do not use /dev/null as lockfile
+
+2004-03-12 04:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vsched.c:
+
+ updated to new API
+
+2004-03-12 04:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vattribute.c:
+
+ implemented --secure
+
+2004-03-12 04:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.start, vserver.stop:
+
+ allow '--debug' in the destructors
+
+2004-03-12 04:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ added gentoo startup style
+
+2004-03-12 03:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ fixed params
+ do not call vuname/vattribute when not needed
+
+2004-03-12 03:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/flags.c:
+
+ added testsuite for the flags
+
+2004-03-12 03:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ updated interface
+ added flags
+
+2004-03-12 03:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ use kernel headers
+
+2004-03-12 03:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_getiattr-v13.hc, syscall_setiattr-v13.hc,
+ syscall_setsched-v13.hc:
+
+ updated interface
+
+2004-03-12 03:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/listparser.hc:
+
+ added '^' modifier which marks bit numbers
+
+2004-03-12 03:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/flags-v13.c:
+
+ added the flags
+
+2004-03-11 05:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.29.199
+
+2004-03-11 05:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vuname.c:
+
+ added more documentation
+ fixed '--version' conflicts
+
+2004-03-11 05:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: rpm-fake-resolver.c, rpm-fake.c:
+
+ implemented most parts of the new migrate method
+
+2004-03-11 05:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ set context-name
+
+2004-03-11 05:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added getvserverbyctx-* files
+
+2004-03-11 05:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvserverbyctx.c:
+
+ implemented new context-naming method
+
+2004-03-11 05:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getvserverbyctx-compat.hc, getvserverbyctx-v13.hc:
+
+ initial checkin
+
+2004-03-11 05:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-vserver.hc:
+
+ Evc_set_vhi_name(): added
+
+2004-03-10 06:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented 'fstab.local' and enhanced 'fstab' doc
+
+2004-03-10 06:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ added support for 'fstab.local' files
+
+2004-03-10 06:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/vprocunhide:
+
+ made it a little bit more portable by providing own implementations of
+ RH's /etc/init.d/functions when this file can not be found (inspired
+ by a patch from Olivier Poitrey)
+
+2004-03-10 05:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ callInNamespace(): call 'shift' to remove the vserver-name from $@
+
+2004-03-10 03:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/.cvsignore:
+
+ added configuration.html
+
+2004-03-10 03:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ added an option the 'CONTEXT' query so that it can be choosen between
+ running/non running
+
+2004-03-10 03:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vlimit.c, vuname.c:
+
+ prefix option string for getopt with '+' to avoid option reordering
+
+2004-03-10 03:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vapt-get, vrpm:
+
+ use callInNamespace
+
+2004-03-10 03:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ isAvoidNamespace(): determine full cfgdir path of vserver before checking for 'namespace' file
+ callInNamespace(): added
+
+2004-03-10 03:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ minor cosmetical cleanups...
+
+2004-03-10 03:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: chcontext, vserver.start, vserver.stop, vserver.suexec:
+
+ use '--' delimiter
+
+2004-03-10 03:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ added/updated some descriptions
+
+2004-03-10 03:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration-lsd.css:
+
+ flowers... where are all the flowers coming from?
+
+2004-03-10 03:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am, contrib/Makefile-files, doc/Makefile-files,
+ ensc_vector/Makefile-files, ensc_vector/testsuite/Makefile-files,
+ ensc_wrappers/Makefile-files, lib/Makefile-files,
+ lib/testsuite/Makefile-files, lib_internal/Makefile-files,
+ man/Makefile-files, scripts/Makefile-files, src/Makefile-files,
+ src/testsuite/Makefile-files, tests/Makefile-files:
+
+ modernized the Makefiles; use '+=' where possible to remove complexity
+ from the toplevel Makefile.am
+
+2004-03-09 18:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vprocunhide:
+
+ remove the correct prefix
+
+2004-03-09 17:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.stop, vserver.suexec:
+
+ use $_CHONTEXT_COMPAT explicitly
+
+2004-03-09 17:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ use/create 'uts' directory
+
+2004-03-09 17:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ updated copyright date
+
+2004-03-09 17:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented the vunify configuration
+
+2004-03-09 15:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ rewrote the non-legacy part
+
+2004-03-09 15:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ aded _KEEP_CTX_ALIVE
+
+2004-03-09 15:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ added missing ';' in case expression
+ s!_CTX_KEEP_ALIVE!_KEEP_CTX_ALIVE!
+
+2004-03-09 05:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS:
+
+ version 0.29.198
+
+2004-03-09 04:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.stop, vserver.suexec:
+
+ removed superfluous '--'
+
+2004-03-09 04:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ added explicit cleanup trap
+ removed superfluous '--'
+
+2004-03-09 04:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ added some parenthesis
+
+2004-03-09 04:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ made 'status' really silent
+
+2004-03-09 04:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/start-vservers:
+
+ initial checkin
+
+2004-03-09 04:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ getVserverStatus(): fixed it for the non-running & non-cleanup case
+
+2004-03-09 04:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers.h:
+
+ fixed typo
+ fixed overflow
+
+2004-03-09 04:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst, scripts/Makefile-files:
+
+ added start-vservers
+
+2004-03-09 04:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added Requires: make
+
+2004-03-09 03:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ made 'status' silent when '--silent' is used
+
+2004-03-09 03:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/apidoc/.cvsignore:
+
+ added man
+
+2004-03-09 03:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.html[DEAD]:
+
+ removed since autogenerated
+
+2004-03-09 03:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration-lsd.css:
+
+ use official HTML 4 colornames
+
+2004-03-09 02:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: beautify.xsl, compatibility-xhtml.xsl,
+ configuration-xhtml.xsl:
+
+ use official XHTML namespace
+
+2004-03-09 02:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/: defaults/rpm/macros, redhat/initpost:
+
+ added hack for https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=117827
+
+2004-03-08 20:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_syscallnr.m4:
+
+ stopped to confuse users with wrong error messages
+
+2004-03-08 20:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/apidoc/Makefile-files:
+
+ handle man directory
+
+2004-03-08 20:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/apidoc/Doxyfile.in:
+
+ updated
+
+2004-03-08 20:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/Makefile-files:
+
+ filled it with content...
+
+2004-03-08 20:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added documentation
+
+2004-03-08 19:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented tty symlink
+ use documentation.dtd instead of cfgdirdoc.dtd
+ some small corrections/adjustments
+
+2004-03-08 19:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: beautify.xsl, configuration-lsd.css,
+ configuration-xhtml.xsl, configuration.html:
+
+ initial checkin
+
+2004-03-08 19:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: compat-xhtml.xsl[DEAD], compatibility-xhtml.xsl:
+
+ renamed compat-xhtml.xsl to compatibility-xhtml.xsl
+
+2004-03-08 19:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: cfgdirdoc.dtd[DEAD], configuration.dtd:
+
+ renamed cfgdirdoc.dtd to configuration.dtd
+
+2004-03-08 09:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added more doc
+
+2004-03-08 02:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/flags.c:
+
+ fixed uninitialized variable
+
+2004-03-08 01:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/apidoc/: .cvsignore, Doxyfile.in, Makefile-files:
+
+ initial checkin
+
+2004-03-08 01:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ use '--migrate-self' instead of '--migrate'
+
+2004-03-08 00:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ added '--migrate-self' support
+
+2004-03-08 00:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ use different files for 'bcap' and 'ccap' for now
+
+2004-03-08 00:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added changelog entry
+
+2004-03-07 23:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.h:
+
+ fixed NONNULL annotations
+
+2004-03-07 23:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added doxygen annnotations
+ added special compiler annotations
+
+2004-03-07 23:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/internal.h:
+
+ added doxygen annnotations
+ fixed NONNULL statements
+
+2004-03-07 23:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/fmt.h:
+
+ added doxygen annnotations
+
+2004-03-07 23:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added apidoc directory
+
+2004-03-07 23:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac, util-vserver.spec.in:
+
+ added doxygen support
+
+2004-03-07 23:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ fixed typo in __GNUC_MINOR__
+
+2004-03-07 20:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vattribute.c:
+
+ use new interface of the list2... functions
+ implemented --bcaps and --ccaps
+
+2004-03-07 20:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chcontext.c, reducecap.c:
+
+ use new interface of the list2... functions
+
+2004-03-07 20:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ added .../interfaces/.../nodev option and deprecated 'only_ip'
+
+2004-03-07 20:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/flags.c:
+
+ applied new interface
+
+2004-03-07 20:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added some documentation
+ added some flag/caps support functions
+
+2004-03-07 20:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ renamed scaps to bcaps
+
+2004-03-07 20:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_setflags.c:
+
+ added EFAULT check
+
+2004-03-07 20:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_getflags-v13.hc, syscall_setflags-v13.hc:
+
+ minor cosmetical cleanups
+
+2004-03-07 20:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/listparser.hc:
+
+ interpret numbers too
+
+2004-03-07 20:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/internal.h:
+
+ added the text2value functions
+
+2004-03-07 20:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: flags-v13.c, flags_list-compat.c, flags_list-v13.c:
+
+ cleanups; use modern methods...
+
+2004-03-07 20:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: bcaps-v13.c, bcaps_list-v13.c, ccaps-v13.c,
+ ccaps_list-v13.c, syscall_getccaps-v13.hc, syscall_getccaps.c,
+ syscall_setccaps-v13.hc, syscall_setccaps.c,
+ val2text-t2v-uint32.c, val2text-t2v-uint64.c,
+ val2text-v2t-uint32.c, val2text-v2t-uint64.c, val2text.hc:
+
+ initial checkin
+
+2004-03-07 20:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added the caps-files
+ added the val2text-files
+
+2004-03-07 20:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented '.../interfaces/.../nodev'
+
+2004-03-06 03:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ s!Require!Requires!
+
+2004-03-06 02:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/vprocunhide:
+
+ initial checkin
+
+2004-03-06 02:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/Makefile-files:
+
+ modernized; use '+=' syntax
+ added vprocunhide
+
+2004-03-06 02:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vuname.c:
+
+ made it chainable
+ added '--dir' option
+
+2004-03-06 02:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ cleanups
+
+2004-03-06 02:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ call vuname
+
+2004-03-06 02:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vprocunhide:
+
+ implemented exclude/include syntax
+ fixed exit codes
+
+2004-03-06 02:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_VUNAME
+
+2004-03-06 02:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documents uts/ and rlimit/ subdirs
+
+2004-03-06 02:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/vprocunhide-files:
+
+ added some files
+
+2004-03-06 02:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added vprocunhide initscript
+
+2004-03-06 02:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ modernized it a little bit; use '+=' syntax for sysv/ now
+
+2004-03-05 23:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.functions, vserver.start, vserver.stop,
+ vserver.suexec:
+
+ added support for new migrate feature
+
+2004-03-05 23:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_VCONTEXT and $_VLIMIT
+
+2004-03-05 23:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ isAvoidNamespace(): use 'vserver-info - FEATURE namespace' inforamtion too
+
+2004-03-05 20:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ try to read limits from dir only, when '--dir' was used
+
+2004-03-05 20:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/setattr.c:
+
+ allow '--!...' syntax too
+
+2004-03-05 20:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.pkgmgmt:
+
+ added a missing '\'
+
+2004-03-05 20:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vprocunhide, distrib/misc/vprocunhide-files:
+
+ initial checkin
+
+2004-03-05 20:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added setattr and vprocunhide
+
+2004-03-05 20:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ added vprocunhide
+
+2004-03-05 20:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented vprocunhide documentation
+
+2004-03-05 20:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added vprocunhide-files
+
+2004-03-05 20:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added vprocunhide files
+
+2004-03-05 18:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vtop, chcontext, functions, rootshell, vapt-get,
+ vapt-get-worker, vpkg, vpstree, vrpm, vrpm-preload, vrpm-worker,
+ vserver, vserver-build, vserver-build.apt-rpm,
+ vserver-build.debootstrap, vserver-build.functions,
+ vserver-build.functions.pkgmgmt, vserver-build.skeleton,
+ vserver-copy, vserver.functions, vserver.start, vserver.stop,
+ vservers.grabinfo.sh, vsysvwrapper:
+
+ added some '>&2'
+
+2004-03-05 18:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * .cvsignore:
+
+ added FEATURES.txt
+
+2004-03-05 18:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ added '--dir' parameter
+ allow command-chaining
+ support limits with suffixes
+ make '-c' optionally and assume current ctx by default
+
+2004-03-05 18:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/: Makefile-files, .cvsignore:
+
+ added parselimit
+
+2004-03-05 18:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ vc_parseLimit(): added prototype
+
+2004-03-05 18:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added parselimit.c
+
+2004-03-05 18:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: parselimit.c, testsuite/parselimit.c:
+
+ initial checkin
+
+2004-03-05 05:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ updated; added vattribute and keep-ctx-alive
+
+2004-03-05 05:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ implement the vc_set_flags() part
+
+2004-03-05 05:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vattribute.c:
+
+ setFlags(): implemented it
+
+2004-03-05 05:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ added util-unixsock.hc
+
+2004-03-05 05:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-vserver.hc:
+
+ fixed error-checking
+
+2004-03-05 05:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getprocentry-legacy.c, syscall-compat.hc,
+ syscall_getflags-v13.hc, syscall_getiattr.c,
+ syscall_getvxinfo-oldproc.hc, syscall_getvxinfo.c,
+ syscall_setflags-v13.hc:
+
+ return better errorcodes
+
+2004-03-05 05:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-vserver.hc:
+
+ fixed copy&paste error
+
+2004-03-05 05:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/Makefile-files:
+
+ added wrappers-socket.hc
+
+2004-03-05 05:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added vattribute and keep-ctx-alive
+
+2004-03-05 04:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ added 'FEATURE' tag
+
+2004-03-05 04:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ added support for external synchronization
+
+2004-03-05 04:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/reducecap.c:
+
+ use vc_list2flag_compat() instead of vc_textlist2flag
+
+2004-03-05 04:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: keep-ctx-alive.c, vattribute.c:
+
+ initial checkin
+
+2004-03-05 04:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: fstool.c, fstool.h, setattr.c, showattr.c:
+
+ added support for VC_IATTR_IMMUTABLE flag
+
+2004-03-05 04:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: enter-namespace.c[DEAD], new-namespace.c[DEAD]:
+
+ obsoleted by vnamespace
+
+2004-03-05 04:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chcontext.c:
+
+ use vc_list2flag_compat() instead of vc_textlist2flag()
+
+2004-03-05 04:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ removed new-namespace and enter-namespace
+ added keep-ctx-alive and vattribute
+ added src_legacy_* variables
+
+2004-03-05 04:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vapt-get, vrpm, vserver:
+
+ use $_VNAMESPACE instead of $_NEW_NAMESPACE
+
+2004-03-05 04:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_VATTRIBUTE and $_VNAMESPACE
+ removed $_NEW_NAMESPACE
+
+2004-03-05 04:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/chcontext:
+
+ began to implement the new vcontext part...
+
+2004-03-05 04:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_syscallnr.m4:
+
+ use $ensc_cv_path_kernelheaders instead of $kernelincludedir
+
+2004-03-05 04:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util.h:
+
+ include "util-unixsock.h"
+
+2004-03-05 04:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-unify.c:
+
+ use VC_IATTR_IMMUTABLE flag too
+
+2004-03-05 04:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util-unixsock.h:
+
+ initial checkin
+
+2004-03-05 04:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/flags.c:
+
+ updated to new flag functions
+
+2004-03-05 04:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ use uint_leastX_t instead of uintX_t
+ added -compat versions for the flag-parsers
+ vc_isSupportedString(): added
+
+2004-03-05 04:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/internal.h:
+
+ added utilvserver_listparser_uint* declarations
+
+2004-03-05 04:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fmt-32.c, fmt-64.c, fmt.h, fmt.hc, fmtx-32.c, fmtx-64.c,
+ fmtx.hc:
+
+ fixed aliased functions; they are now in the *.c files and will not be
+ used anymore by every file including 'fmt.h'
+
+2004-03-05 04:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: flags.c[DEAD], flags_list.c[DEAD]:
+
+ renamed to -compat.c
+
+2004-03-05 04:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ updated to new flags* files
+ added listparser* files
+ removed unused statements
+
+2004-03-05 04:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers.h:
+
+ added wrappers-socket.hc
+
+2004-03-05 04:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-socket.hc, lib/flags-compat.c,
+ lib/flags-v13.c, lib/flags_list-compat.c, lib/flags_list-v13.c,
+ lib/issupportedstring.c, lib/listparser.hc,
+ lib/listparser_uint32.c, lib/listparser_uint64.c:
+
+ initial checkin
+
+2004-03-05 04:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-iosock.hc:
+
+ modernized declarations (use WRAPPER_DECL)
+ WsendAll(),WrecvAll(): added 'int *err' parameter and do not use perror() anymore
+
+2004-03-05 04:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ removed new-namespace and enter-namespace; they are obsoleted by vnamespace
+
+2004-03-05 04:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added $(src_legacy_*)
+
+2004-03-04 05:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_syscallnr.m4:
+
+ requires AC_PROG_CPP
+
+2004-03-04 05:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added VC_IATTR_IMMUTABLE
+
+2004-03-04 05:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ added IATTR_IMMUTABLE
+
+2004-03-04 05:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ do not use -I $kernelincludedir anymore
+
+2004-03-04 04:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_syscallnr.m4:
+
+ rewrote it...
+
+2004-03-04 04:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/: ensc_cflags.m4, ensc_dietlibc.m4, ensc_dietlibc_compat.m4,
+ ensc_fpicsyscall.m4, ensc_syscall.m4:
+
+ use unique identifiers
+
+2004-02-27 20:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.29.197
+
+2004-02-27 20:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpost:
+
+ fixed kernel-pkg installation
+ fixed initscript update
+
+2004-02-27 20:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added vsched
+
+2004-02-27 20:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/fmt.c:
+
+ include <string.h>
+
+2004-02-27 19:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added vsched
+
+2004-02-27 19:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chbind.c:
+
+ removed unused variable
+
+2004-02-27 19:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/rpm-fake-test.c:
+
+ include <string.h>
+
+2004-02-27 19:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: Makefile-files, vsched.c, vschedule.c[DEAD]:
+
+ renamed vschedule to vsched
+
+2004-02-27 19:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added chcontext-compat and vschedule
+
+2004-02-27 19:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added vschedule
+
+2004-02-27 19:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added vc_set_sched declarations
+
+2004-02-27 19:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ removed 'otpions' field from vcmd_set_sched_v1
+
+2004-02-27 19:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_setsched-v13.hc, lib/syscall_setsched.c,
+ src/vschedule.c:
+
+ initial checkin
+
+2004-02-27 19:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added *setsched* files
+
+2004-02-27 19:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chcontext.c:
+
+ cleanups; applied name-change from 'chcontext' to 'chcontext-compat'
+
+2004-02-27 19:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ renamed 'chcontext' to 'chcontext-compat'
+
+2004-02-27 19:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_CHCONTEXT_COMPAT
+ updated $_CHCONTEXT
+
+2004-02-27 19:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ isKernelAPI(): added
+
+2004-02-27 19:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ added chcontext wrapper
+
+2004-02-27 18:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added vc_isSupported()
+ cleanups
+
+2004-02-27 18:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ updated scheduler definitions
+
+2004-02-27 18:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/issupported.c, scripts/chcontext:
+
+ initial checkin
+
+2004-02-27 18:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added issupported.c
+
+2004-02-27 18:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added chcontext-compat
+
+2004-02-27 05:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ cleanups; restructured code
+
+2004-02-27 05:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/new-namespace.c:
+
+ cleanups; do not include "stack-start.h" anymore
+
+2004-02-27 05:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vnamespace.c:
+
+ initial checkin
+
+2004-02-27 05:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: fakerunlevel.c, rpm-fake-resolver.c, save_ctxinfo.c,
+ vrsetup.c, vserver-stat.c:
+
+ use wrappers with detailed error-messages
+
+2004-02-27 05:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: Makefile-files, .cvsignore:
+
+ added vnamespace
+
+2004-02-27 05:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/fmt.c:
+
+ made non-C99 compilers happy
+
+2004-02-27 05:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ vc_set_namespace(), vc_cleanup_namespace(): added prototypes
+
+2004-02-27 05:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ added VCMD_set_namespace and VCMD_cleanup_namespace declarations
+
+2004-02-27 05:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added *setnamespace* and *cleanupnamespace* files
+
+2004-02-27 05:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_cleanupnamespace-v13.hc,
+ syscall_cleanupnamespace.c, syscall_setnamespace-v13.hc,
+ syscall_setnamespace.c:
+
+ initial checkin
+
+2004-02-27 05:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/: wrappers-fcntl.hc, wrappers-unistd.hc:
+
+ added some wrappers with detailed error-messages
+
+2004-02-27 05:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers.h:
+
+ added ENSC_DETAIL macros
+
+2004-02-27 05:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/defaults/rpm/macros:
+
+ added /etc/rc.d/init.d/halt and /sbin/new-kernel-pkg to %_netsharedpath
+
+2004-02-27 05:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added vcontext and vnamespace
+
+2004-02-26 14:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util-exitlikeprocess.c[DEAD]:
+
+ moved to lib_internal/
+
+2004-02-26 14:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util.h:
+
+ removed everything an include <lib_internal/util.h> only
+
+2004-02-26 14:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added vcontext
+
+2004-02-26 14:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chcontext.c, rpm-fake-resolver.c, rpm-fake.c:
+
+ use VC_DYNAMIC_XID instead of VC_RANDCTX
+
+2004-02-26 14:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vcontext.c:
+
+ initial checkin
+
+2004-02-26 14:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/Makefile-files:
+
+ removed 'util-exitlikeprocess.c'; link against libinternal.a now
+
+2004-02-26 14:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added vcontext
+ removed 'util-exitlikeprocess.c'; link against libinternal.a now
+
+2004-02-26 14:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ s!/vservers!$DEFAULT_VSERVERDIR! (reported in IRC by broo)
+
+2004-02-26 14:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util-mem.h:
+
+ include <stdlib.h>
+
+2004-02-26 14:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ added lots of util-* headers
+ added util-exitlikeprocess
+
+2004-02-26 14:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ * vc_create_context(), vc_migrate_context(), vc_[sg]et_flags(): added
+ prototypes plus structures
+ * use VC_DYNAMIC_XID instead of VC_RANDCTX
+
+2004-02-26 14:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ added CALL_VC_V13A macro (for API >= 0x00010012)
+ use VC_DYNAMIC_XID instead of VC_RANDCTX
+
+2004-02-26 14:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ added create+migrate+flags+caps declarations
+
+2004-02-26 14:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_createcontext-v13.hc, lib/syscall_createcontext.c,
+ lib/syscall_getflags-v13.hc, lib/syscall_getflags.c,
+ lib/syscall_migratecontext-v13.hc, lib/syscall_migratecontext.c,
+ lib/syscall_setflags-v13.hc, lib/syscall_setflags.c,
+ lib_internal/util-cast.h, lib_internal/util-commonstrings.h,
+ lib_internal/util-declarecmd.h, lib_internal/util-dimof.h,
+ lib_internal/util-exitlikeprocess.c,
+ lib_internal/util-exitlikeprocess.h, lib_internal/util.h:
+
+ initial checkin
+
+2004-02-26 14:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added createcontext + migratecontext + [sg]etflags files
+
+2004-02-26 13:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-vserver.hc:
+
+ Evc_create_context(), Evc_migrate_context(): added
+ use WRAPPER_DECL instead of UNUSED
+
+2004-02-25 12:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ enhanced output
+ added -nd options
+ allow literal limits
+ assume '-H' by default
+
+2004-02-25 12:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/.cvsignore:
+
+ added 'fmt'
+
+2004-02-25 12:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util.h:
+
+ include util-perror.h
+
+2004-02-25 12:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chcontext.c, secure-mount.c:
+
+ use more verbose perror()
+
+2004-02-25 12:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ added better namespace supportc
+
+2004-02-25 12:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/fmt.c, lib_internal/util-perror.h:
+
+ initial checkin
+
+2004-02-25 12:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/Makefile-files:
+
+ added fmt.c
+
+2004-02-25 12:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/fmt.h:
+
+ fmt_[u]int{32,64}(): added
+
+2004-02-21 00:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/flags.c:
+
+ cosmetical cleanups
+
+2004-02-21 00:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: flags.c, vserver.h:
+
+ added NAMESPACE flag
+
+2004-02-20 22:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ install enter-namespace into $(sbindir) instead of $(pkglibdir)
+
+2004-02-20 22:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/new-namespace.c:
+
+ added missing '#include <errno.h>'
+
+2004-02-20 21:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.29.196
+
+2004-02-20 21:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added enter-namespace
+
+2004-02-20 21:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/enter-namespace.c:
+
+ initial checkin
+
+2004-02-20 21:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files, contrib/manifest.dat.pathsubst:
+
+ added enter-namespace
+
+2004-02-20 21:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ merged with 0.29.2
+
+2004-02-20 20:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ changed logic to skip entries without chance for success
+
+2004-02-20 20:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ cleanups
+
+2004-02-20 20:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_rlimit-v11.hc:
+
+ vc_get_rlimit_mask_v11(): use correct datastructure
+
+2004-02-20 18:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: Makefile-files, virtual.h, vserver.h:
+
+ added the enter-namespace stuff
+
+2004-02-20 18:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_enternamespace-v13.hc, syscall_enternamespace.c:
+
+ initial checkin
+
+2004-02-20 18:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers_handler.hc:
+
+ added support for more extensive output
+
+2004-02-20 18:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ moved vserver-info into core
+
+2004-02-20 18:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ VC_ENABLE_API_V13(): incremented needed API-version
+
+2004-02-20 18:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_getvxinfo-v13.hc:
+
+ vc_get_vx_info_v13(): handle xid==0 and xid==1 case manually
+
+2004-02-20 18:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ cleanup output in error-case
+
+2004-02-20 18:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/stack-start.h:
+
+ fixed begin of STACK_START for non-growing stacks
+
+2004-02-20 18:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/fakerunlevel.c:
+
+ use more extensive errormessages
+ use <wrappers.h>
+
+2004-02-20 18:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fscompat_getiattr-v13.hc[DEAD], fscompat_getiattr.c[DEAD],
+ fscompat_setiattr-v13.hc[DEAD], fscompat_setiattr.c[DEAD]:
+
+ obsoleted
+
+2004-02-20 17:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chcontext.c, clearenv.c, exec-cd.c, exec-ulimit.c,
+ ifspec.c, listdevip.c, new-namespace.c, reducecap.c,
+ rpm-fake-resolver.c, rpm-fake.c, save_ctxinfo.c, secure-mount.c,
+ vkill.c:
+
+ do not do the lo-check anymore
+
+2004-02-20 17:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chbind.c:
+
+ use more extensive errormessages
+ do not do the lo-check anymore
+
+2004-02-20 03:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ fix copy&paste error when giving out initpid
+
+2004-02-19 23:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS:
+
+ version 0.29.195
+
+2004-02-19 23:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ added SYSINFO command
+ internal cleanups
+
+2004-02-19 23:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_e2fscheck.m4:
+
+ tell correct packagename for Debian's e2fsprogs-devel
+ tell packagename for Mandrake
+
+2004-02-19 23:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chxid.c, fstool.c, fstool.h, lsxid.c, setattr.c,
+ showattr.c:
+
+ applied new iattr interface and changed some internal functions
+
+2004-02-19 23:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: unify-unify.c, util-safechdir.c:
+
+ applied new iattr interface
+
+2004-02-19 23:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ * changed iattr interface
+ * removed *iattr_compat() functions; functionality is covered by new
+ iattr interface already
+
+2004-02-19 23:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ added new iattr definitions
+
+2004-02-19 23:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_getiattr-v13.hc, syscall_getiattr.c,
+ syscall_setiattr-v13.hc, syscall_setiattr.c:
+
+ implemented new iattr interface
+
+2004-02-19 23:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall-compat.hc:
+
+ vc_set_ipv4root_compat(): fixed off-by-one error while checking number
+ of allowed IPs
+
+2004-02-19 23:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fscompat_getiattr-fscompat.hc[DEAD],
+ fscompat_setiattr-fscompat.hc[DEAD],
+ syscall_getiattr-fscompat.hc, syscall_setiattr-fscompat.hc:
+
+ moved fscompat* files to *iattr-fscompat* and applied the changed iattr interface
+
+2004-02-19 23:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/createskeleton-full.hc:
+
+ use new iattr interface
+
+2004-02-19 23:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ removed the fscompat* files
+ added *iattr-fscompat files
+
+2004-02-19 23:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added FEATURES.txt and vcopy
+
+2004-02-19 23:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ create FEATURES.txt and rearranged code a little bit
+
+2004-02-19 23:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added FEATURES.txt
+
+2004-02-18 05:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added vc_createSkeleton() plus defines
+
+2004-02-18 05:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/fscompat_setiattr-fscompat.hc:
+
+ vc_set_iattr_compat_fscompat(): fixed usage of the mode argument
+
+2004-02-18 05:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: unify-unify.c, unify.h:
+
+ Unify_deUnify(): fixed parameters
+ Unify_copy(), Unify_setTime(): added prototype
+
+2004-02-18 05:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/unify-deunify.c:
+
+ fixed parameters
+
+2004-02-18 05:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/matchlist.h:
+
+ MatchList_printId(): added prototype
+
+2004-02-18 05:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/Makefile-files:
+
+ added unify* and util-* files
+
+2004-02-18 05:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vunify.c, vunify.h:
+
+ cleanups; outsourced a lot to libinternal.a
+
+2004-02-18 05:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util.h:
+
+ cleanups; outsourced some macros/inlines to libinternal.a
+
+2004-02-18 05:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added vcopy
+ link the fstool programs against libinternal.a
+ removed vserver-visitdir
+
+2004-02-18 05:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added vcopy
+
+2004-02-18 05:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util-safechdir.c[DEAD]:
+
+ moved into libinternal.a
+
+2004-02-18 05:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/createskeleton-full.hc, lib/createskeleton-short.hc,
+ lib/createskeleton.c, lib_internal/matchlist-printid.c,
+ lib_internal/unify-copy.c, lib_internal/unify-settime.c,
+ lib_internal/util-dotfile.h, lib_internal/util-safechdir.c,
+ lib_internal/util-safechdir.h, src/vcopy-init.hc, src/vcopy.c,
+ src/vserver-visitdir.hc:
+
+ initial checkin
+
+2004-02-18 05:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-io.hc:
+
+ rewrote the W*all() function to accept an additional argument holding
+ the error, instead of giving out the error
+
+2004-02-18 05:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added createskeleton* files
+
+2004-02-18 05:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * pathconfig.h.pathsubst:
+
+ added DEFAULT_PKGSTATEDIR
+
+2004-02-18 05:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ added PURE
+
+2004-02-18 05:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac, Makefile.am:
+
+ do not redefine 'LIBTOOL'; the '--tag' causes problems on install
+
+2004-02-17 20:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ call ENSC_DIETLIBC_NEED_COMPAT to determine if '-lcompat' is needed for dietlibc
+
+2004-02-17 20:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ define $(VSERVER_LDADDS)
+ generalized some LIBTOOL stuff
+ do not install libinternal.a anymore
+
+2004-02-17 20:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/Makefile-files:
+
+ use $(VSERVER_LDADDS) instead of lib/libvserver.la to use '-lcompat' on purpose
+
+2004-02-17 20:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ _pkgMountRPM(): do not mount /proc when it is already mounted
+
+2004-02-17 20:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ rearranged inclusion of <sys/socket.h> to fix compilation problems
+ with fc1.90
+
+2004-02-17 20:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rebootmgr.c:
+
+ include <limits.h>
+
+2004-02-17 20:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ use $(VSERVER_LDADDS) instead of lib/libvserver.la to use '-lcompat' on purpose
+ fixed capchroot compilation
+
+2004-02-17 20:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc_compat.m4:
+
+ initial checkin
+
+2004-02-17 20:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/testsuite/test1.c, src/testsuite/vunify-functest.c:
+
+ make non-C99 compilers happy
+
+2004-02-17 03:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS:
+
+ version 0.29.192
+
+2004-02-17 03:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added missing backslash
+
+2004-02-17 03:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vunify.h, testsuite/Makefile-files,
+ testsuite/vunify-functest.c:
+
+ use new lib_internal/
+
+2004-02-17 03:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify-init.hc:
+
+ moved most function into lib_internal/
+
+2004-02-17 03:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.c:
+
+ use new lib_internal
+
+2004-02-17 03:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util.h:
+
+ moved some functions/macros into lib_internal/util-*
+
+2004-02-17 03:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ removed vunify-* files which went into lib_internal
+
+2004-02-17 03:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added lib_internal/ files
+
+2004-02-17 03:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vunify-compare.hc[DEAD], vunify-debug.c[DEAD],
+ vunify-doit.hc[DEAD], vunify-matchlist.c[DEAD],
+ vunify-matchlist.h[DEAD]:
+
+ moved functionality into lib_internal library
+
+2004-02-17 03:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/: Makefile-files, matchlist-appendfiles.c,
+ matchlist-compare.c, matchlist-destroy.c, matchlist-init.c,
+ matchlist-initbyvserver.c, matchlist-initmanually.c,
+ matchlist-initrefserverlist.c, matchlist.h, pathinfo-append.c,
+ pathinfo-test.c, pathinfo.h, string-destroy.c, string.h,
+ string.hc, unify-deunify.c, unify-unify.c, unify.h, util-io.h,
+ util-mem.h:
+
+ initial checkin
+
+2004-02-17 03:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/: wrappers-unistd.hc, wrappers_handler.hc:
+
+ fixed some 'noreturn' warnings for the execv() functions
+
+2004-02-16 20:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/make-manifest:
+
+ ignore lines beginning with '#'
+
+2004-02-16 20:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ set @ENSC_HAVE_*_COMPILER_TRUE@ tags
+
+2004-02-16 20:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/testsuite/test1.c:
+
+ #undef NDEBUG
+
+2004-02-16 20:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ use $_READLINK
+ mount /proc when doing pkg-management
+
+2004-02-16 20:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added readlink
+
+2004-02-16 20:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vrpm-preload:
+
+ made rpm-flavor configurable (e.g. 'i' for install (default), 'q' for
+ query, 'd' for database)
+
+2004-02-16 20:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions:
+
+ register generated files so that they
+ can be cleaned up when needed
+
+2004-02-16 20:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.apt-rpm:
+
+ call rpm.initDB()
+
+2004-02-16 20:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.rpm:
+
+ rpm.initDB(): added
+
+2004-02-16 20:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ added --initstyle support (-> /etc/vservers/.../apps/init/style)
+
+2004-02-16 20:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chbind.c:
+
+ refined test-routine to work in vservers without 'lo' interface
+
+2004-02-16 20:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ define MS_REC when needed
+
+2004-02-16 20:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac, src/rpm-fake-resolver.c:
+
+ added big, fat warning when not using dietlibc
+
+2004-02-16 19:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added ENSC_HAVE_*_COMPILER_* to pathsubst-rules
+
+2004-02-14 02:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ use isAvoidNamespace() from main-functions file
+
+2004-02-14 02:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: functions, vserver.functions:
+
+ moved isAvoidNamespace() into main-functions file
+
+2004-02-14 02:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_syscallnr.m4:
+
+ fixed auto-case
+ improved message
+
+2004-02-14 02:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_kerneldir.m4:
+
+ ENSC_KERNEL_HEADERS: made argument optionally
+
+2004-02-14 02:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added clearenv
+
+2004-02-14 02:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ use ENSC_SYSCALLNR()
+
+2004-02-14 00:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ use results from ENSC_SYSCALLNR
+
+2004-02-14 00:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_syscallnr.m4:
+
+ initial checkin
+
+2004-02-12 00:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/clearenv.c:
+
+ use VSERVER_DECLARE_CMD
+
+2004-02-12 00:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added clearenv
+
+2004-02-12 00:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ use clearenv
+
+2004-02-12 00:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ made namespace stuff configurable at a global place
+
+2004-02-12 00:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vrpm-preload:
+
+ give more rights... (same like at --secure)
+
+2004-02-12 00:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files, scripts/util-vserver-vars.pathsubst:
+
+ added clearenv
+
+2004-02-12 00:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/clearenv.c:
+
+ initial checkin
+
+2004-02-10 18:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chxid.c, setattr.c:
+
+ handle dot-files by default; it does not make sense to use a special
+ '-a' flag for the set-operations
+
+2004-02-10 18:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ version 0.28.200
+
+2004-02-10 18:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ recognize 'rbind' in fstab
+ use internal mount(2) on MOVE too
+
+2004-02-10 15:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver, vserver.functions, vserver.start:
+
+ implemented CLONE_NS and --rbind mounting
+
+2004-02-10 15:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ implemented '--rbind'
+
+2004-02-10 13:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/testsuite/.cvsignore, lib/testsuite/.cvsignore:
+
+ initial checkin
+
+2004-02-10 13:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/testsuite/flags.c:
+
+ s!init!fakeinit!
+
+2004-02-10 13:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ version 0.28.199
+
+2004-02-10 13:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ moved the 'chattr' into the right %post scriptlet
+
+2004-02-10 13:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/flags.c:
+
+ s!init!fakeinit!
+
+2004-02-10 03:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ version 0.28.198
+
+2004-02-10 00:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/: make-manifest, manifest.dat.pathsubst:
+
+ moved *.so.* files from -core to -lib
+
+2004-02-10 00:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added -lib subpackage
+ moved *.so.* files from -core to -lib
+ removed the '%exclude ...vrpm.8'
+ added a 'make check'
+
+2004-02-10 00:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/.cvsignore:
+
+ initial checkin
+
+2004-02-10 00:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_wrappers/wrappers-unistd.hc:
+
+ Eexecvp(): added
+ added some 'NORETURN' specifiers
+
+2004-02-10 00:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added lib/testsuite
+
+2004-02-10 00:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/vunify-test.sh:
+
+ redirect output to /dev/null
+
+2004-02-10 00:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/rpm-fake-test.c:
+
+ fixed compilation warnings
+
+2004-02-10 00:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/chcontext-test.c:
+
+ added explicite 'return' for non-C99 compilers
+
+2004-02-10 00:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/Makefile-files:
+
+ added chbind-test
+
+2004-02-10 00:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * man/Makefile-files:
+
+ renoved vrpm.8 for now
+
+2004-02-10 00:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ vc_text2cap(): take 'unsigned int' instead of 'int' argument
+ vc_textlist2flag(), vc_text2flag(), vc_hiflag2text(): added prototypes
+
+2004-02-10 00:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/capabilities.c:
+
+ vc_text2cap(): take 'unsigned int' instead of 'int' argument
+
+2004-02-10 00:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added flags* files
+ added testsuite + -programs
+
+2004-02-10 00:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chcontext.c:
+
+ setFlags(): use vc_textlist2flag() function
+ rearranged code to avoid unremovable zombie processes
+
+2004-02-10 00:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chbind.c, reducecap.c:
+
+ rewrote it
+
+2004-02-10 00:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ made reducecap & chbind native dietlibc programs
+
+2004-02-10 00:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/flags.c, lib/flags_list.c, lib/testsuite/Makefile-files,
+ lib/testsuite/flags.c, src/testsuite/chbind-test.c:
+
+ initial checkin
+
+2004-02-06 23:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added sys_clone.h
+
+2004-02-06 23:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added 'chattr -t /vservers' + needed Requires:
+
+2004-02-06 23:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions:
+
+ call 'chattr -t' on newly create vserverdirs
+ cleanups; parenthesize case-expressions
+
+2004-02-06 22:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util.h:
+
+ exitLikeProcess(): added NORETURN attribute to prototype
+
+2004-02-06 22:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ cleanups; use sys_clone()
+
+2004-02-06 22:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/new-namespace.c:
+
+ cleanups; modernized it
+
+2004-02-06 22:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ link new-namespace against util-exitlikeprocess
+ cleanups
+
+2004-02-06 22:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/sys_clone.h:
+
+ initial checkin
+
+2004-02-06 19:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/Makefile-files:
+
+ do not call vunify-test when no C99 compiler is available
+
+2004-02-06 18:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/testsuite/: Makefile-files, test1.c:
+
+ initial checkin
+
+2004-02-06 18:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/vunify-test.sh:
+
+ use '-n' flag
+
+2004-02-06 18:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vutil.cc:
+
+ minor cosmetical changes
+
+2004-02-06 18:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify-init.hc:
+
+ initModeManually(): added missing strdup()
+
+2004-02-06 18:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am, ensc_vector/Makefile-files:
+
+ added ensc_vector testsuite
+
+2004-02-06 17:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/vector-insert.c:
+
+ fixed it
+
+2004-02-06 17:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ use ensc_vector
+ cleanups
+
+2004-02-06 17:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/lsxid.c:
+
+ use ensc_vector to cache xid->name mappings
+
+2004-02-06 17:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ link vserver-stat against libensc_vector.a
+
+2004-02-06 16:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ enumerated possible resources
+
+2004-02-06 16:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chxid.c:
+
+ fixed do-display-dir behavior
+
+2004-02-06 15:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ _generateFlagOptions(): fixed a case expression; formerly x"foo" ==
+ foo checks which would never succeed
+
+2004-02-06 15:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chcontext.c, chroot-cat.c, chroot-rm.c, exec-cd.c,
+ exec-ulimit.c, fstool.c, new-namespace.c, pipe-sync.c,
+ rpm-fake-resolver.c, save_ctxinfo.c, vps.c, vrsetup.c,
+ vserver-info.c, vserver-stat.c, vunify-doit.hc, vunify-init.hc,
+ vunify-matchlist.c, vunify.c, testsuite/rpm-fake-test.c:
+
+ use new ensc_wrappers/ headers
+
+2004-02-06 15:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ removed wrappers-*
+ link lsxid against libensc_vector.a
+
+2004-02-06 15:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: wrappers-dirent.h[DEAD], wrappers-io.h[DEAD],
+ wrappers-vserver.h[DEAD], wrappers.h[DEAD]:
+
+ moved and generalized into an own /ensc_wrappers subdir
+
+2004-02-06 15:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * ensc_vector/Makefile-files, ensc_vector/vector-clear.c,
+ ensc_vector/vector-free.c, ensc_vector/vector-init.c,
+ ensc_vector/vector-insert.c, ensc_vector/vector-internal.h,
+ ensc_vector/vector-popback.c, ensc_vector/vector-pushback.c,
+ ensc_vector/vector-resize.c,
+ ensc_vector/vector-resizeinternal.hc,
+ ensc_vector/vector-search.c, ensc_vector/vector-sort.c,
+ ensc_vector/vector-unique.c, ensc_vector/vector.h,
+ ensc_vector/vector.hc, ensc_wrappers/Makefile-files,
+ ensc_wrappers/wrappers-clone.hc,
+ ensc_wrappers/wrappers-dirent.hc,
+ ensc_wrappers/wrappers-fcntl.hc, ensc_wrappers/wrappers-io.hc,
+ ensc_wrappers/wrappers-ioctl.hc,
+ ensc_wrappers/wrappers-iosock.hc,
+ ensc_wrappers/wrappers-mount.hc, ensc_wrappers/wrappers-pivot.hc,
+ ensc_wrappers/wrappers-resource.hc,
+ ensc_wrappers/wrappers-stdlib.hc,
+ ensc_wrappers/wrappers-unistd.hc,
+ ensc_wrappers/wrappers-vserver.hc,
+ ensc_wrappers/wrappers-wait.hc, ensc_wrappers/wrappers.h,
+ ensc_wrappers/wrappers_handler.hc:
+
+ initial checkin
+
+2004-02-06 15:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added ensc_vector/ & ensc_wrappers/ subdirs and files
+
+2004-02-05 23:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/setattr.c:
+
+ documented --barrier
+ fixed do-display-dir behavior
+
+2004-02-05 05:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ added another path for the template mtab file
+
+2004-02-05 05:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.28.195
+
+2004-02-05 05:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/defaults/apt.conf:
+
+ initial checkin
+
+2004-02-05 04:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added default apt.conf
+
+2004-02-05 04:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented default apt.conf
+
+2004-02-05 04:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall-legacy.hc:
+
+ minor code cleanups
+ added a missing '#ifdef ENSC_SYSCALL_TRADITIONAL'
+
+2004-02-05 04:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_syscall.m4:
+
+ enhanced check by using kernel headers
+
+2004-02-05 04:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.apt:
+
+ added default apt.conf/vendors.conf files
+
+2004-02-05 04:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chcontext.c:
+
+ use sethostname(2)/setdomainname(2) again...
+
+2004-02-05 00:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ use ENSC_SYSCALL
+ enhanced diagnostic output
+
+2004-02-05 00:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall-legacy.hc, vserver-internal.h:
+
+ use ENSC_SYSCALL_TRADITIONAL
+
+2004-02-05 00:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall.c:
+
+ cleanups; do not include "compat.h" anymore explicitly
+
+2004-02-05 00:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added @WGET@ substitution
+
+2004-02-04 22:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_syscall.m4:
+
+ initial checkin
+
+2004-02-04 22:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vpkg:
+
+ implemented Debian support
+
+2004-02-04 22:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ cleanups
+ added '--silent' option
+
+2004-02-04 22:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vunify-init.hc, vunify.c:
+
+ minor cleanups
+
+2004-02-04 04:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/fscompat_getiattr-v13.hc:
+
+ fixed 'xid' parameter transmission
+
+2004-02-04 04:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS:
+
+ version 0.28.193
+
+2004-02-04 04:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added check for wget
+ version 0.28.193
+
+2004-02-04 04:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added some (Build)Requires:
+
+2004-02-04 04:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/manifest.dat.pathsubst:
+
+ added debootstrap files
+
+2004-02-04 04:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented debootstrap configuration
+
+2004-02-04 04:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.debootstrap:
+
+ fixed path of default-uri file
+
+2004-02-04 03:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/debootstrap.uri:
+
+ initial checkin
+
+2004-02-04 03:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added debootstrap.uri
+
+2004-02-04 03:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ use $PKGLIBDEFAULTDIRc
+
+2004-02-04 03:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build.apt-rpm, vserver-build.functions,
+ vserver-build.skeleton:
+
+ cleanups; use 'base.' namespace
+
+2004-02-04 03:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build:
+
+ added debootstrap
+
+2004-02-04 03:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vpkg:
+
+ added basic support for Debian
+
+2004-02-04 03:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_WGET
+
+2004-02-04 03:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ added debootstrap and pkgmgmt files
+
+2004-02-04 03:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.debootstrap:
+
+ initial checkin
+
+2004-02-03 23:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.28.192
+
+2004-02-03 23:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added 'vuname'
+
+2004-02-03 23:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/: Makefile-files, make-manifest, manifest.dat.pathsubst,
+ .cvsignore:
+
+ initial checkin
+
+2004-02-03 22:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added more details to the final summary
+
+2004-02-03 22:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added misc/fstab
+
+2004-02-03 22:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build.apt-rpm, vserver-build.functions:
+
+ splitted some functions into a separate vserver-build.functions.pkgmgmt file
+ use XXX.yyy namespace-style notation
+
+2004-02-03 22:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.pkgmgmt,
+ scripts/vserver-build.skeleton, distrib/misc/fstab:
+
+ initial checkin
+
+2004-02-03 22:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ allow to configure fstab-file
+
+2004-02-03 22:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build.functions.apt,
+ vserver-build.functions.rpm:
+
+ splitted some functions into a separate vserver-build.functions.pkgmgmt file
+ use XXX.yyy namespace-style notation
+
+2004-02-03 22:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build:
+
+ added skeleton support
+ fixed help message
+
+2004-02-03 22:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ added '--debug' option
+
+2004-02-03 22:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT
+
+2004-02-03 22:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ added vserver-build.skeleton
+
+2004-02-03 22:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vkill.c:
+
+ cleanups; use modern interfaces
+
+2004-02-03 22:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util.h:
+
+ VSERVER_DECLARE_CMD macro: added
+
+2004-02-03 22:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added vuname
+
+2004-02-03 22:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/Makefile-files:
+
+ added workaround for automake bug
+
+2004-02-03 22:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vuname.c:
+
+ initial checkin
+
+2004-02-03 13:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ use ENSC_C99COMPILER
+ give out summary at end of ./configure
+
+2004-02-03 13:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ * added support for ENSC_HAVE_C99_COMPILER and conditionalized build
+ of 'vunify'
+ * renamed *_CXX_X_* variables to *_CXX_*
+
+2004-02-03 13:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.cc[DEAD]:
+
+ removed since rewritten in C
+
+2004-02-03 13:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4:
+
+ use 'yes' instead of '1'
+
+2004-02-03 13:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_cxxcompiler.m4:
+
+ added ENSC_C99COMPILER
+ added warning-messages
+
+2004-02-03 13:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_getvhiname-v13.hc, syscall_setvhiname-v13.hc:
+
+ #include <string.h>
+
+2004-02-02 20:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/compatibility.xml:
+
+ added note about chcontext rewrite
+
+2004-02-02 20:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added support for olduts API
+
+2004-02-02 20:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ substitute @PACKAGE@ too
+
+2004-02-02 20:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/Makefile-files:
+
+ added chcontext-test.c
+
+2004-02-02 20:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/chcontext-test.c:
+
+ initial checkin
+
+2004-02-02 20:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/wrappers.h:
+
+ added Esetsid()
+
+2004-02-02 20:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/wrappers-vserver.h:
+
+ return xid_t instead of void
+
+2004-02-02 20:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ cleanups
+ added missing '\n' in error-msg
+
+2004-02-02 20:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ added UTS tag
+
+2004-02-02 20:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/reducecap.c:
+
+ cleanups in the vc_new_s_context() call
+
+2004-02-02 20:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chcontext.c:
+
+ rewrote and enhanced it
+
+2004-02-02 20:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ made chcontext a dietlibc program and updated its SOURCES
+
+2004-02-02 20:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ return xid_t on vc_new_s_context()
+ added VHOST/vhi functions and types
+
+2004-02-02 19:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ cleanups
+ added CALL_VC_OLDUTS()
+ added VHI_USER2KERNEL/VHI_KERNEL2USER() wrappers
+
+2004-02-02 19:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ added VHOST support
+
+2004-02-02 19:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_gettaskxid-oldproc.hc,
+ syscall_getvxinfo-oldproc.hc:
+
+ renamed *_X to *_oldproc
+
+2004-02-02 19:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall-compat.hc, syscall-legacy.hc, syscall.c:
+
+ fixed vc_new_s_context() to return the context instead of 0/1
+
+2004-02-02 19:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fscompat_getiattr-v13.hc, fscompat_setiattr-v13.hc,
+ syscall_getiattr-v13.hc, syscall_getvxinfo-v13.hc,
+ syscall_kill-v11.hc, syscall_setiattr-v13.hc:
+
+ use CTX_USER2KERNEL to wrap xid
+
+2004-02-02 19:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/capabilities.c:
+
+ allow both 'CAP_xxx' and 'xxx'
+
+2004-02-02 19:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added *vhiname* files
+
+2004-02-02 19:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_getvhiname-olduts.hc, syscall_getvhiname-v13.hc,
+ syscall_getvhiname.c, syscall_setvhiname-olduts.hc,
+ syscall_setvhiname-v13.hc, syscall_setvhiname.c:
+
+ initial checkin
+
+2004-01-29 12:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/.cvsignore:
+
+ initial checkin
+
+2004-01-29 12:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS:
+
+ version 0.28.190
+
+2004-01-29 12:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ cleanups; use $(SED) instead of sed
+ fix $pkglibdir in install-data-hook
+ put some hooks into own targets
+
+2004-01-29 12:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added tests for sed and cmp
+ outsourced ext2fs test (merged from 0.28)
+
+2004-01-29 12:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ fixed insert-into-list function
+ give out warning when vc_get_task_xid() fails
+
+2004-01-29 12:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ use DIM_OF() macro
+ added APIVER tag
+ fixed help message
+
+2004-01-29 12:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util.h:
+
+ added DIM_OF() macro
+
+2004-01-29 12:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added vrsetup
+
+2004-01-29 12:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: rootshell, vapt-get, vapt-get-worker, vpkg, vpstree,
+ vrpm, vrpm-preload, vrpm-worker, vserver, vserver-build,
+ vserver-copy, vservers.grabinfo.sh, vsysvwrapper, vtop,
+ legacy/distrib-info, legacy/vserver, legacy/vserverkillall:
+
+ fixed/changed path-detection for $UTIL_VSERVER_VARS
+
+2004-01-29 12:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ cleanups
+ do not install util-vserver-vars in SBINDIR anymore
+
+2004-01-29 12:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_e2fscheck.m4:
+
+ initial checkin
+
+2004-01-29 12:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: ext2fs.h, getversion.c, vserver.h:
+
+ merged with 0.28
+
+2004-01-23 22:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/Makefile-files:
+
+ added some files to doc_DAT
+
+2004-01-23 21:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ version 0.27.199
+ added check for xsltproc
+
+2004-01-23 21:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS:
+
+ version 0.27.199
+
+2004-01-23 21:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ added ENSC_FIX_IOCTL()
+
+2004-01-23 21:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added $(doc_DAT)
+
+2004-01-23 21:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/Makefile-files:
+
+ added compat-doc
+
+2004-01-23 21:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/: compat-xhtml.xsl, compatibility.dtd, compatibility.xml:
+
+ initial checkin
+
+2004-01-23 21:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: ioctl-getext2flags.hc, ioctl-getfilecontext.hc,
+ ioctl-setext2flags.hc, ioctl-setfilecontext.hc, ioctl-setxflg.hc:
+
+ use ENSC_FIX_IOCTL() to fix dietlibc's ioctl() return values
+
+2004-01-22 22:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getversion-internal.hc, syscall-compat.hc,
+ syscall_getiattr-v13.hc, syscall_gettaskxid-v13.hc,
+ syscall_getvxinfo-v13.hc, syscall_kill-v11.hc,
+ syscall_rlimit-v11.hc, syscall_setiattr-v13.hc:
+
+ use the VCMD_* macros instead of the VC_CMD(...) macros
+
+2004-01-22 16:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.27.198
+
+2004-01-22 16:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vrsetup.c:
+
+ fixed copyright date
+
+2004-01-22 15:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/wrappers.h:
+
+ added Eioctl() wrapper
+
+2004-01-22 15:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added vrsetup
+
+2004-01-22 15:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vrsetup.c:
+
+ initial checkin
+
+2004-01-22 14:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify-doit.hc:
+
+ * provide st_mode at vc_set_iattr_compat() call
+
+2004-01-22 14:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: lsxid.c, showattr.c:
+
+ * provide st_mode at vc_set_iattr_compat() call
+ * do not stop on non-regular files; vc_set_iattr_compat() handles this
+ already
+
+2004-01-22 14:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/setattr.c:
+
+ * removed the race-check; this is done by vc_set_iattr_compat() already
+ * provide st_mode at vc_set_iattr_compat() call
+ * do not stop on non-regular files; vc_set_iattr_compat() handles this
+ already
+ * moved setFlags() code into handleFile()
+ * added 'iunlink' option
+
+2004-01-22 14:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chxid.c:
+
+ * removed the race-check; this is done by vc_set_iattr_compat() already
+ * provide st_mode at vc_set_iattr_compat() call
+ * do not stop on non-regular files; vc_set_iattr_compat() handles this
+ already
+ * moved setFile() code into handleFile()
+
+2004-01-22 14:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ removed 'vunify' from list of C++ files
+
+2004-01-22 14:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_gettaskxid-v13.hc:
+
+ fixed call
+
+2004-01-22 14:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: ioctl-getext2flags.hc, ioctl-getfilecontext.hc,
+ ioctl-getxflg.hc, ioctl-setext2flags.hc, ioctl-setfilecontext.hc,
+ ioctl-setxflg.hc:
+
+ when ioctl() returns a value <-1, assign errno manually and return -1
+
+2004-01-22 14:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_getiattr-v13.hc, syscall_setiattr-v13.hc:
+
+ updated to changed API; removed 'dev' field from 'struct vcmd_ctx_iattr_v0'
+
+2004-01-22 14:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ updated; removed 'dev' field from 'struct vcmd_ctx_iattr_v0'
+
+2004-01-22 14:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ CALL_VC(): return ENOSYS in errorcase
+
+2004-01-22 14:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ * vc_[sg]et_iattr_compat(): added additional 'mode' parameter to avoid
+ an additional 'lstat'
+
+2004-01-22 14:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fscompat_getiattr.c, fscompat_setiattr.c:
+
+ * added additional 'mode' parameter to avoid an additional 'lstat'
+
+2004-01-22 14:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fscompat_getiattr-fscompat.hc,
+ fscompat_setiattr-fscompat.hc:
+
+ * added additional 'mode' parameter to avoid an additional 'lstat'
+ * operate on regular files and directories only
+
+2004-01-21 22:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_gettaskxid-v13.hc:
+
+ return VC_NOCTX instead of -1
+
+2004-01-21 20:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/getinitpid.c:
+
+ updated to new API
+
+2004-01-21 20:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ added INITPID* and XID tags
+
+2004-01-21 20:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/save_ctxinfo.c, src/vps.c, src/vserver-stat.c,
+ src/wrappers-vserver.h, tests/getctx.c:
+
+ use vc_get_task_xid() instead of vc_X_getctx()
+
+2004-01-21 19:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ * vc_get_vx_info(), vc_get_task_xid(): added prototypes plus required
+ typedefinitions
+ * vc_X_getctx(), vc_X_getinitpid(): removed since obsoleted by functions
+ above
+
+2004-01-21 19:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ * added fscompat & oldproc API
+ * added support for VC_MULTIVERSION_SYSCALL which chooses the optimal
+ CALL_VC variant
+ * changed CALL_VC() so that it looks for version greater than requested
+ one now
+
+2004-01-21 19:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ updated; added VINFO commands
+
+2004-01-21 19:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: syscall_kill.c, syscall_rlimit.c:
+
+ cleanups; optimize CALL_VC() usage
+
+2004-01-21 19:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fscompat_getiattr.c, fscompat_setiattr.c:
+
+ cleanups; use CALL_VC() macro
+
+2004-01-21 19:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: checkversion.c, getversion-internal.hc, getversion.c,
+ ioctl-getext2flags.hc, ioctl-getfilecontext.hc, ioctl-getxflg.hc,
+ ioctl-setext2flags.hc, ioctl-setfilecontext.hc, ioctl-setxflg.hc,
+ syscall-compat.hc, syscall.c, syscall_getiattr-v13.hc,
+ syscall_setiattr-v13.hc:
+
+ cleanups; fixed/changed "vserver-internal.h" including
+
+2004-01-21 19:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added get_task_xid & get_vc_info files
+ removed obsoleted getctx/getinitpid files
+ renamed some -v11 files to -fscompat
+
+2004-01-21 19:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getctx-compat.hc[DEAD], getctx-legacy.hc[DEAD],
+ getctx.c[DEAD], getinitpid-compat.hc[DEAD],
+ getinitpid-legacy.hc[DEAD], getinitpid.c[DEAD]:
+
+ obsoleted by v13/oldproc functions
+
+2004-01-21 19:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fscompat_getiattr-v13.hc, fscompat_setiattr-v13.hc,
+ syscall_gettaskxid-oldproc.hc, syscall_gettaskxid-v13.hc,
+ syscall_gettaskxid.c, syscall_getvxinfo-oldproc.hc,
+ syscall_getvxinfo-v13.hc, syscall_getvxinfo.c:
+
+ initial checkin
+
+2004-01-21 19:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fscompat_getiattr-fscompat.hc,
+ fscompat_getiattr-v11.hc[DEAD], fscompat_setiattr-fscompat.hc,
+ fscompat_setiattr-v11.hc[DEAD]:
+
+ renamed *-v11 to *-fscompat
+
+2004-01-21 19:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * .cvsignore:
+
+ added 'Build-*'
+
+2004-01-21 19:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added 'oldproc' API
+
+2004-01-21 02:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: Makefile-files, vunify-compare.hc, vunify-compare.ic[DEAD],
+ vunify-doit.hc, vunify-doit.ic[DEAD], vunify-init.hc,
+ vunify-init.ic[DEAD], vunify.c:
+
+ renamed *.ic to *.hc
+
+2004-01-21 02:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.h:
+
+ added changes for new API
+ added rsSPECIAL reason
+
+2004-01-21 02:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.c:
+
+ added changes for new API
+
+2004-01-21 02:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify-doit.ic:
+
+ updated to new API
+
+2004-01-21 02:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ fixed help message
+
+2004-01-21 02:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chxid.c, fstool.c, fstool.h, lsxid.c, setattr.c,
+ showattr.c:
+
+ updated/enhanced for new API
+
+2004-01-21 02:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ updated
+
+2004-01-21 02:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ added v13 API
+
+2004-01-21 02:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added fscompat and v13 functions
+ removed ioctl functions
+
+2004-01-21 02:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added fscompat and v13 functions
+
+2004-01-21 02:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: ioctl-getext2flags.c[DEAD], ioctl-getfilecontext.c[DEAD],
+ ioctl-setext2flags.c[DEAD], ioctl-setfilecontext.c[DEAD],
+ ioctl-getext2flags.hc, ioctl-getfilecontext.hc,
+ ioctl-setext2flags.hc, ioctl-setfilecontext.hc:
+
+ do not provide the ioctl-functions anymore; use them only internally
+ and include them directly. Therefore, renamed them from *.c to *.hc
+
+2004-01-21 02:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fscompat_getiattr-v11.hc, fscompat_getiattr.c,
+ fscompat_setiattr-v11.hc, fscompat_setiattr.c, ioctl-getxflg.hc,
+ ioctl-setxflg.hc, syscall_getiattr-v13.hc, syscall_getiattr.c,
+ syscall_setiattr-v13.hc, syscall_setiattr.c:
+
+ initial checkin
+
+2004-01-21 02:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added v13 & fscompat APIs
+
+2004-01-19 19:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/vunify-exclude:
+
+ added .rpmdb
+
+2004-01-19 19:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chxid.c, lsxid.c, setattr.c, showattr.c:
+
+ s/S_ISLNK/!S_ISREG/ -> ignore any non-regular files
+
+2004-01-19 19:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ removed vunify-operations
+
+2004-01-19 19:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.h:
+
+ cleanups; moved structure declarations from vunify.c into this headerfile
+
+2004-01-19 19:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.c:
+
+ cleanups
+ added 'skip_reason' support
+ added debug output
+
+2004-01-19 19:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify-init.ic:
+
+ added debug output
+ fixed descriptor leak
+
+2004-01-19 19:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vunify-compare.ic, vunify-doit.ic:
+
+ initial checkin
+
+2004-01-19 19:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vunify-operations.c[DEAD], vunify-operations.h[DEAD]:
+
+ obsoleted by more straight-forward code
+
+2004-01-19 19:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ fixed copy&paste error
+
+2004-01-17 06:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.27.196
+
+2004-01-17 06:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/vserver-info.c:
+
+ updated to new vc_getVserverVdir() API
+
+2004-01-17 06:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.c:
+
+ moved init*() functions to vunify-init.c
+
+2004-01-17 06:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify-operations.c:
+
+ compareUnify(): check mtime too
+
+2004-01-17 06:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify-matchlist.h:
+
+ made 'buf' constant
+
+2004-01-17 06:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify-matchlist.c:
+
+ allow cmp-pointer to be NULL
+
+2004-01-17 06:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify-init.ic:
+
+ use VPKG_PROG instead of PKGMGMT_INFO_PROG
+ register 'vdir'
+ use default exclude-lists
+
+2004-01-17 06:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify-debug.c:
+
+ added a const_cast
+
+2004-01-17 06:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ updated VDIR tag to new interface
+
+2004-01-17 06:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ added 'unify' and 'pkg' commands
+
+2004-01-17 06:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vpkg:
+
+ initial checkin
+
+2004-01-17 06:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_VUNIFY and $_VPKG
+
+2004-01-17 06:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: distrib-info[DEAD], legacy/distrib-info:
+
+ moved distrib-info to legacy/
+
+2004-01-17 06:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ moved distrib-info to legacy/
+ added vpkg
+
+2004-01-17 06:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getvservervdir.c, vserver.h:
+
+ added 'physical' parameter to vc_getVserverVdir() which resolves the
+ complete physical path of the vdir
+
+2004-01-17 06:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/misc/vunify-exclude:
+
+ initial checkin
+
+2004-01-17 06:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added vunify-exclude
+
+2004-01-17 06:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ use manifest-data for -legacy
+
+2004-01-17 06:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * pathconfig.h.pathsubst:
+
+ added VPKG_PROG
+ minor cleanups
+
+2004-01-16 19:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/vunify-test.sh:
+
+ applied new calling scheme
+
+2004-01-16 19:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/vunify-functest.c:
+
+ added wrapper_exit_code
+
+2004-01-16 19:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/wrappers.h:
+
+ Elseek(), Emkstemp(): added
+ Emalloc(), Erealloc(): fixed declarations
+
+2004-01-16 19:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vunify-matchlist.c, vunify-matchlist.h,
+ vunify-operations.c, vunify.c:
+
+ added exclude-list support
+
+2004-01-16 19:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ added APPDIR tag
+ made it possible to supply additional paramaters
+
+2004-01-16 19:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: new-namespace.c, rpm-fake.c:
+
+ do not use CLONE_VFORK in debug mode; lockups with 'strace' are too annoying
+
+2004-01-16 19:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ updated vunify setup
+ added files for vunify
+
+2004-01-16 18:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/legacy/.cvsignore, src/vunify-debug.c,
+ src/vunify-init.ic, src/vunify.h, src/wrappers-io.h:
+
+ initial checkin
+
+2004-01-16 18:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ accept vservers beginning with './'
+
+2004-01-16 18:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added new management functions + doc
+
+2004-01-16 18:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/internal.h:
+
+ added utilvserver_isDirectory() prototype
+
+2004-01-16 18:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvservervdir.c:
+
+ use utilvserver_isDirectory()
+
+2004-01-16 18:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added new management sources
+
+2004-01-16 18:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getvserverappdir.c, getvservercfgdir.c, isdirectory.c:
+
+ initial checkin
+
+2004-01-16 18:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ use filelists from contrib/make-manifest
+
+2004-01-16 18:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ fixed CVS tag
+
+2004-01-16 18:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added contrib/ dir
+ substitute MANDIR too
+
+2004-01-14 03:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util-exitlikeprocess.c:
+
+ added missing <signal.h>
+
+2004-01-14 03:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/fstool.h:
+
+ added 'local_fs' struct-member
+
+2004-01-14 03:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/fstool.c:
+
+ added support for '-x' (do not cross filesystems)
+ fixed invocation with directory-name
+ implemented '-a' (show dot)
+
+2004-01-14 03:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vps.c:
+
+ minor documentation fix
+
+2004-01-14 03:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chxid.c, lsxid.c, setattr.c, showattr.c:
+
+ added and documented '-x' switch
+
+2004-01-14 01:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vps.c:
+
+ makde it compilable with gcc296
+
+2004-01-14 01:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added -legacy subpackage
+
+2004-01-14 01:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ removed timestamps in legacy-dir also
+ substitute LEGACYDIR and PS
+
+2004-01-14 01:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vps.c:
+
+ added native '--version' and '--help'
+
+2004-01-14 01:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ added legacy-scripts to $(scripts_OPTIONS_EXEMPT)
+ added scripts_legacy_gen_SCRPTS to $(scripts_CLEANFILES)
+
+2004-01-14 01:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/validate.am:
+
+ fixed parallel build
+
+2004-01-14 00:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added check for PS
+
+2004-01-14 00:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * pathconfig.h.pathsubst:
+
+ added PS_PROG
+
+2004-01-14 00:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added vps
+
+2004-01-14 00:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ made vps a dietprog
+
+2004-01-14 00:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getctx.c:
+
+ minor code cleanups
+
+2004-01-14 00:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getctx.c:
+
+ added VC_BE_VALGRIND_FRIENDLY support
+
+2004-01-14 00:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ vc_get_securecaps(): added prototype
+
+2004-01-14 00:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ made CALL_VC-macro a block
+
+2004-01-14 00:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util-exitlikeprocess.c:
+
+ include <unistd.h>
+
+2004-01-14 00:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ moved legacy scripts into legacy/ and updated variables
+
+2004-01-14 00:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ updated legacy paths
+
+2004-01-14 00:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added vps
+
+2004-01-14 00:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util.h:
+
+ exitLikeProcess(): added prototype
+
+2004-01-14 00:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/wrappers.h:
+
+ Emalloc(), Erealloc(): added
+
+2004-01-14 00:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: util-exitlikeprocess.c, vps.c:
+
+ initial checkin
+
+2004-01-14 00:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: save_s_context[DEAD], vps.pathsubst[DEAD],
+ vserver-legacy[DEAD], vserverkillall[DEAD]:
+
+ moved into legacy
+
+2004-01-14 00:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/legacy/: save_s_context, vps.pathsubst, vserver,
+ vserverkillall:
+
+ initial checkin (moved from ../)
+
+2004-01-13 21:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-legacy:
+
+ use 'exec' to call commands on 'suexec' (patch by Alec Thomas)
+
+2004-01-13 15:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added missing fstool.h header
+
+2004-01-13 15:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ updated (added scheduler stuff)
+
+2004-01-13 15:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vkill.c:
+
+ removed warnings about unused parameters
+
+2004-01-13 15:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvserverbyctx.c, lib/getvserverctx.c, src/exec-cd.c,
+ tests/escaperoot.c, tests/testipc.c, tests/testlimit.c,
+ tests/testopenf.c:
+
+ made it compilable with gcc296
+
+2004-01-13 15:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ use $(src_sbin_SCRPTS)
+
+2004-01-13 15:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added declarations for the ext2fs functions
+
+2004-01-13 15:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ added EXT2FS macros
+
+2004-01-13 15:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/fmt.h:
+
+ fixed xulong/xlong declarations
+
+2004-01-13 15:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added the ioctl-* files
+ added ext2fs.h
+
+2004-01-13 15:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ updated
+
+2004-01-13 15:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ removed ext2fs.h
+ added the fstools (lsxid,chxid,showattr,setattr) plus deps
+
+2004-01-13 15:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: chxid.c, fstool.c, fstool.h, lsxid.c, setattr.c,
+ showattr.c:
+
+ minor/medium cleanups
+
+2004-01-13 15:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/fstool-resolvectx.c:
+
+ initial checkin
+
+2004-01-13 14:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/showattr.c:
+
+ rewrote completely
+
+2004-01-13 14:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/ext2fs.h, src/ext2fs.h[DEAD]:
+
+ moved ext2fs.h from src/ into lib/ directory; we are providing the
+ needed functionality through libvserver now
+
+2004-01-13 14:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chxid.c, src/fstool.c, src/fstool.h, src/lsxid.c,
+ src/setattr.c, lib/ioctl-getext2flags.c,
+ lib/ioctl-getfilecontext.c, lib/ioctl-setext2flags.c,
+ lib/ioctl-setfilecontext.c:
+
+ initial checkin
+
+2004-01-07 16:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added URL which describes context-creation
+
+2004-01-07 16:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chcontext.c:
+
+ * removed obsolete and unused 'fakeinit' variable
+ * fixed ctx-creation with fakeinit and static ctx-id's; fakeinit
+ requires a second call for ctx -2 to take effect
+
+2004-01-05 23:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added vserver-info
+
+2004-01-05 23:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ updated
+
+2004-01-05 23:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/wrappers.h:
+
+ Edup2(): added
+
+2004-01-05 23:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ use existing syscall-wrappers instead of checking return-codes manually
+
+2004-01-05 23:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-info.c:
+
+ initial checkin
+
+2004-01-05 23:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ use fd3 for synchronization with resolver
+ adding some missing '\n' in messages
+ ignore empty environment variables too
+ exitRPMFake(): conditionalized debug-message
+
+2004-01-05 23:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake-resolver.c:
+
+ daemonize(): child waits for parent to finish now
+ use fd3 for synchronisation
+ enable fork on default
+
+2004-01-05 23:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added vserver-info
+ minor cosmetical fixes
+
+2004-01-05 23:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop:
+
+ fixed error-handling
+
+2004-01-05 23:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ added '--context' option
+ minor cosmetical cleanups
+
+2004-01-05 23:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions.apt:
+
+ initVariablesApt(): fixed empty function body
+
+2004-01-05 22:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vrpm-preload:
+
+ major cleanups; use 'vserver-info' to retrieve information about vserver
+
+2004-01-05 22:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vapt-get-worker:
+
+ removed old, unused debug code
+
+2004-01-05 22:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vapt-get, vrpm:
+
+ use modern '--help' & '--version' output
+
+2004-01-05 22:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_VSERVER_INFO
+
+2004-01-05 22:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ getVserverStatus(): fixed usage of 2nd parameter
+
+2004-01-05 22:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fmtx.hc, getvserverbyctx.c, getvserverctx.c,
+ vserver-internal.h, vserver.h:
+
+ small cosmetical fix
+
+2003-12-30 21:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ version 0.27.190
+
+2003-12-30 20:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ - since dynamic libraries will be installed now, call /sbin/ldconfig
+ - other updates...
+
+2003-12-30 20:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/compat-pivot_root.h:
+
+ use <asm/unistd.h> instead of <linux/unistd.h> to fix problems with
+ RH's headers
+
+2003-12-30 19:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/vunify-test.sh:
+
+ fixed paths
+
+2003-12-30 19:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop:
+
+ use sendKillSequence instead of ctx-kill
+
+2003-12-30 19:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ sendKillSequence(): added
+
+2003-12-30 19:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ removed _CTX_KILL
+ added _VKILL
+
+2003-12-30 19:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ getVserverStatus(): fixed usage if ctx
+ isCtxRunning(): added
+
+2003-12-30 18:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added missing compat-c99.h header-file
+
+2003-12-30 18:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chroot-rm.c:
+
+ fixed order of chroot() and parameter evaluation so that '--version'
+ and '--help' are working as non-root also
+
+2003-12-30 18:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added missing headers
+ removed 'ctx-kill'; it is obsoleted through 'vkill'
+
+2003-12-30 18:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/ctx-kill.c[DEAD]:
+
+ replaced by 'vkill'
+
+2003-12-30 18:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ use results from dietlib's C99 compatibility-check
+
+2003-12-30 18:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4:
+
+ added check for C99 compatibility
+
+2003-12-30 18:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_fpicsyscall.m4:
+
+ fixed AC_LANG_PUSH/POP mismatch
+
+2003-12-30 17:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * .cvsignore, lib/.cvsignore, scripts/.cvsignore, src/.cvsignore:
+
+ updated
+
+2003-12-30 17:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall_kill-v11.hc, lib/syscall_kill.c, src/vkill.c:
+
+ merged with 0.26.90
+
+2003-12-30 17:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/testsuite/rpm-fake-test.sh:
+
+ fixed LD_PRELOAD path
+
+2003-12-30 17:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ updated start/stop help-messages
+
+2003-12-30 17:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ getAllVservers(): ignore backup vservers
+
+2003-12-30 17:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ fixed multiple 'make install' by using '-f' on 'ln'
+
+2003-12-30 17:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ - merged with 0.26.90 (fixed --enable-apis, renamed ctx_t to xid_t,
+ renamed syscall, use C++ for ext2fs.h test)
+ - libtool'ized it
+
+2003-12-30 17:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ * added vkill (merged from 0.26.90)
+ * libtool'ized it
+
+2003-12-30 17:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ * added vc_kill() syscall (merged from 0.26.90)
+ * libtool'ized it
+
+2003-12-30 16:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ * added legacy-dir (merged from 0.26.90)
+ * libtool'ized it
+
+2003-12-30 16:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: .cvsignore, ctx-kill.c, rpm-fake-resolver.c, rpm-fake.c,
+ save_ctxinfo.c, vlimit.c, vserver-stat.c, wrappers-vserver.h:
+
+ merged with 0.26.90
+
+2003-12-30 16:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/getctx.c, compat.h, lib/getctx-compat.hc,
+ lib/getctx-legacy.hc, lib/getctx.c, lib/getversion-internal.hc,
+ lib/getversion.c, lib/getvserverbyctx.c, lib/getvserverctx.c,
+ lib/syscall-compat.hc, lib/syscall-legacy.hc, lib/syscall.c,
+ lib/syscall_rlimit-v11.hc, lib/syscall_rlimit.c, lib/virtual.h,
+ lib/vserver-internal.h, lib/vserver.h, scripts/Makefile-files,
+ scripts/vps.pathsubst, scripts/vserver-legacy:
+
+ merged with 0.26.90
+
+2003-12-29 20:02 uid68581
+
+ * src/capchroot.c:
+
+ do not use vc_chrootsafe() anymore
+
+2003-12-29 20:01 uid68581
+
+ * tests/Makefile-files:
+
+ removed chrootsafe
+ libtool'ized
+
+2003-12-26 01:49 uid68581
+
+ * compat-c99.h, src/testsuite/Makefile-files,
+ src/testsuite/rpm-fake-test.c, src/testsuite/rpm-fake-test.sh,
+ src/testsuite/vunify-functest.c, src/testsuite/vunify-test.sh,
+ src/testsuite/data/rpm-fake-test.inp,
+ src/testsuite/data/rpm-fake-test.out:
+
+ initial checkin
+
+2003-12-26 01:49 uid68581
+
+ * pathconfig.h.pathsubst:
+
+ added RESOLVER_PROG
+
+2003-12-26 01:48 uid68581
+
+ * scripts/vprofile[DEAD]:
+
+ removed since obsoleted
+
+2003-12-26 01:48 uid68581
+
+ * tests/: escaperoot.c, forkbomb.c, testlimit.c, testopenf.c:
+
+ used workarounds to make it compilable with non-C99 compilers
+
+2003-12-26 01:47 uid68581
+
+ * src/wrappers.h:
+
+ added setgid/setuid/setgroups wrappers
+
+2003-12-26 01:47 uid68581
+
+ * src/util.h:
+
+ added Xmemcpy()
+ added safeChdir() prototype
+
+2003-12-26 01:46 uid68581
+
+ * src/rpm-fake.c:
+
+ rewrote large parts
+ added NSS functions (getpwnam(), getgrnam(), ...)
+
+2003-12-26 01:45 uid68581
+
+ * src/fakerunlevel.c:
+
+ use setgroups() also
+
+2003-12-26 01:45 uid68581
+
+ * src/chroot-rm.c:
+
+ added '--help' and '--version'
+
+2003-12-26 01:44 uid68581
+
+ * src/.cvsignore:
+
+ added exec-cd and rpm-fake-resolver
+ removed secure-umount
+
+2003-12-26 01:41 uid68581
+
+ * src/: exec-cd.c, rpm-fake-resolver.c, vunify-matchlist.c,
+ vunify-matchlist.h, vunify-operations.c, vunify-operations.h,
+ vunify.c, wrappers-dirent.h, util-safechdir.c:
+
+ initial checkin
+
+2003-12-26 01:38 uid68581
+
+ * src/Makefile-files:
+
+ removed secure-umount
+ added exec-cd
+ vunify will be a dietlibc program soonly
+
+2003-12-26 01:34 uid68581
+
+ * scripts/: vsysvwrapper, vtop:
+
+ fixed quoting
+
+2003-12-26 01:34 uid68581
+
+ * scripts/vserver.functions:
+
+ use 'exec-cd' instead of 'secure-umount'
+
+2003-12-26 01:33 uid68581
+
+ * scripts/vserver-build.functions.apt:
+
+ fixed initVariablesApt()
+ added support for default apt.conf
+
+2003-12-26 01:33 uid68581
+
+ * scripts/vserver-build.functions:
+
+ rename package-cfg directory on '--force' also
+
+2003-12-26 01:32 uid68581
+
+ * scripts/vserver-build.apt-rpm:
+
+ added '--debug' option
+
+2003-12-26 01:32 uid68581
+
+ * scripts/vserver:
+
+ added package-management options (atleast their documention)
+
+2003-12-26 01:30 uid68581
+
+ * scripts/vapt-get-worker:
+
+ set RPM::PM to 'external'
+
+2003-12-26 01:29 uid68581
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added _EXEC_CD
+ removed _SECURE_UMOUNT
+
+2003-12-26 01:29 uid68581
+
+ * scripts/: rootshell, vpstree:
+
+ fixed quoting
+
+2003-12-26 01:29 uid68581
+
+ * scripts/functions:
+
+ added support for default apt.conf
+
+2003-12-26 01:23 uid68581
+
+ * scripts/Makefile-files:
+
+ removed vprofile
+
+2003-12-26 01:22 uid68581
+
+ * m4/: ensc_cflags.m4, ensc_dietlibc.m4, ensc_kerneldir.m4,
+ ensc_release.m4, ensc_uv_vrootdir.m4:
+
+ fixed broken quoting which is complained by recent automake
+
+2003-12-26 01:22 uid68581
+
+ * lib/: getvserverbyctx.c, getvserverctx.c:
+
+ added workarounds for non-C99 compilers
+
+2003-12-26 01:21 uid68581
+
+ * distrib/defaults/apt/apt.conf:
+
+ initial checkin
+
+2003-12-26 01:20 uid68581
+
+ * distrib/Makefile.am:
+
+ added default apt.conf
+
+2003-12-26 01:20 uid68581
+
+ * compat.h:
+
+ differ between >=3.3 and below at certain options
+ added 'restrict' workarounds
+
+2003-12-26 01:19 uid68581
+
+ * Makefile.am:
+
+ - removed m4_FILES; it is handled by automake >=2.8 automatically
+ - added basic test support
+
+2003-12-02 03:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ evaluate CHBIND_OPTS lazily
+
+2003-12-02 03:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvservername.c:
+
+ getRecentName(): return basename of directory but not this of the link anymore
+
+2003-11-22 03:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.26.193
+
+2003-11-22 03:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/ifspec.c, configure.ac, Makefile.am, .cvsignore:
+
+ merged with 0.26
+
+2003-11-22 03:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ generate some .defaults symlinks
+
+2003-11-22 03:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ generate %ghost symlinks in %post
+ added vlimit
+ added some .default directories
+
+2003-11-22 03:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvserverctx.c:
+
+ added missing includes
+
+2003-11-22 03:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ use '$CONFDIR/.defaults/run.rev' instead of '$PKGSTATEREVDIR'
+
+2003-11-20 19:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ use 'vservers.rev' directory instead of 'vservers/rev'
+
+2003-11-20 19:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ use PKGSTATEREVDIR
+
+2003-11-20 19:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/.cvsignore:
+
+ added vps
+
+2003-11-20 19:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added separate 'pkgstaterevdir' variable
+
+2003-11-20 19:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * pathconfig.h.pathsubst:
+
+ added DEFAULT_PKGSTATEREVDIR
+
+2003-11-20 19:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added getvserverctx & getvserverbyctx files
+ added fmtx* files
+
+2003-11-20 19:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/syscall-legacy.hc:
+
+ has_chrootsafe(), call_set_ctxlimit(): removed
+
+2003-11-20 19:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ vc_getVserverByCtx(), vc_getVserverCtx(): added
+
+2003-11-20 19:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fmt.h, fmt.hc:
+
+ added/use specialized hex-formating functions
+
+2003-11-20 19:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: fmt-internal.h, fmtx-32.c, fmtx-64.c, fmtx.hc,
+ getvserverbyctx.c, getvserverctx.c:
+
+ initial checkin
+
+2003-11-20 19:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added PKGSTATEREVDIR
+
+2003-11-20 19:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vserver-stat.c:
+
+ rewrote it to
+ * use the new management function
+ * remove all traces of printf()
+ * remove stacked functions
+
+2003-11-20 19:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vlimit.c:
+
+ use the specialized utilvserver_fmt_xuint64() function
+
+2003-11-20 19:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ made 'vserver-stat' a dietlibc-compiled program
+
+2003-11-20 16:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ define FMT_PREFIX
+
+2003-11-20 16:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/getinitpid.c, tests/getctx.c, src/save_ctxinfo.c,
+ src/vlimit.c, lib/getprocentry-legacy.c, lib/Makefile-files,
+ lib/fmt-32.c, lib/fmt-64.c, lib/fmt.h, lib/fmt.hc,
+ lib/int2str.c[DEAD], lib/internal.h, lib/uint2str.c[DEAD]:
+
+ use fmt_*() functions instead of *int2str()
+
+2003-11-20 03:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vps[DEAD]:
+
+ removed since autogenerated from vps.pathsubst
+
+2003-11-19 00:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/fc1/: apt/rpmpriorities, apt/sources.list, pkgs/01,
+ pkgs/02:
+
+ initial checkin (based on fdr0.95)
+
+2003-11-19 00:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added Fedora Core 1
+ removed Fedora Beta
+
+2003-11-19 00:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vapt-get:
+
+ do not set $_APT_GET
+
+2003-11-19 00:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ merged/added from 0.25
+ added workaround for broken 'long long' handling of dietlibc
+
+2003-11-19 00:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files, lib/syscall-compat.hc,
+ lib/syscall_rlimit-v11.hc, lib/syscall_rlimit.c, lib/virtual.h,
+ lib/vserver-internal.h, lib/vserver.h, Makefile.am, THANKS,
+ configure.ac, util-vserver.spec.in:
+
+ merged/added from 0.25
+
+2003-11-19 00:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore, src/Makefile-files, src/showattr.c, src/vutil.cc,
+ src/ext2fs.h, src/setctxlimit.c[DEAD], src/vlimit.c,
+ scripts/vserver-legacy:
+
+ merged/added from 0.25
+
+2003-11-19 00:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * sysv/: rebootmgr.subst, vservers.subst:
+
+ merged in changes from 0.25
+
+2003-11-05 00:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.24.191
+
+2003-11-05 00:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ added '--without dietlibc' option
+
+2003-11-05 00:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4:
+
+ fixed typos ('withval' instead of 'enableval')
+
+2003-11-05 00:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getvservername.c, getvservervdir.c:
+
+ added '#include <unistd.h>' to fix compilation problems with glibc
+
+2003-11-04 14:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.24.190
+
+2003-11-04 14:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * .cvsignore:
+
+ added linuxcaps.h (merged from stable)
+
+2003-11-04 14:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ - separated and completed m4_FILES
+ - added '--show-dead' to cvs2cl params
+ - fix linuxcaps.h (merged from stable)
+
+2003-11-04 14:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvservercfgstyle.c:
+
+ added some additional logic
+
+2003-11-04 14:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/virtual.h:
+
+ do not include the <linux/types.h> kernel-header anymore
+
+2003-11-04 14:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ - getAllVservers: use _tmp instead of tmp to avoid clashes when caller
+ wants to have results in 'tmp', fixed array assignment
+
+2003-11-04 14:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rebootmgr.c:
+
+ fixed typo
+
+2003-11-04 14:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/vserver-info.c:
+
+ added '--help' and '--version'
+
+2003-11-04 02:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ merged from SYSCALL_SWITCH
+
+2003-11-04 02:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_changelog.m4:
+
+ merged from SYSCALL_SWITCH
+
+2003-11-04 02:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/distrib-info, scripts/vserver-copy,
+ scripts/vserver-legacy, scripts/vservers.grabinfo.sh,
+ src/rebootmgr.c, sysv/Makefile-files, sysv/rebootmgr.subst:
+
+ merged in changes from 0.23.96 (/vservers -> $DEFAULT_VSERVERDIR)
+
+2003-11-04 01:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/validate.am:
+
+ updated from vserver-djinni
+
+2003-11-04 01:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver-internal.h:
+
+ ignore lower 8bit on version
+
+2003-11-03 20:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ removed 'vkill' for now
+ call 'install-vserverdir'
+
+2003-11-03 20:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpost:
+
+ create /etc/sysconfig/network
+
+2003-11-03 20:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ - fixed some statements which would fail with 'set -e'
+ - made 'disableInterface' smart so that it calculates parameters
+ automatically
+
+2003-11-03 20:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-setup.functions:
+
+ added support for '--netbcast'
+
+2003-11-03 20:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getvservername.c:
+
+ terminate name with '\0'
+
+2003-10-30 18:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-legacy:
+
+ merged from 0.23.95:
+ - reenabled the copy-all mode; can be disabled by setting the
+ $UTIL_VSERVER_AVOID_COPY environment variable
+ - use '-HS' ulimit switch for newly created vservers
+
+2003-10-30 18:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ - large cleanup; use changed variables from scripts/Makefile
+ - try to keep modes of pathsubstituted files
+ - create own install-rule for vserver-dir; 'make distcheck' does not
+ like /vservers...
+
+2003-10-30 18:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/reducecap.c:
+
+ use QUOTACTL (merged from 0.23.94)
+
+2003-10-30 18:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rebootmgr.c:
+
+ use configured SBINDIR instead of hardcoded /usr/sbin
+
+2003-10-30 18:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chcontext.c:
+
+ added QUOTACTL to 'secure' caps (merged from 0.23.94)
+
+2003-10-30 18:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ create 'setattr' program
+
+2003-10-30 18:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: distrib-info, rootshell, vpstree, vserver-copy,
+ vsysvwrapper, vtop:
+
+ merged in changes from 0.24.94 (s!/usr/sbin!$SBINDIR!)
+
+2003-10-30 18:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.start, vserver.stop:
+
+ use 'set -e' instead of 'set +e'
+
+2003-10-30 18:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ added 'checkComponents()' function
+
+2003-10-30 18:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vps.pathsubst:
+
+ initial check (was: vps)
+
+2003-10-30 18:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vkill[DEAD]:
+
+ removed; is obsoleted by ctx-kill
+
+2003-10-30 18:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added INITRDDIR, LIBDIR and INCLUDEDIR
+
+2003-10-30 18:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ large cleanup
+ removed 'vkill' (obsoleted by ctx-kill)
+ vps is now vps.subst
+
+2003-10-30 18:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/capabilities.c, lib/vserver.h, man/reducecap.8:
+
+ use CAP_QUOTACTL instead of CAP_OPENDEV
+
+2003-10-30 15:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ use ENSC_UV_VROOTDIR to set 'vserverdir'
+ added missing path-substitutions
+
+2003-10-30 15:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ use ENSC_UV_VROOTDIR to set 'vserverdir'
+
+2003-10-30 15:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_uv_vrootdir.m4:
+
+ initial checkin
+
+2003-10-23 22:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/vserver-info.c:
+
+ initial checkin
+
+2003-10-23 22:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/: Makefile-files, .cvsignore:
+
+ added vserver-info
+
+2003-10-23 22:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h:
+
+ define TEMP_FAILURE_RETRY for dietlibc-compilation
+
+2003-10-23 22:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * pathconfig.h.pathsubst:
+
+ define DEFAULT_VSERVERDIR and DEFAULT_VSERVERPKGDIR
+
+2003-10-23 22:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added files for higher-level management
+
+2003-10-23 22:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added functions for vserver-management
+
+2003-10-23 22:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getvservercfgstyle.c, getvservername.c, getvservervdir.c:
+
+ initial checkin
+
+2003-10-23 01:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.start, vserver.stop, vserver.suexec:
+
+ cleanups; go into vserver-dir before *and* after executing scriptlets
+
+2003-10-23 01:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build, vserver-build.functions:
+
+ used $DEFAULT_VSERVERDIR and $DEFAULT_VSERVERPKGDIR instead of the
+ hardcoded '/vservers' values
+
+2003-10-23 00:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ rewrote it
+ added -build subpackage
+
+2003-10-23 00:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ moved ENSC_INITRDDIR, ENSC_RELEASE, ENSC_ENABLE_DIETLIBC and
+ ENSC_KERNEL_HEADERS checks into own m4/* files
+
+2003-10-23 00:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ renamed sysvdir to initrddir
+ use $(RELEASE_CPPFLAGS) (-DNDEBUG)
+ substitute $(vserverdir) and $(vserverpkgdir)
+ create the $(vserverdir) and $(vserverpkgdir) directories
+
+2003-10-23 00:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added sample 'mtab' file
+ create the config-dirs
+
+2003-10-23 00:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpost:
+
+ $2 is no longer $_VSERVER but the 'util-vserver-vars' file
+
+2003-10-23 00:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/rh9/apt/sources.list:
+
+ added some mirrors
+
+2003-10-23 00:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_dietlibc.m4, m4/ensc_initrddir.m4, m4/ensc_kerneldir.m4,
+ m4/ensc_release.m4, distrib/misc/mtab:
+
+ initial checkin
+
+2003-10-23 00:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added DEFAULT_VSERVERDIR and DEFAULT_VSERVERPKGDIR
+
+2003-10-23 00:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.apt-rpm:
+
+ call pre/post scriplets with "$UTIL_VSERVER_VARS" as second param
+ instead of "$_VSERVER"
+
+2003-10-23 00:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions:
+
+ fixed broken quotes
+
+2003-10-22 20:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.functions, vserver.start:
+
+ - reorganized CHCONTEXT_INIT_OPTS/CHCONTEXT_DISCONNECT: dropped the
+ separate CHCONTEXT_DISCONNECT variable completetly and put '--flag
+ fakeinit --disconnect' into CHCONTEXT_INIT_OPTS, which is used by
+ 'vserver ... start' command only
+
+2003-10-22 20:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-umount.c:
+
+ use real 'umount' program to unmount directories
+
+2003-10-22 20:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/exec-ulimit.c:
+
+ added [mMkK] modifies for limits
+
+2003-10-22 20:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.functions:
+
+ added support for copying some default files (resolv.conf, localtime,
+ krb-conf,...)
+
+2003-10-22 20:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver-build, vserver-setup.functions:
+
+ fixed getopt long-option string
+
+2003-10-22 20:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ implemented findAndCopy
+
+2003-10-21 16:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac:
+
+ version 0.23.194
+
+2003-10-21 16:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added scripts to AM_INSTALLCHECK_STD_OPTIONS_EXEMPT
+
+2003-10-21 16:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/exec-ulimit.c:
+
+ implemented '--help' and '--version'
+
+2003-10-21 15:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vbuild.cc:
+
+ removed warning about unused parameters
+
+2003-10-21 15:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/Makefile-files:
+
+ renamed to .cc files to .c
+
+2003-10-21 15:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/: chrootsafe.c, chrootsafe.cc[DEAD], escaperoot.c,
+ escaperoot.cc[DEAD], forkbomb.c, forkbomb.cc[DEAD], testipc.c,
+ testipc.cc[DEAD], testlimit.c, testlimit.cc[DEAD], testopenf.c,
+ testopenf.cc[DEAD]:
+
+ renamed to .cc files to .c and made some little changes to make them
+ compilable with C compilers
+
+2003-10-21 15:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added new m4/*.m4 macros
+ added conditional build of CXX files
+ added support for libtool
+
+2003-10-21 15:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/redhat/initpost:
+
+ initial checkin
+
+2003-10-21 15:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added Fedora Core 0.95
+ removed Red Hat 9.0.93
+ use common redhat/initpost script
+
+2003-10-21 15:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ - use dietlibc compilation only for library-built, but not e.g. when
+ building object for rpm-fake.so. This is very dark magic...
+
+2003-10-21 15:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ removed vunify.old.sh
+
+2003-10-21 15:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ - conditionalized built of C++ programs
+ - added very dark magic to build everything of rpm-fake.so with '-fPIC'
+ flag (when possible); on ia32 this will not work/is not necessarily
+ but x86_64 seems to have problems with current method
+
+2003-10-21 15:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added check for C++ compiler
+ added some CXX flags
+ use ENSC_FPIC_SYSCALL
+
+2003-10-21 15:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/checkversion.c:
+
+ fixed stupid thinko (EAGAIN vs. EINVAL)
+
+2003-10-21 15:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/ensc_cxxcompiler.m4, m4/ensc_fpicsyscall.m4, src/vserver.cc,
+ src/vserver.hh:
+
+ initial checkin
+
+2003-10-21 15:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ made it compilabe with non-C99 compilers and older kernels
+
+2003-10-21 15:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ made it compilabe with non-C99 compilers
+
+2003-10-21 15:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vbuild.cc:
+
+ use 'Vserver' class instead of 'string'
+ !!BROKE LOTS OF THINGS!! this version does not work yet
+
+2003-10-21 15:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vunify.cc:
+
+ use 'Vserver' class instead of 'string'
+ use getopt()
+ reindented large parts
+
+2003-10-21 15:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vutil.cc:
+
+ use 'Vserver' class instead of 'string'
+ fixed format-string error
+
+2003-10-21 15:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: vutil.p, vutil.h:
+
+ use 'Vserver' class instead of 'string'
+
+2003-10-21 15:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/wrappers.h:
+
+ make it compilable with non-C99 compilers
+
+2003-10-21 01:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/configuration.xml:
+
+ documented 'ulimits' directory
+
+2003-10-21 00:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vunify.old.sh[DEAD]:
+
+ as the name ('*old*') is saying already: it is old and obsoleted...
+
+2003-10-21 00:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vserver.start, vserver.stop, vserver.suexec:
+
+ added ulimits support
+
+2003-10-21 00:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added _EXEC_ULIMIT
+
+2003-10-21 00:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/exec-ulimit.c:
+
+ work also, when ulimit-directory does not exist
+
+2003-10-21 00:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added exec-ulimit
+
+2003-10-21 00:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/exec-ulimit.c:
+
+ initial checkin
+
+2003-10-21 00:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added exec-ulimit.c
+
+2003-10-21 00:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/wrappers.h:
+
+ Egetrlimit(),Esetrlimit(): added
+
+2003-10-20 23:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/reducecap.c:
+
+ use capability support from the library as far as possible
+
+2003-10-20 23:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: capchroot.c, chcontext.c:
+
+ use capability support from the library instead of including
+ kernel-headers
+
+2003-10-20 23:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/capabilities.c:
+
+ initial checkin
+
+2003-10-20 23:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added capability support
+
+2003-10-20 23:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added support for '-DNDEBUG' in the library
+ added capability.c
+
+2003-10-20 23:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added support for '-DNDEBUG' in the library
+
+2003-10-20 20:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added PKGSTATEDIR substitution
+
+2003-10-20 20:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build.apt-rpm, scripts/vserver-build.functions,
+ scripts/vserver-build.functions.apt,
+ scripts/vserver-build.functions.rpm,
+ scripts/vserver-setup.functions, doc/cfgdirdoc.dtd,
+ doc/configuration.xml:
+
+ initial checkin
+
+2003-10-20 20:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ - removed vserver-init file
+ - added vserver-build* files
+
+2003-10-20 20:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ - added PKGSTATEDIR, RUNDIR, LIB_VSERVER_SETUP_FUNCTIONS,
+ LIB_VSERVER_BUILD_FUNCTIONS* and _VSERVER variables
+ - added WORKAROUND_APT_DBPATH variable
+
+2003-10-20 20:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-build:
+
+ implemented it...
+
+2003-10-20 20:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ added '--sync' and '--verbose' options
+ sync the 'stop' stage on restart
+ fixed invocation of 'vserver-build'
+
+2003-10-20 20:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vapt-get, vrpm:
+
+ made it more mature by using arrays for the vserver-list
+
+2003-10-20 20:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.functions:
+
+ - moved getFileValue/getFileArray from 'vserver.functions' into 'functions'
+
+2003-10-20 20:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ - moved getFileValue/getFileArray from 'vserver.functions' into 'functions'
+ - implemented '/<path>' style vserver specification
+ - made getAllVservers more mature by using arrays
-2003-12-26 01:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-20 19:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/: getversion-internal.hc, syscall-compat.hc,
- syscall_kill-v11.hc, syscall_rlimit-v11.hc, vserver-internal.h:
- s!sys_vserver!vserver!
+ * scripts/vserver-init[DEAD]:
+
+ moved 'vserver-init' functionality into the more general vserver-build*
+ files
+
+2003-10-18 04:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ gnit'ified
+
+2003-10-18 04:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added pipe-sync
+
+2003-10-18 04:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ gnit'ified
+ added pipe-sync
+
+2003-10-18 04:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chroot-cat.c:
+
+ minor cosmetical changes
+
+2003-10-18 04:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/chroot-rm.c:
+
+ use "wrapper.h"
+
+2003-10-18 04:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/wrappers.h:
+
+ Eunlink(): added
+
+2003-10-18 04:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added $_VSERVER_BUILD
+
+2003-10-18 04:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ added help/version
+ added 'build' option
+ made 'running' silently
+
+2003-10-18 04:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/pipe-sync.c, scripts/vserver-build:
+
+ initial checkin
+
+2003-10-18 04:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ - gnit'ified it
-2003-12-23 17:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-18 04:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * configure.ac: fixed '--enable-apis' by
- s!supported_apis!enable_apis!
+ * scripts/Makefile-files:
-2003-12-23 17:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ - gnit'ified it
+ - added vserver-build
- * scripts/vserver: mount /dev/pts with correct options
+2003-10-18 04:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-12-23 17:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * sysv/Makefile-files:
- * lib/syscall-legacy.hc: use syscall(...) on __hppa__ too
+ gnit'ified it
-2003-12-03 01:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-18 03:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * src/.cvsignore: added vkill
+ * lib/checkversion.c:
-2003-12-03 01:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ restored compatibility for case when old syscall interface uses the
+ new syscall-number (merged from SYSCALL_SWITCH branch)
- * Makefile.am: added 'legacydir'
+2003-10-17 23:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-12-03 01:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * configure.ac:
- * lib/getversion.c: vc_get_version(): fixed typo to avoid recursive
- call
+ add '#include "compat.h'" at bottom of config.h
+ version 0.23.191
-2003-12-03 01:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 23:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * src/Makefile-files: added vkill
+ * Makefile.am:
-2003-12-03 01:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ cleaned up pathsubst rule
- * src/vkill.c: initial checkin
+2003-10-17 23:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-12-03 01:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/util-vserver-vars.pathsubst:
- * scripts/Makefile-files: install vkill and vunify.sh into
- LEGACYDIR
+ added _CHROOT_CAT
-2003-12-03 01:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 23:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * scripts/: vunify.old.sh[DEAD], vunify.sh: renamved vunify.old.sh
- to vunify.sh
+ * scripts/vserver-init:
-2003-11-29 00:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ create link to reverse ctx->vserver mapping
- * scripts/vps.subst: fixed behavior with multiple args (from Debian
- patch)
+2003-10-17 23:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-29 00:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/vserver.functions:
- * lib/: Makefile-files, syscall_kill-v11.hc, syscall_kill.c: added
- syscall_kill*
+ - removed '#! /bin/bash' header
+ - added separate CHCONTEXT_DISCONNECT option
+ - use default runlevels only when sysv init-style is used
+ - create/empty mtab file before mounting the vserver
-2003-11-29 00:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 23:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/virtual.h: updated
+ * scripts/vserver.start:
-2003-11-29 00:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ - removed '#! /bin/bash' header
+ - added separate CHCONTEXT_DISCONNECT option
- * lib/syscall.c: removed chrootsafe() code
+2003-10-17 23:03 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-29 00:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/vserver.stop:
- * lib/syscall-legacy.hc: removed old, unused code removed
- chrootsafe() code made it compilable with '-fPIC'
+ - removed '#! /bin/bash' header
+ - disable interfaces when vserver is not running
-2003-11-29 00:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 23:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/: syscall-compat.hc, getversion-internal.hc:
- s!sys_virtual_context!sys_vserver!
+ * scripts/vserver.suexec:
-2003-11-29 00:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ removed '#! /bin/bash' header
- * lib/syscall_rlimit-v11.hc: s!sys_virtual_context!sys_vserver!
+2003-10-17 23:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-29 00:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/.cvsignore:
- * lib/vserver-internal.h: s!sys_virtual_context!sys_vserver! made
- it compilable with '-fPIC'
+ added chroot-cat
-2003-11-29 00:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 23:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/vserver.h: removed vc_chrootsafe(); such an implementation
- seems to be impossible... updated vc_new_s_context documentation
- added vc_ctx_kill() prototype + doc
+ * sysv/vservers.subst:
-2003-11-29 00:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ stop vservers only, when they do not have the ONSTOP flag
- * tests/: Makefile-files, chrootsafe.cc[DEAD]: removed
- chrootsafe.cc; such an implementation seems to be impossible...
+2003-10-17 23:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-29 00:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * sysv/Makefile-files:
- * src/capchroot.c: use chroot() instead of vc_chrootsafe()
+ removed some noise from the substrule
-2003-11-22 03:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 22:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * NEWS, README, configure.ac: version 0.26
+ * src/Makefile-files:
-2003-11-22 03:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added chroot-cat
- * .cvsignore: updated
+2003-10-17 22:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-21 17:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/chroot-cat.c:
- * src/ifspec.c: fixed uninitialized variables when ioctl() on the
- given interfaces fails (thanks to Herbert Poetzl)
+ initial checkin
-2003-11-21 04:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 22:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * configure.ac: version 0.25.90
+ * src/wrappers.h:
-2003-11-21 04:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ Ereadlink(), Esymlink(): added
- * .cvsignore: updated
+2003-10-17 22:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-20 01:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/wrappers-vserver.h:
- * Makefile.am: - use internal lib/virtual.h on default (controlled
- by '--disable-internal-headers' option)
+ - added Evc_X_getctx() wrapper
-2003-11-20 01:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 22:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * configure.ac: - added '--disable-internal-headers' option
+ * src/secure-mount.c:
-2003-11-19 01:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ - removed '#include <compat.h>'; it's now in global <config.h>
+ - fixed problems with dietlibc's strtok_r() implementation
+ - do not set '-o <...>' mount-flag when 'defaults' is the only flag
- * lib/syscall_rlimit-v11.hc: vc_get_rlimit_mask_v11: fill
- calculated values into *lim
+2003-10-17 22:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-18 23:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/save_ctxinfo.c:
- * NEWS, configure.ac: version 0.25
+ - removed '#include <compat.h>'; it's now in global <config.h>
+ - use "wrappers.h" functions
+ - implemented reverse-symlink file
-2003-11-18 23:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 22:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * util-vserver.spec.in: added 'BuildRequires: e2fsprogs-devel'
+ * lib/: getctx.c, getinitpid.c, getprocentry-legacy.c:
-2003-11-18 23:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ - moved pid==0 handling into getprocentry-legacy.c and access /proc/self
+ instead of /proc/<self-pid> there; this solves problems when 'fakeinit'
+ flag is used
+ - removed '#include <compat.h>'; it's now in global <config.h>
- * configure.ac: added checks for <ext2fs/ext2fs.h> and
- <linux/ext2_fs.h>
+2003-10-17 02:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-18 23:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/Makefile-files:
- * Makefile.am: remove '__user' which was added in 2.6 headers
+ added vserver-legacy and vserver.suexec
-2003-11-18 23:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 02:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * src/: vutil.cc, showattr.c, ext2fs.h, Makefile-files: use/added
- "ext2fs.h" header to bypass problems of 2.6 kernel headers (no
- __u64 with '--std=c99')
+ * src/ctx-kill.c:
-2003-11-18 23:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ kill init-pid
+ more sanity checks
- * sysv/vservers.subst: small cosmetical change
+2003-10-17 02:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-18 21:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/vserver.stop:
- * lib/vserver-internal.h: - use VC_RANDCTX instead of VC_NOCTX -
- use the conditionalized CTX_USER2KERNEL/CTX_KERNEL2USER
- transformations
+ added support for kill-signal sequence
-2003-11-18 21:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 02:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/vserver.h: - removed C99 comments from copyright header; this
- might be used by plain C89 programs also... - added VC_RANDCTX
- constant - documented VC_* constants
+ * scripts/vserver.functions:
-2003-11-18 21:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added getEnterShell() function
+ added support for kill-signal sequence
- * scripts/vserver: added basic gentoo support (thanks to Allen D.
- Parker II)
+2003-10-17 02:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-18 00:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/vserver:
- * src/: .cvsignore, Makefile-files, ctxlimit.c[DEAD], vlimit.c:
- renamed ctxlimit.* to vlimit.*
+ - added legacy support
+ - added support for suexec,restart,condrestart,exec,chkconfig,enter,running
+ and status
-2003-11-18 00:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-17 02:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * THANKS: added Sam Vilain
+ * scripts/util-vserver-vars.pathsubst:
-2003-11-18 00:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added _CTX_KILL, _FILETIME and _VSERVER_LEGACY
- * configure.ac: version 0.24.90
+2003-10-17 02:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-18 00:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/: vserver-legacy, vserver.suexec:
- * compat.h: made ctx_t and 'uint32_t' to fix kernel<->user
- conflicts (-1 in user becomes 0x0000ffff in kernel which would
- expect 0xffffffff)
+ initial checkin
-2003-11-18 00:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 17:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/vserver.h: added VC_SAMECTX identifier
+ * tests/.cvsignore:
-2003-11-18 00:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added getinitpid
- * lib/vserver-internal.h: added CTX_USER2KERNEL() and
- CTX_KERNEL2USER() macros to transform ctx from user into kernel
- type and vice versa
+2003-10-16 17:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-18 00:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/Makefile-files:
- * lib/: syscall-compat.hc, syscall_rlimit-v11.hc: use
- CTX_USER2KERNEL() macro to transform ctx from user into kernel
- type
+ added int2str.c
-2003-11-17 23:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 17:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * sysv/: rebootmgr.subst, vservers.subst: check existence of
- cfg-file before starting the server
+ * lib/internal.h:
-2003-11-17 22:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added utilvserver_int2str()
- * scripts/vserver: set correct mode/permissions of /var/run/utmp
+2003-10-16 17:08 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-08 00:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/int2str.c, tests/getinitpid.c:
- * lib/: Makefile-files, syscall_rlimit-v11.hc, syscall_rlimit.c:
- added rlimit syscalls
+ initial checkin
-2003-11-07 23:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 17:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * src/: .cvsignore, Makefile-files, ctxlimit.c: added ctxlimit
+ * tests/getctx.c:
-2003-11-07 23:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ removed all traces of <stdio.h>
- * src/setctxlimit.c[DEAD]: removed; obsoleted by ctxlimit tool
+2003-10-16 17:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-07 23:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * tests/Makefile-files:
- * lib/vserver.h: added limit stuff
+ generalized building with dietlibc
+ added getinitpid
-2003-11-07 22:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 16:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/vserver-internal.h, configure.ac: added V11 API
+ * Makefile.am, src/Makefile-files:
-2003-11-07 22:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ generalized building with dietlibc
- * lib/virtual.h: updated; has now the limit-stuff
+2003-10-16 16:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-07 20:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/Makefile-files:
- * man/: vkill.8, setctxlimit.8, vdu.8: initial checkin (provided by
- Sam Vilain)
+ added getinitpid* files
+ added getprocentry* files
+ added utils-legacy.h
-2003-11-04 01:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 16:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * NEWS, configure.ac: version 0.24
+ * lib/: getinitpid-compat.hc, getinitpid-legacy.hc, getinitpid.c,
+ getprocentry-legacy.c, utils-legacy.h:
-2003-11-04 00:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ initial checkin
- * .cvsignore: added linuxcaps.h
+2003-10-16 16:02 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-04 00:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/save_ctxinfo.c, tests/getctx.c:
- * Makefile.am: * enumerated all used m4-files * use/set CVS2CL*
- flags * edit <linux/linuxcaps.h> and remove statements (#include,
- __u32) which may cause errors
+ s!vc_X_getcctx()!vc_X_getctx(0)!
-2003-11-04 00:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 16:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * configure.ac: use ENSC_CHANGELOG
+ * lib/vserver.h:
-2003-11-04 00:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added vc_X_getinitpid() pseudo-syscall
+ removed vc_X_getcctx() since it is obsoleted by vc_X_getctx(0) now
- * m4/: changelog.am, ensc_changelog.m4: merged from HEAD
+2003-10-16 16:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-04 00:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/syscall-legacy.hc:
- * m4/validate.am: updated from vserver-djinni
+ removed all traces of <stdio.h> usage
-2003-11-04 00:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 15:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * src/vutil.cc: fixed format-string error
+ * lib/getctx.c:
-2003-11-03 21:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ cleanups
+ recognize pid==0 as current pid
- * util-vserver.spec.in: use '--enable-linuxconf' conflict with
- future vserver-* versions
+2003-10-16 15:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-11-03 21:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/getctx-legacy.hc:
- * NEWS, configure.ac: conditionalized built of linuxconf-module
- version 0.23.97
+ use new utilvserver_getProcEntry() function
+ recall vc_X_getctx_legacy() automatically when buffersize was too small
-2003-11-03 21:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 04:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/vserver-internal.h: ignore lower 8 bits of API-version
+ * Makefile.am:
-2003-11-03 21:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added substitution for UMOUNT
- * Makefile.am, linuxconf/Makefile-files: conditionalized built of
- linuxconf-module
+2003-10-16 04:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-30 16:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/.cvsignore:
- * NEWS: version 0.23.96
+ updated
-2003-10-30 16:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 04:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * configure.ac: set '-Wno-unused-parameter' use ENSC_UV_VROOTDIR
+ * src/secure-mount.c:
-2003-10-30 16:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ small signed/unsigned fixes for pedantic warning setups
+ give '--help' message out on fd 1 instead of 2
- * m4/ensc_uv_vrootdir.m4: backported from HEAD
+2003-10-16 04:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-30 16:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/save_ctxinfo.c:
- * util-vserver.spec.in: create and own /vservers
+ small signed/unsigned fixes for pedantic warning setups
-2003-10-30 16:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 04:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * distrib/: install-mdk8.2, install-post.sh, install-pre.sh,
- install-rh7.2, install-rh7.3, install-rh8.0, install-rh9.0: use
- customizable value for vserver-rootdir instead of hardcoded
- '/vservers' import the global configuration file
- (util-vserver-vars)
+ * src/new-namespace.c:
-2003-10-30 16:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ use "wrappers.h"
+ use STACK_START macro
- * scripts/Makefile-files, scripts/distrib-info,
- scripts/util-vserver-vars.subst, scripts/vrpm, scripts/vserver,
- scripts/vserver-copy, scripts/vservers.grabinfo.sh,
- scripts/vunify.old.sh, src/Makefile-files, src/rebootmgr.c,
- src/vunify.cc, sysv/Makefile-files, sysv/rebootmgr.subst: use
- customizable value for vserver-rootdir instead of hardcoded
- '/vservers'
+2003-10-16 04:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-30 16:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/listdevip.c:
- * tests/: chrootsafe.cc, escaperoot.cc: do not declare unused
- parameters anymore
+ small fixes for pedantic warning-setups
-2003-10-30 15:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 04:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * util-vserver.spec.in: provide/conflict with vserver-admin
+ * src/: ctx-kill.c, compat-pivot_root.h, secure-umount.c,
+ stack-start.h, wrappers-vserver.h, wrappers.h:
-2003-10-30 15:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ initial checkin
- * Makefile.am, m4/ensc_kerneldir.m4: backported ENSC_KERNEL_HEADERS
- macro
+2003-10-16 04:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-30 15:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/Makefile-files:
- * configure.ac: backported CFLAGS/CXXFLAGS settings backported
- ENSC_KERNEL_HEADERS macro
+ added secure-umount + ctx-kill programs
+ added lots of headers
+ generalized dietlibc handling
-2003-10-30 02:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 04:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * NEWS, configure.ac: version 0.23.95
+ * scripts/: vserver, vserver.functions, vserver.start,
+ vserver.stop, functions:
-2003-10-30 02:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ basic 'vserver ... start|stop' function should work now...
- * .cvsignore: added util-vserver.spec
+2003-10-16 04:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-30 02:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/util-vserver-vars.pathsubst:
- * util-vserver.spec.in, vserver.spec.in[DEAD], Makefile.am,
- configure.ac: renamed vserver.spec.in to util-vserver.spec.in
+ added _SECURE_UMOUNT and _UMOUNT
-2003-10-30 02:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 04:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * scripts/vserver: - reenabled the copy-all mode; can be disabled
- by setting the $UTIL_VSERVER_AVOID_COPY environment variable -
- use '-HS' ulimit switch for newly created vservers
+ * scripts/Makefile-files:
-2003-10-30 02:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added vservers.{functions,stop}
- * newvserver.defaults[DEAD], linuxconf/.cvsignore,
- linuxconf/Makefile-files, linuxconf/newvserver.8,
- linuxconf/newvserver.defaults, linuxconf/newvserver.subst,
- man/newvserver.8[DEAD], man/Makefile-files, Makefile.am,
- vserver.spec.in: revived linuxconf-files, but moved them into an
- own directory
+2003-10-16 04:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-30 01:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/vserver.h:
- * scripts/.cvsignore: added auto-generated perl-scripts
+ added lots of S_CTX_INFO_* macros
-2003-10-30 01:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 04:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * scripts/Makefile-files, Makefile.am: reorganized make-file to
- cope with substituted perl-scripts
+ * lib/Makefile-files:
-2003-10-30 01:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added missing 'lib/internal.h'
- * scripts/: vkill[DEAD], vkill.subst, vps[DEAD], vps.subst: made
- '/usr/sbin' path customizable; perl-scripts will be substituted
- now
+2003-10-16 04:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-30 01:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * pathconfig.h.pathsubst:
- * src/Makefile-files: define SBINDIR on rebootmgr.c compilation
- install 'setattr' program
+ added UMOUNT_PROG macro
-2003-10-30 01:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-16 04:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * src/: chcontext.c, reducecap.c: remove CAP_OPENDEV added
- CAP_QUOTACTL
+ * configure.ac:
-2003-10-30 01:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added check for UMOUNT
+ added pedantic warn-flags
+ added template for HAVE_GROWING_STACK check
- * scripts/vpstree, scripts/vrpm, scripts/vserver-copy,
- scripts/vsysvwrapper, scripts/vtop, src/rebootmgr.c: use
- customizable paths for '/usr/sbin'
+2003-10-16 04:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-30 01:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * compat.h:
- * scripts/rootshell: use customizable paths for '/usr/sbin' do not
- log commands into /tmp/log anymore
+ do '#undef inline' for '--std=c99' dietlibc compilations
-2003-10-30 01:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-14 20:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * scripts/distrib-info: made it 'bash' use customizable paths for
- '/usr/sbin'
+ * src/rpm-fake.c:
-2003-10-30 01:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ use vc_init_internal_legacy() to initialize legacy-lib without parsing
+ /proc
- * man/reducecap.8: removed CAP_OPENDEV; added CAP_QUOTACTL
+2003-10-14 20:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-21 19:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/syscall-legacy.hc:
- * configure.ac: version 0.23.93
+ added inofficial vc_init_internal_legacy() function
-2003-10-21 18:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-14 20:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/checkversion.c: fixed stupid thinko (EAGAIN vs. EINVAL)
+ * lib/: getctx-legacy.hc, syscall.c:
-2003-10-18 03:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ include "internal.h"
- * lib/: getctx-legacy.hc, vserver.h: backported vc_X_getcctx()
- changes from HEAD
+2003-10-14 20:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-18 03:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * lib/: internal.h, vserver-internal.h:
- * configure.ac: version 0.23.92
+ moved declarations of general functions from vserver-internal.h into
+ internal.h
-2003-10-18 03:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-10-14 18:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/checkversion.c: restored compatibility for case when old
- syscall interface uses the new syscall-number
+ * lib/: getversion-internal.hc, int2str.c[DEAD], internal.h[DEAD],
+ syscall.c:
+
+ Merged with SYSCALL_SWITCH branch (sswitch_merge tag)
2003-10-14 18:09 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/vserver.h: fixed vc_X_getcctx()
+ * lib/vserver.h:
+
+ fixed vc_X_getcctx()
+
+2003-10-14 17:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files, src/rpm-fake.c, src/save_ctxinfo.c,
+ tests/getctx.c:
+
+ Merged with SYSCALL_SWITCH branch (sswitch_merge tag)
+
+2003-10-14 17:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * .cvsignore, Makefile.am, NEWS, compat.h, configure.ac,
+ util-vserver.spec.in, lib/Makefile-files, lib/checkversion.c,
+ lib/getctx-compat.hc, lib/getctx-legacy.hc, lib/getctx.c,
+ lib/getversion-internal.hc, lib/getversion.c,
+ lib/safechroot-internal.hc, lib/syscall-compat.hc,
+ lib/syscall-legacy.hc, lib/syscall.c, lib/uint2str.c,
+ lib/virtual.h, lib/vserver-internal.h, lib/vserver.h,
+ scripts/.cvsignore, src/Makefile-files, src/capchroot.c,
+ src/chbind.c, src/chcontext.c, src/rebootmgr.c, src/reducecap.c,
+ src/vserver-stat.c, sysv/Makefile-files, tests/chrootsafe.cc:
+
+ Merged with SYSCALL_SWITCH branch (sswitch_merge tag)
+
+2003-10-13 22:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added rcs2log support
+ added checks for MS_MOVE and ctx_t
+ define UTMP_GID as 22 for now
+
+2003-10-13 22:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added $(lib_XHDRS) and compat.h
+ create /var/run/vservers on 'make install'
+ use m4/pkgconfig.am
+
+2003-10-13 21:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/fakerunlevel.c:
+
+ made it secure (go into chroot before accessing file)
+ dietlibc'ized
+ other cleanups
+
+2003-10-13 21:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ - added chroot-rm
+ - compile fakerunlevel with dietlibc
+
+2003-10-13 21:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ made it working...
+
+2003-10-13 21:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-init:
+
+ - removed unused variables
+ - added lockfile-creation
+ - create symlink from /var/lib/rpm to $rpmdb_path (until all apt-versions
+ are having the %_dbpath patch)
+
+2003-10-13 21:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added variables for _CHROOT_RM and _FAKE_RUNLEVEL
+
+2003-10-13 21:51 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ use new secure-mount syntax
+
+2003-10-13 21:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ added statements to install vserver.start
+
+2003-10-13 21:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/pkgconfig.am:
+
+ initial checkin
+
+2003-10-13 21:50 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/changelog.am:
+
+ conditionalize RCS2LOG variant also
+
+2003-10-13 21:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ removed ctx_t typedef; this must be now done by each package
+ inidividually. For util-vserver, the declaration is in compat.h
+ and detection in configure.ac
+
+2003-10-13 21:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/.cvsignore, src/.cvsignore:
+
+ updated
+
+2003-10-13 21:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/util-vserver.pc.subst, src/chroot-rm.c:
+
+ initial checkin
+
+2003-10-13 21:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * compat.h, src/compat.h[DEAD]:
+
+ moved compat.h from src/ to toplevel-dir
+
+2003-10-13 21:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/getctx.c, lib/syscall.c, src/capchroot.c, src/chbind.c,
+ src/chcontext.c, src/reducecap.c, src/save_ctxinfo.c,
+ src/secure-mount.c, src/setctxlimit.c, tests/chrootsafe.cc,
+ tests/getctx.c:
+
+ include "compat.h"
+
+2003-10-13 21:39 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added PGKCONFIG_FILES
+
+2003-10-10 01:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/compat.h:
+
+ initial checkin
+
+2003-10-10 01:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ use absolute default-path for /bin/mount since it is required by
+ execv() in secure-mount
+
+2003-10-10 01:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * pathconfig.h.pathsubst:
+
+ added MOUNT_PROG
+
+2003-10-10 01:06 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/getctx.c:
+
+ added '#include <stdlib.h>'
+
+2003-10-10 01:05 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/util.h:
+
+ - added *_cast macros
+ - mark writeStr() as __attribute__((__unused__)) to prevent compiler
+ warnings
+ - fixed off-by-one error in WRITE_MSG
+
+2003-10-10 01:04 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ rewrote it completely; it emulates now nearly the usual mount(8)
+ functionality but provides the enhanced '--secure', '--chdir ...',
+ ... options which are needed for vservers
+
+2003-10-09 03:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/cfg.txt:
+
+ added documentation about <interfaces> and basic vserver-variables
+
+2003-10-09 03:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.start:
+
+ initial checkin
+
+2003-10-09 03:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver:
+
+ complete rewrite
+
+2003-10-09 03:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added some standard-tools to the %.pathsubst rules
+
+2003-10-09 03:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added checks for some standard-tools
+
+2003-10-09 03:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/Makefile-files:
+
+ added getctx
+
+2003-10-09 03:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/Makefile-files:
+
+ added save_ctxinfo and mask2prefix
+
+2003-10-09 03:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * tests/.cvsignore:
+
+ added getctx
+
+2003-10-09 03:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/.cvsignore:
+
+ added mask2prefix and save_ctxinfo
+
+2003-10-09 03:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added CVS tags
+
+2003-10-09 03:41 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/mask2prefix.c, src/save_ctxinfo.c, tests/getctx.c:
+
+ initial checkin
+
+2003-10-09 03:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added _CAPCHROOT, _CHBIND, _CHCONTEXT, _MASK2PREFIX, _SAVE_S_CONTEXT,
+ _SAVE_CTXINFO, _VPS and standard-tool macros
+
+2003-10-09 03:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/functions:
+
+ added isVserverRunning function
+
+2003-10-09 03:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/vserver.h:
+
+ added CTX_NOCTX macro
+ added getctx()/getcctx() functions
+ added ctx_t datatype
+
+2003-10-09 03:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/Makefile-files:
+
+ added getctx and int2str + helper headers
+
+2003-10-09 03:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib/: getctx.c, int2str.c, internal.h:
+
+ initial checkin
+
+2003-10-07 00:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/Makefile.am:
+
+ added install-rules for the distributions
+
+2003-10-07 00:37 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/rh9/apt/: rpmpriorities, sources.list:
+
+ initial checkin
+
+2003-10-06 21:49 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in:
+
+ - fixed Source0 URL
+ - added -sysv and -devel subpackages
+ - moved /etc/init.d to %_initrddir
+
+2003-10-06 21:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ - added more pathsubst variables
+ - added $(scripts_DTA)
+
+2003-10-06 21:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/defaults/rpm/macros:
+
+ added notes regarding %_install_langs and added some other "main"-languages
+
+2003-10-06 21:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * doc/cfg.txt:
+
+ added apps/vunify documentation
+
+2003-10-06 21:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-init:
+
+ - added metadata to track if root-/pkgcfgbase-links shall be made
+ relative
+ - added gpg-key import
+ - create dev/pts directory
+
+2003-10-06 21:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vapt-get:
+
+ improved '--help'/'--version' messages
+
+2003-10-06 21:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/util-vserver-vars.pathsubst:
+
+ added PACKAGE_* variables
+ made DISTRIBDIR "$PKGLIBDIR/distributions" (instead of "$PKGLIBDIR")
+ added _VRPM
+ reordered the _* variables alphabetically
+
+2003-10-06 21:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ installed missing files (functions, vapt-get*, vrpm*)
+
+2003-10-02 17:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/secure-mount.c:
+
+ rewrote it completely
+
+2003-10-02 17:35 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ - set default-signal handler for SIGCHLD
+ - minor cosmetical cleanups
+ - use wait4(2) instead of waitpid(2)
+
+2003-10-02 17:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver-init:
+
+ - renamed 'makeInode' to 'makeDevEntry' which is more flexible
+ - added workaround for
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=106057
+ - content of *all* rpm and apt template directories will be copied now
+ - use '-y' flag on 'apt-get' invocation
+
+2003-10-02 17:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vrpm-preload:
+
+ minor cosmetical cleanups
+ added copyright
+
+2003-10-02 17:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vapt-get-worker:
+
+ minor cosmetical cleanups
+ removed debug code
+
+2003-10-02 17:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: vapt-get, vrpm, vrpm-worker:
+
+ minor cosmetical cleanups
+
+2003-10-02 17:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/: functions, util-vserver-vars.pathsubst:
+
+ added workaround for https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=106057
+
+2003-10-01 12:48 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * .cvsignore:
+
+ updated to reflect changes in CVSROOT/cvsignores
+
+2003-10-01 12:44 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * man/Makefile-files:
+
+ removed last traces of newvserver
+
+2003-10-01 12:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * m4/changelog.am, configure.ac:
+
+ added cvs2cl support
+
+2003-10-01 12:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files:
+
+ - changed pathsubst rules so that files will not be updated on every
+ 'make' anymore
+
+2003-10-01 12:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ - added cvs2cl support
+ - changed pathsubst rules so that files will not be updated on every
+ 'make' anymore
+
+2003-10-01 02:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c:
+
+ explicitly cast result of dlsym() to prevent compiler warnings
+
+2003-10-01 02:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/new-namespace.c:
+
+ small fix in error-message
+
+2003-10-01 02:47 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rebootmgr.c:
+
+ fixed small size_t vs. socklen_t type-clash
+
+2003-10-01 02:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am, configure.ac, .cvsignore:
+
+ renamed vserver.spec.in to util-vserver.spec.in
+
+2003-10-01 02:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * newvserver.defaults[DEAD], man/newvserver.8[DEAD]:
+
+ removed since linuxconf support was dropped
+
+2003-10-01 01:52 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * util-vserver.spec.in, vserver.spec.in[DEAD]:
+
+ renamed vserver.spec.in to util-vserver.spec.in and updated it
+
+2003-09-30 22:46 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/: new-namespace.c, secure-mount.c:
+
+ modified showVersion() to show current version instead of an hardcoded
+ value
+
+2003-09-30 22:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * .cvsignore:
+
+ updated
+
+2003-09-30 22:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * Makefile.am:
+
+ added general rule for %.pathsubst files
+ updated file-lists
+
+2003-09-30 22:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * configure.ac:
+
+ added distrib/Makefile
+
+2003-09-30 22:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * pathconfig.h.pathsubst:
-2003-10-14 17:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ initial checkin
- * lib/vserver.h: added some documentation added vc_X_getctx()
- (pseudo-)syscall
+2003-09-30 22:24 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-14 17:21 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/Makefile-files:
- * lib/vserver-internal.h: added macros from syscall.c added an
- 'extern "C" {...}' block moved safechroot code into own file
+ - renamed util-vserver-vars.subst to util-vserver-vars.pathsubst; this
+ makes it easier to use general makefile-rules
+ - removed the old rules for util-vserver-vars
-2003-10-14 17:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-09-30 22:23 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/syscall.c: moved macros into vserver-internal moved version
- code into own files
+ * scripts/: util-vserver-vars.pathsubst,
+ util-vserver-vars.subst[DEAD]:
-2003-10-14 17:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ renamed util-vserver-vars.subst to util-vserver-vars.pathsubst; this
+ makes it easier to use general makefile-rules
- * lib/: syscall-compat.hc, syscall-legacy.hc: include
- "safechroot-internal.hc"
+2003-09-30 22:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-14 17:19 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/: capchroot.c, chbind.c, chcontext.c, fakerunlevel.c,
+ filetime.c, ifspec.c, rebootmgr.c, reducecap.c, setctxlimit.c,
+ showperm.c, vdu.c, vreboot.c, vserver-stat.c:
- * lib/: checkversion.c, getctx-compat.hc, getctx-legacy.hc,
- getctx.c, getversion-internal.hc, getversion.c,
- safechroot-internal.hc, uint2str.c: initial checkin
+ include <config.h>
-2003-10-14 17:18 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-09-30 22:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/Makefile-files: added lots of new files
+ * src/: vbuild.cc, vcheck.cc, vfiles.cc, vunify.cc, vutil.cc:
-2003-10-14 15:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ - renamed 'PACKAGE' class to 'Package' to avoid naming-clashes with
+ the standard autoconf macro
+ - include <config.h>
- * configure.ac: added check for existing sys_virtual_context()
- function renamed '--enable-supported-api' switch to
- '--enable-apis'
+2003-09-30 22:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-14 15:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * src/: vutil.h, vutil.p:
- * lib/vserver-internal.h: added check for existing
- sys_virtual_context() function
+ renamed 'PACKAGE' class to 'Package' to avoid naming-clashes with the
+ standard autoconf macro
-2003-10-14 15:43 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-09-30 21:25 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/syscall.c: added 'vc_get_version(int)' added lots of
- macro-magic to generalize the syscall-wrappers
+ * src/rpm-fake.c:
-2003-10-14 15:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ - removed debug-output
+ - do not fail on umount() errors; CLONE_NEWNS has unexpected/strange
+ behavior in combination with chroot() so that mountpoints within
+ chroots *can* disappear automatically
- * lib/vserver.h: added 'vc_get_version(int)'
+2003-09-30 21:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-14 04:55 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * Makefile.am:
- * configure.ac: version 0.23.91
+ use recursive make for distrib: added it to SUBDIRS and remove old
+ $(distrib_*) variables
-2003-10-14 04:54 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-09-30 20:17 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * vserver.spec.in: merged with VERSION_0_23 branch
+ * distrib/.cvsignore:
-2003-10-14 03:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ initial checkin
- * lib/syscall-compat.hc: made it compilable with non-C99 compilers
+2003-09-30 20:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-14 03:31 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * distrib/: Makefile-files[DEAD], Makefile.am,
+ install-mdk8.2[DEAD], install-post.sh[DEAD],
+ install-pre.sh[DEAD], install-rh7.2[DEAD], install-rh7.3[DEAD],
+ install-rh8.0[DEAD], install-rh9.0[DEAD], mdk8.2-minimum[DEAD],
+ rh7.3-minimum[DEAD], rh8.0-minimum[DEAD], rh9.0-minimum[DEAD],
+ sample.conf[DEAD], sample.sh[DEAD], defaults/devs,
+ defaults/rpm/macros, rh9/pkgs/01, rh9/pkgs/02:
- * sysv/Makefile-files: fixed typo in sed invocation
+ Replaced the install-* and *-minimum files with configuration files
+ for the new vserver-init tool in the scripts directory. To ease the
+ 'install:'-make target, it is necessarily to use recursive make for
+ this directory.
-2003-10-14 03:15 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-09-30 18:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/virtual-inc.h[DEAD]: removed since solved by more general
- 'linuxvirtual.h'
+ * configure.ac:
-2003-10-14 03:14 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added dietlibc support
+ version 0.23.89.1
- * lib/syscall.c: include "linuxvirtual.h" instead of "linux-inc.h"
+2003-09-30 18:00 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-14 03:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * .cvsignore:
- * lib/syscall-legacy.hc: added missing chroot() call
+ added Makefile
-2003-10-14 03:13 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-09-30 17:59 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/Makefile-files: removed virtual-inc.h
+ * scripts/.cvsignore, scripts/functions, scripts/vapt-get,
+ scripts/vapt-get-worker, scripts/vrpm-preload,
+ scripts/vrpm-worker, scripts/vserver-init, src/.cvsignore,
+ src/new-namespace.c, src/rpm-fake.c, src/secure-mount.c,
+ src/util.h, lib/.cvsignore, sysv/.cvsignore, tests/.cvsignore:
-2003-10-14 03:12 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ initial checkin
- * Makefile.am: generalized CLEANFILES variable added
- 'linuxvirtual.h' to BUILT_SOURCES
+2003-09-30 17:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-14 02:45 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * Makefile.am:
- * tests/chrootsafe.cc: use new API
+ updated to new -devel branch
+ added dietlibc support
-2003-10-14 02:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-09-30 17:58 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * src/: capchroot.c, chbind.c, chcontext.c, rebootmgr.c,
- reducecap.c, vserver-stat.c: use new API
+ * src/Makefile-files:
-2003-10-14 02:36 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added secure-mount, new-namespace and rpm-fake.so rules
- * compat.h: merged with HEAD
+2003-09-30 17:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-14 02:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/vrpm:
- * configure.ac: merged MS_MOVE/ctx_t code with HEAD added
- --enable-supported-apis switch
+ replaced with new version
-2003-10-14 02:30 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-09-30 17:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * Makefile.am: added $(lib_XHDRS) and compat.h
+ * scripts/util-vserver-vars.subst:
-2003-10-14 02:28 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ added more variables
- * lib/Makefile-files: added lib_XHDRS with all the new files added
- -D_GNU_SOURCE flag
+2003-09-30 17:56 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-14 02:20 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * scripts/Makefile-files:
- * lib/: syscall-compat.hc, syscall-legacy.hc, virtual-inc.h,
- virtual.h, vserver-internal.h: initial checkin
+ added more substitutions
-2003-10-14 02:07 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+2003-09-30 14:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
- * lib/vserver.h: implemented new API
+ * doc/cfg.txt:
-2003-10-14 01:57 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ initial checkin
- * lib/syscall.c: implemented new API
+2003-09-30 00:01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-2003-10-14 01:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ * doc/intro.txt, lib/Makefile-files, lib/syscall.c, lib/vserver.h,
+ m4/changelog.am, m4/ensc_cflags.m4, m4/gpgsig.am, m4/validate.am,
+ man/Makefile-files, man/chbind.8, man/chcontext.8,
+ man/distrib-info.8, man/newvserver.8, man/rebootmgr.8,
+ man/reducecap.8, man/vps.8, man/vpstree.8, man/vrpm.8,
+ man/vserver-copy.8, man/vserver-stat.8, man/vserver.8,
+ man/vtop.8, scripts/Makefile-files, scripts/distrib-info,
+ scripts/rootshell, scripts/save_s_context,
+ scripts/util-vserver-vars.subst, scripts/vkill, scripts/vprofile,
+ scripts/vps, scripts/vpstree, scripts/vrpm, scripts/vserver,
+ scripts/vserver-copy, scripts/vserverkillall,
+ scripts/vservers.grabinfo.sh, scripts/vsysvwrapper, scripts/vtop,
+ scripts/vunify.old.sh, src/Makefile-files, src/capchroot.c,
+ src/chbind.c, src/chcontext.c, src/fakerunlevel.c,
+ src/filetime.c, src/ifspec.c, src/listdevip.c,
+ src/parserpmdump.c, src/readlink.c, src/rebootmgr.c,
+ src/reducecap.c, src/setctxlimit.c, src/showattr.c,
+ src/showperm.c, src/vbuild.cc, src/vcheck.cc, src/vdu.c,
+ src/vfiles.cc, src/vreboot.c, src/vserver-stat.c, src/vunify.cc,
+ src/vutil.cc, src/vutil.h, src/vutil.p, sysv/Makefile-files,
+ sysv/rebootmgr.subst, sysv/v_gated.subst, sysv/v_httpd.subst,
+ sysv/v_named.subst, sysv/v_portmap.subst, sysv/v_sendmail.subst,
+ sysv/v_smb.subst, sysv/v_sshd.subst, sysv/v_xinetd.subst,
+ sysv/vservers.conf, sysv/vservers.subst, tests/Makefile-files,
+ tests/chrootsafe.cc, tests/escaperoot.cc, tests/forkbomb.cc,
+ tests/testipc.cc, tests/testlimit.cc, tests/testopenf.cc,
+ vserver.spec.in, distrib/Makefile-files, distrib/install-mdk8.2,
+ distrib/install-post.sh, distrib/install-pre.sh,
+ distrib/install-rh7.2, distrib/install-rh7.3,
+ distrib/install-rh8.0, distrib/install-rh9.0,
+ distrib/mdk8.2-minimum, distrib/rh7.3-minimum,
+ distrib/rh8.0-minimum, distrib/rh9.0-minimum,
+ distrib/sample.conf, distrib/sample.sh, doc/FAQ.txt,
+ doc/Makefile-files, doc/changelog.txt, .cvsignore, AUTHORS,
+ Makefile.am, NEWS, README, THANKS, configure.ac,
+ newvserver.defaults:
- * src/Makefile-files: removed set_ctx_limit.c
+ initial checkin
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
-Foundation, Inc.
+Installation Instructions
+*************************
- This file is free documentation; the Free Software Foundation gives
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
- These are generic installation instructions.
+These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
Compilers and Options
=====================
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about. Run `./configure --help' for
+details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
Compiling For Multiple Architectures
====================================
- You can compile the package for more than one kind of computer at the
+You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
Installation Names
==================
- By default, `make install' will install the package's files in
+By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
+option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
+give `configure' the option `--exec-prefix=PREFIX', the package will
+use PREFIX as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
+options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
Optional Features
=================
- Some packages pay attention to `--enable-FEATURE' options to
+Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
Specifying the System Type
==========================
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
Sharing Defaults
================
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
Defining Variables
==================
- Variables not defined in a site shell script can be set in the
+Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
./configure CC=/usr/local2/bin/gcc
-will cause the specified gcc to be used as the C compiler (unless it is
-overridden in the site shell script).
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script). Here is a another example:
+
+ /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
`configure' Invocation
======================
- `configure' recognizes the following options to control how it
-operates.
+`configure' recognizes the following options to control how it operates.
`--help'
`-h'
-## $Id: Makefile.am,v 1.1.4.12 2004/02/09 23:18:59 ensc Exp $
+## $Id: Makefile.am,v 1.70 2005/07/03 17:51:00 ensc Exp $
-# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+# Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
# 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
#
ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = . distrib
-CVS2CL_AMFLAGS = $(CVS2CL_TAG) -U cvsusers.map --show-dead
+CVS2CL_AMFLAGS = $(CVS2CL_TAG) -U cvsusers.map --show-dead -S --no-wrap
CVS2CL_ALLFLAGS := $(CVS2CL_AMFLAGS) $(CVS2CL_FLAGS)
-sysvdir = $(sysconfdir)/init.d
-vservercfgdir = $(sysconfdir)/vservers
+confdir = $(sysconfdir)/vservers
+confdefaultsdir = $(confdir)/.defaults
+sbincfgdir = $(sbindir)
legacydir = $(pkglibdir)/legacy
-include_HEADERS = $(lib_HDRS)
-noinst_HEADERS = $(src_HDRS) $(lib_XHDRS) compat.h
+include_HEADERS =
+noinst_HEADERS = $(ENSC_VECTOR_HDRS) \
+ compat.h compat-c99.h
-lib_LIBRARIES = $(lib_lib_LIBS)
+noinst_LIBRARIES = $(ENSC_VECTOR_LIBS)
+lib_LIBRARIES =
+lib_LTLIBRARIES =
+pkglib_LTLIBRARIES =
-pkglib_SCRIPTS = $(distrib_SCRPTS) $(scripts_SCRPTS) $(src_pkglib_SCRPTS)
-pkglib_DATA = $(distrib_DAT) $(scriptscfg_DATA)
-pkglib_PROGRAMS = $(src_pkglib_PRGS)
+pkglib_SCRIPTS =
+pkglib_DATA = FEATURES.txt
+pkglib_PROGRAMS =
+legacy_SCRIPTS =
+legacy_PROGRAMS =
-legacy_SCRIPTS = $(scripts_LEGSCRPTS)
+sbin_SCRIPTS =
+sbin_PROGRAMS =
+noinst_PROGRAMS =
+noinst_DATA =
-sbin_SCRIPTS = $(scripts_PRGS) $(linuxconf_SCRPTS)
-sbin_PROGRAMS = $(src_sbin_PRGS)
-noinst_PROGRAMS = $(test_PRGS)
+initrd_SCRIPTS =
+sysconf_DATA =
-sysv_SCRIPTS = $(sysv_SCRPTS)
-sysconf_DATA = $(sysv_CFG)
-vservercfg_DATA = $(linuxconf_cfg_DTA)
+DIETPROGS = $(LIBENSCVECTOR_DIET)
-BUILT_SOURCES = linuxcaps.h linuxvirtual.h
+BUILT_SOURCES = pathconfig.h linuxvirtual.h \
+ .fixups
-man_MANS = $(man_DATMAN) $(linuxconf_DATMAN)
+man_MANS =
-m4_FILES = m4/ensc_cflags.m4 m4/ensc_kerneldir.m4 \
- m4/ensc_changelog.m4 m4/ensc_uv_vrootdir.m4
+kernel_HDRS = kernel/context.h \
+ kernel/context_cmd.h \
+ kernel/cvirt.h \
+ kernel/cvirt_cmd.h \
+ kernel/cvirt_def.h \
+ kernel/debug.h \
+ kernel/debug_cmd.h \
+ kernel/dlimit.h \
+ kernel/dlimit_cmd.h \
+ kernel/inode.h \
+ kernel/inode_cmd.h \
+ kernel/legacy.h \
+ kernel/limit.h \
+ kernel/limit_cmd.h \
+ kernel/limit_def.h \
+ kernel/namespace.h \
+ kernel/namespace_cmd.h \
+ kernel/network.h \
+ kernel/network_cmd.h \
+ kernel/sched.h \
+ kernel/sched_cmd.h \
+ kernel/sched_def.h \
+ kernel/signal_cmd.h \
+ kernel/switch.h \
+ kernel/xid.h
-EXTRA_DIST = $(distrib_SCRPTS) $(distrib_DAT) \
- $(sysv_XTRAS) $(sysv_CFG) \
- $(doc_DAT) $(man_DATMAN) $(linuxconf_XTRAS) \
- $(scripts_SCRPTS) $(scripts_XTRAS) \
- $(m4_FILES) \
- util-vserver.spec THANKS
-AM_CPPFLAGS = -I $(top_srcdir)/lib -D VERSION=\"$(VERSION)\" -D PKGLIBDIR=\"$(pkglibdir)\" -D _GNU_SOURCE
-AM_CFLAGS = -Wall -pedantic
+EXTRA_PROGRAMS =
+EXTRA_DIST = pathconfig.h.pathsubst \
+ util-vserver.spec \
+ THANKS REQUIREMENTS \
+ $(kernel_HDRS)
-CLEANFILES = $(sysv_GENSCRPTS) $(scripts_GENSCRPTS) \
- $(linuxconf_GENFILES) $(src_GENFILES) \
- $(BUILT_SOURCES)
+check_PROGRAMS =
+check_SCRIPTS =
+TESTS_DEBUG = no
+TESTS =
+TESTS_ENVIRONMENT = ensc_use_expensive_tests="$(ENSC_USE_EXPENSIVE_TESTS)" \
+ ensc_test_debug="$(TESTS_DEBUG)"
+
+AM_CPPFLAGS = -I $(top_srcdir)/lib -I $(top_srcdir)/ensc_wrappers \
+ -D_GNU_SOURCE -D_REENTRANT $(RELEASE_CPPFLAGS)
+
+CLEANFILES = $(BUILT_SOURCES) \
+ .*.pathsubst.stamp */.*.pathsubst.stamp */*/.*.pathsubst.stamp \
+ pathconfig.h .fixups
+
+DISTCLEANFILES = FEATURES.txt
+
+
+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT =
+
+if USE_DIETLIBC
+DIET_CC := $(DIET) $(DIETFLAGS) $(CC)
+VSERVER_LDFLGS := -static
+else
+VSERVER_LDFLGS :=
+endif
+
+if USE_DIETLIBC_COMPAT
+DIET_COMPAT_LDADDS = -lcompat
+else
+DIET_COMPAT_LDADDS =
+endif
+
+VSERVER_LDADDS = $(LIBVSERVER) $(DIET_COMPAT_LDADDS)
+
+silent.%: FORCE
+ @t=$$(mktemp /tmp/build.XXXXXX) && \
+ $(MAKE) '$*' -s 2>$$t >/dev/null && \
+ ( cat $$t | \
+ grep -v ': In function' | \
+ grep -v 'your code still has assertions enabled' | \
+ grep -v ' is obsoleted' | \
+ grep -v 'warning: #warning'; \
+ rm -f $$t || : )
-linuxcaps.h: ${kernelincludedir}/linux/capability.h Makefile
- @rm -f $@
- echo '#include <stdint.h>' >$@.tmp
- sed -e 's!^#include .*!!g;s!\<__u32\>!uint32_t!g;s!\<__user\>!!g;' $< >>$@.tmp
- @-chmod --reference $< $@.tmp &>/dev/null
- mv -f $@.tmp $@
- @chmod a-w $@
linuxvirtual.h:
if ENSC_ENABLE_INTERNAL_HEADERS
- ln -sf '$(top_srcdir)/lib/virtual.h' '$@'
+ ln -sf '$(top_srcdir)/lib/virtual.h' '$@'
else
- ln -sf '$(kernelincludedir)/linux/virtual.h' '$@' && test -e '$@' || \
- ln -sf '$(top_srcdir)/lib/virtual.h' '$@'
+ ln -sf '$(kernelincludedir)/linux/virtual.h' '$@' && test -e '$@' || \
+ ln -sf '$(top_srcdir)/lib/virtual.h' '$@'
+endif
+
+pathsubst_RULES = s!@'PKGLIBDIR'@!$(pkglibdir)!g; \
+ s!@'LEGACYDIR'@!$(legacydir)!g; \
+ s!@'SBINDIR'@!$(sbindir)!g; \
+ s!@'CONFDIR'@!$(confdir)!g; \
+ s!@'SYSCONFDIR'@!$(sysconfdir)!g; \
+ s!@'PKGSTATEDIR'@!$(pkgstatedir)!g; \
+ s!@'PKGSTATEREVDIR'@!$(pkgstaterevdir)!g; \
+ s!@'VSERVERDIR'@!$(vserverdir)!g; \
+ s!@'VSERVERPKGDIR'@!$(vserverpkgdir)!g; \
+ s!@'VSERVERPKGDIR'@!$(vserverpkgdir)!g; \
+ s!@'VSHELPERSTATEDIR'@!$(vshelperstatedir)!g; \
+ s!@'INITRDDIR'@!$(initrddir)!g; \
+ s!@'LIBDIR'@!$(libdir)!g; \
+ s!@'MANDIR'@!$(mandir)!g; \
+ s!@'INCLUDEDIR'@!$(includedir)!g; \
+ s!@'PACKAGE'@!$(PACKAGE)!g; \
+ s!@'PACKAGE_BUGREPORT'@!$(PACKAGE_BUGREPORT)!g; \
+ s!@'PACKAGE_NAME'@!$(PACKAGE_NAME)!g; \
+ s!@'PACKAGE_STRING'@!$(PACKAGE_STRING)!g; \
+ s!@'PACKAGE_TARNAME'@!$(PACKAGE_TARNAME)!g; \
+ s!@'PACKAGE_VERSION'@!$(PACKAGE_VERSION)!g; \
+ s!@'ENSC_HAVE_C99_COMPILER_TRUE'@!\@ENSC_HAVE_C99_COMPILER_TRUE@ !g; \
+ s!@'ENSC_HAVE_C99_COMPILER_FALSE'@!\@ENSC_HAVE_C99_COMPILER_FALSE@ !g; \
+ s!@'ENSC_HAVE_CXX_COMPILER_TRUE'@!\@ENSC_HAVE_CXX_COMPILER_TRUE@ !g; \
+ s!@'ENSC_HAVE_CXX_COMPILER_FALSE'@!\@ENSC_HAVE_CXX_COMPILER_FALSE@ !g; \
+ $(ENSC_PATHPROG_SED)
+
+pathconfig.h: .pathconfig.h.pathsubst.stamp
+.%.pathsubst.stamp: %.pathsubst Makefile
+ @mkdir -p $$(dirname '$@')
+ @echo "$(SED) -e '...' $*.pathsubst >$*"
+ @$(SED) -e '$(pathsubst_RULES)' '$<' >'$@.tmp'
+ @-chmod --reference='$<' '$@.tmp'
+ @if cmp -s '$@.tmp' '$*'; then \
+ echo "... no changes, reusing old version"; \
+ rm -f '$@.tmp'; \
+ else \
+ rm -f '$*'; mv '$@.tmp' '$*'; \
+ fi
+ @chmod a-w '$*'
+ @touch '$@'
+
+pkgstatedir = $(localstatedir)/run/vservers
+pkgstaterevdir = $(confdefaultsdir)/run.rev
+vserverpkgdir = $(vserverdir)/.pkg
+vshelperstatedir = $(localstatedir)/run/vshelper
+
+fix_SCRPTS = $(addprefix $(pkglibdir)/, $(notdir $(pkglib_SCRIPTS))) \
+ $(addprefix $(legacydir)/, $(notdir $(legacy_SCRIPTS))) \
+ $(addprefix $(sbindir)/, $(notdir $(sbin_SCRIPTS))) \
+ $(addprefix $(initrddir)/, $(notdir $(initrd_SCRIPTS)))
+
+update-doc: doc
+ $(top_srcdir)/update-doc
+
+install-data-hook: install-fix-script-paths install-create-dirs
+
+install-create-dirs:
+ $(mkinstalldirs) -m 755 $(DESTDIR)$(pkgstatedir) $(DESTDIR)$(pkgstatedir).rev $(DESTDIR)$(vshelperstatedir)
+ $(mkinstalldirs) -m 755 $(DESTDIR)$(confdefaultsdir)
+ f=$(DESTDIR)$(confdefaultsdir)/vdirbase; test -e "$$f" || ln -sf '$(vserverdir)' "$$f"
+ f=$(DESTDIR)$(pkgstaterevdir); test -e "$$f" || ln -sf '$(pkgstatedir).rev' "$$f"
+
+install-fix-script-paths:
+ test "/usr/lib/util-vserver" = "$(pkglibdir)" || \
+ for i in $(fix_SCRPTS); do \
+ f="$(DESTDIR)$$i"; \
+ $(SED) -e 's!/usr/lib/util-vserver!$(pkglibdir)!g' "$$f" >"$$f.tmp"; \
+ $(CMP) -s "$$f.tmp" "$$f" || cat "$$f.tmp" >"$$f"; \
+ rm -f "$$f.tmp"; \
+ done
+
+install-distribution: _install-vserverdir _install-vshelperlink
+
+_install-vshelperlink:
+ $(mkinstalldirs) $(DESTDIR)/sbin
+ ln -sf ..$(pkglibdir)/vshelper $(DESTDIR)/sbin/vshelper
+
+_install-vserverdir:
+ $(mkinstalldirs) $(DESTDIR)$(vserverdir) $(DESTDIR)$(vserverpkgdir)
+
+
+.fixups: config.status util-vserver.spec
+ chmod a-w util-vserver.spec
+ touch $@
+
+if USE_DIETLIBC
+$(addsuffix $(EXEEXT), $(DIETPROGS)) \
+$(addsuffix $(OBJEXT), $(DIETPROGS)) \
+ : CC=$(DIET_CC)
+else !USE_DIETLIBC
+nodist_lib_dietlibc_not_enabled_error_a_SOURCES = \
+ lib-dietlibc-not-enabled-error.c
endif
include $(top_srcdir)/lib/Makefile-files
include $(top_srcdir)/src/Makefile-files
-include $(top_srcdir)/distrib/Makefile-files
include $(top_srcdir)/doc/Makefile-files
include $(top_srcdir)/man/Makefile-files
include $(top_srcdir)/scripts/Makefile-files
include $(top_srcdir)/tests/Makefile-files
include $(top_srcdir)/sysv/Makefile-files
-include $(top_srcdir)/linuxconf/Makefile-files
+include $(top_srcdir)/contrib/Makefile-files
+include $(top_srcdir)/ensc_vector/Makefile-files
+include $(top_srcdir)/ensc_wrappers/Makefile-files
+include $(top_srcdir)/ensc_fmt/Makefile-files
+include $(top_srcdir)/lib_internal/Makefile-files
+include $(top_srcdir)/vserver-start/Makefile-files
include $(top_srcdir)/m4/gpgsig.am
include $(top_srcdir)/m4/validate.am
include $(top_srcdir)/m4/changelog.am
+include $(top_srcdir)/m4/pkgconfig.am
+include $(top_srcdir)/m4/libsel.am
+include $(top_srcdir)/m4/install-notify.am
+
+.PHONY: FORCE update-doc
-# Makefile.in generated by automake 1.8.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@SET_MAKE@
-# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+# Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
# 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
-SOURCES = $(lib_libvserver_a_SOURCES) $(src_capchroot_SOURCES) $(src_chbind_SOURCES) $(src_chcontext_SOURCES) $(src_fakerunlevel_SOURCES) $(src_filetime_SOURCES) $(src_ifspec_SOURCES) $(src_listdevip_SOURCES) $(src_parserpmdump_SOURCES) $(src_readlink_SOURCES) $(src_rebootmgr_SOURCES) $(src_reducecap_SOURCES) $(src_showattr_SOURCES) $(src_showperm_SOURCES) $(src_vbuild_SOURCES) $(src_vcheck_SOURCES) $(src_vdu_SOURCES) $(src_vfiles_SOURCES) $(src_vkill_SOURCES) $(src_vlimit_SOURCES) $(src_vreboot_SOURCES) $(src_vserver_stat_SOURCES) $(src_vunify_SOURCES) $(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) $(tests_testipc_SOURCES) $(tests_testlimit_SOURCES) $(tests_testopenf_SOURCES)
+
+SOURCES = $(nodist_lib_dietlibc_not_enabled_error_a_SOURCES) $(nodist_lib_glibc_not_enabled_error_a_SOURCES) $(lib_libvserver_a_SOURCES) $(lib_internal_libinternal_diet_a_SOURCES) $(lib_internal_libinternal_glibc_a_SOURCES) $(libensc_vector_diet_a_SOURCES) $(libensc_vector_glibc_a_SOURCES) $(lib_libvserver_la_SOURCES) $(src_rpm_fake_la_SOURCES) $(ensc_vector_testsuite_test1_SOURCES) $(ensc_vector_testsuite_test2_SOURCES) $(lib_testsuite_cflags_SOURCES) $(lib_testsuite_fmt_SOURCES) $(lib_testsuite_parselimit_SOURCES) $(lib_testsuite_personality_SOURCES) $(lib_internal_testsuite_command_SOURCES) $(lib_internal_testsuite_copy_SOURCES) $(lib_internal_testsuite_filecfg_ml_SOURCES) $(lib_internal_testsuite_sigbus_SOURCES) $(src_capchroot_SOURCES) $(src_chain_echo_SOURCES) $(src_chbind_SOURCES) $(src_chcontext_compat_SOURCES) src/check-unixfile.c $(src_chroot_sh_SOURCES) $(src_chxid_SOURCES) $(src_exec_cd_SOURCES) $(src_exec_ulimit_SOURCES) $(src_fakerunlevel_SOURCES) $(src_filetime_SOURCES) $(src_ifspec_SOURCES) $(src_keep_ctx_alive_SOURCES) $(src_listdevip_SOURCES) $(src_lockfile_SOURCES) $(src_lsxid_SOURCES) $(src_mask2prefix_SOURCES) $(src_parserpmdump_SOURCES) $(src_readlink_SOURCES) $(src_rebootmgr_SOURCES) $(src_reducecap_SOURCES) $(src_rpm_fake_resolver_SOURCES) $(src_save_ctxinfo_SOURCES) $(src_secure_mount_SOURCES) $(src_setattr_SOURCES) $(src_showattr_SOURCES) src/showperm.c src/sigexec.c $(src_testsuite_chbind_test_SOURCES) $(src_testsuite_chcontext_test_SOURCES) $(src_testsuite_rpm_fake_test_SOURCES) $(src_testsuite_vunify_functest_SOURCES) $(src_vattribute_SOURCES) $(src_vcontext_SOURCES) $(src_vcopy_SOURCES) $(src_vdlimit_SOURCES) $(src_vdu_SOURCES) $(src_vhashify_SOURCES) $(src_vkill_SOURCES) $(src_vlimit_SOURCES) $(src_vnamespace_SOURCES) $(src_vps_SOURCES) $(src_vreboot_SOURCES) src/vrsetup.c $(src_vsched_SOURCES) $(src_vserver_info_SOURCES) $(src_vserver_stat_SOURCES) $(src_vshelper_sync_SOURCES) $(src_vuname_SOURCES) $(src_vunify_SOURCES) $(src_vwait_SOURCES) $(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) $(tests_getctx_SOURCES) $(tests_getinitpid_SOURCES) $(tests_testipc_SOURCES) $(tests_testlimit_SOURCES) $(tests_testopenf_SOURCES) $(tests_vserver_info_SOURCES) $(vserver_start_vserver_start_bin_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
-pkglib_PROGRAMS = $(am__EXEEXT_2)
-sbin_PROGRAMS = $(am__EXEEXT_3)
-noinst_PROGRAMS = $(am__EXEEXT_1)
+build_triplet = @build@
+host_triplet = @host@
+pkglib_PROGRAMS = src/capchroot$(EXEEXT) src/chain-echo$(EXEEXT) \
+ src/chcontext-compat$(EXEEXT) src/check-unixfile$(EXEEXT) \
+ src/chroot-sh$(EXEEXT) src/fakerunlevel$(EXEEXT) \
+ src/filetime$(EXEEXT) src/keep-ctx-alive$(EXEEXT) \
+ src/lockfile$(EXEEXT) src/readlink$(EXEEXT) \
+ src/save_ctxinfo$(EXEEXT) src/secure-mount$(EXEEXT) \
+ src/mask2prefix$(EXEEXT) src/exec-ulimit$(EXEEXT) \
+ src/rpm-fake-resolver$(EXEEXT) src/vshelper-sync$(EXEEXT) \
+ src/sigexec$(EXEEXT) $(am__EXEEXT_7) $(am__EXEEXT_8) \
+ $(am__EXEEXT_9) $(am__EXEEXT_10)
+legacy_PROGRAMS = src/ifspec$(EXEEXT) src/listdevip$(EXEEXT) \
+ src/parserpmdump$(EXEEXT) src/rebootmgr$(EXEEXT) \
+ src/showperm$(EXEEXT) src/vreboot$(EXEEXT)
+sbin_PROGRAMS = src/chbind$(EXEEXT) src/exec-cd$(EXEEXT) \
+ src/lsxid$(EXEEXT) src/chxid$(EXEEXT) src/vps$(EXEEXT) \
+ src/showattr$(EXEEXT) src/setattr$(EXEEXT) \
+ src/reducecap$(EXEEXT) src/vdu$(EXEEXT) \
+ src/vattribute$(EXEEXT) src/vcontext$(EXEEXT) \
+ src/vlimit$(EXEEXT) src/vkill$(EXEEXT) src/vnamespace$(EXEEXT) \
+ src/vrsetup$(EXEEXT) src/vsched$(EXEEXT) \
+ src/vserver-stat$(EXEEXT) src/vserver-info$(EXEEXT) \
+ src/vuname$(EXEEXT) src/vwait$(EXEEXT) $(am__EXEEXT_8) \
+ $(am__EXEEXT_11)
+noinst_PROGRAMS = tests/escaperoot$(EXEEXT) tests/forkbomb$(EXEEXT) \
+ tests/testipc$(EXEEXT) tests/testlimit$(EXEEXT) \
+ tests/testopenf$(EXEEXT) $(am__EXEEXT_5)
+EXTRA_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_1)
+check_PROGRAMS = lib/testsuite/cflags$(EXEEXT) \
+ lib/testsuite/personality$(EXEEXT) lib/testsuite/fmt$(EXEEXT) \
+ lib/testsuite/parselimit$(EXEEXT) $(am__EXEEXT_2) \
+ $(am__EXEEXT_3) ensc_vector/testsuite/test1$(EXEEXT) \
+ ensc_vector/testsuite/test2$(EXEEXT) \
+ lib_internal/testsuite/command$(EXEEXT) $(am__EXEEXT_4)
DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/config.h.in $(srcdir)/util-vserver.spec.in \
- $(top_srcdir)/configure $(top_srcdir)/distrib/Makefile-files \
+ $(srcdir)/config.h.in \
+ $(srcdir)/ensc_vector/testsuite/Makefile-files \
+ $(srcdir)/lib/apidoc/Makefile-files \
+ $(srcdir)/lib/testsuite/Makefile-files \
+ $(srcdir)/util-vserver.spec.in $(top_srcdir)/configure \
+ $(top_srcdir)/contrib/Makefile-files \
$(top_srcdir)/doc/Makefile-files \
+ $(top_srcdir)/ensc_fmt/Makefile-files \
+ $(top_srcdir)/ensc_vector/Makefile-files \
+ $(top_srcdir)/ensc_wrappers/Makefile-files \
$(top_srcdir)/lib/Makefile-files \
- $(top_srcdir)/linuxconf/Makefile-files \
+ $(top_srcdir)/lib/apidoc/Doxyfile.in \
+ $(top_srcdir)/lib_internal/Makefile-files \
+ $(top_srcdir)/lib_internal/testsuite/Makefile-files \
$(top_srcdir)/m4/changelog.am $(top_srcdir)/m4/gpgsig.am \
- $(top_srcdir)/m4/validate.am $(top_srcdir)/man/Makefile-files \
+ $(top_srcdir)/m4/install-notify.am $(top_srcdir)/m4/libsel.am \
+ $(top_srcdir)/m4/pkgconfig.am $(top_srcdir)/m4/validate.am \
+ $(top_srcdir)/man/Makefile-files \
$(top_srcdir)/scripts/Makefile-files \
$(top_srcdir)/src/Makefile-files \
+ $(top_srcdir)/src/testsuite/Makefile-files \
$(top_srcdir)/sysv/Makefile-files \
- $(top_srcdir)/tests/Makefile-files AUTHORS COPYING ChangeLog \
- INSTALL NEWS THANKS compile depcomp install-sh missing \
- mkinstalldirs
+ $(top_srcdir)/tests/Makefile-files \
+ $(top_srcdir)/vserver-start/Makefile-files AUTHORS COPYING \
+ ChangeLog INSTALL NEWS THANKS compile config.guess config.sub \
+ depcomp install-sh ltmain.sh missing
+@ENSC_HAVE_C99_COMPILER_TRUE@am__append_1 = lib/syscall_adddlimit-v13.hc \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/syscall_adddlimit.c \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/syscall_getdlimit-v13.hc \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/syscall_getdlimit.c \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/syscall_remdlimit-v13.hc \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/syscall_remdlimit.c \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/syscall_setdlimit-v13.hc \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/syscall_setdlimit.c
+
+@USE_DIETLIBC_TRUE@am__append_2 = $(LIBVSERVER_DIET)
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@am__append_3 = src/vhashify
+@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__append_4 = src/vhashify
+@ENSC_HAVE_C99_COMPILER_TRUE@am__append_5 = src/vdlimit
+@HAVE_XSLTP_TRUE@am__append_6 = $(doc_gen_DOCS)
+@HAVE_XSLTPROC_TRUE@@HAVE_XSLTP_FALSE@am__append_7 = $(doc_gen_DOCS)
+@ENSC_USE_GLIBC_TRUE@am__append_8 = $(LIBENSCVECTOR_GLIBC)
+@ENSC_USE_DIETLIBC_TRUE@am__append_9 = $(LIBENSCVECTOR_DIET)
+@USE_DIETLIBC_TRUE@am__append_10 = $(LIBINTERNAL_DIET)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__append_11 = lib_internal/testsuite/filecfg-ml \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/copy \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus
+
+@ENSC_HAVE_C99_COMPILER_TRUE@am__append_12 = lib_internal/testsuite/filecfg-ml \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/copy-check \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus
+
+@ENSC_HAVE_C99_COMPILER_TRUE@am__append_13 = vserver-start/vserver.start.bin
+@ENSC_HAVE_C99_COMPILER_TRUE@am__append_14 = vserver-start/vserver.start.bin
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ensc_cflags.m4 \
$(top_srcdir)/m4/ensc_changelog.m4 \
+ $(top_srcdir)/m4/ensc_cxxcompiler.m4 \
+ $(top_srcdir)/m4/ensc_dietlibc.m4 \
+ $(top_srcdir)/m4/ensc_dietlibc_compat.m4 \
$(top_srcdir)/m4/ensc_e2fscheck.m4 \
+ $(top_srcdir)/m4/ensc_initrddir.m4 \
$(top_srcdir)/m4/ensc_kerneldir.m4 \
+ $(top_srcdir)/m4/ensc_pathprog.m4 \
+ $(top_srcdir)/m4/ensc_personality.m4 \
+ $(top_srcdir)/m4/ensc_release.m4 \
$(top_srcdir)/m4/ensc_syscall.m4 \
$(top_srcdir)/m4/ensc_syscallnr.m4 \
$(top_srcdir)/m4/ensc_uv_vrootdir.m4 \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = util-vserver.spec
-AR = ar
-ARFLAGS = cru
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(legacydir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(sysvdir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(scriptscfgdir)" "$(DESTDIR)$(sysconfdir)" "$(DESTDIR)$(vservercfgdir)" "$(DESTDIR)$(includedir)"
+CONFIG_CLEAN_FILES = util-vserver.spec lib/apidoc/Doxyfile
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libdir)" \
+ "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(legacydir)" \
+ "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(sbindir)" \
+ "$(DESTDIR)$(initrddir)" "$(DESTDIR)$(legacydir)" \
+ "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(sbindir)" \
+ "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(pkgconfdir)" \
+ "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(sysconfdir)" \
+ "$(DESTDIR)$(includedir)"
libLIBRARIES_INSTALL = $(INSTALL_DATA)
-LIBRARIES = $(lib_LIBRARIES)
+LIBRARIES = $(lib_LIBRARIES) $(noinst_LIBRARIES)
+ARFLAGS = cru
+lib_dietlibc_not_enabled_error_a_AR = $(AR) $(ARFLAGS)
+lib_dietlibc_not_enabled_error_a_LIBADD =
+@ENSC_USE_DIETLIBC_FALSE@nodist_lib_dietlibc_not_enabled_error_a_OBJECTS = lib-dietlibc-not-enabled-error.$(OBJEXT)
+@ENSC_USE_DIETLIBC_TRUE@@USE_DIETLIBC_FALSE@nodist_lib_dietlibc_not_enabled_error_a_OBJECTS = lib-dietlibc-not-enabled-error.$(OBJEXT)
+lib_dietlibc_not_enabled_error_a_OBJECTS = \
+ $(nodist_lib_dietlibc_not_enabled_error_a_OBJECTS)
+lib_glibc_not_enabled_error_a_AR = $(AR) $(ARFLAGS)
+lib_glibc_not_enabled_error_a_LIBADD =
+@ENSC_USE_GLIBC_FALSE@nodist_lib_glibc_not_enabled_error_a_OBJECTS = \
+@ENSC_USE_GLIBC_FALSE@ lib-glibc-not-enabled-error.$(OBJEXT)
+lib_glibc_not_enabled_error_a_OBJECTS = \
+ $(nodist_lib_glibc_not_enabled_error_a_OBJECTS)
lib_libvserver_a_AR = $(AR) $(ARFLAGS)
lib_libvserver_a_LIBADD =
+am__lib_libvserver_a_SOURCES_DIST = lib/syscall.c lib/checkversion.c \
+ lib/isdirectory.c lib/isfile.c lib/islink.c \
+ lib/getnbipv4root.c lib/getversion.c lib/capabilities.c \
+ lib/getfilecontext.c lib/getinsecurebcaps.c lib/getxidtype.c \
+ lib/isdynamicxid.c lib/issupported.c lib/issupportedstring.c \
+ lib/listparser_uint32.c lib/listparser_uint64.c \
+ lib/personalityflag.c lib/personalityflag_list.c \
+ lib/personalitytype.c lib/syscall-syscall.c \
+ lib/val2text-t2v-uint32.c lib/val2text-t2v-uint64.c \
+ lib/val2text-v2t-uint32.c lib/val2text-v2t-uint64.c \
+ lib/parselimit.c lib/getprocentry-legacy.c lib/cflags-compat.c \
+ lib/cflags_list-compat.c lib/createskeleton.c \
+ lib/getvserverbyctx.c lib/getvserverbyctx-compat.hc \
+ lib/getvserverbyctx-v13.hc lib/getvservercfgstyle.c \
+ lib/getvserverappdir.c lib/getvservercfgdir.c \
+ lib/getvserverctx.c lib/getvservername.c lib/getvservervdir.c \
+ lib/xidopt2xid.c lib/syscall_rlimit.c \
+ lib/syscall_rlimit-v11.hc lib/syscall_kill.c \
+ lib/syscall_kill-v11.hc lib/syscall_ctxcreate.c \
+ lib/syscall_ctxcreate-v13.hc lib/syscall_ctxmigrate.c \
+ lib/syscall_ctxmigrate-v13.hc \
+ lib/syscall_cleanupnamespace-v13.hc \
+ lib/syscall_cleanupnamespace.c \
+ lib/syscall_enternamespace-v13.hc lib/syscall_enternamespace.c \
+ lib/syscall_getccaps-v13.hc lib/syscall_getccaps.c \
+ lib/syscall_getcflags-v13.hc lib/syscall_getcflags.c \
+ lib/syscall_getiattr-fscompat.hc lib/syscall_getiattr-v13.hc \
+ lib/syscall_getiattr.c lib/syscall_getncaps-net.hc \
+ lib/syscall_getncaps.c lib/syscall_getnflags-net.hc \
+ lib/syscall_getnflags.c lib/syscall_getnxinfo-net.hc \
+ lib/syscall_getnxinfo.c lib/syscall_gettasknid-net.hc \
+ lib/syscall_gettasknid.c lib/syscall_gettaskxid-oldproc.hc \
+ lib/syscall_gettaskxid-v13.hc lib/syscall_gettaskxid.c \
+ lib/syscall_getvhiname-olduts.hc lib/syscall_getvhiname-v13.hc \
+ lib/syscall_getvhiname.c lib/syscall_getvxinfo-oldproc.hc \
+ lib/syscall_getvxinfo-v13.hc lib/syscall_getvxinfo.c \
+ lib/syscall_netadd-net.hc lib/syscall_netadd.c \
+ lib/syscall_netcreate-net.hc lib/syscall_netcreate.c \
+ lib/syscall_netmigrate-net.hc lib/syscall_netmigrate.c \
+ lib/syscall_netremove-net.hc lib/syscall_netremove.c \
+ lib/syscall_setccaps-v13.hc lib/syscall_setccaps.c \
+ lib/syscall_setcflags-v13.hc lib/syscall_setcflags.c \
+ lib/syscall_setiattr-fscompat.hc lib/syscall_setiattr-v13.hc \
+ lib/syscall_setiattr.c lib/syscall_setnamespace-v13.hc \
+ lib/syscall_setnamespace.c lib/syscall_setncaps-net.hc \
+ lib/syscall_setncaps.c lib/syscall_setnflags-net.hc \
+ lib/syscall_setnflags.c lib/syscall_setsched-v13.hc \
+ lib/syscall_setsched.c lib/syscall_setvhiname-olduts.hc \
+ lib/syscall_setvhiname-v13.hc lib/syscall_setvhiname.c \
+ lib/syscall_waitexit.c lib/syscall_waitexit-v13.hc \
+ lib/bcaps-v13.c lib/bcaps_list-v13.c lib/ccaps-v13.c \
+ lib/ccaps_list-v13.c lib/cflags-v13.c lib/cflags_list-v13.c \
+ lib/ncaps-net.c lib/ncaps_list-net.c lib/nflags-net.c \
+ lib/nflags_list-net.c lib/syscall_adddlimit-v13.hc \
+ lib/syscall_adddlimit.c lib/syscall_getdlimit-v13.hc \
+ lib/syscall_getdlimit.c lib/syscall_remdlimit-v13.hc \
+ lib/syscall_remdlimit.c lib/syscall_setdlimit-v13.hc \
+ lib/syscall_setdlimit.c ensc_fmt/fmt-32.c ensc_fmt/fmt-64.c \
+ ensc_fmt/fmtx-32.c ensc_fmt/fmtx-64.c ensc_fmt/fmt-tai64n.c \
+ ensc_fmt/fmt.h ensc_fmt/fmt.hc ensc_fmt/fmtx.hc \
+ ensc_fmt/fmt-internal.h
am__dirstamp = $(am__leading_dot)dirstamp
-am__objects_1 = lib/lib_libvserver_a-syscall.$(OBJEXT) \
- lib/lib_libvserver_a-syscall_rlimit.$(OBJEXT) \
- lib/lib_libvserver_a-syscall_kill.$(OBJEXT) \
+am__objects_1 = lib/lib_libvserver_a-getprocentry-legacy.$(OBJEXT)
+am__objects_2 = lib/lib_libvserver_a-cflags-compat.$(OBJEXT) \
+ lib/lib_libvserver_a-cflags_list-compat.$(OBJEXT)
+am__objects_3 = lib/lib_libvserver_a-createskeleton.$(OBJEXT) \
+ lib/lib_libvserver_a-getvserverbyctx.$(OBJEXT) \
+ lib/lib_libvserver_a-getvservercfgstyle.$(OBJEXT) \
+ lib/lib_libvserver_a-getvserverappdir.$(OBJEXT) \
+ lib/lib_libvserver_a-getvservercfgdir.$(OBJEXT) \
+ lib/lib_libvserver_a-getvserverctx.$(OBJEXT) \
+ lib/lib_libvserver_a-getvservername.$(OBJEXT) \
+ lib/lib_libvserver_a-getvservervdir.$(OBJEXT) \
+ lib/lib_libvserver_a-xidopt2xid.$(OBJEXT)
+am__objects_4 = lib/lib_libvserver_a-syscall_rlimit.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_kill.$(OBJEXT)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__objects_5 = lib/lib_libvserver_a-syscall_adddlimit.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/lib_libvserver_a-syscall_getdlimit.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/lib_libvserver_a-syscall_remdlimit.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/lib_libvserver_a-syscall_setdlimit.$(OBJEXT)
+am__objects_6 = lib/lib_libvserver_a-syscall_ctxcreate.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_ctxmigrate.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_cleanupnamespace.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_enternamespace.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_getccaps.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_getcflags.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_getiattr.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_getncaps.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_getnflags.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_getnxinfo.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_gettasknid.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_gettaskxid.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_getvhiname.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_getvxinfo.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_netadd.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_netcreate.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_netmigrate.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_netremove.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_setccaps.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_setcflags.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_setiattr.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_setnamespace.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_setncaps.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_setnflags.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_setsched.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_setvhiname.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_waitexit.$(OBJEXT) \
+ lib/lib_libvserver_a-bcaps-v13.$(OBJEXT) \
+ lib/lib_libvserver_a-bcaps_list-v13.$(OBJEXT) \
+ lib/lib_libvserver_a-ccaps-v13.$(OBJEXT) \
+ lib/lib_libvserver_a-ccaps_list-v13.$(OBJEXT) \
+ lib/lib_libvserver_a-cflags-v13.$(OBJEXT) \
+ lib/lib_libvserver_a-cflags_list-v13.$(OBJEXT) \
+ lib/lib_libvserver_a-ncaps-net.$(OBJEXT) \
+ lib/lib_libvserver_a-ncaps_list-net.$(OBJEXT) \
+ lib/lib_libvserver_a-nflags-net.$(OBJEXT) \
+ lib/lib_libvserver_a-nflags_list-net.$(OBJEXT) \
+ $(am__objects_5)
+am__objects_7 = ensc_fmt/lib_libvserver_a-fmt-32.$(OBJEXT) \
+ ensc_fmt/lib_libvserver_a-fmt-64.$(OBJEXT) \
+ ensc_fmt/lib_libvserver_a-fmtx-32.$(OBJEXT) \
+ ensc_fmt/lib_libvserver_a-fmtx-64.$(OBJEXT) \
+ ensc_fmt/lib_libvserver_a-fmt-tai64n.$(OBJEXT)
+am__objects_8 = lib/lib_libvserver_a-syscall.$(OBJEXT) \
lib/lib_libvserver_a-checkversion.$(OBJEXT) \
- lib/lib_libvserver_a-getctx.$(OBJEXT) \
+ lib/lib_libvserver_a-isdirectory.$(OBJEXT) \
+ lib/lib_libvserver_a-isfile.$(OBJEXT) \
+ lib/lib_libvserver_a-islink.$(OBJEXT) \
+ lib/lib_libvserver_a-getnbipv4root.$(OBJEXT) \
lib/lib_libvserver_a-getversion.$(OBJEXT) \
- lib/lib_libvserver_a-uint2str.$(OBJEXT)
-am_lib_libvserver_a_OBJECTS = $(am__objects_1)
+ lib/lib_libvserver_a-capabilities.$(OBJEXT) \
+ lib/lib_libvserver_a-getfilecontext.$(OBJEXT) \
+ lib/lib_libvserver_a-getinsecurebcaps.$(OBJEXT) \
+ lib/lib_libvserver_a-getxidtype.$(OBJEXT) \
+ lib/lib_libvserver_a-isdynamicxid.$(OBJEXT) \
+ lib/lib_libvserver_a-issupported.$(OBJEXT) \
+ lib/lib_libvserver_a-issupportedstring.$(OBJEXT) \
+ lib/lib_libvserver_a-listparser_uint32.$(OBJEXT) \
+ lib/lib_libvserver_a-listparser_uint64.$(OBJEXT) \
+ lib/lib_libvserver_a-personalityflag.$(OBJEXT) \
+ lib/lib_libvserver_a-personalityflag_list.$(OBJEXT) \
+ lib/lib_libvserver_a-personalitytype.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall-syscall.$(OBJEXT) \
+ lib/lib_libvserver_a-val2text-t2v-uint32.$(OBJEXT) \
+ lib/lib_libvserver_a-val2text-t2v-uint64.$(OBJEXT) \
+ lib/lib_libvserver_a-val2text-v2t-uint32.$(OBJEXT) \
+ lib/lib_libvserver_a-val2text-v2t-uint64.$(OBJEXT) \
+ lib/lib_libvserver_a-parselimit.$(OBJEXT) $(am__objects_1) \
+ $(am__objects_2) $(am__objects_3) $(am__objects_4) \
+ $(am__objects_6) $(am__objects_7)
+am_lib_libvserver_a_OBJECTS = $(am__objects_8)
lib_libvserver_a_OBJECTS = $(am_lib_libvserver_a_OBJECTS)
-am__EXEEXT_1 = tests/escaperoot$(EXEEXT) tests/forkbomb$(EXEEXT) \
- tests/testipc$(EXEEXT) tests/testlimit$(EXEEXT) \
- tests/testopenf$(EXEEXT)
-am__EXEEXT_2 = src/capchroot$(EXEEXT) src/fakerunlevel$(EXEEXT) \
- src/filetime$(EXEEXT) src/ifspec$(EXEEXT) \
- src/listdevip$(EXEEXT) src/parserpmdump$(EXEEXT) \
- src/readlink$(EXEEXT) src/showattr$(EXEEXT) \
- src/showperm$(EXEEXT) src/vbuild$(EXEEXT) src/vcheck$(EXEEXT) \
- src/vreboot$(EXEEXT) src/vunify$(EXEEXT)
+lib_internal_libinternal_diet_a_AR = $(AR) $(ARFLAGS)
+lib_internal_libinternal_diet_a_LIBADD =
+am__lib_internal_libinternal_diet_a_SOURCES_DIST = \
+ lib_internal/errinfo-writeerrno.c \
+ lib_internal/jailintotempdir.c \
+ lib_internal/matchlist-appendfiles.c \
+ lib_internal/matchlist-compare.c \
+ lib_internal/matchlist-destroy.c lib_internal/matchlist-init.c \
+ lib_internal/matchlist-initmanually.c \
+ lib_internal/matchlist-initrefserverlist.c \
+ lib_internal/matchlist-printid.c \
+ lib_internal/matchvserverinfo-free.c \
+ lib_internal/pathinfo-append.c lib_internal/pathinfo-test.c \
+ lib_internal/switchtowatchxid.c lib_internal/unify-deunify.c \
+ lib_internal/unify-settime.c lib_internal/unify-unify.c \
+ lib_internal/unify-isiunlinkable.c \
+ lib_internal/util-canonify.c \
+ lib_internal/util-exitlikeprocess.c \
+ lib_internal/util-isnumber.c lib_internal/util-lockfile.c \
+ lib_internal/util-safechdir.c \
+ lib_internal/command-appendparameter.c \
+ lib_internal/command-setparams.c lib_internal/command-exec.c \
+ lib_internal/command-free.c lib_internal/command-init.c \
+ lib_internal/command-reset.c lib_internal/command-wait.c \
+ lib_internal/command.h lib_internal/filecfg.h \
+ lib_internal/filecfg-iteratemultiline.c \
+ lib_internal/filecfg-readentryflag.c \
+ lib_internal/filecfg-readentrystr.c \
+ lib_internal/matchlist-initbyvserver.c \
+ lib_internal/matchvserverinfo-init.c lib_internal/unify-copy.c
+am__objects_9 = lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-command-setparams.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-command-exec.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-command-free.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-command-init.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-command-reset.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-command-wait.$(OBJEXT)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__objects_10 = lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_diet_a-unify-copy.$(OBJEXT)
+am__objects_11 = lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-matchlist-init.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-unify-deunify.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-unify-settime.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-unify-unify.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-util-canonify.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-util-isnumber.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-util-lockfile.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_diet_a-util-safechdir.$(OBJEXT) \
+ $(am__objects_9) $(am__objects_10)
+am_lib_internal_libinternal_diet_a_OBJECTS = $(am__objects_11)
+lib_internal_libinternal_diet_a_OBJECTS = \
+ $(am_lib_internal_libinternal_diet_a_OBJECTS)
+lib_internal_libinternal_glibc_a_AR = $(AR) $(ARFLAGS)
+lib_internal_libinternal_glibc_a_LIBADD =
+am__lib_internal_libinternal_glibc_a_SOURCES_DIST = \
+ lib_internal/errinfo-writeerrno.c \
+ lib_internal/jailintotempdir.c \
+ lib_internal/matchlist-appendfiles.c \
+ lib_internal/matchlist-compare.c \
+ lib_internal/matchlist-destroy.c lib_internal/matchlist-init.c \
+ lib_internal/matchlist-initmanually.c \
+ lib_internal/matchlist-initrefserverlist.c \
+ lib_internal/matchlist-printid.c \
+ lib_internal/matchvserverinfo-free.c \
+ lib_internal/pathinfo-append.c lib_internal/pathinfo-test.c \
+ lib_internal/switchtowatchxid.c lib_internal/unify-deunify.c \
+ lib_internal/unify-settime.c lib_internal/unify-unify.c \
+ lib_internal/unify-isiunlinkable.c \
+ lib_internal/util-canonify.c \
+ lib_internal/util-exitlikeprocess.c \
+ lib_internal/util-isnumber.c lib_internal/util-lockfile.c \
+ lib_internal/util-safechdir.c \
+ lib_internal/command-appendparameter.c \
+ lib_internal/command-setparams.c lib_internal/command-exec.c \
+ lib_internal/command-free.c lib_internal/command-init.c \
+ lib_internal/command-reset.c lib_internal/command-wait.c \
+ lib_internal/command.h lib_internal/filecfg.h \
+ lib_internal/filecfg-iteratemultiline.c \
+ lib_internal/filecfg-readentryflag.c \
+ lib_internal/filecfg-readentrystr.c \
+ lib_internal/matchlist-initbyvserver.c \
+ lib_internal/matchvserverinfo-init.c lib_internal/unify-copy.c
+am__objects_12 = lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-command-setparams.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-command-exec.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-command-free.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-command-init.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-command-reset.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-command-wait.$(OBJEXT)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__objects_13 = lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.$(OBJEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_glibc_a-unify-copy.$(OBJEXT)
+am__objects_14 = lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-unify-settime.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-unify-unify.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-util-canonify.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.$(OBJEXT) \
+ lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.$(OBJEXT) \
+ $(am__objects_12) $(am__objects_13)
+am_lib_internal_libinternal_glibc_a_OBJECTS = $(am__objects_14)
+lib_internal_libinternal_glibc_a_OBJECTS = \
+ $(am_lib_internal_libinternal_glibc_a_OBJECTS)
+libensc_vector_diet_a_AR = $(AR) $(ARFLAGS)
+libensc_vector_diet_a_LIBADD =
+am__objects_15 = \
+ ensc_vector/libensc_vector_diet_a-vector-clear.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-foreach.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-free.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-init.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-insert.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-popback.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-pushback.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-resize.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-search.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-searchselforg.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-sort.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-unique.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-vector-zeroend.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-list-at.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-list-add.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-list-free.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-list-init.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-list-insertinternal.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-list-search.$(OBJEXT) \
+ ensc_vector/libensc_vector_diet_a-list-searchselforg.$(OBJEXT)
+am_libensc_vector_diet_a_OBJECTS = $(am__objects_15)
+libensc_vector_diet_a_OBJECTS = $(am_libensc_vector_diet_a_OBJECTS)
+libensc_vector_glibc_a_AR = $(AR) $(ARFLAGS)
+libensc_vector_glibc_a_LIBADD =
+am__objects_16 = \
+ ensc_vector/libensc_vector_glibc_a-vector-clear.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-foreach.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-free.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-init.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-insert.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-popback.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-pushback.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-resize.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-search.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-searchselforg.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-sort.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-unique.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-vector-zeroend.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-list-at.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-list-add.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-list-free.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-list-init.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-list-insertinternal.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-list-search.$(OBJEXT) \
+ ensc_vector/libensc_vector_glibc_a-list-searchselforg.$(OBJEXT)
+am_libensc_vector_glibc_a_OBJECTS = $(am__objects_16)
+libensc_vector_glibc_a_OBJECTS = $(am_libensc_vector_glibc_a_OBJECTS)
+libLTLIBRARIES_INSTALL = $(INSTALL)
+pkglibLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(lib_LTLIBRARIES) $(pkglib_LTLIBRARIES)
+lib_libvserver_la_LIBADD =
+am__lib_libvserver_la_SOURCES_DIST = lib/syscall.c lib/checkversion.c \
+ lib/isdirectory.c lib/isfile.c lib/islink.c \
+ lib/getnbipv4root.c lib/getversion.c lib/capabilities.c \
+ lib/getfilecontext.c lib/getinsecurebcaps.c lib/getxidtype.c \
+ lib/isdynamicxid.c lib/issupported.c lib/issupportedstring.c \
+ lib/listparser_uint32.c lib/listparser_uint64.c \
+ lib/personalityflag.c lib/personalityflag_list.c \
+ lib/personalitytype.c lib/syscall-syscall.c \
+ lib/val2text-t2v-uint32.c lib/val2text-t2v-uint64.c \
+ lib/val2text-v2t-uint32.c lib/val2text-v2t-uint64.c \
+ lib/parselimit.c lib/getprocentry-legacy.c lib/cflags-compat.c \
+ lib/cflags_list-compat.c lib/createskeleton.c \
+ lib/getvserverbyctx.c lib/getvserverbyctx-compat.hc \
+ lib/getvserverbyctx-v13.hc lib/getvservercfgstyle.c \
+ lib/getvserverappdir.c lib/getvservercfgdir.c \
+ lib/getvserverctx.c lib/getvservername.c lib/getvservervdir.c \
+ lib/xidopt2xid.c lib/syscall_rlimit.c \
+ lib/syscall_rlimit-v11.hc lib/syscall_kill.c \
+ lib/syscall_kill-v11.hc lib/syscall_ctxcreate.c \
+ lib/syscall_ctxcreate-v13.hc lib/syscall_ctxmigrate.c \
+ lib/syscall_ctxmigrate-v13.hc \
+ lib/syscall_cleanupnamespace-v13.hc \
+ lib/syscall_cleanupnamespace.c \
+ lib/syscall_enternamespace-v13.hc lib/syscall_enternamespace.c \
+ lib/syscall_getccaps-v13.hc lib/syscall_getccaps.c \
+ lib/syscall_getcflags-v13.hc lib/syscall_getcflags.c \
+ lib/syscall_getiattr-fscompat.hc lib/syscall_getiattr-v13.hc \
+ lib/syscall_getiattr.c lib/syscall_getncaps-net.hc \
+ lib/syscall_getncaps.c lib/syscall_getnflags-net.hc \
+ lib/syscall_getnflags.c lib/syscall_getnxinfo-net.hc \
+ lib/syscall_getnxinfo.c lib/syscall_gettasknid-net.hc \
+ lib/syscall_gettasknid.c lib/syscall_gettaskxid-oldproc.hc \
+ lib/syscall_gettaskxid-v13.hc lib/syscall_gettaskxid.c \
+ lib/syscall_getvhiname-olduts.hc lib/syscall_getvhiname-v13.hc \
+ lib/syscall_getvhiname.c lib/syscall_getvxinfo-oldproc.hc \
+ lib/syscall_getvxinfo-v13.hc lib/syscall_getvxinfo.c \
+ lib/syscall_netadd-net.hc lib/syscall_netadd.c \
+ lib/syscall_netcreate-net.hc lib/syscall_netcreate.c \
+ lib/syscall_netmigrate-net.hc lib/syscall_netmigrate.c \
+ lib/syscall_netremove-net.hc lib/syscall_netremove.c \
+ lib/syscall_setccaps-v13.hc lib/syscall_setccaps.c \
+ lib/syscall_setcflags-v13.hc lib/syscall_setcflags.c \
+ lib/syscall_setiattr-fscompat.hc lib/syscall_setiattr-v13.hc \
+ lib/syscall_setiattr.c lib/syscall_setnamespace-v13.hc \
+ lib/syscall_setnamespace.c lib/syscall_setncaps-net.hc \
+ lib/syscall_setncaps.c lib/syscall_setnflags-net.hc \
+ lib/syscall_setnflags.c lib/syscall_setsched-v13.hc \
+ lib/syscall_setsched.c lib/syscall_setvhiname-olduts.hc \
+ lib/syscall_setvhiname-v13.hc lib/syscall_setvhiname.c \
+ lib/syscall_waitexit.c lib/syscall_waitexit-v13.hc \
+ lib/bcaps-v13.c lib/bcaps_list-v13.c lib/ccaps-v13.c \
+ lib/ccaps_list-v13.c lib/cflags-v13.c lib/cflags_list-v13.c \
+ lib/ncaps-net.c lib/ncaps_list-net.c lib/nflags-net.c \
+ lib/nflags_list-net.c lib/syscall_adddlimit-v13.hc \
+ lib/syscall_adddlimit.c lib/syscall_getdlimit-v13.hc \
+ lib/syscall_getdlimit.c lib/syscall_remdlimit-v13.hc \
+ lib/syscall_remdlimit.c lib/syscall_setdlimit-v13.hc \
+ lib/syscall_setdlimit.c ensc_fmt/fmt-32.c ensc_fmt/fmt-64.c \
+ ensc_fmt/fmtx-32.c ensc_fmt/fmtx-64.c ensc_fmt/fmt-tai64n.c \
+ ensc_fmt/fmt.h ensc_fmt/fmt.hc ensc_fmt/fmtx.hc \
+ ensc_fmt/fmt-internal.h
+am__objects_17 = lib/lib_libvserver_la-getprocentry-legacy.lo
+am__objects_18 = lib/lib_libvserver_la-cflags-compat.lo \
+ lib/lib_libvserver_la-cflags_list-compat.lo
+am__objects_19 = lib/lib_libvserver_la-createskeleton.lo \
+ lib/lib_libvserver_la-getvserverbyctx.lo \
+ lib/lib_libvserver_la-getvservercfgstyle.lo \
+ lib/lib_libvserver_la-getvserverappdir.lo \
+ lib/lib_libvserver_la-getvservercfgdir.lo \
+ lib/lib_libvserver_la-getvserverctx.lo \
+ lib/lib_libvserver_la-getvservername.lo \
+ lib/lib_libvserver_la-getvservervdir.lo \
+ lib/lib_libvserver_la-xidopt2xid.lo
+am__objects_20 = lib/lib_libvserver_la-syscall_rlimit.lo \
+ lib/lib_libvserver_la-syscall_kill.lo
+@ENSC_HAVE_C99_COMPILER_TRUE@am__objects_21 = lib/lib_libvserver_la-syscall_adddlimit.lo \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/lib_libvserver_la-syscall_getdlimit.lo \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/lib_libvserver_la-syscall_remdlimit.lo \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib/lib_libvserver_la-syscall_setdlimit.lo
+am__objects_22 = lib/lib_libvserver_la-syscall_ctxcreate.lo \
+ lib/lib_libvserver_la-syscall_ctxmigrate.lo \
+ lib/lib_libvserver_la-syscall_cleanupnamespace.lo \
+ lib/lib_libvserver_la-syscall_enternamespace.lo \
+ lib/lib_libvserver_la-syscall_getccaps.lo \
+ lib/lib_libvserver_la-syscall_getcflags.lo \
+ lib/lib_libvserver_la-syscall_getiattr.lo \
+ lib/lib_libvserver_la-syscall_getncaps.lo \
+ lib/lib_libvserver_la-syscall_getnflags.lo \
+ lib/lib_libvserver_la-syscall_getnxinfo.lo \
+ lib/lib_libvserver_la-syscall_gettasknid.lo \
+ lib/lib_libvserver_la-syscall_gettaskxid.lo \
+ lib/lib_libvserver_la-syscall_getvhiname.lo \
+ lib/lib_libvserver_la-syscall_getvxinfo.lo \
+ lib/lib_libvserver_la-syscall_netadd.lo \
+ lib/lib_libvserver_la-syscall_netcreate.lo \
+ lib/lib_libvserver_la-syscall_netmigrate.lo \
+ lib/lib_libvserver_la-syscall_netremove.lo \
+ lib/lib_libvserver_la-syscall_setccaps.lo \
+ lib/lib_libvserver_la-syscall_setcflags.lo \
+ lib/lib_libvserver_la-syscall_setiattr.lo \
+ lib/lib_libvserver_la-syscall_setnamespace.lo \
+ lib/lib_libvserver_la-syscall_setncaps.lo \
+ lib/lib_libvserver_la-syscall_setnflags.lo \
+ lib/lib_libvserver_la-syscall_setsched.lo \
+ lib/lib_libvserver_la-syscall_setvhiname.lo \
+ lib/lib_libvserver_la-syscall_waitexit.lo \
+ lib/lib_libvserver_la-bcaps-v13.lo \
+ lib/lib_libvserver_la-bcaps_list-v13.lo \
+ lib/lib_libvserver_la-ccaps-v13.lo \
+ lib/lib_libvserver_la-ccaps_list-v13.lo \
+ lib/lib_libvserver_la-cflags-v13.lo \
+ lib/lib_libvserver_la-cflags_list-v13.lo \
+ lib/lib_libvserver_la-ncaps-net.lo \
+ lib/lib_libvserver_la-ncaps_list-net.lo \
+ lib/lib_libvserver_la-nflags-net.lo \
+ lib/lib_libvserver_la-nflags_list-net.lo $(am__objects_21)
+am__objects_23 = ensc_fmt/lib_libvserver_la-fmt-32.lo \
+ ensc_fmt/lib_libvserver_la-fmt-64.lo \
+ ensc_fmt/lib_libvserver_la-fmtx-32.lo \
+ ensc_fmt/lib_libvserver_la-fmtx-64.lo \
+ ensc_fmt/lib_libvserver_la-fmt-tai64n.lo
+am__objects_24 = lib/lib_libvserver_la-syscall.lo \
+ lib/lib_libvserver_la-checkversion.lo \
+ lib/lib_libvserver_la-isdirectory.lo \
+ lib/lib_libvserver_la-isfile.lo \
+ lib/lib_libvserver_la-islink.lo \
+ lib/lib_libvserver_la-getnbipv4root.lo \
+ lib/lib_libvserver_la-getversion.lo \
+ lib/lib_libvserver_la-capabilities.lo \
+ lib/lib_libvserver_la-getfilecontext.lo \
+ lib/lib_libvserver_la-getinsecurebcaps.lo \
+ lib/lib_libvserver_la-getxidtype.lo \
+ lib/lib_libvserver_la-isdynamicxid.lo \
+ lib/lib_libvserver_la-issupported.lo \
+ lib/lib_libvserver_la-issupportedstring.lo \
+ lib/lib_libvserver_la-listparser_uint32.lo \
+ lib/lib_libvserver_la-listparser_uint64.lo \
+ lib/lib_libvserver_la-personalityflag.lo \
+ lib/lib_libvserver_la-personalityflag_list.lo \
+ lib/lib_libvserver_la-personalitytype.lo \
+ lib/lib_libvserver_la-syscall-syscall.lo \
+ lib/lib_libvserver_la-val2text-t2v-uint32.lo \
+ lib/lib_libvserver_la-val2text-t2v-uint64.lo \
+ lib/lib_libvserver_la-val2text-v2t-uint32.lo \
+ lib/lib_libvserver_la-val2text-v2t-uint64.lo \
+ lib/lib_libvserver_la-parselimit.lo $(am__objects_17) \
+ $(am__objects_18) $(am__objects_19) $(am__objects_20) \
+ $(am__objects_22) $(am__objects_23)
+am_lib_libvserver_la_OBJECTS = $(am__objects_24)
+lib_libvserver_la_OBJECTS = $(am_lib_libvserver_la_OBJECTS)
+am__DEPENDENCIES_1 = lib/libvserver.la
+src_rpm_fake_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_src_rpm_fake_la_OBJECTS = src/src_rpm_fake_la-rpm-fake.lo
+src_rpm_fake_la_OBJECTS = $(am_src_rpm_fake_la_OBJECTS)
+am__EXEEXT_1 =
+am__EXEEXT_2 = src/testsuite/rpm-fake-test$(EXEEXT)
+am__EXEEXT_3 = src/testsuite/vunify-functest$(EXEEXT) \
+ src/testsuite/chcontext-test$(EXEEXT) \
+ src/testsuite/chbind-test$(EXEEXT)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_4 = lib_internal/testsuite/filecfg-ml$(EXEEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/copy$(EXEEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus$(EXEEXT)
+legacyPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+am__EXEEXT_5 = tests/getctx$(EXEEXT) tests/getinitpid$(EXEEXT) \
+ tests/vserver-info$(EXEEXT)
+am__EXEEXT_6 = src/vunify$(EXEEXT) src/vcopy$(EXEEXT)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_7 = $(am__EXEEXT_6)
+@ENSC_HAVE_CXX_COMPILER_TRUE@am__EXEEXT_8 = $(am__EXEEXT_1)
+@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_9 = src/vhashify$(EXEEXT)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_10 = vserver-start/vserver.start.bin$(EXEEXT)
pkglibPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-am__EXEEXT_3 = src/chbind$(EXEEXT) src/chcontext$(EXEEXT) \
- src/rebootmgr$(EXEEXT) src/reducecap$(EXEEXT) \
- src/vlimit$(EXEEXT) src/vdu$(EXEEXT) src/vfiles$(EXEEXT) \
- src/vkill$(EXEEXT) src/vserver-stat$(EXEEXT)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_11 = src/vdlimit$(EXEEXT)
sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(noinst_PROGRAMS) $(pkglib_PROGRAMS) $(sbin_PROGRAMS)
+PROGRAMS = $(legacy_PROGRAMS) $(noinst_PROGRAMS) $(pkglib_PROGRAMS) \
+ $(sbin_PROGRAMS)
+am_ensc_vector_testsuite_test1_OBJECTS = \
+ ensc_vector/testsuite/test1.$(OBJEXT)
+ensc_vector_testsuite_test1_OBJECTS = \
+ $(am_ensc_vector_testsuite_test1_OBJECTS)
+@ENSC_USE_GLIBC_FALSE@am__DEPENDENCIES_2 = \
+@ENSC_USE_GLIBC_FALSE@ lib-glibc-not-enabled-error.a
+@ENSC_USE_GLIBC_TRUE@am__DEPENDENCIES_2 = libensc_vector-glibc.a
+@ENSC_USE_DIETLIBC_FALSE@am__DEPENDENCIES_3 = \
+@ENSC_USE_DIETLIBC_FALSE@ lib-dietlibc-not-enabled-error.a
+@ENSC_USE_DIETLIBC_TRUE@am__DEPENDENCIES_3 = libensc_vector-diet.a
+@ENSC_USE_DIETLIBC_FALSE@@ENSC_USE_GLIBC_FALSE@am__DEPENDENCIES_4 = lib-nolib-enabled-error.a
+@ENSC_USE_DIETLIBC_FALSE@@ENSC_USE_GLIBC_TRUE@am__DEPENDENCIES_4 = $(am__DEPENDENCIES_2)
+@ENSC_USE_DIETLIBC_TRUE@am__DEPENDENCIES_4 = $(am__DEPENDENCIES_3)
+ensc_vector_testsuite_test1_DEPENDENCIES = $(am__DEPENDENCIES_4)
+am_ensc_vector_testsuite_test2_OBJECTS = \
+ ensc_vector/testsuite/test2.$(OBJEXT)
+ensc_vector_testsuite_test2_OBJECTS = \
+ $(am_ensc_vector_testsuite_test2_OBJECTS)
+ensc_vector_testsuite_test2_DEPENDENCIES = $(am__DEPENDENCIES_4)
+am_lib_testsuite_cflags_OBJECTS = \
+ lib/testsuite/lib_testsuite_cflags-cflags.$(OBJEXT)
+lib_testsuite_cflags_OBJECTS = $(am_lib_testsuite_cflags_OBJECTS)
+@USE_DIETLIBC_FALSE@am__DEPENDENCIES_5 = \
+@USE_DIETLIBC_FALSE@ lib-dietlibc-not-enabled-error.a
+@USE_DIETLIBC_TRUE@am__DEPENDENCIES_5 = lib/libvserver.a
+@USE_DIETLIBC_FALSE@am__DEPENDENCIES_6 = lib/libvserver.la
+@USE_DIETLIBC_TRUE@am__DEPENDENCIES_6 = $(am__DEPENDENCIES_5)
+lib_testsuite_cflags_DEPENDENCIES = $(am__DEPENDENCIES_6)
+am_lib_testsuite_fmt_OBJECTS = \
+ lib/testsuite/lib_testsuite_fmt-fmt.$(OBJEXT)
+lib_testsuite_fmt_OBJECTS = $(am_lib_testsuite_fmt_OBJECTS)
+lib_testsuite_fmt_DEPENDENCIES = $(am__DEPENDENCIES_6)
+am_lib_testsuite_parselimit_OBJECTS = \
+ lib/testsuite/lib_testsuite_parselimit-parselimit.$(OBJEXT)
+lib_testsuite_parselimit_OBJECTS = \
+ $(am_lib_testsuite_parselimit_OBJECTS)
+lib_testsuite_parselimit_DEPENDENCIES = $(am__DEPENDENCIES_6)
+am_lib_testsuite_personality_OBJECTS = \
+ lib/testsuite/lib_testsuite_personality-personality.$(OBJEXT)
+lib_testsuite_personality_OBJECTS = \
+ $(am_lib_testsuite_personality_OBJECTS)
+lib_testsuite_personality_DEPENDENCIES = $(am__DEPENDENCIES_6)
+am_lib_internal_testsuite_command_OBJECTS = \
+ lib_internal/testsuite/command.$(OBJEXT)
+lib_internal_testsuite_command_OBJECTS = \
+ $(am_lib_internal_testsuite_command_OBJECTS)
+am__DEPENDENCIES_7 = lib_internal/libinternal-glibc.a
+lib_internal_testsuite_command_DEPENDENCIES = $(am__DEPENDENCIES_7) \
+ $(am__DEPENDENCIES_2)
+am_lib_internal_testsuite_copy_OBJECTS = \
+ lib_internal/testsuite/copy.$(OBJEXT)
+lib_internal_testsuite_copy_OBJECTS = \
+ $(am_lib_internal_testsuite_copy_OBJECTS)
+lib_internal_testsuite_copy_DEPENDENCIES = $(am__DEPENDENCIES_7)
+am_lib_internal_testsuite_filecfg_ml_OBJECTS = \
+ lib_internal/testsuite/filecfg-ml.$(OBJEXT)
+lib_internal_testsuite_filecfg_ml_OBJECTS = \
+ $(am_lib_internal_testsuite_filecfg_ml_OBJECTS)
+lib_internal_testsuite_filecfg_ml_DEPENDENCIES = \
+ $(am__DEPENDENCIES_7)
+am_lib_internal_testsuite_sigbus_OBJECTS = \
+ lib_internal/testsuite/sigbus.$(OBJEXT)
+lib_internal_testsuite_sigbus_OBJECTS = \
+ $(am_lib_internal_testsuite_sigbus_OBJECTS)
+lib_internal_testsuite_sigbus_LDADD = $(LDADD)
am_src_capchroot_OBJECTS = src/capchroot.$(OBJEXT)
src_capchroot_OBJECTS = $(am_src_capchroot_OBJECTS)
-src_capchroot_DEPENDENCIES = lib/libvserver.a
+am__DEPENDENCIES_8 =
+am__DEPENDENCIES_9 = $(am__DEPENDENCIES_6) $(am__DEPENDENCIES_8)
+src_capchroot_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_src_chain_echo_OBJECTS = src/chain-echo.$(OBJEXT)
+src_chain_echo_OBJECTS = $(am_src_chain_echo_OBJECTS)
+src_chain_echo_LDADD = $(LDADD)
am_src_chbind_OBJECTS = src/chbind.$(OBJEXT)
src_chbind_OBJECTS = $(am_src_chbind_OBJECTS)
-src_chbind_DEPENDENCIES = lib/libvserver.a
-am_src_chcontext_OBJECTS = src/chcontext.$(OBJEXT)
-src_chcontext_OBJECTS = $(am_src_chcontext_OBJECTS)
-src_chcontext_DEPENDENCIES = lib/libvserver.a
+src_chbind_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_src_chcontext_compat_OBJECTS = src/chcontext.$(OBJEXT)
+src_chcontext_compat_OBJECTS = $(am_src_chcontext_compat_OBJECTS)
+@USE_DIETLIBC_FALSE@am__DEPENDENCIES_10 = \
+@USE_DIETLIBC_FALSE@ lib-dietlibc-not-enabled-error.a
+@USE_DIETLIBC_TRUE@am__DEPENDENCIES_10 = \
+@USE_DIETLIBC_TRUE@ lib_internal/libinternal-diet.a
+@USE_DIETLIBC_FALSE@am__DEPENDENCIES_11 = $(am__DEPENDENCIES_7)
+@USE_DIETLIBC_TRUE@am__DEPENDENCIES_11 = $(am__DEPENDENCIES_10)
+src_chcontext_compat_DEPENDENCIES = $(am__DEPENDENCIES_9) \
+ $(am__DEPENDENCIES_11)
+src_check_unixfile_SOURCES = src/check-unixfile.c
+src_check_unixfile_OBJECTS = src/check-unixfile.$(OBJEXT)
+src_check_unixfile_LDADD = $(LDADD)
+am_src_chroot_sh_OBJECTS = src/chroot-sh.$(OBJEXT)
+src_chroot_sh_OBJECTS = $(am_src_chroot_sh_OBJECTS)
+src_chroot_sh_LDADD = $(LDADD)
+am_src_chxid_OBJECTS = src/fstool.$(OBJEXT) src/chxid.$(OBJEXT)
+src_chxid_OBJECTS = $(am_src_chxid_OBJECTS)
+src_chxid_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9)
+am_src_exec_cd_OBJECTS = src/exec-cd.$(OBJEXT)
+src_exec_cd_OBJECTS = $(am_src_exec_cd_OBJECTS)
+src_exec_cd_LDADD = $(LDADD)
+am_src_exec_ulimit_OBJECTS = src/exec-ulimit.$(OBJEXT)
+src_exec_ulimit_OBJECTS = $(am_src_exec_ulimit_OBJECTS)
+src_exec_ulimit_LDADD = $(LDADD)
am_src_fakerunlevel_OBJECTS = src/fakerunlevel.$(OBJEXT)
src_fakerunlevel_OBJECTS = $(am_src_fakerunlevel_OBJECTS)
src_fakerunlevel_LDADD = $(LDADD)
am_src_filetime_OBJECTS = src/filetime.$(OBJEXT)
src_filetime_OBJECTS = $(am_src_filetime_OBJECTS)
-src_filetime_LDADD = $(LDADD)
+src_filetime_DEPENDENCIES = $(am__DEPENDENCIES_9)
am_src_ifspec_OBJECTS = src/ifspec.$(OBJEXT)
src_ifspec_OBJECTS = $(am_src_ifspec_OBJECTS)
src_ifspec_LDADD = $(LDADD)
+am_src_keep_ctx_alive_OBJECTS = src/keep-ctx-alive.$(OBJEXT)
+src_keep_ctx_alive_OBJECTS = $(am_src_keep_ctx_alive_OBJECTS)
+src_keep_ctx_alive_DEPENDENCIES = $(am__DEPENDENCIES_9)
am_src_listdevip_OBJECTS = src/listdevip.$(OBJEXT)
src_listdevip_OBJECTS = $(am_src_listdevip_OBJECTS)
src_listdevip_LDADD = $(LDADD)
+am_src_lockfile_OBJECTS = src/lockfile.$(OBJEXT)
+src_lockfile_OBJECTS = $(am_src_lockfile_OBJECTS)
+src_lockfile_LDADD = $(LDADD)
+am_src_lsxid_OBJECTS = src/fstool.$(OBJEXT) src/lsxid.$(OBJEXT)
+src_lsxid_OBJECTS = $(am_src_lsxid_OBJECTS)
+src_lsxid_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9) \
+ $(am__DEPENDENCIES_4)
+am_src_mask2prefix_OBJECTS = src/mask2prefix.$(OBJEXT)
+src_mask2prefix_OBJECTS = $(am_src_mask2prefix_OBJECTS)
+src_mask2prefix_LDADD = $(LDADD)
am_src_parserpmdump_OBJECTS = src/parserpmdump.$(OBJEXT)
src_parserpmdump_OBJECTS = $(am_src_parserpmdump_OBJECTS)
src_parserpmdump_LDADD = $(LDADD)
am_src_readlink_OBJECTS = src/readlink.$(OBJEXT)
src_readlink_OBJECTS = $(am_src_readlink_OBJECTS)
src_readlink_LDADD = $(LDADD)
-am_src_rebootmgr_OBJECTS = src/src_rebootmgr-rebootmgr.$(OBJEXT)
+am_src_rebootmgr_OBJECTS = src/rebootmgr.$(OBJEXT)
src_rebootmgr_OBJECTS = $(am_src_rebootmgr_OBJECTS)
src_rebootmgr_LDADD = $(LDADD)
am_src_reducecap_OBJECTS = src/reducecap.$(OBJEXT)
src_reducecap_OBJECTS = $(am_src_reducecap_OBJECTS)
-src_reducecap_DEPENDENCIES = lib/libvserver.a
-am_src_showattr_OBJECTS = src/showattr.$(OBJEXT)
+src_reducecap_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_src_rpm_fake_resolver_OBJECTS = src/rpm-fake-resolver.$(OBJEXT)
+src_rpm_fake_resolver_OBJECTS = $(am_src_rpm_fake_resolver_OBJECTS)
+src_rpm_fake_resolver_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_src_save_ctxinfo_OBJECTS = src/save_ctxinfo.$(OBJEXT)
+src_save_ctxinfo_OBJECTS = $(am_src_save_ctxinfo_OBJECTS)
+src_save_ctxinfo_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_src_secure_mount_OBJECTS = src/secure-mount.$(OBJEXT)
+src_secure_mount_OBJECTS = $(am_src_secure_mount_OBJECTS)
+src_secure_mount_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_src_setattr_OBJECTS = src/fstool.$(OBJEXT) src/setattr.$(OBJEXT)
+src_setattr_OBJECTS = $(am_src_setattr_OBJECTS)
+src_setattr_DEPENDENCIES = $(am__DEPENDENCIES_11) \
+ $(am__DEPENDENCIES_9)
+am_src_showattr_OBJECTS = src/fstool.$(OBJEXT) src/showattr.$(OBJEXT)
src_showattr_OBJECTS = $(am_src_showattr_OBJECTS)
-src_showattr_LDADD = $(LDADD)
-am_src_showperm_OBJECTS = src/showperm.$(OBJEXT)
-src_showperm_OBJECTS = $(am_src_showperm_OBJECTS)
+src_showattr_DEPENDENCIES = $(am__DEPENDENCIES_11) \
+ $(am__DEPENDENCIES_9)
+src_showperm_SOURCES = src/showperm.c
+src_showperm_OBJECTS = src/showperm.$(OBJEXT)
src_showperm_LDADD = $(LDADD)
-am_src_vbuild_OBJECTS = src/vbuild.$(OBJEXT) src/vutil.$(OBJEXT)
-src_vbuild_OBJECTS = $(am_src_vbuild_OBJECTS)
-src_vbuild_LDADD = $(LDADD)
-am_src_vcheck_OBJECTS = src/vcheck.$(OBJEXT) src/vutil.$(OBJEXT)
-src_vcheck_OBJECTS = $(am_src_vcheck_OBJECTS)
-src_vcheck_LDADD = $(LDADD)
+src_sigexec_SOURCES = src/sigexec.c
+src_sigexec_OBJECTS = src/sigexec.$(OBJEXT)
+src_sigexec_LDADD = $(LDADD)
+am_src_testsuite_chbind_test_OBJECTS = \
+ src/testsuite/chbind-test.$(OBJEXT)
+src_testsuite_chbind_test_OBJECTS = \
+ $(am_src_testsuite_chbind_test_OBJECTS)
+src_testsuite_chbind_test_DEPENDENCIES = lib/libvserver.la
+am_src_testsuite_chcontext_test_OBJECTS = \
+ src/testsuite/chcontext-test.$(OBJEXT)
+src_testsuite_chcontext_test_OBJECTS = \
+ $(am_src_testsuite_chcontext_test_OBJECTS)
+src_testsuite_chcontext_test_DEPENDENCIES = lib/libvserver.la \
+ $(am__DEPENDENCIES_11)
+am_src_testsuite_rpm_fake_test_OBJECTS = \
+ src/testsuite/rpm-fake-test.$(OBJEXT)
+src_testsuite_rpm_fake_test_OBJECTS = \
+ $(am_src_testsuite_rpm_fake_test_OBJECTS)
+src_testsuite_rpm_fake_test_LDADD = $(LDADD)
+am_src_testsuite_vunify_functest_OBJECTS = src/testsuite/src_testsuite_vunify_functest-vunify-functest.$(OBJEXT)
+src_testsuite_vunify_functest_OBJECTS = \
+ $(am_src_testsuite_vunify_functest_OBJECTS)
+src_testsuite_vunify_functest_DEPENDENCIES = $(am__DEPENDENCIES_11)
+am_src_vattribute_OBJECTS = src/vattribute.$(OBJEXT)
+src_vattribute_OBJECTS = $(am_src_vattribute_OBJECTS)
+src_vattribute_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_src_vcontext_OBJECTS = src/vcontext.$(OBJEXT)
+src_vcontext_OBJECTS = $(am_src_vcontext_OBJECTS)
+src_vcontext_DEPENDENCIES = $(am__DEPENDENCIES_9) \
+ $(am__DEPENDENCIES_11)
+am_src_vcopy_OBJECTS = src/vcopy.$(OBJEXT)
+src_vcopy_OBJECTS = $(am_src_vcopy_OBJECTS)
+src_vcopy_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9)
+am_src_vdlimit_OBJECTS = src/vdlimit.$(OBJEXT)
+src_vdlimit_OBJECTS = $(am_src_vdlimit_OBJECTS)
+src_vdlimit_DEPENDENCIES = $(am__DEPENDENCIES_9)
am_src_vdu_OBJECTS = src/vdu.$(OBJEXT)
src_vdu_OBJECTS = $(am_src_vdu_OBJECTS)
src_vdu_LDADD = $(LDADD)
-am_src_vfiles_OBJECTS = src/vfiles.$(OBJEXT) src/vutil.$(OBJEXT)
-src_vfiles_OBJECTS = $(am_src_vfiles_OBJECTS)
-src_vfiles_LDADD = $(LDADD)
+am_src_vhashify_OBJECTS = src/vhashify.$(OBJEXT)
+src_vhashify_OBJECTS = $(am_src_vhashify_OBJECTS)
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_vhashify_DEPENDENCIES = \
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_7) \
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_2) \
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_1)
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_vhashify_DEPENDENCIES = \
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_11) \
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_4) \
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_9)
am_src_vkill_OBJECTS = src/src_vkill-vkill.$(OBJEXT)
src_vkill_OBJECTS = $(am_src_vkill_OBJECTS)
-src_vkill_DEPENDENCIES = lib/libvserver.a
+src_vkill_DEPENDENCIES = $(am__DEPENDENCIES_9)
am_src_vlimit_OBJECTS = src/vlimit.$(OBJEXT)
src_vlimit_OBJECTS = $(am_src_vlimit_OBJECTS)
-src_vlimit_DEPENDENCIES = lib/libvserver.a
+src_vlimit_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_src_vnamespace_OBJECTS = src/vnamespace.$(OBJEXT)
+src_vnamespace_OBJECTS = $(am_src_vnamespace_OBJECTS)
+src_vnamespace_DEPENDENCIES = $(am__DEPENDENCIES_9) \
+ $(am__DEPENDENCIES_11)
+am_src_vps_OBJECTS = src/vps.$(OBJEXT)
+src_vps_OBJECTS = $(am_src_vps_OBJECTS)
+src_vps_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9)
am_src_vreboot_OBJECTS = src/vreboot.$(OBJEXT)
src_vreboot_OBJECTS = $(am_src_vreboot_OBJECTS)
src_vreboot_LDADD = $(LDADD)
+src_vrsetup_SOURCES = src/vrsetup.c
+src_vrsetup_OBJECTS = src/vrsetup.$(OBJEXT)
+src_vrsetup_LDADD = $(LDADD)
+am_src_vsched_OBJECTS = src/vsched.$(OBJEXT)
+src_vsched_OBJECTS = $(am_src_vsched_OBJECTS)
+src_vsched_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_src_vserver_info_OBJECTS = src/vserver-info.$(OBJEXT)
+src_vserver_info_OBJECTS = $(am_src_vserver_info_OBJECTS)
+src_vserver_info_DEPENDENCIES = $(am__DEPENDENCIES_11) \
+ $(am__DEPENDENCIES_9)
am_src_vserver_stat_OBJECTS = src/vserver-stat.$(OBJEXT)
src_vserver_stat_OBJECTS = $(am_src_vserver_stat_OBJECTS)
-src_vserver_stat_DEPENDENCIES = lib/libvserver.a
-am_src_vunify_OBJECTS = src/src_vunify-vunify.$(OBJEXT) \
- src/src_vunify-vutil.$(OBJEXT)
+src_vserver_stat_DEPENDENCIES = $(am__DEPENDENCIES_11) \
+ $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_4)
+am_src_vshelper_sync_OBJECTS = src/vshelper-sync.$(OBJEXT)
+src_vshelper_sync_OBJECTS = $(am_src_vshelper_sync_OBJECTS)
+src_vshelper_sync_LDADD = $(LDADD)
+am_src_vuname_OBJECTS = src/vuname.$(OBJEXT)
+src_vuname_OBJECTS = $(am_src_vuname_OBJECTS)
+src_vuname_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_src_vunify_OBJECTS = src/vunify.$(OBJEXT)
src_vunify_OBJECTS = $(am_src_vunify_OBJECTS)
-src_vunify_LDADD = $(LDADD)
+src_vunify_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9)
+am_src_vwait_OBJECTS = src/vwait.$(OBJEXT)
+src_vwait_OBJECTS = $(am_src_vwait_OBJECTS)
+src_vwait_DEPENDENCIES = $(am__DEPENDENCIES_9)
am_tests_escaperoot_OBJECTS = tests/escaperoot.$(OBJEXT)
tests_escaperoot_OBJECTS = $(am_tests_escaperoot_OBJECTS)
tests_escaperoot_LDADD = $(LDADD)
am_tests_forkbomb_OBJECTS = tests/forkbomb.$(OBJEXT)
tests_forkbomb_OBJECTS = $(am_tests_forkbomb_OBJECTS)
tests_forkbomb_LDADD = $(LDADD)
+am_tests_getctx_OBJECTS = tests/getctx.$(OBJEXT)
+tests_getctx_OBJECTS = $(am_tests_getctx_OBJECTS)
+tests_getctx_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_tests_getinitpid_OBJECTS = tests/getinitpid.$(OBJEXT)
+tests_getinitpid_OBJECTS = $(am_tests_getinitpid_OBJECTS)
+tests_getinitpid_DEPENDENCIES = $(am__DEPENDENCIES_9)
am_tests_testipc_OBJECTS = tests/testipc.$(OBJEXT)
tests_testipc_OBJECTS = $(am_tests_testipc_OBJECTS)
tests_testipc_LDADD = $(LDADD)
am_tests_testopenf_OBJECTS = tests/testopenf.$(OBJEXT)
tests_testopenf_OBJECTS = $(am_tests_testopenf_OBJECTS)
tests_testopenf_LDADD = $(LDADD)
+am_tests_vserver_info_OBJECTS = tests/vserver-info.$(OBJEXT)
+tests_vserver_info_OBJECTS = $(am_tests_vserver_info_OBJECTS)
+tests_vserver_info_DEPENDENCIES = $(am__DEPENDENCIES_9)
+am_vserver_start_vserver_start_bin_OBJECTS = \
+ vserver-start/main.$(OBJEXT) vserver-start/mount.$(OBJEXT) \
+ vserver-start/defaulttty.$(OBJEXT) \
+ vserver-start/scriptlets.$(OBJEXT) \
+ vserver-start/undo.$(OBJEXT) vserver-start/vshelper.$(OBJEXT) \
+ vserver-start/interface.$(OBJEXT) \
+ vserver-start/interface-add.$(OBJEXT) \
+ vserver-start/interface-read.$(OBJEXT) \
+ vserver-start/interface-remove.$(OBJEXT) \
+ vserver-start/interface-print.$(OBJEXT) \
+ vserver-start/configuration.$(OBJEXT) \
+ vserver-start/configuration-init.$(OBJEXT)
+vserver_start_vserver_start_bin_OBJECTS = \
+ $(am_vserver_start_vserver_start_bin_OBJECTS)
+vserver_start_vserver_start_bin_DEPENDENCIES = $(am__DEPENDENCIES_9) \
+ $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_4)
+initrdSCRIPT_INSTALL = $(INSTALL_SCRIPT)
legacySCRIPT_INSTALL = $(INSTALL_SCRIPT)
pkglibSCRIPT_INSTALL = $(INSTALL_SCRIPT)
sbinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-sysvSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-SCRIPTS = $(legacy_SCRIPTS) $(pkglib_SCRIPTS) $(sbin_SCRIPTS) \
- $(sysv_SCRIPTS)
+SCRIPTS = $(initrd_SCRIPTS) $(legacy_SCRIPTS) $(pkglib_SCRIPTS) \
+ $(sbin_SCRIPTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = \
-@AMDEP_TRUE@ lib/$(DEPDIR)/lib_libvserver_a-checkversion.Po \
-@AMDEP_TRUE@ lib/$(DEPDIR)/lib_libvserver_a-getctx.Po \
-@AMDEP_TRUE@ lib/$(DEPDIR)/lib_libvserver_a-getversion.Po \
-@AMDEP_TRUE@ lib/$(DEPDIR)/lib_libvserver_a-syscall.Po \
-@AMDEP_TRUE@ lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Po \
-@AMDEP_TRUE@ lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Po \
-@AMDEP_TRUE@ lib/$(DEPDIR)/lib_libvserver_a-uint2str.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/capchroot.Po src/$(DEPDIR)/chbind.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/chcontext.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/fakerunlevel.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/filetime.Po src/$(DEPDIR)/ifspec.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/listdevip.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/parserpmdump.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/readlink.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/reducecap.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/showattr.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/showperm.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/src_rebootmgr-rebootmgr.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/src_vkill-vkill.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/src_vunify-vunify.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/src_vunify-vutil.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/vbuild.Po src/$(DEPDIR)/vcheck.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/vdu.Po src/$(DEPDIR)/vfiles.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/vlimit.Po src/$(DEPDIR)/vreboot.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/vserver-stat.Po \
-@AMDEP_TRUE@ src/$(DEPDIR)/vutil.Po \
-@AMDEP_TRUE@ tests/$(DEPDIR)/escaperoot.Po \
-@AMDEP_TRUE@ tests/$(DEPDIR)/forkbomb.Po \
-@AMDEP_TRUE@ tests/$(DEPDIR)/testipc.Po \
-@AMDEP_TRUE@ tests/$(DEPDIR)/testlimit.Po \
-@AMDEP_TRUE@ tests/$(DEPDIR)/testopenf.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
- -o $@
-SOURCES = $(lib_libvserver_a_SOURCES) $(src_capchroot_SOURCES) \
- $(src_chbind_SOURCES) $(src_chcontext_SOURCES) \
- $(src_fakerunlevel_SOURCES) $(src_filetime_SOURCES) \
- $(src_ifspec_SOURCES) $(src_listdevip_SOURCES) \
- $(src_parserpmdump_SOURCES) $(src_readlink_SOURCES) \
- $(src_rebootmgr_SOURCES) $(src_reducecap_SOURCES) \
- $(src_showattr_SOURCES) $(src_showperm_SOURCES) \
- $(src_vbuild_SOURCES) $(src_vcheck_SOURCES) $(src_vdu_SOURCES) \
- $(src_vfiles_SOURCES) $(src_vkill_SOURCES) \
- $(src_vlimit_SOURCES) $(src_vreboot_SOURCES) \
- $(src_vserver_stat_SOURCES) $(src_vunify_SOURCES) \
- $(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) \
- $(tests_testipc_SOURCES) $(tests_testlimit_SOURCES) \
- $(tests_testopenf_SOURCES)
-DIST_SOURCES = $(lib_libvserver_a_SOURCES) $(src_capchroot_SOURCES) \
- $(src_chbind_SOURCES) $(src_chcontext_SOURCES) \
- $(src_fakerunlevel_SOURCES) $(src_filetime_SOURCES) \
- $(src_ifspec_SOURCES) $(src_listdevip_SOURCES) \
- $(src_parserpmdump_SOURCES) $(src_readlink_SOURCES) \
- $(src_rebootmgr_SOURCES) $(src_reducecap_SOURCES) \
- $(src_showattr_SOURCES) $(src_showperm_SOURCES) \
- $(src_vbuild_SOURCES) $(src_vcheck_SOURCES) $(src_vdu_SOURCES) \
- $(src_vfiles_SOURCES) $(src_vkill_SOURCES) \
- $(src_vlimit_SOURCES) $(src_vreboot_SOURCES) \
- $(src_vserver_stat_SOURCES) $(src_vunify_SOURCES) \
- $(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) \
- $(tests_testipc_SOURCES) $(tests_testlimit_SOURCES) \
- $(tests_testopenf_SOURCES)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(nodist_lib_dietlibc_not_enabled_error_a_SOURCES) \
+ $(nodist_lib_glibc_not_enabled_error_a_SOURCES) \
+ $(lib_libvserver_a_SOURCES) \
+ $(lib_internal_libinternal_diet_a_SOURCES) \
+ $(lib_internal_libinternal_glibc_a_SOURCES) \
+ $(libensc_vector_diet_a_SOURCES) \
+ $(libensc_vector_glibc_a_SOURCES) $(lib_libvserver_la_SOURCES) \
+ $(src_rpm_fake_la_SOURCES) \
+ $(ensc_vector_testsuite_test1_SOURCES) \
+ $(ensc_vector_testsuite_test2_SOURCES) \
+ $(lib_testsuite_cflags_SOURCES) $(lib_testsuite_fmt_SOURCES) \
+ $(lib_testsuite_parselimit_SOURCES) \
+ $(lib_testsuite_personality_SOURCES) \
+ $(lib_internal_testsuite_command_SOURCES) \
+ $(lib_internal_testsuite_copy_SOURCES) \
+ $(lib_internal_testsuite_filecfg_ml_SOURCES) \
+ $(lib_internal_testsuite_sigbus_SOURCES) \
+ $(src_capchroot_SOURCES) $(src_chain_echo_SOURCES) \
+ $(src_chbind_SOURCES) $(src_chcontext_compat_SOURCES) \
+ src/check-unixfile.c $(src_chroot_sh_SOURCES) \
+ $(src_chxid_SOURCES) $(src_exec_cd_SOURCES) \
+ $(src_exec_ulimit_SOURCES) $(src_fakerunlevel_SOURCES) \
+ $(src_filetime_SOURCES) $(src_ifspec_SOURCES) \
+ $(src_keep_ctx_alive_SOURCES) $(src_listdevip_SOURCES) \
+ $(src_lockfile_SOURCES) $(src_lsxid_SOURCES) \
+ $(src_mask2prefix_SOURCES) $(src_parserpmdump_SOURCES) \
+ $(src_readlink_SOURCES) $(src_rebootmgr_SOURCES) \
+ $(src_reducecap_SOURCES) $(src_rpm_fake_resolver_SOURCES) \
+ $(src_save_ctxinfo_SOURCES) $(src_secure_mount_SOURCES) \
+ $(src_setattr_SOURCES) $(src_showattr_SOURCES) src/showperm.c \
+ src/sigexec.c $(src_testsuite_chbind_test_SOURCES) \
+ $(src_testsuite_chcontext_test_SOURCES) \
+ $(src_testsuite_rpm_fake_test_SOURCES) \
+ $(src_testsuite_vunify_functest_SOURCES) \
+ $(src_vattribute_SOURCES) $(src_vcontext_SOURCES) \
+ $(src_vcopy_SOURCES) $(src_vdlimit_SOURCES) $(src_vdu_SOURCES) \
+ $(src_vhashify_SOURCES) $(src_vkill_SOURCES) \
+ $(src_vlimit_SOURCES) $(src_vnamespace_SOURCES) \
+ $(src_vps_SOURCES) $(src_vreboot_SOURCES) src/vrsetup.c \
+ $(src_vsched_SOURCES) $(src_vserver_info_SOURCES) \
+ $(src_vserver_stat_SOURCES) $(src_vshelper_sync_SOURCES) \
+ $(src_vuname_SOURCES) $(src_vunify_SOURCES) \
+ $(src_vwait_SOURCES) $(tests_escaperoot_SOURCES) \
+ $(tests_forkbomb_SOURCES) $(tests_getctx_SOURCES) \
+ $(tests_getinitpid_SOURCES) $(tests_testipc_SOURCES) \
+ $(tests_testlimit_SOURCES) $(tests_testopenf_SOURCES) \
+ $(tests_vserver_info_SOURCES) \
+ $(vserver_start_vserver_start_bin_SOURCES)
+DIST_SOURCES = $(am__lib_libvserver_a_SOURCES_DIST) \
+ $(am__lib_internal_libinternal_diet_a_SOURCES_DIST) \
+ $(am__lib_internal_libinternal_glibc_a_SOURCES_DIST) \
+ $(libensc_vector_diet_a_SOURCES) \
+ $(libensc_vector_glibc_a_SOURCES) \
+ $(am__lib_libvserver_la_SOURCES_DIST) \
+ $(src_rpm_fake_la_SOURCES) \
+ $(ensc_vector_testsuite_test1_SOURCES) \
+ $(ensc_vector_testsuite_test2_SOURCES) \
+ $(lib_testsuite_cflags_SOURCES) $(lib_testsuite_fmt_SOURCES) \
+ $(lib_testsuite_parselimit_SOURCES) \
+ $(lib_testsuite_personality_SOURCES) \
+ $(lib_internal_testsuite_command_SOURCES) \
+ $(lib_internal_testsuite_copy_SOURCES) \
+ $(lib_internal_testsuite_filecfg_ml_SOURCES) \
+ $(lib_internal_testsuite_sigbus_SOURCES) \
+ $(src_capchroot_SOURCES) $(src_chain_echo_SOURCES) \
+ $(src_chbind_SOURCES) $(src_chcontext_compat_SOURCES) \
+ src/check-unixfile.c $(src_chroot_sh_SOURCES) \
+ $(src_chxid_SOURCES) $(src_exec_cd_SOURCES) \
+ $(src_exec_ulimit_SOURCES) $(src_fakerunlevel_SOURCES) \
+ $(src_filetime_SOURCES) $(src_ifspec_SOURCES) \
+ $(src_keep_ctx_alive_SOURCES) $(src_listdevip_SOURCES) \
+ $(src_lockfile_SOURCES) $(src_lsxid_SOURCES) \
+ $(src_mask2prefix_SOURCES) $(src_parserpmdump_SOURCES) \
+ $(src_readlink_SOURCES) $(src_rebootmgr_SOURCES) \
+ $(src_reducecap_SOURCES) $(src_rpm_fake_resolver_SOURCES) \
+ $(src_save_ctxinfo_SOURCES) $(src_secure_mount_SOURCES) \
+ $(src_setattr_SOURCES) $(src_showattr_SOURCES) src/showperm.c \
+ src/sigexec.c $(src_testsuite_chbind_test_SOURCES) \
+ $(src_testsuite_chcontext_test_SOURCES) \
+ $(src_testsuite_rpm_fake_test_SOURCES) \
+ $(src_testsuite_vunify_functest_SOURCES) \
+ $(src_vattribute_SOURCES) $(src_vcontext_SOURCES) \
+ $(src_vcopy_SOURCES) $(src_vdlimit_SOURCES) $(src_vdu_SOURCES) \
+ $(src_vhashify_SOURCES) $(src_vkill_SOURCES) \
+ $(src_vlimit_SOURCES) $(src_vnamespace_SOURCES) \
+ $(src_vps_SOURCES) $(src_vreboot_SOURCES) src/vrsetup.c \
+ $(src_vsched_SOURCES) $(src_vserver_info_SOURCES) \
+ $(src_vserver_stat_SOURCES) $(src_vshelper_sync_SOURCES) \
+ $(src_vuname_SOURCES) $(src_vunify_SOURCES) \
+ $(src_vwait_SOURCES) $(tests_escaperoot_SOURCES) \
+ $(tests_forkbomb_SOURCES) $(tests_getctx_SOURCES) \
+ $(tests_getinitpid_SOURCES) $(tests_testipc_SOURCES) \
+ $(tests_testlimit_SOURCES) $(tests_testopenf_SOURCES) \
+ $(tests_vserver_info_SOURCES) \
+ $(vserver_start_vserver_start_bin_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
man8dir = $(mandir)/man8
NROFF = nroff
MANS = $(man_MANS)
+pkgconfDATA_INSTALL = $(INSTALL_DATA)
pkglibDATA_INSTALL = $(INSTALL_DATA)
-scriptscfgDATA_INSTALL = $(INSTALL_DATA)
sysconfDATA_INSTALL = $(INSTALL_DATA)
-vservercfgDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(pkglib_DATA) $(scriptscfg_DATA) $(sysconf_DATA) \
- $(vservercfg_DATA)
+DATA = $(noinst_DATA) $(pkgconf_DATA) $(pkglib_DATA) $(sysconf_DATA)
includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(include_HEADERS) $(noinst_HEADERS)
ETAGS = etags
CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+CAT = @CAT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+CHOWN = @CHOWN@
+CMP = @CMP@
+CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CVS2CL = @CVS2CL@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DIET = @DIET@
+DIETFLAGS = @DIETFLAGS@
+DIRNAME = @DIRNAME@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE = @ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@
+ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE = @ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@
ENSC_ENABLE_INTERNAL_HEADERS_FALSE = @ENSC_ENABLE_INTERNAL_HEADERS_FALSE@
ENSC_ENABLE_INTERNAL_HEADERS_TRUE = @ENSC_ENABLE_INTERNAL_HEADERS_TRUE@
-ENSC_ENABLE_LINUXCONF_FALSE = @ENSC_ENABLE_LINUXCONF_FALSE@
-ENSC_ENABLE_LINUXCONF_TRUE = @ENSC_ENABLE_LINUXCONF_TRUE@
+ENSC_HAVE_BEECRYPT_FALSE = @ENSC_HAVE_BEECRYPT_FALSE@
+ENSC_HAVE_BEECRYPT_TRUE = @ENSC_HAVE_BEECRYPT_TRUE@
+ENSC_HAVE_C99_COMPILER_FALSE = @ENSC_HAVE_C99_COMPILER_FALSE@
+ENSC_HAVE_C99_COMPILER_TRUE = @ENSC_HAVE_C99_COMPILER_TRUE@
+ENSC_HAVE_CXX_COMPILER_FALSE = @ENSC_HAVE_CXX_COMPILER_FALSE@
+ENSC_HAVE_CXX_COMPILER_TRUE = @ENSC_HAVE_CXX_COMPILER_TRUE@
+ENSC_PATHPROG_SED = @ENSC_PATHPROG_SED@
+ENSC_USE_DIETLIBC_FALSE = @ENSC_USE_DIETLIBC_FALSE@
+ENSC_USE_DIETLIBC_TRUE = @ENSC_USE_DIETLIBC_TRUE@
+ENSC_USE_EXPENSIVE_TESTS = @ENSC_USE_EXPENSIVE_TESTS@
+ENSC_USE_GLIBC_FALSE = @ENSC_USE_GLIBC_FALSE@
+ENSC_USE_GLIBC_TRUE = @ENSC_USE_GLIBC_TRUE@
+ENV = @ENV@
EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GPG_KEY = @GPG_KEY@
+GREP = @GREP@
HAVE_CVS2CL_FALSE = @HAVE_CVS2CL_FALSE@
HAVE_CVS2CL_TRUE = @HAVE_CVS2CL_TRUE@
HAVE_RCS2LOG_FALSE = @HAVE_RCS2LOG_FALSE@
HAVE_RCS2LOG_TRUE = @HAVE_RCS2LOG_TRUE@
+HAVE_XSLTPROC_FALSE = @HAVE_XSLTPROC_FALSE@
+HAVE_XSLTPROC_TRUE = @HAVE_XSLTPROC_TRUE@
+HAVE_XSLTP_FALSE = @HAVE_XSLTP_FALSE@
+HAVE_XSLTP_TRUE = @HAVE_XSLTP_TRUE@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IP = @IP@
+IPTABLES = @IPTABLES@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIB_DEBUG_CPPFLAGS = @LIB_DEBUG_CPPFLAGS@
+LN = @LN@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
+MKDIR = @MKDIR@
+MKFIFO = @MKFIFO@
+MKTEMP = @MKTEMP@
+MODPROBE = @MODPROBE@
+MOUNT = @MOUNT@
+MV = @MV@
+NAMEIF = @NAMEIF@
+NICE = @NICE@
+NOHUP = @NOHUP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PS = @PS@
RANLIB = @RANLIB@
RCS2LOG = @RCS2LOG@
+RELEASE_CPPFLAGS = @RELEASE_CPPFLAGS@
+RM = @RM@
+RMDIR = @RMDIR@
+RMMOD = @RMMOD@
+SED = @SED@
SET_MAKE = @SET_MAKE@
+SH = @SH@
SHELL = @SHELL@
STRIP = @STRIP@
+TAC = @TAC@
+TAR = @TAR@
+TOUCH = @TOUCH@
+TTY = @TTY@
+UMOUNT = @UMOUNT@
+USE_DIETLIBC_COMPAT_FALSE = @USE_DIETLIBC_COMPAT_FALSE@
+USE_DIETLIBC_COMPAT_TRUE = @USE_DIETLIBC_COMPAT_TRUE@
+USE_DIETLIBC_FALSE = @USE_DIETLIBC_FALSE@
+USE_DIETLIBC_TRUE = @USE_DIETLIBC_TRUE@
+VCONFIG = @VCONFIG@
VERSION = @VERSION@
+WC = @WC@
+WGET = @WGET@
+XSLTP = @XSLTP@
+XSLTPROC = @XSLTPROC@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
+build = @build@
build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
+host = @host@
host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
+initrddir = @initrddir@
install_sh = @install_sh@
kernelincludedir = @kernelincludedir@
libdir = @libdir@
target_alias = @target_alias@
vserverdir = @vserverdir@
ACLOCAL_AMFLAGS = -I m4
-CVS2CL_AMFLAGS = $(CVS2CL_TAG) -U cvsusers.map --show-dead
+SUBDIRS = . distrib
+CVS2CL_AMFLAGS = $(CVS2CL_TAG) -U cvsusers.map --show-dead -S --no-wrap
CVS2CL_ALLFLAGS := $(CVS2CL_AMFLAGS) $(CVS2CL_FLAGS)
-sysvdir = $(sysconfdir)/init.d
-vservercfgdir = $(sysconfdir)/vservers
+confdir = $(sysconfdir)/vservers
+confdefaultsdir = $(confdir)/.defaults
+sbincfgdir = $(sbindir)
legacydir = $(pkglibdir)/legacy
-include_HEADERS = $(lib_HDRS)
-noinst_HEADERS = $(src_HDRS) $(lib_XHDRS) compat.h
-lib_LIBRARIES = $(lib_lib_LIBS)
-pkglib_SCRIPTS = $(distrib_SCRPTS) $(scripts_SCRPTS) $(src_pkglib_SCRPTS)
-pkglib_DATA = $(distrib_DAT) $(scriptscfg_DATA)
-legacy_SCRIPTS = $(scripts_LEGSCRPTS)
-sbin_SCRIPTS = $(scripts_PRGS) $(linuxconf_SCRPTS)
-sysv_SCRIPTS = $(sysv_SCRPTS)
-sysconf_DATA = $(sysv_CFG)
-vservercfg_DATA = $(linuxconf_cfg_DTA)
-BUILT_SOURCES = linuxcaps.h linuxvirtual.h
-man_MANS = $(man_DATMAN) $(linuxconf_DATMAN)
-m4_FILES = m4/ensc_cflags.m4 m4/ensc_kerneldir.m4 \
- m4/ensc_changelog.m4 m4/ensc_uv_vrootdir.m4
-
-EXTRA_DIST = $(distrib_SCRPTS) $(distrib_DAT) \
- $(sysv_XTRAS) $(sysv_CFG) \
- $(doc_DAT) $(man_DATMAN) $(linuxconf_XTRAS) \
- $(scripts_SCRPTS) $(scripts_XTRAS) \
- $(m4_FILES) \
- util-vserver.spec THANKS
-
-AM_CPPFLAGS = -I $(top_srcdir)/lib -D VERSION=\"$(VERSION)\" -D PKGLIBDIR=\"$(pkglibdir)\" -D _GNU_SOURCE
-AM_CFLAGS = -Wall -pedantic
-CLEANFILES = $(sysv_GENSCRPTS) $(scripts_GENSCRPTS) \
- $(linuxconf_GENFILES) $(src_GENFILES) \
- $(BUILT_SOURCES)
-
+include_HEADERS = lib/vserver.h
+noinst_HEADERS = $(ENSC_VECTOR_HDRS) compat.h compat-c99.h \
+ lib/syscall-compat.hc lib/syscall-legacy.hc \
+ lib/createskeleton-full.hc lib/createskeleton-short.hc \
+ lib/fmt.h lib/getversion-internal.hc \
+ lib/safechroot-internal.hc lib/ioctl-getext2flags.hc \
+ lib/ioctl-getfilecontext.hc lib/ioctl-setext2flags.hc \
+ lib/ioctl-setfilecontext.hc lib/ioctl-getxflg.hc \
+ lib/ioctl-setxflg.hc lib/ext2fs.h lib/listparser.hc \
+ lib/val2text.hc lib/virtual.h lib/internal.h \
+ lib/syscall-alternative.h lib/syscall-wrap.h \
+ lib/utils-legacy.h lib/vserver-internal.h \
+ src/capability-compat.h src/util.h src/fstool.h \
+ src/compat-pivot_root.h src/stack-start.h src/vcopy-init.hc \
+ src/vunify.h src/vunify-init.hc src/vhashify.h \
+ src/vhashify-init.hc src/vserver-visitdir.hc \
+ src/context-sync.hc ensc_wrappers/wrappers-clone.hc \
+ ensc_wrappers/wrappers-dirent.hc \
+ ensc_wrappers/wrappers-fcntl.hc ensc_wrappers/wrappers-io.hc \
+ ensc_wrappers/wrappers-ioctl.hc \
+ ensc_wrappers/wrappers-iosock.hc \
+ ensc_wrappers/wrappers-mount.hc \
+ ensc_wrappers/wrappers-pivot.hc \
+ ensc_wrappers/wrappers-resource.hc \
+ ensc_wrappers/wrappers-socket.hc \
+ ensc_wrappers/wrappers-stdlib.hc \
+ ensc_wrappers/wrappers-string.hc \
+ ensc_wrappers/wrappers-unistd.hc \
+ ensc_wrappers/wrappers-vserver.hc \
+ ensc_wrappers/wrappers-wait.hc ensc_wrappers/wrappers.h \
+ ensc_wrappers/wrappers_handler.hc lib_internal/coreassert.h \
+ lib_internal/errinfo.h lib_internal/jail.h \
+ lib_internal/matchlist.h lib_internal/pathinfo.h \
+ lib_internal/string.h lib_internal/sys_clone.h \
+ lib_internal/sys_personality.h lib_internal/unify.h \
+ lib_internal/util.h lib_internal/util-cast.h \
+ lib_internal/util-commonstrings.h lib_internal/util-debug.h \
+ lib_internal/util-declarecmd.h lib_internal/util-dimof.h \
+ lib_internal/util-dotfile.h \
+ lib_internal/util-exitlikeprocess.h lib_internal/util-io.h \
+ lib_internal/util-lockfile.h lib_internal/util-mem.h \
+ lib_internal/util-perror.h lib_internal/util-safechdir.h \
+ lib_internal/util-unixsock.h lib_internal/string.hc
+noinst_LIBRARIES = $(ENSC_VECTOR_LIBS) $(LIBINTERNAL_GLIBC) \
+ $(am__append_10)
+lib_LIBRARIES = $(am__append_2)
+lib_LTLIBRARIES = $(LIBVSERVER_GLIBC)
+pkglib_LTLIBRARIES = src/rpm-fake.la
+pkglib_SCRIPTS = $(scripts_pkglib_src_SCRPTS)
+pkglib_DATA = FEATURES.txt $(scripts_pkglib_src_DTA) \
+ $(scripts_pkglib_gen_DTA)
+legacy_SCRIPTS = $(scripts_legacy_src_SCRPTS) \
+ $(scripts_legacy_gen_SCRPTS)
+sbin_SCRIPTS = $(scripts_sbin_src_PRGS) $(scripts_sbin_gen_PRGS) \
+ $(scripts_legacy_src_PRGS)
+noinst_DATA = $(contrib_gen_DTA)
+initrd_SCRIPTS = $(sysv_src_SCRPTS) $(sysv_gen_SCRPTS)
+sysconf_DATA = $(sysv_conf_DTA)
+DIETPROGS = $(LIBENSCVECTOR_DIET) lib/lib_libvserver_a-% \
+ lib/testsuite/cflags lib/testsuite/personality \
+ lib/testsuite/fmt src/chcontext-compat src/capchroot \
+ src/chain-echo src/check-unixfile src/chroot-sh src/filetime \
+ src/lockfile src/readlink src/secure-mount src/save_ctxinfo \
+ src/mask2prefix src/chbind src/exec-cd src/fakerunlevel \
+ src/keep-ctx-alive src/exec-ulimit src/vps src/lsxid src/chxid \
+ src/reducecap src/showattr src/setattr src/sigexec \
+ src/vattribute src/vlimit src/vnamespace src/vunify src/vuname \
+ src/rpm-fake-resolver src/vcontext src/vcopy src/vkill \
+ src/vsched src/vshelper-sync src/vrsetup src/vserver-stat \
+ src/vserver-info src/vdlimit src/vwait $(am__append_3) \
+ $(tests_dietprogs) lib_internal/libinternal-diet.a \
+ $(am__append_13)
+BUILT_SOURCES = pathconfig.h linuxvirtual.h \
+ .fixups
+
+man_MANS = $(man_pages)
+kernel_HDRS = kernel/context.h \
+ kernel/context_cmd.h \
+ kernel/cvirt.h \
+ kernel/cvirt_cmd.h \
+ kernel/cvirt_def.h \
+ kernel/debug.h \
+ kernel/debug_cmd.h \
+ kernel/dlimit.h \
+ kernel/dlimit_cmd.h \
+ kernel/inode.h \
+ kernel/inode_cmd.h \
+ kernel/legacy.h \
+ kernel/limit.h \
+ kernel/limit_cmd.h \
+ kernel/limit_def.h \
+ kernel/namespace.h \
+ kernel/namespace_cmd.h \
+ kernel/network.h \
+ kernel/network_cmd.h \
+ kernel/sched.h \
+ kernel/sched_cmd.h \
+ kernel/sched_def.h \
+ kernel/signal_cmd.h \
+ kernel/switch.h \
+ kernel/xid.h
+
+EXTRA_DIST = pathconfig.h.pathsubst util-vserver.spec THANKS \
+ REQUIREMENTS $(kernel_HDRS) lib/apidoc/list2xxx.syntax \
+ $(src_testsuite_check_src_SCRPTS) $(doc_compatibility_SRCS) \
+ $(doc_configuration_SRCS) $(doc_old_doc) $(doc_gen_DOCS) \
+ $(man_pages) $(scripts_pkglib_src_DTA) \
+ $(scripts_pkglib_src_SCRPTS) $(scripts_legacy_src_SCRPTS) \
+ $(scripts_legacy_src_PRGS) $(scripts_sbin_src_PRGS) \
+ $(scripts_subst_SRCS) sysv/v_gated.subst sysv/v_httpd.subst \
+ sysv/v_named.subst sysv/v_portmap.subst sysv/v_sendmail.subst \
+ sysv/v_smb.subst sysv/v_sshd.subst sysv/v_xinetd.subst \
+ $(sysv_src_SCRPTS) $(sysv_conf_DTA) $(contrib_subst_SRCS) \
+ contrib/make-manifest contrib/yum-2.2.1-chroot.patch \
+ contrib/yum-2.3.2-chroot.patch contrib/yum-2.3.3-chroot.patch \
+ contrib/yum-2.3.4-chroot.patch \
+ lib_internal/testsuite/copy-check $(addsuffix .pc.subst, \
+ $(PKGCONFIG_FILES))
+check_SCRIPTS = $(src_testsuite_check_src_SCRPTS) \
+ $(src_testsuite_check_gen_SCRPTS)
+TESTS_DEBUG = no
+TESTS = lib/testsuite/cflags lib/testsuite/personality \
+ lib/testsuite/fmt lib/testsuite/parselimit \
+ $(src_testsuite_check_active_PRGS) \
+ $(src_testsuite_check_src_SCRPTS) \
+ $(src_testsuite_check_gen_SCRPTS) ensc_vector/testsuite/test1 \
+ ensc_vector/testsuite/test2 $(am__append_12)
+TESTS_ENVIRONMENT = \
+ ensc_use_expensive_tests="$(ENSC_USE_EXPENSIVE_TESTS)" \
+ ensc_test_debug="$(TESTS_DEBUG)" \
+ srctestsuitedir=$(top_builddir)/src/testsuite \
+ libinternaltestsuitedir=$(top_builddir)/lib_internal/testsuite
+AM_CPPFLAGS = -I $(top_srcdir)/lib -I $(top_srcdir)/ensc_wrappers \
+ -D_GNU_SOURCE -D_REENTRANT $(RELEASE_CPPFLAGS)
+
+CLEANFILES = $(BUILT_SOURCES) .*.pathsubst.stamp */.*.pathsubst.stamp \
+ */*/.*.pathsubst.stamp pathconfig.h .fixups lib/libvserver.la \
+ lib/libvserver.a lib/apidoc/.apidoc doc/*.raw.html* \
+ doc/*.html.tmp $(am__append_6) $(am__append_7) \
+ $(scripts_pkglib_gen_DTA) $(scripts_sbin_gen_PRGS) \
+ $(scripts_sbincfg_gen_DTA) $(scripts_legacy_gen_SCRPTS) \
+ $(sysv_gen_SCRPTS) $(contrib_gen_DTA) libensc_vector-diet.a \
+ libensc_vector-glibc.a lib_internal/libinternal-diet.a \
+ lib_internal/libinternal-glibc.a $(addsuffix .pc, \
+ $(PKGCONFIG_FILES))
+DISTCLEANFILES = FEATURES.txt
+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = src/parserpmdump src/showperm \
+ src/vbuild src/vcheck src/vreboot src/save_ctxinfo \
+ src/mask2prefix src/ifspec src/rebootmgr src/vdu src/vfiles \
+ scripts/vapt-get-worker scripts/vrpm-worker \
+ scripts/vyum-worker scripts/vrpm-preload \
+ scripts/save_s_context scripts/vservers.grabinfo.sh \
+ scripts/vpstree scripts/vserver-wrapper scripts/vsysvwrapper \
+ scripts/vtop scripts/legacy/distrib-info scripts/legacy/vps \
+ scripts/legacy/save_s_context scripts/legacy/vserver \
+ scripts/legacy/rootshell scripts/legacy/vserver-copy \
+ scripts/legacy/vserverkillall $(sysv_src_SCRPTS) \
+ $(sysv_gen_SCRPTS) vserver-start/vserver.start.bin
+@USE_DIETLIBC_TRUE@DIET_CC := $(DIET) $(DIETFLAGS) $(CC)
+@USE_DIETLIBC_FALSE@VSERVER_LDFLGS :=
+@USE_DIETLIBC_TRUE@VSERVER_LDFLGS := -static
+@USE_DIETLIBC_COMPAT_FALSE@DIET_COMPAT_LDADDS =
+@USE_DIETLIBC_COMPAT_TRUE@DIET_COMPAT_LDADDS = -lcompat
+VSERVER_LDADDS = $(LIBVSERVER) $(DIET_COMPAT_LDADDS)
+pathsubst_RULES = s!@'PKGLIBDIR'@!$(pkglibdir)!g; \
+ s!@'LEGACYDIR'@!$(legacydir)!g; \
+ s!@'SBINDIR'@!$(sbindir)!g; \
+ s!@'CONFDIR'@!$(confdir)!g; \
+ s!@'SYSCONFDIR'@!$(sysconfdir)!g; \
+ s!@'PKGSTATEDIR'@!$(pkgstatedir)!g; \
+ s!@'PKGSTATEREVDIR'@!$(pkgstaterevdir)!g; \
+ s!@'VSERVERDIR'@!$(vserverdir)!g; \
+ s!@'VSERVERPKGDIR'@!$(vserverpkgdir)!g; \
+ s!@'VSERVERPKGDIR'@!$(vserverpkgdir)!g; \
+ s!@'VSHELPERSTATEDIR'@!$(vshelperstatedir)!g; \
+ s!@'INITRDDIR'@!$(initrddir)!g; \
+ s!@'LIBDIR'@!$(libdir)!g; \
+ s!@'MANDIR'@!$(mandir)!g; \
+ s!@'INCLUDEDIR'@!$(includedir)!g; \
+ s!@'PACKAGE'@!$(PACKAGE)!g; \
+ s!@'PACKAGE_BUGREPORT'@!$(PACKAGE_BUGREPORT)!g; \
+ s!@'PACKAGE_NAME'@!$(PACKAGE_NAME)!g; \
+ s!@'PACKAGE_STRING'@!$(PACKAGE_STRING)!g; \
+ s!@'PACKAGE_TARNAME'@!$(PACKAGE_TARNAME)!g; \
+ s!@'PACKAGE_VERSION'@!$(PACKAGE_VERSION)!g; \
+ s!@'ENSC_HAVE_C99_COMPILER_TRUE'@!\@ENSC_HAVE_C99_COMPILER_TRUE@ !g; \
+ s!@'ENSC_HAVE_C99_COMPILER_FALSE'@!\@ENSC_HAVE_C99_COMPILER_FALSE@ !g; \
+ s!@'ENSC_HAVE_CXX_COMPILER_TRUE'@!\@ENSC_HAVE_CXX_COMPILER_TRUE@ !g; \
+ s!@'ENSC_HAVE_CXX_COMPILER_FALSE'@!\@ENSC_HAVE_CXX_COMPILER_FALSE@ !g; \
+ $(ENSC_PATHPROG_SED)
+
+pkgstatedir = $(localstatedir)/run/vservers
+pkgstaterevdir = $(confdefaultsdir)/run.rev
+vserverpkgdir = $(vserverdir)/.pkg
+vshelperstatedir = $(localstatedir)/run/vshelper
+fix_SCRPTS = $(addprefix $(pkglibdir)/, $(notdir $(pkglib_SCRIPTS))) \
+ $(addprefix $(legacydir)/, $(notdir $(legacy_SCRIPTS))) \
+ $(addprefix $(sbindir)/, $(notdir $(sbin_SCRIPTS))) \
+ $(addprefix $(initrddir)/, $(notdir $(initrd_SCRIPTS)))
+
+@ENSC_USE_DIETLIBC_FALSE@nodist_lib_dietlibc_not_enabled_error_a_SOURCES = \
+@ENSC_USE_DIETLIBC_FALSE@ lib-dietlibc-not-enabled-error.c
+
+@USE_DIETLIBC_FALSE@nodist_lib_dietlibc_not_enabled_error_a_SOURCES = \
+@USE_DIETLIBC_FALSE@ lib-dietlibc-not-enabled-error.c
+
+lib_VERSION = 0.0.0
+lib_compat_SRCS = lib/cflags-compat.c \
+ lib/cflags_list-compat.c
+
+lib_legacy_SRCS = lib/getprocentry-legacy.c
+lib_management_SRCS = lib/createskeleton.c \
+ lib/getvserverbyctx.c \
+ lib/getvserverbyctx-compat.hc \
+ lib/getvserverbyctx-v13.hc \
+ lib/getvservercfgstyle.c \
+ lib/getvserverappdir.c \
+ lib/getvservercfgdir.c \
+ lib/getvserverctx.c \
+ lib/getvservername.c \
+ lib/getvservervdir.c \
+ lib/xidopt2xid.c
+
+lib_v11_SRCS = lib/syscall_rlimit.c \
+ lib/syscall_rlimit-v11.hc \
+ lib/syscall_kill.c \
+ lib/syscall_kill-v11.hc
+
+lib_v13_SRCS = lib/syscall_ctxcreate.c lib/syscall_ctxcreate-v13.hc \
+ lib/syscall_ctxmigrate.c lib/syscall_ctxmigrate-v13.hc \
+ lib/syscall_cleanupnamespace-v13.hc \
+ lib/syscall_cleanupnamespace.c \
+ lib/syscall_enternamespace-v13.hc lib/syscall_enternamespace.c \
+ lib/syscall_getccaps-v13.hc lib/syscall_getccaps.c \
+ lib/syscall_getcflags-v13.hc lib/syscall_getcflags.c \
+ lib/syscall_getiattr-fscompat.hc lib/syscall_getiattr-v13.hc \
+ lib/syscall_getiattr.c lib/syscall_getncaps-net.hc \
+ lib/syscall_getncaps.c lib/syscall_getnflags-net.hc \
+ lib/syscall_getnflags.c lib/syscall_getnxinfo-net.hc \
+ lib/syscall_getnxinfo.c lib/syscall_gettasknid-net.hc \
+ lib/syscall_gettasknid.c lib/syscall_gettaskxid-oldproc.hc \
+ lib/syscall_gettaskxid-v13.hc lib/syscall_gettaskxid.c \
+ lib/syscall_getvhiname-olduts.hc lib/syscall_getvhiname-v13.hc \
+ lib/syscall_getvhiname.c lib/syscall_getvxinfo-oldproc.hc \
+ lib/syscall_getvxinfo-v13.hc lib/syscall_getvxinfo.c \
+ lib/syscall_netadd-net.hc lib/syscall_netadd.c \
+ lib/syscall_netcreate-net.hc lib/syscall_netcreate.c \
+ lib/syscall_netmigrate-net.hc lib/syscall_netmigrate.c \
+ lib/syscall_netremove-net.hc lib/syscall_netremove.c \
+ lib/syscall_setccaps-v13.hc lib/syscall_setccaps.c \
+ lib/syscall_setcflags-v13.hc lib/syscall_setcflags.c \
+ lib/syscall_setiattr-fscompat.hc lib/syscall_setiattr-v13.hc \
+ lib/syscall_setiattr.c lib/syscall_setnamespace-v13.hc \
+ lib/syscall_setnamespace.c lib/syscall_setncaps-net.hc \
+ lib/syscall_setncaps.c lib/syscall_setnflags-net.hc \
+ lib/syscall_setnflags.c lib/syscall_setsched-v13.hc \
+ lib/syscall_setsched.c lib/syscall_setvhiname-olduts.hc \
+ lib/syscall_setvhiname-v13.hc lib/syscall_setvhiname.c \
+ lib/syscall_waitexit.c lib/syscall_waitexit-v13.hc \
+ lib/bcaps-v13.c lib/bcaps_list-v13.c lib/ccaps-v13.c \
+ lib/ccaps_list-v13.c lib/cflags-v13.c lib/cflags_list-v13.c \
+ lib/ncaps-net.c lib/ncaps_list-net.c lib/nflags-net.c \
+ lib/nflags_list-net.c $(am__append_1)
+PKGCONFIG_FILES = lib/util-vserver
lib_SRCS = lib/syscall.c \
- lib/syscall_rlimit.c \
- lib/syscall_kill.c \
- lib/checkversion.c \
- lib/getctx.c \
- lib/getversion.c \
- lib/uint2str.c
-
-lib_HDRS = lib/vserver.h
-lib_XHDRS = lib/syscall-compat.hc \
- lib/syscall-legacy.hc \
- lib/syscall_rlimit-v11.hc \
- lib/syscall_kill-v11.hc \
- lib/getctx-compat.hc \
- lib/getctx-legacy.hc \
- lib/getversion-internal.hc \
- lib/safechroot-internal.hc \
- lib/virtual.h \
- lib/vserver-internal.h
-
-lib_lib_LIBS = lib/libvserver.a
+ lib/checkversion.c \
+ lib/isdirectory.c \
+ lib/isfile.c \
+ lib/islink.c \
+ lib/getnbipv4root.c \
+ lib/getversion.c \
+ lib/capabilities.c \
+ lib/getfilecontext.c \
+ lib/getinsecurebcaps.c \
+ lib/getxidtype.c \
+ lib/isdynamicxid.c \
+ lib/issupported.c \
+ lib/issupportedstring.c \
+ lib/listparser_uint32.c \
+ lib/listparser_uint64.c \
+ lib/personalityflag.c \
+ lib/personalityflag_list.c \
+ lib/personalitytype.c \
+ lib/syscall-syscall.c \
+ lib/val2text-t2v-uint32.c \
+ lib/val2text-t2v-uint64.c \
+ lib/val2text-v2t-uint32.c \
+ lib/val2text-v2t-uint64.c \
+ lib/parselimit.c \
+ $(lib_legacy_SRCS) \
+ $(lib_compat_SRCS) \
+ $(lib_management_SRCS) \
+ $(lib_v11_SRCS) \
+ $(lib_v13_SRCS) \
+ $(ensc_fmt_SRCS)
+
+LIBVSERVER_GLIBC = lib/libvserver.la
+@USE_DIETLIBC_FALSE@LIBVSERVER_DIET = lib-dietlibc-not-enabled-error.a
+@USE_DIETLIBC_TRUE@LIBVSERVER_DIET = lib/libvserver.a
+@USE_DIETLIBC_FALSE@LIBVSERVER = lib/libvserver.la
+@USE_DIETLIBC_TRUE@LIBVSERVER = $(LIBVSERVER_DIET)
+lib_libvserver_la_SOURCES = $(lib_SRCS)
+lib_libvserver_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIB_DEBUG_CPPFLAGS)
+lib_libvserver_la_LDFLAGS = -version $(lib_VERSION)
lib_libvserver_a_SOURCES = $(lib_SRCS)
-lib_libvserver_a_CPPFLAGS = -D_GNU_SOURCE
-src_HDRS = src/vutil.h src/vutil.p \
- src/ext2fs.h
-
-src_pkglib_SCRPTS = src/setattr
-src_pkglib_PRGS = src/capchroot \
- src/fakerunlevel \
- src/filetime \
- src/ifspec \
- src/listdevip \
- src/parserpmdump \
- src/readlink \
- src/showattr \
- src/showperm \
- src/vbuild \
- src/vcheck \
- src/vreboot \
- src/vunify
-
-src_sbin_PRGS = src/chbind \
- src/chcontext \
- src/rebootmgr \
- src/reducecap \
- src/vlimit \
- src/vdu \
- src/vfiles \
- src/vkill \
- src/vserver-stat
-
-src_GENFILES = src/setattr
+lib_libvserver_a_CPPFLAGS = $(AM_CPPFLAGS) $(LIB_DEBUG_CPPFLAGS)
+lib_testsuite_cflags_SOURCES = lib/testsuite/cflags.c
+lib_testsuite_cflags_LDADD = $(LIBVSERVER)
+lib_testsuite_cflags_LDFLAGS = $(VSERVER_LDFLGS)
+lib_testsuite_cflags_CPPFLAGS = $(AM_CPPFLAGS) -DENSC_TESTSUITE
+lib_testsuite_personality_SOURCES = lib/testsuite/personality.c
+lib_testsuite_personality_LDADD = $(LIBVSERVER)
+lib_testsuite_personality_LDFLAGS = $(VSERVER_LDFLGS)
+lib_testsuite_personality_CPPFLAGS = $(AM_CPPFLAGS) -DENSC_TESTSUITE
+lib_testsuite_fmt_SOURCES = lib/testsuite/fmt.c
+lib_testsuite_fmt_LDADD = $(LIBVSERVER)
+lib_testsuite_fmt_LDFLAGS = $(VSERVER_LDFLGS)
+lib_testsuite_fmt_CPPFLAGS = $(AM_CPPFLAGS) -DENSC_TESTSUITE
+lib_testsuite_parselimit_SOURCES = lib/testsuite/parselimit.c
+lib_testsuite_parselimit_LDADD = $(LIBVSERVER)
+lib_testsuite_parselimit_LDFLAGS = $(VSERVER_LDFLGS)
+lib_testsuite_parselimit_CPPFLAGS = $(AM_CPPFLAGS) -DENSC_TESTSUITE
+src_sbin_CXX_PROGS =
+src_pkglib_CXX_PROGS =
+src_pkglib_C99_PROGS = src/vunify src/vcopy
src_capchroot_SOURCES = src/capchroot.c
-src_capchroot_LDADD = lib/libvserver.a
+src_capchroot_LDADD = $(VSERVER_LDADDS)
+src_capchroot_LDFLAGS = $(VSERVER_LDFLGS)
src_chbind_SOURCES = src/chbind.c
-src_chbind_LDADD = lib/libvserver.a
-src_chcontext_SOURCES = src/chcontext.c
-src_chcontext_LDADD = lib/libvserver.a
-src_fakerunlevel_SOURCES = src/fakerunlevel.c
+src_chbind_LDADD = $(VSERVER_LDADDS)
+src_chbind_LDFLAGS = $(VSERVER_LDFLGS)
+src_chcontext_compat_SOURCES = src/chcontext.c
+src_chcontext_compat_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_chcontext_compat_LDFLAGS = $(VSERVER_LDFLGS)
+src_vcontext_SOURCES = src/vcontext.c
+src_vcontext_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_vcontext_LDFLAGS = $(VSERVER_LDFLGS)
+src_vsched_SOURCES = src/vsched.c
+src_vsched_LDADD = $(VSERVER_LDADDS)
+src_vsched_LDFLAGS = $(VSERVER_LDFLGS)
src_filetime_SOURCES = src/filetime.c
+src_filetime_LDADD = $(VSERVER_LDADDS)
+src_filetime_LDFLAGS = $(VSERVER_LDFLGS)
+src_chain_echo_SOURCES = src/chain-echo.c
+src_chroot_sh_SOURCES = src/chroot-sh.c
+src_exec_cd_SOURCES = src/exec-cd.c
+src_fakerunlevel_SOURCES = src/fakerunlevel.c
src_ifspec_SOURCES = src/ifspec.c
src_listdevip_SOURCES = src/listdevip.c
+src_lockfile_SOURCES = src/lockfile.c
src_parserpmdump_SOURCES = src/parserpmdump.c
src_readlink_SOURCES = src/readlink.c
src_rebootmgr_SOURCES = src/rebootmgr.c
-src_rebootmgr_CPPFLAGS = $(AM_CPPFLAGS) -DSBINDIR=\"$(sbindir)\" -DVROOTDIR=\"$(vserverdir)\"
+src_exec_ulimit_SOURCES = src/exec-ulimit.c
+src_vshelper_sync_SOURCES = src/vshelper-sync.c
src_reducecap_SOURCES = src/reducecap.c
-src_reducecap_LDADD = lib/libvserver.a
-src_vlimit_SOURCES = src/vlimit.c
-src_vlimit_LDADD = lib/libvserver.a
+src_reducecap_LDADD = $(VSERVER_LDADDS)
+src_reducecap_LDFLAGS = $(VSERVER_LDFLGS)
src_vkill_SOURCES = src/vkill.c
-src_vkill_LDADD = lib/libvserver.a
+src_vkill_LDADD = $(VSERVER_LDADDS)
+src_vkill_LDFLAGS = $(VSERVER_LDFLGS)
src_vkill_CPPFLAGS = $(AM_CPPFLAGS) -DLEGACYDIR=\"$(legacydir)\"
-src_showattr_SOURCES = src/showattr.c
-src_showperm_SOURCES = src/showperm.c
-src_vbuild_SOURCES = src/vbuild.cc src/vutil.cc
+src_vlimit_SOURCES = src/vlimit.c
+src_vlimit_LDADD = $(VSERVER_LDADDS)
+src_vlimit_LDFLAGS = $(VSERVER_LDFLGS)
+src_save_ctxinfo_SOURCES = src/save_ctxinfo.c
+src_save_ctxinfo_LDADD = $(VSERVER_LDADDS)
+src_save_ctxinfo_LDFLAGS = $(VSERVER_LDFLGS)
src_vdu_SOURCES = src/vdu.c
-src_vfiles_SOURCES = src/vfiles.cc src/vutil.cc
src_vreboot_SOURCES = src/vreboot.c
+src_secure_mount_SOURCES = src/secure-mount.c
+src_secure_mount_LDADD = $(VSERVER_LDADDS)
+src_secure_mount_LDFLAGS = $(VSERVER_LDFLGS)
+src_vattribute_SOURCES = src/vattribute.c
+src_vattribute_LDADD = $(VSERVER_LDADDS)
+src_vattribute_LDFLAGS = $(VSERVER_LDFLGS)
+src_vnamespace_SOURCES = src/vnamespace.c
+src_vnamespace_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_vnamespace_LDFLAGS = $(VSERVER_LDFLGS)
+src_rpm_fake_resolver_SOURCES = src/rpm-fake-resolver.c
+src_rpm_fake_resolver_LDADD = $(VSERVER_LDADDS)
+src_rpm_fake_resolver_LDFLAGS = $(VSERVER_LDFLGS)
+src_mask2prefix_SOURCES = src/mask2prefix.c
+src_vps_SOURCES = src/vps.c
+src_vps_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_vps_LDFLAGS = $(VSERVER_LDFLGS)
+src_vserver_info_SOURCES = src/vserver-info.c
+src_vserver_info_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_vserver_info_LDFLAGS = $(VSERVER_LDFLGS)
src_vserver_stat_SOURCES = src/vserver-stat.c
-src_vserver_stat_LDADD = lib/libvserver.a
-src_vunify_SOURCES = src/vunify.cc src/vutil.cc
-src_vunify_CPPFLAGS = $(AM_CPPFLAGS) -DVROOTDIR=\"$(vserverdir)\"
-src_vcheck_SOURCES = src/vcheck.cc src/vutil.cc
-distrib_SCRPTS = distrib/install-mdk8.2 \
- distrib/install-post.sh \
- distrib/install-pre.sh \
- distrib/install-rh7.2 \
- distrib/install-rh7.3 \
- distrib/install-rh8.0 \
- distrib/install-rh9.0 \
- distrib/install-fc1 \
- distrib/sample.sh
-
-distrib_DAT = distrib/mdk8.2-minimum \
- distrib/rh7.3-minimum \
- distrib/rh8.0-minimum \
- distrib/rh9.0-minimum \
- distrib/fc1-minimum \
- distrib/sample.conf
-
-doc_DAT = doc/intro.txt
-man_DATMAN = man/chbind.8 \
+src_vserver_stat_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS) $(LIBENSCVECTOR)
+src_vserver_stat_LDFLAGS = $(VSERVER_LDFLGS)
+src_lsxid_SOURCES = src/fstool.c src/lsxid.c
+src_lsxid_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS) $(LIBENSCVECTOR)
+src_lsxid_LDFLAGS = $(VSERVER_LDFLGS)
+src_chxid_SOURCES = src/fstool.c src/chxid.c
+src_chxid_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_chxid_LDFLAGS = $(VSERVER_LDFLGS)
+src_showattr_SOURCES = src/fstool.c src/showattr.c
+src_showattr_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_showattr_LDFLAGS = $(VSERVER_LDFLGS)
+src_setattr_SOURCES = src/fstool.c src/setattr.c
+src_setattr_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_setattr_LDFLAGS = $(VSERVER_LDFLGS)
+src_keep_ctx_alive_SOURCES = src/keep-ctx-alive.c
+src_keep_ctx_alive_LDADD = $(VSERVER_LDADDS)
+src_keep_ctx_alive_LDFLAGS = $(VSERVER_LDFLGS)
+src_vcopy_SOURCES = src/vcopy.c
+src_vcopy_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_vcopy_LDFLAGS = $(VSERVER_LDFLGS)
+src_vunify_SOURCES = src/vunify.c
+src_vunify_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_vunify_LDFLAGS = $(VSERVER_LDFLGS)
+src_vhashify_SOURCES = src/vhashify.c
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_vhashify_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_vhashify_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS)
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_vhashify_LDFLAGS =
+@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_vhashify_LDFLAGS = $(VSERVER_LDFLGS)
+src_vuname_SOURCES = src/vuname.c
+src_vuname_LDADD = $(VSERVER_LDADDS)
+src_vuname_LDFLAGS = $(VSERVER_LDFLGS)
+src_rpm_fake_la_SOURCES = src/rpm-fake.c
+src_rpm_fake_la_CFLAGS = $(AM_CFLAGS)
+src_rpm_fake_la_LDFLAGS = -module -avoid-version -rpath $(pkglibdir)
+src_rpm_fake_la_LIBADD = $(LIBVSERVER_GLIBC) -ldl
+src_vdlimit_SOURCES = src/vdlimit.c
+src_vdlimit_LDADD = $(VSERVER_LDADDS)
+src_vdlimit_LDFLAGS = $(VSERVER_LDFLGS)
+src_vwait_SOURCES = src/vwait.c
+src_vwait_LDADD = $(VSERVER_LDADDS)
+src_vwait_LDFLAGS = $(VSERVER_LDFLGS)
+@ENSC_HAVE_C99_COMPILER_FALSE@src_sbin_C99_X_PROGS =
+@ENSC_HAVE_C99_COMPILER_TRUE@src_sbin_C99_X_PROGS = $(src_sbin_C99_PROGS)
+@ENSC_HAVE_C99_COMPILER_FALSE@src_pkglib_C99_X_PROGS =
+@ENSC_HAVE_C99_COMPILER_TRUE@src_pkglib_C99_X_PROGS = $(src_pkglib_C99_PROGS)
+@ENSC_HAVE_CXX_COMPILER_FALSE@src_sbin_CXX_X_PROGS =
+@ENSC_HAVE_CXX_COMPILER_TRUE@src_sbin_CXX_X_PROGS = $(src_sbin_CXX_PROGS)
+@ENSC_HAVE_CXX_COMPILER_FALSE@src_pkglib_CXX_X_PROGS =
+@ENSC_HAVE_CXX_COMPILER_TRUE@src_pkglib_CXX_X_PROGS = $(src_pkglib_CXX_PROGS)
+src_testsuite_check_active_PRGS = src/testsuite/vunify-functest \
+ src/testsuite/chcontext-test \
+ src/testsuite/chbind-test
+
+src_testsuite_check_passive_PRGS = src/testsuite/rpm-fake-test
+@ENSC_HAVE_C99_COMPILER_FALSE@src_testsuite_check_src_C99_SCRPTS =
+@ENSC_HAVE_C99_COMPILER_TRUE@src_testsuite_check_src_C99_SCRPTS = src/testsuite/vunify-test.sh
+src_testsuite_check_src_SCRPTS = $(src_testsuite_check_src_C99_SCRPTS)
+src_testsuite_check_gen_SCRPTS =
+src_testsuite_rpm_fake_test_SOURCES = src/testsuite/rpm-fake-test.c
+src_testsuite_vunify_functest_SOURCES = src/testsuite/vunify-functest.c
+src_testsuite_vunify_functest_LDADD = $(LIBINTERNAL)
+src_testsuite_vunify_functest_CPPFLAGS = $(AM_CPPFLAGS) $(src_testsuite_CPPFLAGS)
+src_testsuite_chcontext_test_SOURCES = src/testsuite/chcontext-test.c
+src_testsuite_chcontext_test_LDADD = lib/libvserver.la $(LIBINTERNAL)
+src_testsuite_chbind_test_SOURCES = src/testsuite/chbind-test.c
+src_testsuite_chbind_test_LDADD = lib/libvserver.la
+src_testsuite_CPPFLAGS = -I $(top_srcdir)/src -D ENSC_TESTSUITE
+doc_old_doc = doc/intro.txt
+XSLT_AMFLAGS = --stringparam confdir '$(sysconfdir)/vservers'
+XSLTP_AMFLAGS = -param confdir '$(sysconfdir)/vservers'
+doc_gen_DOCS = doc/configuration.html \
+ doc/compatibility.html
+
+doc_configuration_SRCS = doc/configuration.xml \
+ doc/configuration.xsd \
+ doc/configuration.dtd \
+ doc/configuration.css \
+ doc/configuration-xhtml.xsl
+
+doc_compatibility_SRCS = doc/compatibility.xml \
+ doc/compatibility.dtd \
+ doc/compatibility-xhtml.xsl
+
+man_pages = man/chbind.8 \
man/chcontext.8 \
man/distrib-info.8 \
man/rebootmgr.8 \
man/reducecap.8 \
man/vps.8 \
man/vpstree.8 \
- man/vrpm.8 \
man/vserver-copy.8 \
man/vserver-stat.8 \
man/vserver.8 \
man/vtop.8
-scriptscfgdir = $(sbindir)
-scripts_src_SCRPTS = scripts/distrib-info \
- scripts/rootshell \
- scripts/save_s_context \
- scripts/vprofile \
- scripts/vserverkillall \
- scripts/vservers.grabinfo.sh \
- scripts/vsysvwrapper
-
-scripts_gen_SCRPTS =
-scripts_src_LEGSCRPTS = scripts/vunify.sh
-scripts_gen_LEGSCRPTS = scripts/vkill
-scripts_src_PRGS = scripts/vpstree \
- scripts/vrpm \
- scripts/vserver \
- scripts/vserver-copy \
- scripts/vtop
-
-scripts_gen_PRGS = scripts/vps
-scripts_PRGS = $(scripts_src_PRGS) $(scripts_gen_PRGS)
-scripts_SCRPTS = $(scripts_src_SCRPTS) $(scripts_gen_SCRPTS)
-scripts_LEGSCRPTS = $(scripts_src_LEGSCRPTS) $(scripts_gen_LEGSCRPTS)
-scriptscfg_DATA = scripts/util-vserver-vars
-scripts_XTRAS = scripts/util-vserver-vars.subst \
- scripts/vkill.subst \
- scripts/vps.subst \
- $(scripts_src_SCRPTS) $(scripts_src_PRGS) \
- $(scripts_src_LEGSCRPTS)
-
-scripts_GENSCRPTS = scripts/util-vserver-vars \
- $(scripts_gen_SCRPTS) $(scripts_gen_PRGS) \
- $(scripts_gen_LEGSCRPTS)
-
-test_PRGS = tests/escaperoot \
- tests/forkbomb \
- tests/testipc \
- tests/testlimit \
- tests/testopenf
-
-tests_escaperoot_SOURCES = tests/escaperoot.cc
-tests_forkbomb_SOURCES = tests/forkbomb.cc
-tests_testipc_SOURCES = tests/testipc.cc
-tests_testlimit_SOURCES = tests/testlimit.cc
-tests_testopenf_SOURCES = tests/testopenf.cc
-sysv_XTRAS = sysv/rebootmgr.subst \
- sysv/v_gated.subst \
- sysv/v_httpd.subst \
- sysv/v_named.subst \
- sysv/v_portmap.subst \
- sysv/v_sendmail.subst \
- sysv/v_smb.subst \
- sysv/v_sshd.subst \
- sysv/v_xinetd.subst \
- sysv/vservers.subst
-
-sysv_GENSCRPTS = sysv/rebootmgr \
- sysv/v_gated \
- sysv/v_httpd \
- sysv/v_named \
- sysv/v_portmap \
- sysv/v_sendmail \
- sysv/v_smb \
- sysv/v_sshd \
- sysv/v_xinetd \
- sysv/vservers
-
-sysv_SCRPTS = $(sysv_GENSCRPTS)
-sysv_CFG = sysv/vservers.conf
-linuxconf_gen_SCRPTS = linuxconf/newvserver
-linuxconf_src_DATMAN = linuxconf/newvserver.8
-linuxconf_cfg_src_DTA = linuxconf/newvserver.defaults
-linuxconf_XTRAS = linuxconf/newvserver.subst \
- $(linuxconf_cfg_src_DTA) \
- $(linuxconf_src_DATMAN)
-
-linuxconf_GENFILES = $(linuxconf_gen_SCRPTS)
-@ENSC_ENABLE_LINUXCONF_FALSE@linuxconf_DATMAN =
-@ENSC_ENABLE_LINUXCONF_TRUE@linuxconf_DATMAN = $(linuxconf_src_DATMAN)
-@ENSC_ENABLE_LINUXCONF_FALSE@linuxconf_SCRPTS =
-@ENSC_ENABLE_LINUXCONF_TRUE@linuxconf_SCRPTS = $(linuxconf_gen_SCRPTS)
-@ENSC_ENABLE_LINUXCONF_FALSE@linuxconf_cfg_DTA =
-@ENSC_ENABLE_LINUXCONF_TRUE@linuxconf_cfg_DTA = $(linuxconf_cfg_src_DTA)
+scripts_pkglib_src_DTA = scripts/functions \
+ scripts/vserver-build.apt-rpm \
+ scripts/vserver-build.skeleton \
+ scripts/vserver-build.debootstrap \
+ scripts/vserver-build.rpm \
+ scripts/vserver-build.yum \
+ scripts/vserver-build.functions \
+ scripts/vserver-build.functions.apt \
+ scripts/vserver-build.functions.rpm \
+ scripts/vserver-build.functions.pkgmgmt \
+ scripts/vserver-build.functions.yum \
+ scripts/vserver-setup.functions \
+ scripts/vserver.functions \
+ scripts/vserver.start \
+ scripts/vserver.stop \
+ scripts/vserver.suexec
+
+scripts_pkglib_gen_DTA = scripts/util-vserver-vars
+scripts_pkglib_src_SCRPTS = scripts/pkgmgmt \
+ scripts/vapt-get-worker \
+ scripts/vpkg \
+ scripts/vrpm-worker \
+ scripts/vrpm-preload \
+ scripts/start-vservers \
+ scripts/vprocunhide \
+ scripts/vserver-build \
+ scripts/vserver-wrapper \
+ scripts/vservers.grabinfo.sh \
+ scripts/vshelper \
+ scripts/vsysvwrapper \
+ scripts/vyum-worker
+
+scripts_legacy_src_SCRPTS = scripts/legacy/save_s_context \
+ scripts/legacy/vserver \
+ scripts/legacy/rootshell \
+ scripts/legacy/distrib-info \
+ scripts/legacy/vserverkillall
+
+scripts_legacy_gen_SCRPTS = scripts/legacy/vps
+scripts_legacy_src_PRGS = scripts/legacy/vserver-copy
+scripts_sbin_src_PRGS = scripts/chcontext \
+ scripts/vapt-get \
+ scripts/vpstree \
+ scripts/vrpm \
+ scripts/vserver \
+ scripts/vsomething \
+ scripts/vtop \
+ scripts/vyum
+
+scripts_sbin_gen_PRGS =
+scripts_sbincfg_gen_DTA =
+scripts_subst_SRCS = scripts/util-vserver-vars.pathsubst \
+ scripts/legacy/vps.pathsubst
+
+scripts_sbincfg_DTA = $(scripts_sbincfg_gen_DTA)
+tests_dietprogs = tests/getctx \
+ tests/getinitpid \
+ tests/vserver-info
+
+tests_escaperoot_SOURCES = tests/escaperoot.c
+tests_forkbomb_SOURCES = tests/forkbomb.c
+tests_testipc_SOURCES = tests/testipc.c
+tests_testlimit_SOURCES = tests/testlimit.c
+tests_testopenf_SOURCES = tests/testopenf.c
+tests_getctx_SOURCES = tests/getctx.c
+tests_getctx_LDADD = $(VSERVER_LDADDS)
+tests_getctx_LDFLAGS = $(VSERVER_LDFLGS)
+tests_getinitpid_SOURCES = tests/getinitpid.c
+tests_getinitpid_LDADD = $(VSERVER_LDADDS)
+tests_getinitpid_LDFLAGS = $(VSERVER_LDFLGS)
+tests_vserver_info_SOURCES = tests/vserver-info.c
+tests_vserver_info_LDADD = $(VSERVER_LDADDS)
+tests_vserver_info_LDFLAGS = $(VSERVER_LDFLGS)
+sysv_src_SCRPTS = sysv/rebootmgr \
+ sysv/vprocunhide \
+ sysv/vservers-default \
+ sysv/vservers-legacy
+
+sysv_gen_SCRPTS = sysv/v_gated \
+ sysv/v_httpd \
+ sysv/v_named \
+ sysv/v_portmap \
+ sysv/v_sendmail \
+ sysv/v_smb \
+ sysv/v_sshd \
+ sysv/v_xinetd
+
+sysv_conf_DTA = sysv/vservers.conf
+sysv_SUBSTRULE = s!/usr/lib/util-vserver!$(pkglibdir)!g; \
+ s!^USR_SBIN=/usr/sbin$$!USR_SBIN=$(sbindir)!g; \
+ s!^DEFAULT_VSERVERDIR=/vservers$$!DEFAULT_VSERVERDIR=$(vserverdir)!g
+
+contrib_gen_DTA = contrib/manifest.dat
+contrib_subst_SRCS = contrib/manifest.dat.pathsubst
+ENSC_VECTOR_SRCS = ensc_vector/vector-clear.c \
+ ensc_vector/vector-foreach.c \
+ ensc_vector/vector-free.c \
+ ensc_vector/vector-init.c \
+ ensc_vector/vector-insert.c \
+ ensc_vector/vector-internal.h \
+ ensc_vector/vector-popback.c \
+ ensc_vector/vector-pushback.c \
+ ensc_vector/vector-resize.c \
+ ensc_vector/vector-resizeinternal.hc \
+ ensc_vector/vector-search.c \
+ ensc_vector/vector-searchselforg.c \
+ ensc_vector/vector-sort.c \
+ ensc_vector/vector-unique.c \
+ ensc_vector/vector-zeroend.c \
+ ensc_vector/list-at.c \
+ ensc_vector/list-add.c \
+ ensc_vector/list-free.c \
+ ensc_vector/list-init.c \
+ ensc_vector/list-insertinternal.c \
+ ensc_vector/list-internal.h \
+ ensc_vector/list-search.c \
+ ensc_vector/list-searchselforg.c
+
+ENSC_VECTOR_HDRS = ensc_vector/vector.h \
+ ensc_vector/vector.hc \
+ ensc_vector/list.h \
+ ensc_vector/list.hc
+
+libensc_vector_glibc_a_SOURCES = $(ENSC_VECTOR_SRCS)
+libensc_vector_glibc_a_CPPFLAGS = $(AM_CPPFLAGS)
+libensc_vector_diet_a_SOURCES = $(ENSC_VECTOR_SRCS)
+libensc_vector_diet_a_CPPFLAGS = $(AM_CPPFLAGS)
+ENSC_VECTOR_LIBS = $(am__append_8) $(am__append_9)
+@ENSC_USE_GLIBC_FALSE@LIBENSCVECTOR_GLIBC = lib-glibc-not-enabled-error.a
+@ENSC_USE_GLIBC_TRUE@LIBENSCVECTOR_GLIBC = libensc_vector-glibc.a
+@ENSC_USE_DIETLIBC_FALSE@LIBENSCVECTOR_DIET = lib-dietlibc-not-enabled-error.a
+@ENSC_USE_DIETLIBC_TRUE@LIBENSCVECTOR_DIET = libensc_vector-diet.a
+@ENSC_USE_DIETLIBC_FALSE@@ENSC_USE_GLIBC_FALSE@LIBENSCVECTOR = lib-nolib-enabled-error.a
+@ENSC_USE_DIETLIBC_FALSE@@ENSC_USE_GLIBC_TRUE@LIBENSCVECTOR = $(LIBENSCVECTOR_GLIBC)
+@ENSC_USE_DIETLIBC_TRUE@LIBENSCVECTOR = $(LIBENSCVECTOR_DIET)
+ensc_vector_testsuite_test1_SOURCES = ensc_vector/testsuite/test1.c
+ensc_vector_testsuite_test1_LDADD = $(LIBENSCVECTOR)
+ensc_vector_testsuite_test2_SOURCES = ensc_vector/testsuite/test2.c
+ensc_vector_testsuite_test2_LDADD = $(LIBENSCVECTOR)
+ensc_fmt_SRCS = \
+ ensc_fmt/fmt-32.c \
+ ensc_fmt/fmt-64.c \
+ ensc_fmt/fmtx-32.c \
+ ensc_fmt/fmtx-64.c \
+ ensc_fmt/fmt-tai64n.c \
+ ensc_fmt/fmt.h \
+ ensc_fmt/fmt.hc \
+ ensc_fmt/fmtx.hc \
+ ensc_fmt/fmt-internal.h
+
+LIBINTERNAL_GLIBC = lib_internal/libinternal-glibc.a
+@USE_DIETLIBC_FALSE@LIBINTERNAL_DIET = lib-dietlibc-not-enabled-error.a
+@USE_DIETLIBC_TRUE@LIBINTERNAL_DIET = lib_internal/libinternal-diet.a
+@USE_DIETLIBC_FALSE@LIBINTERNAL = $(LIBINTERNAL_GLIBC)
+@USE_DIETLIBC_TRUE@LIBINTERNAL = $(LIBINTERNAL_DIET)
+command_SRCS = lib_internal/command-appendparameter.c \
+ lib_internal/command-setparams.c \
+ lib_internal/command-exec.c\
+ lib_internal/command-free.c \
+ lib_internal/command-init.c \
+ lib_internal/command-reset.c \
+ lib_internal/command-wait.c \
+ lib_internal/command.h
+
+@ENSC_HAVE_C99_COMPILER_TRUE@filecfg_SRCS = lib_internal/filecfg.h \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/filecfg-iteratemultiline.c \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/filecfg-readentryflag.c \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/filecfg-readentrystr.c \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/matchlist-initbyvserver.c \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/matchvserverinfo-init.c \
+@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/unify-copy.c
+
+lib_internal_libinternal_common_SRCS = \
+ lib_internal/errinfo-writeerrno.c \
+ lib_internal/jailintotempdir.c \
+ lib_internal/matchlist-appendfiles.c \
+ lib_internal/matchlist-compare.c \
+ lib_internal/matchlist-destroy.c \
+ lib_internal/matchlist-init.c \
+ lib_internal/matchlist-initmanually.c \
+ lib_internal/matchlist-initrefserverlist.c \
+ lib_internal/matchlist-printid.c \
+ lib_internal/matchvserverinfo-free.c \
+ lib_internal/pathinfo-append.c \
+ lib_internal/pathinfo-test.c \
+ lib_internal/switchtowatchxid.c \
+ lib_internal/unify-deunify.c \
+ lib_internal/unify-settime.c \
+ lib_internal/unify-unify.c \
+ lib_internal/unify-isiunlinkable.c \
+ lib_internal/util-canonify.c \
+ lib_internal/util-exitlikeprocess.c \
+ lib_internal/util-isnumber.c \
+ lib_internal/util-lockfile.c \
+ lib_internal/util-safechdir.c \
+ $(command_SRCS) \
+ $(filecfg_SRCS)
+
+lib_internal_libinternal_diet_a_SOURCES = \
+ $(lib_internal_libinternal_common_SRCS)
+
+lib_internal_libinternal_glibc_a_SOURCES = \
+ $(lib_internal_libinternal_common_SRCS)
+
+lib_internal_libinternal_diet_a_CPPFLAGS = $(AM_CPPFLAGS) $(LIB_DEBUG_CPPFLAGS)
+lib_internal_libinternal_glibc_a_CPPFLAGS = $(AM_CPPFLAGS) $(LIB_DEBUG_CPPFLAGS)
+lib_internal_testsuite_command_SOURCES = lib_internal/testsuite/command.c
+lib_internal_testsuite_command_LDADD = $(LIBINTERNAL_GLIBC) \
+ $(LIBENSCVECTOR_GLIBC)
+
+lib_internal_testsuite_filecfg_ml_SOURCES = lib_internal/testsuite/filecfg-ml.c
+lib_internal_testsuite_filecfg_ml_LDADD = $(LIBINTERNAL_GLIBC)
+lib_internal_testsuite_copy_SOURCES = lib_internal/testsuite/copy.c
+lib_internal_testsuite_copy_LDADD = $(LIBINTERNAL_GLIBC)
+lib_internal_testsuite_sigbus_SOURCES = lib_internal/testsuite/sigbus.c
+vserver_start_vserver_start_bin_SOURCES = \
+ vserver-start/main.c \
+ vserver-start/mount.c \
+ vserver-start/mount.h \
+ vserver-start/defaulttty.c \
+ vserver-start/scriptlets.c \
+ vserver-start/undo.c \
+ vserver-start/undo.h \
+ vserver-start/vshelper.c \
+ vserver-start/vshelper.h \
+ vserver-start/interface.c \
+ vserver-start/interface.h \
+ vserver-start/interface-add.c \
+ vserver-start/interface-read.c \
+ vserver-start/interface-free.hc \
+ vserver-start/interface-init.hc \
+ vserver-start/interface-remove.c \
+ vserver-start/interface-print.c \
+ vserver-start/configuration.c \
+ vserver-start/configuration-init.c \
+ vserver-start/configuration.h \
+ vserver-start/vserver-start.h
+
+vserver_start_vserver_start_bin_LDADD = $(VSERVER_LDADDS) \
+ $(LIBINTERNAL) \
+ $(LIBENSCVECTOR)
+
+vserver_start_vserver_start_bin_LDFLAGS = $(VSERVER_LDFLGS)
+BAD_INC_PATHS = /usr/include|/usr/local/include
+BAD_LIB_PATHS = /usr/lib
+pkgconfdir = $(libdir)/pkgconfig
+pkgconf_DATA = $(addsuffix .pc, $(PKGCONFIG_FILES))
+@ENSC_USE_GLIBC_FALSE@nodist_lib_glibc_not_enabled_error_a_SOURCES = \
+@ENSC_USE_GLIBC_FALSE@ lib-glibc-not-enabled-error.c
+
all: $(BUILT_SOURCES) config.h
- $(MAKE) $(AM_MAKEFLAGS) all-am
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
-.SUFFIXES: .c .cc .o .obj
+.SUFFIXES: .c .lo .o .obj
am--refresh:
@:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/lib/Makefile-files $(top_srcdir)/src/Makefile-files $(top_srcdir)/distrib/Makefile-files $(top_srcdir)/doc/Makefile-files $(top_srcdir)/man/Makefile-files $(top_srcdir)/scripts/Makefile-files $(top_srcdir)/tests/Makefile-files $(top_srcdir)/sysv/Makefile-files $(top_srcdir)/linuxconf/Makefile-files $(top_srcdir)/m4/gpgsig.am $(top_srcdir)/m4/validate.am $(top_srcdir)/m4/changelog.am $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/lib/Makefile-files $(srcdir)/lib/apidoc/Makefile-files $(srcdir)/lib/testsuite/Makefile-files $(top_srcdir)/src/Makefile-files $(top_srcdir)/src/testsuite/Makefile-files $(top_srcdir)/doc/Makefile-files $(top_srcdir)/man/Makefile-files $(top_srcdir)/scripts/Makefile-files $(top_srcdir)/tests/Makefile-files $(top_srcdir)/sysv/Makefile-files $(top_srcdir)/contrib/Makefile-files $(top_srcdir)/ensc_vector/Makefile-files $(srcdir)/ensc_vector/testsuite/Makefile-files $(top_srcdir)/ensc_wrappers/Makefile-files $(top_srcdir)/ensc_fmt/Makefile-files $(top_srcdir)/lib_internal/Makefile-files $(top_srcdir)/lib_internal/testsuite/Makefile-files $(top_srcdir)/vserver-start/Makefile-files $(top_srcdir)/m4/gpgsig.am $(top_srcdir)/m4/validate.am $(top_srcdir)/m4/changelog.am $(top_srcdir)/m4/pkgconfig.am $(top_srcdir)/m4/libsel.am $(top_srcdir)/m4/install-notify.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
- cd $(srcdir) && $(AUTOMAKE) --gnu \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnits '; \
+ cd $(srcdir) && $(AUTOMAKE) --gnits \
&& exit 0; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu Makefile
+ $(AUTOMAKE) --gnits Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
-rm -f config.h stamp-h1
util-vserver.spec: $(top_builddir)/config.status $(srcdir)/util-vserver.spec.in
cd $(top_builddir) && $(SHELL) ./config.status $@
+lib/apidoc/Doxyfile: $(top_builddir)/config.status $(top_srcdir)/lib/apidoc/Doxyfile.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
install-libLIBRARIES: $(lib_LIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
$(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
@$(POST_INSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
+ p=$(am__strip_dir) \
echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
$(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
else :; fi; \
uninstall-libLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
+ p=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLIBRARIES:
-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+lib-dietlibc-not-enabled-error.a: $(lib_dietlibc_not_enabled_error_a_OBJECTS) $(lib_dietlibc_not_enabled_error_a_DEPENDENCIES)
+ -rm -f lib-dietlibc-not-enabled-error.a
+ $(lib_dietlibc_not_enabled_error_a_AR) lib-dietlibc-not-enabled-error.a $(lib_dietlibc_not_enabled_error_a_OBJECTS) $(lib_dietlibc_not_enabled_error_a_LIBADD)
+ $(RANLIB) lib-dietlibc-not-enabled-error.a
+lib-glibc-not-enabled-error.a: $(lib_glibc_not_enabled_error_a_OBJECTS) $(lib_glibc_not_enabled_error_a_DEPENDENCIES)
+ -rm -f lib-glibc-not-enabled-error.a
+ $(lib_glibc_not_enabled_error_a_AR) lib-glibc-not-enabled-error.a $(lib_glibc_not_enabled_error_a_OBJECTS) $(lib_glibc_not_enabled_error_a_LIBADD)
+ $(RANLIB) lib-glibc-not-enabled-error.a
lib/$(am__dirstamp):
@$(mkdir_p) lib
@: > lib/$(am__dirstamp)
@: > lib/$(DEPDIR)/$(am__dirstamp)
lib/lib_libvserver_a-syscall.$(OBJEXT): lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-checkversion.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-isdirectory.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-isfile.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-islink.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getnbipv4root.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getversion.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-capabilities.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getfilecontext.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getinsecurebcaps.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getxidtype.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-isdynamicxid.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-issupported.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-issupportedstring.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-listparser_uint32.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-listparser_uint64.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-personalityflag.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-personalityflag_list.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-personalitytype.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall-syscall.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-val2text-t2v-uint32.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-val2text-t2v-uint64.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-val2text-v2t-uint32.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-val2text-v2t-uint64.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-parselimit.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getprocentry-legacy.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-cflags-compat.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-cflags_list-compat.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-createskeleton.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getvserverbyctx.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getvservercfgstyle.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getvserverappdir.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getvservercfgdir.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getvserverctx.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getvservername.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-getvservervdir.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-xidopt2xid.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
lib/lib_libvserver_a-syscall_rlimit.$(OBJEXT): lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
lib/lib_libvserver_a-syscall_kill.$(OBJEXT): lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
-lib/lib_libvserver_a-checkversion.$(OBJEXT): lib/$(am__dirstamp) \
+lib/lib_libvserver_a-syscall_ctxcreate.$(OBJEXT): lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
-lib/lib_libvserver_a-getctx.$(OBJEXT): lib/$(am__dirstamp) \
+lib/lib_libvserver_a-syscall_ctxmigrate.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_cleanupnamespace.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_enternamespace.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_getccaps.$(OBJEXT): lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
-lib/lib_libvserver_a-getversion.$(OBJEXT): lib/$(am__dirstamp) \
+lib/lib_libvserver_a-syscall_getcflags.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_getiattr.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_getncaps.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_getnflags.$(OBJEXT): lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
-lib/lib_libvserver_a-uint2str.$(OBJEXT): lib/$(am__dirstamp) \
+lib/lib_libvserver_a-syscall_getnxinfo.$(OBJEXT): lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_gettasknid.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_gettaskxid.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_getvhiname.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_getvxinfo.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_netadd.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_netcreate.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_netmigrate.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_netremove.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_setccaps.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_setcflags.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_setiattr.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_setnamespace.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_setncaps.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_setnflags.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_setsched.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_setvhiname.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_waitexit.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-bcaps-v13.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-bcaps_list-v13.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-ccaps-v13.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-ccaps_list-v13.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-cflags-v13.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-cflags_list-v13.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-ncaps-net.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-ncaps_list-net.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-nflags-net.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-nflags_list-net.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_adddlimit.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_getdlimit.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_remdlimit.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_setdlimit.$(OBJEXT): lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+ensc_fmt/$(am__dirstamp):
+ @$(mkdir_p) ensc_fmt
+ @: > ensc_fmt/$(am__dirstamp)
+ensc_fmt/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) ensc_fmt/$(DEPDIR)
+ @: > ensc_fmt/$(DEPDIR)/$(am__dirstamp)
+ensc_fmt/lib_libvserver_a-fmt-32.$(OBJEXT): ensc_fmt/$(am__dirstamp) \
+ ensc_fmt/$(DEPDIR)/$(am__dirstamp)
+ensc_fmt/lib_libvserver_a-fmt-64.$(OBJEXT): ensc_fmt/$(am__dirstamp) \
+ ensc_fmt/$(DEPDIR)/$(am__dirstamp)
+ensc_fmt/lib_libvserver_a-fmtx-32.$(OBJEXT): ensc_fmt/$(am__dirstamp) \
+ ensc_fmt/$(DEPDIR)/$(am__dirstamp)
+ensc_fmt/lib_libvserver_a-fmtx-64.$(OBJEXT): ensc_fmt/$(am__dirstamp) \
+ ensc_fmt/$(DEPDIR)/$(am__dirstamp)
+ensc_fmt/lib_libvserver_a-fmt-tai64n.$(OBJEXT): \
+ ensc_fmt/$(am__dirstamp) ensc_fmt/$(DEPDIR)/$(am__dirstamp)
lib/libvserver.a: $(lib_libvserver_a_OBJECTS) $(lib_libvserver_a_DEPENDENCIES) lib/$(am__dirstamp)
-rm -f lib/libvserver.a
$(lib_libvserver_a_AR) lib/libvserver.a $(lib_libvserver_a_OBJECTS) $(lib_libvserver_a_LIBADD)
$(RANLIB) lib/libvserver.a
+lib_internal/$(am__dirstamp):
+ @$(mkdir_p) lib_internal
+ @: > lib_internal/$(am__dirstamp)
+lib_internal/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) lib_internal/$(DEPDIR)
+ @: > lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-matchlist-init.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-unify-deunify.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-unify-settime.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-unify-unify.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-util-canonify.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-util-isnumber.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-util-lockfile.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-util-safechdir.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-command-setparams.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-command-exec.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-command-free.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-command-init.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-command-reset.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-command-wait.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_diet_a-unify-copy.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/libinternal-diet.a: $(lib_internal_libinternal_diet_a_OBJECTS) $(lib_internal_libinternal_diet_a_DEPENDENCIES) lib_internal/$(am__dirstamp)
+ -rm -f lib_internal/libinternal-diet.a
+ $(lib_internal_libinternal_diet_a_AR) lib_internal/libinternal-diet.a $(lib_internal_libinternal_diet_a_OBJECTS) $(lib_internal_libinternal_diet_a_LIBADD)
+ $(RANLIB) lib_internal/libinternal-diet.a
+lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-unify-settime.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-unify-unify.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-util-canonify.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-command-setparams.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-command-exec.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-command-free.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-command-init.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-command-reset.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-command-wait.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/lib_internal_libinternal_glibc_a-unify-copy.$(OBJEXT): \
+ lib_internal/$(am__dirstamp) \
+ lib_internal/$(DEPDIR)/$(am__dirstamp)
+lib_internal/libinternal-glibc.a: $(lib_internal_libinternal_glibc_a_OBJECTS) $(lib_internal_libinternal_glibc_a_DEPENDENCIES) lib_internal/$(am__dirstamp)
+ -rm -f lib_internal/libinternal-glibc.a
+ $(lib_internal_libinternal_glibc_a_AR) lib_internal/libinternal-glibc.a $(lib_internal_libinternal_glibc_a_OBJECTS) $(lib_internal_libinternal_glibc_a_LIBADD)
+ $(RANLIB) lib_internal/libinternal-glibc.a
+ensc_vector/$(am__dirstamp):
+ @$(mkdir_p) ensc_vector
+ @: > ensc_vector/$(am__dirstamp)
+ensc_vector/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) ensc_vector/$(DEPDIR)
+ @: > ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-clear.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-foreach.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-free.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-init.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-insert.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-popback.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-pushback.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-resize.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-search.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-searchselforg.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-sort.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-unique.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-vector-zeroend.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-list-at.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-list-add.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-list-free.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-list-init.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-list-insertinternal.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-list-search.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_diet_a-list-searchselforg.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+libensc_vector-diet.a: $(libensc_vector_diet_a_OBJECTS) $(libensc_vector_diet_a_DEPENDENCIES)
+ -rm -f libensc_vector-diet.a
+ $(libensc_vector_diet_a_AR) libensc_vector-diet.a $(libensc_vector_diet_a_OBJECTS) $(libensc_vector_diet_a_LIBADD)
+ $(RANLIB) libensc_vector-diet.a
+ensc_vector/libensc_vector_glibc_a-vector-clear.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-foreach.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-free.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-init.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-insert.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-popback.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-pushback.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-resize.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-search.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-searchselforg.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-sort.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-unique.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-vector-zeroend.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-list-at.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-list-add.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-list-free.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-list-init.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-list-insertinternal.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-list-search.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/libensc_vector_glibc_a-list-searchselforg.$(OBJEXT): \
+ ensc_vector/$(am__dirstamp) \
+ ensc_vector/$(DEPDIR)/$(am__dirstamp)
+libensc_vector-glibc.a: $(libensc_vector_glibc_a_OBJECTS) $(libensc_vector_glibc_a_DEPENDENCIES)
+ -rm -f libensc_vector-glibc.a
+ $(libensc_vector_glibc_a_AR) libensc_vector-glibc.a $(libensc_vector_glibc_a_OBJECTS) $(libensc_vector_glibc_a_LIBADD)
+ $(RANLIB) libensc_vector-glibc.a
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+lib/lib_libvserver_la-syscall.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-checkversion.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-isdirectory.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-isfile.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-islink.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getnbipv4root.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getversion.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-capabilities.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getfilecontext.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getinsecurebcaps.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getxidtype.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-isdynamicxid.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-issupported.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-issupportedstring.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-listparser_uint32.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-listparser_uint64.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-personalityflag.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-personalityflag_list.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-personalitytype.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall-syscall.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-val2text-t2v-uint32.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-val2text-t2v-uint64.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-val2text-v2t-uint32.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-val2text-v2t-uint64.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-parselimit.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getprocentry-legacy.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-cflags-compat.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-cflags_list-compat.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-createskeleton.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getvserverbyctx.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getvservercfgstyle.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getvserverappdir.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getvservercfgdir.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getvserverctx.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getvservername.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-getvservervdir.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-xidopt2xid.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_rlimit.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_kill.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_ctxcreate.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_ctxmigrate.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_cleanupnamespace.lo: \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_enternamespace.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_getccaps.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_getcflags.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_getiattr.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_getncaps.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_getnflags.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_getnxinfo.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_gettasknid.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_gettaskxid.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_getvhiname.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_getvxinfo.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_netadd.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_netcreate.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_netmigrate.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_netremove.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_setccaps.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_setcflags.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_setiattr.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_setnamespace.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_setncaps.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_setnflags.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_setsched.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_setvhiname.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_waitexit.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-bcaps-v13.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-bcaps_list-v13.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-ccaps-v13.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-ccaps_list-v13.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-cflags-v13.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-cflags_list-v13.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-ncaps-net.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-ncaps_list-net.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-nflags-net.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-nflags_list-net.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_adddlimit.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_getdlimit.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_remdlimit.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_setdlimit.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+ensc_fmt/lib_libvserver_la-fmt-32.lo: ensc_fmt/$(am__dirstamp) \
+ ensc_fmt/$(DEPDIR)/$(am__dirstamp)
+ensc_fmt/lib_libvserver_la-fmt-64.lo: ensc_fmt/$(am__dirstamp) \
+ ensc_fmt/$(DEPDIR)/$(am__dirstamp)
+ensc_fmt/lib_libvserver_la-fmtx-32.lo: ensc_fmt/$(am__dirstamp) \
+ ensc_fmt/$(DEPDIR)/$(am__dirstamp)
+ensc_fmt/lib_libvserver_la-fmtx-64.lo: ensc_fmt/$(am__dirstamp) \
+ ensc_fmt/$(DEPDIR)/$(am__dirstamp)
+ensc_fmt/lib_libvserver_la-fmt-tai64n.lo: ensc_fmt/$(am__dirstamp) \
+ ensc_fmt/$(DEPDIR)/$(am__dirstamp)
+lib/libvserver.la: $(lib_libvserver_la_OBJECTS) $(lib_libvserver_la_DEPENDENCIES) lib/$(am__dirstamp)
+ $(LINK) -rpath $(libdir) $(lib_libvserver_la_LDFLAGS) $(lib_libvserver_la_OBJECTS) $(lib_libvserver_la_LIBADD) $(LIBS)
+src/$(am__dirstamp):
+ @$(mkdir_p) src
+ @: > src/$(am__dirstamp)
+src/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) src/$(DEPDIR)
+ @: > src/$(DEPDIR)/$(am__dirstamp)
+src/src_rpm_fake_la-rpm-fake.lo: src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/rpm-fake.la: $(src_rpm_fake_la_OBJECTS) $(src_rpm_fake_la_DEPENDENCIES) src/$(am__dirstamp)
+ $(LINK) -rpath $(pkglibdir) $(src_rpm_fake_la_LDFLAGS) $(src_rpm_fake_la_OBJECTS) $(src_rpm_fake_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+install-legacyPROGRAMS: $(legacy_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(legacydir)" || $(mkdir_p) "$(DESTDIR)$(legacydir)"
+ @list='$(legacy_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ || test -f $$p1 \
+ ; then \
+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(legacyPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(legacydir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(legacyPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(legacydir)/$$f" || exit 1; \
+ else :; fi; \
+ done
+
+uninstall-legacyPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(legacy_PROGRAMS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f '$(DESTDIR)$(legacydir)/$$f'"; \
+ rm -f "$(DESTDIR)$(legacydir)/$$f"; \
+ done
+
+clean-legacyPROGRAMS:
+ @list='$(legacy_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+
+installcheck-legacyPROGRAMS: $(legacy_PROGRAMS)
+ bad=0; pid=$$$$; list="$(legacy_PROGRAMS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | \
+ sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(legacydir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+ @list='$(noinst_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
install-pkglibPROGRAMS: $(pkglib_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
@list='$(pkglib_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
+ || test -f $$p1 \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(pkglibPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
- $(INSTALL_PROGRAM_ENV) $(pkglibPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(pkglibdir)/$$f" || exit 1; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(pkglibPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(pkglibPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(pkglibdir)/$$f" || exit 1; \
else :; fi; \
done
done
clean-pkglibPROGRAMS:
- -test -z "$(pkglib_PROGRAMS)" || rm -f $(pkglib_PROGRAMS)
+ @list='$(pkglib_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+
+installcheck-pkglibPROGRAMS: $(pkglib_PROGRAMS)
+ bad=0; pid=$$$$; list="$(pkglib_PROGRAMS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | \
+ sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(pkglibdir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
+ || test -f $$p1 \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
- $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
else :; fi; \
done
done
clean-sbinPROGRAMS:
- -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
-src/$(am__dirstamp):
- @$(mkdir_p) src
- @: > src/$(am__dirstamp)
-src/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) src/$(DEPDIR)
- @: > src/$(DEPDIR)/$(am__dirstamp)
+ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+
+installcheck-sbinPROGRAMS: $(sbin_PROGRAMS)
+ bad=0; pid=$$$$; list="$(sbin_PROGRAMS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | \
+ sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(sbindir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
+ensc_vector/testsuite/$(am__dirstamp):
+ @$(mkdir_p) ensc_vector/testsuite
+ @: > ensc_vector/testsuite/$(am__dirstamp)
+ensc_vector/testsuite/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) ensc_vector/testsuite/$(DEPDIR)
+ @: > ensc_vector/testsuite/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/testsuite/test1.$(OBJEXT): \
+ ensc_vector/testsuite/$(am__dirstamp) \
+ ensc_vector/testsuite/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/testsuite/test1$(EXEEXT): $(ensc_vector_testsuite_test1_OBJECTS) $(ensc_vector_testsuite_test1_DEPENDENCIES) ensc_vector/testsuite/$(am__dirstamp)
+ @rm -f ensc_vector/testsuite/test1$(EXEEXT)
+ $(LINK) $(ensc_vector_testsuite_test1_LDFLAGS) $(ensc_vector_testsuite_test1_OBJECTS) $(ensc_vector_testsuite_test1_LDADD) $(LIBS)
+ensc_vector/testsuite/test2.$(OBJEXT): \
+ ensc_vector/testsuite/$(am__dirstamp) \
+ ensc_vector/testsuite/$(DEPDIR)/$(am__dirstamp)
+ensc_vector/testsuite/test2$(EXEEXT): $(ensc_vector_testsuite_test2_OBJECTS) $(ensc_vector_testsuite_test2_DEPENDENCIES) ensc_vector/testsuite/$(am__dirstamp)
+ @rm -f ensc_vector/testsuite/test2$(EXEEXT)
+ $(LINK) $(ensc_vector_testsuite_test2_LDFLAGS) $(ensc_vector_testsuite_test2_OBJECTS) $(ensc_vector_testsuite_test2_LDADD) $(LIBS)
+lib/testsuite/$(am__dirstamp):
+ @$(mkdir_p) lib/testsuite
+ @: > lib/testsuite/$(am__dirstamp)
+lib/testsuite/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) lib/testsuite/$(DEPDIR)
+ @: > lib/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib/testsuite/lib_testsuite_cflags-cflags.$(OBJEXT): \
+ lib/testsuite/$(am__dirstamp) \
+ lib/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib/testsuite/cflags$(EXEEXT): $(lib_testsuite_cflags_OBJECTS) $(lib_testsuite_cflags_DEPENDENCIES) lib/testsuite/$(am__dirstamp)
+ @rm -f lib/testsuite/cflags$(EXEEXT)
+ $(LINK) $(lib_testsuite_cflags_LDFLAGS) $(lib_testsuite_cflags_OBJECTS) $(lib_testsuite_cflags_LDADD) $(LIBS)
+lib/testsuite/lib_testsuite_fmt-fmt.$(OBJEXT): \
+ lib/testsuite/$(am__dirstamp) \
+ lib/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib/testsuite/fmt$(EXEEXT): $(lib_testsuite_fmt_OBJECTS) $(lib_testsuite_fmt_DEPENDENCIES) lib/testsuite/$(am__dirstamp)
+ @rm -f lib/testsuite/fmt$(EXEEXT)
+ $(LINK) $(lib_testsuite_fmt_LDFLAGS) $(lib_testsuite_fmt_OBJECTS) $(lib_testsuite_fmt_LDADD) $(LIBS)
+lib/testsuite/lib_testsuite_parselimit-parselimit.$(OBJEXT): \
+ lib/testsuite/$(am__dirstamp) \
+ lib/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib/testsuite/parselimit$(EXEEXT): $(lib_testsuite_parselimit_OBJECTS) $(lib_testsuite_parselimit_DEPENDENCIES) lib/testsuite/$(am__dirstamp)
+ @rm -f lib/testsuite/parselimit$(EXEEXT)
+ $(LINK) $(lib_testsuite_parselimit_LDFLAGS) $(lib_testsuite_parselimit_OBJECTS) $(lib_testsuite_parselimit_LDADD) $(LIBS)
+lib/testsuite/lib_testsuite_personality-personality.$(OBJEXT): \
+ lib/testsuite/$(am__dirstamp) \
+ lib/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib/testsuite/personality$(EXEEXT): $(lib_testsuite_personality_OBJECTS) $(lib_testsuite_personality_DEPENDENCIES) lib/testsuite/$(am__dirstamp)
+ @rm -f lib/testsuite/personality$(EXEEXT)
+ $(LINK) $(lib_testsuite_personality_LDFLAGS) $(lib_testsuite_personality_OBJECTS) $(lib_testsuite_personality_LDADD) $(LIBS)
+lib_internal/testsuite/$(am__dirstamp):
+ @$(mkdir_p) lib_internal/testsuite
+ @: > lib_internal/testsuite/$(am__dirstamp)
+lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) lib_internal/testsuite/$(DEPDIR)
+ @: > lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib_internal/testsuite/command.$(OBJEXT): \
+ lib_internal/testsuite/$(am__dirstamp) \
+ lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib_internal/testsuite/command$(EXEEXT): $(lib_internal_testsuite_command_OBJECTS) $(lib_internal_testsuite_command_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp)
+ @rm -f lib_internal/testsuite/command$(EXEEXT)
+ $(LINK) $(lib_internal_testsuite_command_LDFLAGS) $(lib_internal_testsuite_command_OBJECTS) $(lib_internal_testsuite_command_LDADD) $(LIBS)
+lib_internal/testsuite/copy.$(OBJEXT): \
+ lib_internal/testsuite/$(am__dirstamp) \
+ lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib_internal/testsuite/copy$(EXEEXT): $(lib_internal_testsuite_copy_OBJECTS) $(lib_internal_testsuite_copy_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp)
+ @rm -f lib_internal/testsuite/copy$(EXEEXT)
+ $(LINK) $(lib_internal_testsuite_copy_LDFLAGS) $(lib_internal_testsuite_copy_OBJECTS) $(lib_internal_testsuite_copy_LDADD) $(LIBS)
+lib_internal/testsuite/filecfg-ml.$(OBJEXT): \
+ lib_internal/testsuite/$(am__dirstamp) \
+ lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib_internal/testsuite/filecfg-ml$(EXEEXT): $(lib_internal_testsuite_filecfg_ml_OBJECTS) $(lib_internal_testsuite_filecfg_ml_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp)
+ @rm -f lib_internal/testsuite/filecfg-ml$(EXEEXT)
+ $(LINK) $(lib_internal_testsuite_filecfg_ml_LDFLAGS) $(lib_internal_testsuite_filecfg_ml_OBJECTS) $(lib_internal_testsuite_filecfg_ml_LDADD) $(LIBS)
+lib_internal/testsuite/sigbus.$(OBJEXT): \
+ lib_internal/testsuite/$(am__dirstamp) \
+ lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib_internal/testsuite/sigbus$(EXEEXT): $(lib_internal_testsuite_sigbus_OBJECTS) $(lib_internal_testsuite_sigbus_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp)
+ @rm -f lib_internal/testsuite/sigbus$(EXEEXT)
+ $(LINK) $(lib_internal_testsuite_sigbus_LDFLAGS) $(lib_internal_testsuite_sigbus_OBJECTS) $(lib_internal_testsuite_sigbus_LDADD) $(LIBS)
src/capchroot.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/capchroot$(EXEEXT): $(src_capchroot_OBJECTS) $(src_capchroot_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/capchroot$(EXEEXT)
$(LINK) $(src_capchroot_LDFLAGS) $(src_capchroot_OBJECTS) $(src_capchroot_LDADD) $(LIBS)
+src/chain-echo.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/chain-echo$(EXEEXT): $(src_chain_echo_OBJECTS) $(src_chain_echo_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/chain-echo$(EXEEXT)
+ $(LINK) $(src_chain_echo_LDFLAGS) $(src_chain_echo_OBJECTS) $(src_chain_echo_LDADD) $(LIBS)
src/chbind.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/chbind$(EXEEXT): $(src_chbind_OBJECTS) $(src_chbind_DEPENDENCIES) src/$(am__dirstamp)
$(LINK) $(src_chbind_LDFLAGS) $(src_chbind_OBJECTS) $(src_chbind_LDADD) $(LIBS)
src/chcontext.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
-src/chcontext$(EXEEXT): $(src_chcontext_OBJECTS) $(src_chcontext_DEPENDENCIES) src/$(am__dirstamp)
- @rm -f src/chcontext$(EXEEXT)
- $(LINK) $(src_chcontext_LDFLAGS) $(src_chcontext_OBJECTS) $(src_chcontext_LDADD) $(LIBS)
+src/chcontext-compat$(EXEEXT): $(src_chcontext_compat_OBJECTS) $(src_chcontext_compat_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/chcontext-compat$(EXEEXT)
+ $(LINK) $(src_chcontext_compat_LDFLAGS) $(src_chcontext_compat_OBJECTS) $(src_chcontext_compat_LDADD) $(LIBS)
+src/check-unixfile.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/check-unixfile$(EXEEXT): $(src_check_unixfile_OBJECTS) $(src_check_unixfile_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/check-unixfile$(EXEEXT)
+ $(LINK) $(src_check_unixfile_LDFLAGS) $(src_check_unixfile_OBJECTS) $(src_check_unixfile_LDADD) $(LIBS)
+src/chroot-sh.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/chroot-sh$(EXEEXT): $(src_chroot_sh_OBJECTS) $(src_chroot_sh_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/chroot-sh$(EXEEXT)
+ $(LINK) $(src_chroot_sh_LDFLAGS) $(src_chroot_sh_OBJECTS) $(src_chroot_sh_LDADD) $(LIBS)
+src/fstool.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/chxid.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+src/chxid$(EXEEXT): $(src_chxid_OBJECTS) $(src_chxid_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/chxid$(EXEEXT)
+ $(LINK) $(src_chxid_LDFLAGS) $(src_chxid_OBJECTS) $(src_chxid_LDADD) $(LIBS)
+src/exec-cd.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/exec-cd$(EXEEXT): $(src_exec_cd_OBJECTS) $(src_exec_cd_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/exec-cd$(EXEEXT)
+ $(LINK) $(src_exec_cd_LDFLAGS) $(src_exec_cd_OBJECTS) $(src_exec_cd_LDADD) $(LIBS)
+src/exec-ulimit.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/exec-ulimit$(EXEEXT): $(src_exec_ulimit_OBJECTS) $(src_exec_ulimit_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/exec-ulimit$(EXEEXT)
+ $(LINK) $(src_exec_ulimit_LDFLAGS) $(src_exec_ulimit_OBJECTS) $(src_exec_ulimit_LDADD) $(LIBS)
src/fakerunlevel.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/fakerunlevel$(EXEEXT): $(src_fakerunlevel_OBJECTS) $(src_fakerunlevel_DEPENDENCIES) src/$(am__dirstamp)
src/ifspec$(EXEEXT): $(src_ifspec_OBJECTS) $(src_ifspec_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/ifspec$(EXEEXT)
$(LINK) $(src_ifspec_LDFLAGS) $(src_ifspec_OBJECTS) $(src_ifspec_LDADD) $(LIBS)
+src/keep-ctx-alive.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/keep-ctx-alive$(EXEEXT): $(src_keep_ctx_alive_OBJECTS) $(src_keep_ctx_alive_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/keep-ctx-alive$(EXEEXT)
+ $(LINK) $(src_keep_ctx_alive_LDFLAGS) $(src_keep_ctx_alive_OBJECTS) $(src_keep_ctx_alive_LDADD) $(LIBS)
src/listdevip.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/listdevip$(EXEEXT): $(src_listdevip_OBJECTS) $(src_listdevip_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/listdevip$(EXEEXT)
$(LINK) $(src_listdevip_LDFLAGS) $(src_listdevip_OBJECTS) $(src_listdevip_LDADD) $(LIBS)
+src/lockfile.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/lockfile$(EXEEXT): $(src_lockfile_OBJECTS) $(src_lockfile_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/lockfile$(EXEEXT)
+ $(LINK) $(src_lockfile_LDFLAGS) $(src_lockfile_OBJECTS) $(src_lockfile_LDADD) $(LIBS)
+src/lsxid.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+src/lsxid$(EXEEXT): $(src_lsxid_OBJECTS) $(src_lsxid_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/lsxid$(EXEEXT)
+ $(LINK) $(src_lsxid_LDFLAGS) $(src_lsxid_OBJECTS) $(src_lsxid_LDADD) $(LIBS)
+src/mask2prefix.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/mask2prefix$(EXEEXT): $(src_mask2prefix_OBJECTS) $(src_mask2prefix_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/mask2prefix$(EXEEXT)
+ $(LINK) $(src_mask2prefix_LDFLAGS) $(src_mask2prefix_OBJECTS) $(src_mask2prefix_LDADD) $(LIBS)
src/parserpmdump.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/parserpmdump$(EXEEXT): $(src_parserpmdump_OBJECTS) $(src_parserpmdump_DEPENDENCIES) src/$(am__dirstamp)
src/readlink$(EXEEXT): $(src_readlink_OBJECTS) $(src_readlink_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/readlink$(EXEEXT)
$(LINK) $(src_readlink_LDFLAGS) $(src_readlink_OBJECTS) $(src_readlink_LDADD) $(LIBS)
-src/src_rebootmgr-rebootmgr.$(OBJEXT): src/$(am__dirstamp) \
+src/rebootmgr.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/rebootmgr$(EXEEXT): $(src_rebootmgr_OBJECTS) $(src_rebootmgr_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/rebootmgr$(EXEEXT)
src/reducecap$(EXEEXT): $(src_reducecap_OBJECTS) $(src_reducecap_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/reducecap$(EXEEXT)
$(LINK) $(src_reducecap_LDFLAGS) $(src_reducecap_OBJECTS) $(src_reducecap_LDADD) $(LIBS)
+src/rpm-fake-resolver.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/rpm-fake-resolver$(EXEEXT): $(src_rpm_fake_resolver_OBJECTS) $(src_rpm_fake_resolver_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/rpm-fake-resolver$(EXEEXT)
+ $(LINK) $(src_rpm_fake_resolver_LDFLAGS) $(src_rpm_fake_resolver_OBJECTS) $(src_rpm_fake_resolver_LDADD) $(LIBS)
+src/save_ctxinfo.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/save_ctxinfo$(EXEEXT): $(src_save_ctxinfo_OBJECTS) $(src_save_ctxinfo_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/save_ctxinfo$(EXEEXT)
+ $(LINK) $(src_save_ctxinfo_LDFLAGS) $(src_save_ctxinfo_OBJECTS) $(src_save_ctxinfo_LDADD) $(LIBS)
+src/secure-mount.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/secure-mount$(EXEEXT): $(src_secure_mount_OBJECTS) $(src_secure_mount_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/secure-mount$(EXEEXT)
+ $(LINK) $(src_secure_mount_LDFLAGS) $(src_secure_mount_OBJECTS) $(src_secure_mount_LDADD) $(LIBS)
+src/setattr.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/setattr$(EXEEXT): $(src_setattr_OBJECTS) $(src_setattr_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/setattr$(EXEEXT)
+ $(LINK) $(src_setattr_LDFLAGS) $(src_setattr_OBJECTS) $(src_setattr_LDADD) $(LIBS)
src/showattr.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/showattr$(EXEEXT): $(src_showattr_OBJECTS) $(src_showattr_DEPENDENCIES) src/$(am__dirstamp)
src/showperm$(EXEEXT): $(src_showperm_OBJECTS) $(src_showperm_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/showperm$(EXEEXT)
$(LINK) $(src_showperm_LDFLAGS) $(src_showperm_OBJECTS) $(src_showperm_LDADD) $(LIBS)
-src/vbuild.$(OBJEXT): src/$(am__dirstamp) \
+src/sigexec.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/sigexec$(EXEEXT): $(src_sigexec_OBJECTS) $(src_sigexec_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/sigexec$(EXEEXT)
+ $(LINK) $(src_sigexec_LDFLAGS) $(src_sigexec_OBJECTS) $(src_sigexec_LDADD) $(LIBS)
+src/testsuite/$(am__dirstamp):
+ @$(mkdir_p) src/testsuite
+ @: > src/testsuite/$(am__dirstamp)
+src/testsuite/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) src/testsuite/$(DEPDIR)
+ @: > src/testsuite/$(DEPDIR)/$(am__dirstamp)
+src/testsuite/chbind-test.$(OBJEXT): src/testsuite/$(am__dirstamp) \
+ src/testsuite/$(DEPDIR)/$(am__dirstamp)
+src/testsuite/chbind-test$(EXEEXT): $(src_testsuite_chbind_test_OBJECTS) $(src_testsuite_chbind_test_DEPENDENCIES) src/testsuite/$(am__dirstamp)
+ @rm -f src/testsuite/chbind-test$(EXEEXT)
+ $(LINK) $(src_testsuite_chbind_test_LDFLAGS) $(src_testsuite_chbind_test_OBJECTS) $(src_testsuite_chbind_test_LDADD) $(LIBS)
+src/testsuite/chcontext-test.$(OBJEXT): src/testsuite/$(am__dirstamp) \
+ src/testsuite/$(DEPDIR)/$(am__dirstamp)
+src/testsuite/chcontext-test$(EXEEXT): $(src_testsuite_chcontext_test_OBJECTS) $(src_testsuite_chcontext_test_DEPENDENCIES) src/testsuite/$(am__dirstamp)
+ @rm -f src/testsuite/chcontext-test$(EXEEXT)
+ $(LINK) $(src_testsuite_chcontext_test_LDFLAGS) $(src_testsuite_chcontext_test_OBJECTS) $(src_testsuite_chcontext_test_LDADD) $(LIBS)
+src/testsuite/rpm-fake-test.$(OBJEXT): src/testsuite/$(am__dirstamp) \
+ src/testsuite/$(DEPDIR)/$(am__dirstamp)
+src/testsuite/rpm-fake-test$(EXEEXT): $(src_testsuite_rpm_fake_test_OBJECTS) $(src_testsuite_rpm_fake_test_DEPENDENCIES) src/testsuite/$(am__dirstamp)
+ @rm -f src/testsuite/rpm-fake-test$(EXEEXT)
+ $(LINK) $(src_testsuite_rpm_fake_test_LDFLAGS) $(src_testsuite_rpm_fake_test_OBJECTS) $(src_testsuite_rpm_fake_test_LDADD) $(LIBS)
+src/testsuite/src_testsuite_vunify_functest-vunify-functest.$(OBJEXT): \
+ src/testsuite/$(am__dirstamp) \
+ src/testsuite/$(DEPDIR)/$(am__dirstamp)
+src/testsuite/vunify-functest$(EXEEXT): $(src_testsuite_vunify_functest_OBJECTS) $(src_testsuite_vunify_functest_DEPENDENCIES) src/testsuite/$(am__dirstamp)
+ @rm -f src/testsuite/vunify-functest$(EXEEXT)
+ $(LINK) $(src_testsuite_vunify_functest_LDFLAGS) $(src_testsuite_vunify_functest_OBJECTS) $(src_testsuite_vunify_functest_LDADD) $(LIBS)
+src/vattribute.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
-src/vutil.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
-src/vbuild$(EXEEXT): $(src_vbuild_OBJECTS) $(src_vbuild_DEPENDENCIES) src/$(am__dirstamp)
- @rm -f src/vbuild$(EXEEXT)
- $(CXXLINK) $(src_vbuild_LDFLAGS) $(src_vbuild_OBJECTS) $(src_vbuild_LDADD) $(LIBS)
-src/vcheck.$(OBJEXT): src/$(am__dirstamp) \
+src/vattribute$(EXEEXT): $(src_vattribute_OBJECTS) $(src_vattribute_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vattribute$(EXEEXT)
+ $(LINK) $(src_vattribute_LDFLAGS) $(src_vattribute_OBJECTS) $(src_vattribute_LDADD) $(LIBS)
+src/vcontext.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
-src/vcheck$(EXEEXT): $(src_vcheck_OBJECTS) $(src_vcheck_DEPENDENCIES) src/$(am__dirstamp)
- @rm -f src/vcheck$(EXEEXT)
- $(CXXLINK) $(src_vcheck_LDFLAGS) $(src_vcheck_OBJECTS) $(src_vcheck_LDADD) $(LIBS)
+src/vcontext$(EXEEXT): $(src_vcontext_OBJECTS) $(src_vcontext_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vcontext$(EXEEXT)
+ $(LINK) $(src_vcontext_LDFLAGS) $(src_vcontext_OBJECTS) $(src_vcontext_LDADD) $(LIBS)
+src/vcopy.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+src/vcopy$(EXEEXT): $(src_vcopy_OBJECTS) $(src_vcopy_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vcopy$(EXEEXT)
+ $(LINK) $(src_vcopy_LDFLAGS) $(src_vcopy_OBJECTS) $(src_vcopy_LDADD) $(LIBS)
+src/vdlimit.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/vdlimit$(EXEEXT): $(src_vdlimit_OBJECTS) $(src_vdlimit_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vdlimit$(EXEEXT)
+ $(LINK) $(src_vdlimit_LDFLAGS) $(src_vdlimit_OBJECTS) $(src_vdlimit_LDADD) $(LIBS)
src/vdu.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
src/vdu$(EXEEXT): $(src_vdu_OBJECTS) $(src_vdu_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/vdu$(EXEEXT)
$(LINK) $(src_vdu_LDFLAGS) $(src_vdu_OBJECTS) $(src_vdu_LDADD) $(LIBS)
-src/vfiles.$(OBJEXT): src/$(am__dirstamp) \
+src/vhashify.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
-src/vfiles$(EXEEXT): $(src_vfiles_OBJECTS) $(src_vfiles_DEPENDENCIES) src/$(am__dirstamp)
- @rm -f src/vfiles$(EXEEXT)
- $(CXXLINK) $(src_vfiles_LDFLAGS) $(src_vfiles_OBJECTS) $(src_vfiles_LDADD) $(LIBS)
+src/vhashify$(EXEEXT): $(src_vhashify_OBJECTS) $(src_vhashify_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vhashify$(EXEEXT)
+ $(LINK) $(src_vhashify_LDFLAGS) $(src_vhashify_OBJECTS) $(src_vhashify_LDADD) $(LIBS)
src/src_vkill-vkill.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/vkill$(EXEEXT): $(src_vkill_OBJECTS) $(src_vkill_DEPENDENCIES) src/$(am__dirstamp)
src/vlimit$(EXEEXT): $(src_vlimit_OBJECTS) $(src_vlimit_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/vlimit$(EXEEXT)
$(LINK) $(src_vlimit_LDFLAGS) $(src_vlimit_OBJECTS) $(src_vlimit_LDADD) $(LIBS)
+src/vnamespace.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/vnamespace$(EXEEXT): $(src_vnamespace_OBJECTS) $(src_vnamespace_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vnamespace$(EXEEXT)
+ $(LINK) $(src_vnamespace_LDFLAGS) $(src_vnamespace_OBJECTS) $(src_vnamespace_LDADD) $(LIBS)
+src/vps.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+src/vps$(EXEEXT): $(src_vps_OBJECTS) $(src_vps_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vps$(EXEEXT)
+ $(LINK) $(src_vps_LDFLAGS) $(src_vps_OBJECTS) $(src_vps_LDADD) $(LIBS)
src/vreboot.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/vreboot$(EXEEXT): $(src_vreboot_OBJECTS) $(src_vreboot_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/vreboot$(EXEEXT)
$(LINK) $(src_vreboot_LDFLAGS) $(src_vreboot_OBJECTS) $(src_vreboot_LDADD) $(LIBS)
+src/vrsetup.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/vrsetup$(EXEEXT): $(src_vrsetup_OBJECTS) $(src_vrsetup_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vrsetup$(EXEEXT)
+ $(LINK) $(src_vrsetup_LDFLAGS) $(src_vrsetup_OBJECTS) $(src_vrsetup_LDADD) $(LIBS)
+src/vsched.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/vsched$(EXEEXT): $(src_vsched_OBJECTS) $(src_vsched_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vsched$(EXEEXT)
+ $(LINK) $(src_vsched_LDFLAGS) $(src_vsched_OBJECTS) $(src_vsched_LDADD) $(LIBS)
+src/vserver-info.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/vserver-info$(EXEEXT): $(src_vserver_info_OBJECTS) $(src_vserver_info_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vserver-info$(EXEEXT)
+ $(LINK) $(src_vserver_info_LDFLAGS) $(src_vserver_info_OBJECTS) $(src_vserver_info_LDADD) $(LIBS)
src/vserver-stat.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/vserver-stat$(EXEEXT): $(src_vserver_stat_OBJECTS) $(src_vserver_stat_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/vserver-stat$(EXEEXT)
$(LINK) $(src_vserver_stat_LDFLAGS) $(src_vserver_stat_OBJECTS) $(src_vserver_stat_LDADD) $(LIBS)
-src/src_vunify-vunify.$(OBJEXT): src/$(am__dirstamp) \
+src/vshelper-sync.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/vshelper-sync$(EXEEXT): $(src_vshelper_sync_OBJECTS) $(src_vshelper_sync_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vshelper-sync$(EXEEXT)
+ $(LINK) $(src_vshelper_sync_LDFLAGS) $(src_vshelper_sync_OBJECTS) $(src_vshelper_sync_LDADD) $(LIBS)
+src/vuname.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
-src/src_vunify-vutil.$(OBJEXT): src/$(am__dirstamp) \
+src/vuname$(EXEEXT): $(src_vuname_OBJECTS) $(src_vuname_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vuname$(EXEEXT)
+ $(LINK) $(src_vuname_LDFLAGS) $(src_vuname_OBJECTS) $(src_vuname_LDADD) $(LIBS)
+src/vunify.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/vunify$(EXEEXT): $(src_vunify_OBJECTS) $(src_vunify_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/vunify$(EXEEXT)
- $(CXXLINK) $(src_vunify_LDFLAGS) $(src_vunify_OBJECTS) $(src_vunify_LDADD) $(LIBS)
+ $(LINK) $(src_vunify_LDFLAGS) $(src_vunify_OBJECTS) $(src_vunify_LDADD) $(LIBS)
+src/vwait.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+src/vwait$(EXEEXT): $(src_vwait_OBJECTS) $(src_vwait_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vwait$(EXEEXT)
+ $(LINK) $(src_vwait_LDFLAGS) $(src_vwait_OBJECTS) $(src_vwait_LDADD) $(LIBS)
tests/$(am__dirstamp):
@$(mkdir_p) tests
@: > tests/$(am__dirstamp)
tests/$(DEPDIR)/$(am__dirstamp)
tests/escaperoot$(EXEEXT): $(tests_escaperoot_OBJECTS) $(tests_escaperoot_DEPENDENCIES) tests/$(am__dirstamp)
@rm -f tests/escaperoot$(EXEEXT)
- $(CXXLINK) $(tests_escaperoot_LDFLAGS) $(tests_escaperoot_OBJECTS) $(tests_escaperoot_LDADD) $(LIBS)
+ $(LINK) $(tests_escaperoot_LDFLAGS) $(tests_escaperoot_OBJECTS) $(tests_escaperoot_LDADD) $(LIBS)
tests/forkbomb.$(OBJEXT): tests/$(am__dirstamp) \
tests/$(DEPDIR)/$(am__dirstamp)
tests/forkbomb$(EXEEXT): $(tests_forkbomb_OBJECTS) $(tests_forkbomb_DEPENDENCIES) tests/$(am__dirstamp)
@rm -f tests/forkbomb$(EXEEXT)
- $(CXXLINK) $(tests_forkbomb_LDFLAGS) $(tests_forkbomb_OBJECTS) $(tests_forkbomb_LDADD) $(LIBS)
+ $(LINK) $(tests_forkbomb_LDFLAGS) $(tests_forkbomb_OBJECTS) $(tests_forkbomb_LDADD) $(LIBS)
+tests/getctx.$(OBJEXT): tests/$(am__dirstamp) \
+ tests/$(DEPDIR)/$(am__dirstamp)
+tests/getctx$(EXEEXT): $(tests_getctx_OBJECTS) $(tests_getctx_DEPENDENCIES) tests/$(am__dirstamp)
+ @rm -f tests/getctx$(EXEEXT)
+ $(LINK) $(tests_getctx_LDFLAGS) $(tests_getctx_OBJECTS) $(tests_getctx_LDADD) $(LIBS)
+tests/getinitpid.$(OBJEXT): tests/$(am__dirstamp) \
+ tests/$(DEPDIR)/$(am__dirstamp)
+tests/getinitpid$(EXEEXT): $(tests_getinitpid_OBJECTS) $(tests_getinitpid_DEPENDENCIES) tests/$(am__dirstamp)
+ @rm -f tests/getinitpid$(EXEEXT)
+ $(LINK) $(tests_getinitpid_LDFLAGS) $(tests_getinitpid_OBJECTS) $(tests_getinitpid_LDADD) $(LIBS)
tests/testipc.$(OBJEXT): tests/$(am__dirstamp) \
tests/$(DEPDIR)/$(am__dirstamp)
tests/testipc$(EXEEXT): $(tests_testipc_OBJECTS) $(tests_testipc_DEPENDENCIES) tests/$(am__dirstamp)
@rm -f tests/testipc$(EXEEXT)
- $(CXXLINK) $(tests_testipc_LDFLAGS) $(tests_testipc_OBJECTS) $(tests_testipc_LDADD) $(LIBS)
+ $(LINK) $(tests_testipc_LDFLAGS) $(tests_testipc_OBJECTS) $(tests_testipc_LDADD) $(LIBS)
tests/testlimit.$(OBJEXT): tests/$(am__dirstamp) \
tests/$(DEPDIR)/$(am__dirstamp)
tests/testlimit$(EXEEXT): $(tests_testlimit_OBJECTS) $(tests_testlimit_DEPENDENCIES) tests/$(am__dirstamp)
@rm -f tests/testlimit$(EXEEXT)
- $(CXXLINK) $(tests_testlimit_LDFLAGS) $(tests_testlimit_OBJECTS) $(tests_testlimit_LDADD) $(LIBS)
+ $(LINK) $(tests_testlimit_LDFLAGS) $(tests_testlimit_OBJECTS) $(tests_testlimit_LDADD) $(LIBS)
tests/testopenf.$(OBJEXT): tests/$(am__dirstamp) \
tests/$(DEPDIR)/$(am__dirstamp)
tests/testopenf$(EXEEXT): $(tests_testopenf_OBJECTS) $(tests_testopenf_DEPENDENCIES) tests/$(am__dirstamp)
@rm -f tests/testopenf$(EXEEXT)
- $(CXXLINK) $(tests_testopenf_LDFLAGS) $(tests_testopenf_OBJECTS) $(tests_testopenf_LDADD) $(LIBS)
+ $(LINK) $(tests_testopenf_LDFLAGS) $(tests_testopenf_OBJECTS) $(tests_testopenf_LDADD) $(LIBS)
+tests/vserver-info.$(OBJEXT): tests/$(am__dirstamp) \
+ tests/$(DEPDIR)/$(am__dirstamp)
+tests/vserver-info$(EXEEXT): $(tests_vserver_info_OBJECTS) $(tests_vserver_info_DEPENDENCIES) tests/$(am__dirstamp)
+ @rm -f tests/vserver-info$(EXEEXT)
+ $(LINK) $(tests_vserver_info_LDFLAGS) $(tests_vserver_info_OBJECTS) $(tests_vserver_info_LDADD) $(LIBS)
+vserver-start/$(am__dirstamp):
+ @$(mkdir_p) vserver-start
+ @: > vserver-start/$(am__dirstamp)
+vserver-start/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) vserver-start/$(DEPDIR)
+ @: > vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/main.$(OBJEXT): vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/mount.$(OBJEXT): vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/defaulttty.$(OBJEXT): vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/scriptlets.$(OBJEXT): vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/undo.$(OBJEXT): vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/vshelper.$(OBJEXT): vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/interface.$(OBJEXT): vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/interface-add.$(OBJEXT): vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/interface-read.$(OBJEXT): vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/interface-remove.$(OBJEXT): \
+ vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/interface-print.$(OBJEXT): \
+ vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/configuration.$(OBJEXT): vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/configuration-init.$(OBJEXT): \
+ vserver-start/$(am__dirstamp) \
+ vserver-start/$(DEPDIR)/$(am__dirstamp)
+vserver-start/vserver.start.bin$(EXEEXT): $(vserver_start_vserver_start_bin_OBJECTS) $(vserver_start_vserver_start_bin_DEPENDENCIES) vserver-start/$(am__dirstamp)
+ @rm -f vserver-start/vserver.start.bin$(EXEEXT)
+ $(LINK) $(vserver_start_vserver_start_bin_LDFLAGS) $(vserver_start_vserver_start_bin_OBJECTS) $(vserver_start_vserver_start_bin_LDADD) $(LIBS)
+install-initrdSCRIPTS: $(initrd_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ test -z "$(initrddir)" || $(mkdir_p) "$(DESTDIR)$(initrddir)"
+ @list='$(initrd_SCRIPTS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f $$d$$p; then \
+ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+ echo " $(initrdSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(initrddir)/$$f'"; \
+ $(initrdSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(initrddir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-initrdSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(initrd_SCRIPTS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+ echo " rm -f '$(DESTDIR)$(initrddir)/$$f'"; \
+ rm -f "$(DESTDIR)$(initrddir)/$$f"; \
+ done
+
+installcheck-initrdSCRIPTS: $(initrd_SCRIPTS)
+ bad=0; pid=$$$$; list="$(initrd_SCRIPTS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | sed 's,^.*/,,;$(transform)'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(initrddir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
install-legacySCRIPTS: $(legacy_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(legacydir)" || $(mkdir_p) "$(DESTDIR)$(legacydir)"
echo " rm -f '$(DESTDIR)$(legacydir)/$$f'"; \
rm -f "$(DESTDIR)$(legacydir)/$$f"; \
done
+
+installcheck-legacySCRIPTS: $(legacy_SCRIPTS)
+ bad=0; pid=$$$$; list="$(legacy_SCRIPTS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | sed 's,^.*/,,;$(transform)'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(legacydir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
install-pkglibSCRIPTS: $(pkglib_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
done
+
+installcheck-pkglibSCRIPTS: $(pkglib_SCRIPTS)
+ bad=0; pid=$$$$; list="$(pkglib_SCRIPTS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | sed 's,^.*/,,;$(transform)'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(pkglibdir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
install-sbinSCRIPTS: $(sbin_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
rm -f "$(DESTDIR)$(sbindir)/$$f"; \
done
-install-sysvSCRIPTS: $(sysv_SCRIPTS)
- @$(NORMAL_INSTALL)
- test -z "$(sysvdir)" || $(mkdir_p) "$(DESTDIR)$(sysvdir)"
- @list='$(sysv_SCRIPTS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(sysvSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(sysvdir)/$$f'"; \
- $(sysvSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(sysvdir)/$$f"; \
- else :; fi; \
- done
-uninstall-sysvSCRIPTS:
- @$(NORMAL_UNINSTALL)
- @list='$(sysv_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(sysvdir)/$$f'"; \
- rm -f "$(DESTDIR)$(sysvdir)/$$f"; \
- done
+installcheck-sbinSCRIPTS: $(sbin_SCRIPTS)
+ bad=0; pid=$$$$; list="$(sbin_SCRIPTS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | sed 's,^.*/,,;$(transform)'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(sbindir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
mostlyclean-compile:
-rm -f *.$(OBJEXT)
+ -rm -f ensc_fmt/lib_libvserver_a-fmt-32.$(OBJEXT)
+ -rm -f ensc_fmt/lib_libvserver_a-fmt-64.$(OBJEXT)
+ -rm -f ensc_fmt/lib_libvserver_a-fmt-tai64n.$(OBJEXT)
+ -rm -f ensc_fmt/lib_libvserver_a-fmtx-32.$(OBJEXT)
+ -rm -f ensc_fmt/lib_libvserver_a-fmtx-64.$(OBJEXT)
+ -rm -f ensc_fmt/lib_libvserver_la-fmt-32.$(OBJEXT)
+ -rm -f ensc_fmt/lib_libvserver_la-fmt-32.lo
+ -rm -f ensc_fmt/lib_libvserver_la-fmt-64.$(OBJEXT)
+ -rm -f ensc_fmt/lib_libvserver_la-fmt-64.lo
+ -rm -f ensc_fmt/lib_libvserver_la-fmt-tai64n.$(OBJEXT)
+ -rm -f ensc_fmt/lib_libvserver_la-fmt-tai64n.lo
+ -rm -f ensc_fmt/lib_libvserver_la-fmtx-32.$(OBJEXT)
+ -rm -f ensc_fmt/lib_libvserver_la-fmtx-32.lo
+ -rm -f ensc_fmt/lib_libvserver_la-fmtx-64.$(OBJEXT)
+ -rm -f ensc_fmt/lib_libvserver_la-fmtx-64.lo
+ -rm -f ensc_vector/libensc_vector_diet_a-list-add.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-list-at.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-list-free.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-list-init.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-list-insertinternal.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-list-search.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-list-searchselforg.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-clear.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-foreach.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-free.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-init.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-insert.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-popback.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-pushback.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-resize.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-search.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-searchselforg.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-sort.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-unique.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_diet_a-vector-zeroend.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-list-add.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-list-at.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-list-free.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-list-init.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-list-insertinternal.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-list-search.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-list-searchselforg.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-clear.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-foreach.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-free.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-init.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-insert.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-popback.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-pushback.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-resize.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-search.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-searchselforg.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-sort.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-unique.$(OBJEXT)
+ -rm -f ensc_vector/libensc_vector_glibc_a-vector-zeroend.$(OBJEXT)
+ -rm -f ensc_vector/testsuite/test1.$(OBJEXT)
+ -rm -f ensc_vector/testsuite/test2.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-bcaps-v13.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-bcaps_list-v13.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-capabilities.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-ccaps-v13.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-ccaps_list-v13.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-cflags-compat.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-cflags-v13.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-cflags_list-compat.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-cflags_list-v13.$(OBJEXT)
-rm -f lib/lib_libvserver_a-checkversion.$(OBJEXT)
- -rm -f lib/lib_libvserver_a-getctx.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-createskeleton.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getfilecontext.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getinsecurebcaps.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getnbipv4root.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getprocentry-legacy.$(OBJEXT)
-rm -f lib/lib_libvserver_a-getversion.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getvserverappdir.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getvserverbyctx.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getvservercfgdir.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getvservercfgstyle.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getvserverctx.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getvservername.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getvservervdir.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-getxidtype.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-isdirectory.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-isdynamicxid.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-isfile.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-islink.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-issupported.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-issupportedstring.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-listparser_uint32.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-listparser_uint64.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-ncaps-net.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-ncaps_list-net.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-nflags-net.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-nflags_list-net.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-parselimit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-personalityflag.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-personalityflag_list.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-personalitytype.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall-syscall.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_adddlimit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_cleanupnamespace.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_ctxcreate.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_ctxmigrate.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_enternamespace.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_getccaps.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_getcflags.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_getdlimit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_getiattr.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_getncaps.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_getnflags.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_getnxinfo.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_gettasknid.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_gettaskxid.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_getvhiname.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_getvxinfo.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_kill.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_netadd.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_netcreate.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_netmigrate.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_netremove.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_remdlimit.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_rlimit.$(OBJEXT)
- -rm -f lib/lib_libvserver_a-uint2str.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_setccaps.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_setcflags.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_setdlimit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_setiattr.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_setnamespace.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_setncaps.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_setnflags.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_setsched.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_setvhiname.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_waitexit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-val2text-t2v-uint32.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-val2text-t2v-uint64.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-val2text-v2t-uint32.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-val2text-v2t-uint64.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-xidopt2xid.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-bcaps-v13.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-bcaps-v13.lo
+ -rm -f lib/lib_libvserver_la-bcaps_list-v13.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-bcaps_list-v13.lo
+ -rm -f lib/lib_libvserver_la-capabilities.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-capabilities.lo
+ -rm -f lib/lib_libvserver_la-ccaps-v13.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-ccaps-v13.lo
+ -rm -f lib/lib_libvserver_la-ccaps_list-v13.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-ccaps_list-v13.lo
+ -rm -f lib/lib_libvserver_la-cflags-compat.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-cflags-compat.lo
+ -rm -f lib/lib_libvserver_la-cflags-v13.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-cflags-v13.lo
+ -rm -f lib/lib_libvserver_la-cflags_list-compat.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-cflags_list-compat.lo
+ -rm -f lib/lib_libvserver_la-cflags_list-v13.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-cflags_list-v13.lo
+ -rm -f lib/lib_libvserver_la-checkversion.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-checkversion.lo
+ -rm -f lib/lib_libvserver_la-createskeleton.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-createskeleton.lo
+ -rm -f lib/lib_libvserver_la-getfilecontext.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getfilecontext.lo
+ -rm -f lib/lib_libvserver_la-getinsecurebcaps.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getinsecurebcaps.lo
+ -rm -f lib/lib_libvserver_la-getnbipv4root.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getnbipv4root.lo
+ -rm -f lib/lib_libvserver_la-getprocentry-legacy.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getprocentry-legacy.lo
+ -rm -f lib/lib_libvserver_la-getversion.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getversion.lo
+ -rm -f lib/lib_libvserver_la-getvserverappdir.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getvserverappdir.lo
+ -rm -f lib/lib_libvserver_la-getvserverbyctx.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getvserverbyctx.lo
+ -rm -f lib/lib_libvserver_la-getvservercfgdir.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getvservercfgdir.lo
+ -rm -f lib/lib_libvserver_la-getvservercfgstyle.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getvservercfgstyle.lo
+ -rm -f lib/lib_libvserver_la-getvserverctx.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getvserverctx.lo
+ -rm -f lib/lib_libvserver_la-getvservername.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getvservername.lo
+ -rm -f lib/lib_libvserver_la-getvservervdir.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getvservervdir.lo
+ -rm -f lib/lib_libvserver_la-getxidtype.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-getxidtype.lo
+ -rm -f lib/lib_libvserver_la-isdirectory.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-isdirectory.lo
+ -rm -f lib/lib_libvserver_la-isdynamicxid.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-isdynamicxid.lo
+ -rm -f lib/lib_libvserver_la-isfile.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-isfile.lo
+ -rm -f lib/lib_libvserver_la-islink.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-islink.lo
+ -rm -f lib/lib_libvserver_la-issupported.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-issupported.lo
+ -rm -f lib/lib_libvserver_la-issupportedstring.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-issupportedstring.lo
+ -rm -f lib/lib_libvserver_la-listparser_uint32.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-listparser_uint32.lo
+ -rm -f lib/lib_libvserver_la-listparser_uint64.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-listparser_uint64.lo
+ -rm -f lib/lib_libvserver_la-ncaps-net.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-ncaps-net.lo
+ -rm -f lib/lib_libvserver_la-ncaps_list-net.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-ncaps_list-net.lo
+ -rm -f lib/lib_libvserver_la-nflags-net.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-nflags-net.lo
+ -rm -f lib/lib_libvserver_la-nflags_list-net.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-nflags_list-net.lo
+ -rm -f lib/lib_libvserver_la-parselimit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-parselimit.lo
+ -rm -f lib/lib_libvserver_la-personalityflag.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-personalityflag.lo
+ -rm -f lib/lib_libvserver_la-personalityflag_list.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-personalityflag_list.lo
+ -rm -f lib/lib_libvserver_la-personalitytype.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-personalitytype.lo
+ -rm -f lib/lib_libvserver_la-syscall-syscall.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall-syscall.lo
+ -rm -f lib/lib_libvserver_la-syscall.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall.lo
+ -rm -f lib/lib_libvserver_la-syscall_adddlimit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_adddlimit.lo
+ -rm -f lib/lib_libvserver_la-syscall_cleanupnamespace.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_cleanupnamespace.lo
+ -rm -f lib/lib_libvserver_la-syscall_ctxcreate.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_ctxcreate.lo
+ -rm -f lib/lib_libvserver_la-syscall_ctxmigrate.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_ctxmigrate.lo
+ -rm -f lib/lib_libvserver_la-syscall_enternamespace.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_enternamespace.lo
+ -rm -f lib/lib_libvserver_la-syscall_getccaps.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_getccaps.lo
+ -rm -f lib/lib_libvserver_la-syscall_getcflags.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_getcflags.lo
+ -rm -f lib/lib_libvserver_la-syscall_getdlimit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_getdlimit.lo
+ -rm -f lib/lib_libvserver_la-syscall_getiattr.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_getiattr.lo
+ -rm -f lib/lib_libvserver_la-syscall_getncaps.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_getncaps.lo
+ -rm -f lib/lib_libvserver_la-syscall_getnflags.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_getnflags.lo
+ -rm -f lib/lib_libvserver_la-syscall_getnxinfo.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_getnxinfo.lo
+ -rm -f lib/lib_libvserver_la-syscall_gettasknid.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_gettasknid.lo
+ -rm -f lib/lib_libvserver_la-syscall_gettaskxid.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_gettaskxid.lo
+ -rm -f lib/lib_libvserver_la-syscall_getvhiname.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_getvhiname.lo
+ -rm -f lib/lib_libvserver_la-syscall_getvxinfo.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_getvxinfo.lo
+ -rm -f lib/lib_libvserver_la-syscall_kill.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_kill.lo
+ -rm -f lib/lib_libvserver_la-syscall_netadd.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_netadd.lo
+ -rm -f lib/lib_libvserver_la-syscall_netcreate.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_netcreate.lo
+ -rm -f lib/lib_libvserver_la-syscall_netmigrate.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_netmigrate.lo
+ -rm -f lib/lib_libvserver_la-syscall_netremove.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_netremove.lo
+ -rm -f lib/lib_libvserver_la-syscall_remdlimit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_remdlimit.lo
+ -rm -f lib/lib_libvserver_la-syscall_rlimit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_rlimit.lo
+ -rm -f lib/lib_libvserver_la-syscall_setccaps.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_setccaps.lo
+ -rm -f lib/lib_libvserver_la-syscall_setcflags.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_setcflags.lo
+ -rm -f lib/lib_libvserver_la-syscall_setdlimit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_setdlimit.lo
+ -rm -f lib/lib_libvserver_la-syscall_setiattr.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_setiattr.lo
+ -rm -f lib/lib_libvserver_la-syscall_setnamespace.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_setnamespace.lo
+ -rm -f lib/lib_libvserver_la-syscall_setncaps.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_setncaps.lo
+ -rm -f lib/lib_libvserver_la-syscall_setnflags.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_setnflags.lo
+ -rm -f lib/lib_libvserver_la-syscall_setsched.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_setsched.lo
+ -rm -f lib/lib_libvserver_la-syscall_setvhiname.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_setvhiname.lo
+ -rm -f lib/lib_libvserver_la-syscall_waitexit.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_waitexit.lo
+ -rm -f lib/lib_libvserver_la-val2text-t2v-uint32.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-val2text-t2v-uint32.lo
+ -rm -f lib/lib_libvserver_la-val2text-t2v-uint64.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-val2text-t2v-uint64.lo
+ -rm -f lib/lib_libvserver_la-val2text-v2t-uint32.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-val2text-v2t-uint32.lo
+ -rm -f lib/lib_libvserver_la-val2text-v2t-uint64.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-val2text-v2t-uint64.lo
+ -rm -f lib/lib_libvserver_la-xidopt2xid.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-xidopt2xid.lo
+ -rm -f lib/testsuite/lib_testsuite_cflags-cflags.$(OBJEXT)
+ -rm -f lib/testsuite/lib_testsuite_fmt-fmt.$(OBJEXT)
+ -rm -f lib/testsuite/lib_testsuite_parselimit-parselimit.$(OBJEXT)
+ -rm -f lib/testsuite/lib_testsuite_personality-personality.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-command-exec.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-command-free.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-command-init.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-command-reset.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-command-setparams.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-command-wait.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-matchlist-init.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-unify-copy.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-unify-deunify.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-unify-settime.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-unify-unify.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-util-canonify.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-util-isnumber.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-util-lockfile.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_diet_a-util-safechdir.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-command-exec.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-command-free.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-command-init.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-command-reset.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-command-setparams.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-command-wait.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-unify-copy.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-unify-settime.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-unify-unify.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-util-canonify.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.$(OBJEXT)
+ -rm -f lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.$(OBJEXT)
+ -rm -f lib_internal/testsuite/command.$(OBJEXT)
+ -rm -f lib_internal/testsuite/copy.$(OBJEXT)
+ -rm -f lib_internal/testsuite/filecfg-ml.$(OBJEXT)
+ -rm -f lib_internal/testsuite/sigbus.$(OBJEXT)
-rm -f src/capchroot.$(OBJEXT)
+ -rm -f src/chain-echo.$(OBJEXT)
-rm -f src/chbind.$(OBJEXT)
-rm -f src/chcontext.$(OBJEXT)
+ -rm -f src/check-unixfile.$(OBJEXT)
+ -rm -f src/chroot-sh.$(OBJEXT)
+ -rm -f src/chxid.$(OBJEXT)
+ -rm -f src/exec-cd.$(OBJEXT)
+ -rm -f src/exec-ulimit.$(OBJEXT)
-rm -f src/fakerunlevel.$(OBJEXT)
-rm -f src/filetime.$(OBJEXT)
+ -rm -f src/fstool.$(OBJEXT)
-rm -f src/ifspec.$(OBJEXT)
+ -rm -f src/keep-ctx-alive.$(OBJEXT)
-rm -f src/listdevip.$(OBJEXT)
+ -rm -f src/lockfile.$(OBJEXT)
+ -rm -f src/lsxid.$(OBJEXT)
+ -rm -f src/mask2prefix.$(OBJEXT)
-rm -f src/parserpmdump.$(OBJEXT)
-rm -f src/readlink.$(OBJEXT)
+ -rm -f src/rebootmgr.$(OBJEXT)
-rm -f src/reducecap.$(OBJEXT)
+ -rm -f src/rpm-fake-resolver.$(OBJEXT)
+ -rm -f src/save_ctxinfo.$(OBJEXT)
+ -rm -f src/secure-mount.$(OBJEXT)
+ -rm -f src/setattr.$(OBJEXT)
-rm -f src/showattr.$(OBJEXT)
-rm -f src/showperm.$(OBJEXT)
- -rm -f src/src_rebootmgr-rebootmgr.$(OBJEXT)
+ -rm -f src/sigexec.$(OBJEXT)
+ -rm -f src/src_rpm_fake_la-rpm-fake.$(OBJEXT)
+ -rm -f src/src_rpm_fake_la-rpm-fake.lo
-rm -f src/src_vkill-vkill.$(OBJEXT)
- -rm -f src/src_vunify-vunify.$(OBJEXT)
- -rm -f src/src_vunify-vutil.$(OBJEXT)
- -rm -f src/vbuild.$(OBJEXT)
- -rm -f src/vcheck.$(OBJEXT)
+ -rm -f src/testsuite/chbind-test.$(OBJEXT)
+ -rm -f src/testsuite/chcontext-test.$(OBJEXT)
+ -rm -f src/testsuite/rpm-fake-test.$(OBJEXT)
+ -rm -f src/testsuite/src_testsuite_vunify_functest-vunify-functest.$(OBJEXT)
+ -rm -f src/vattribute.$(OBJEXT)
+ -rm -f src/vcontext.$(OBJEXT)
+ -rm -f src/vcopy.$(OBJEXT)
+ -rm -f src/vdlimit.$(OBJEXT)
-rm -f src/vdu.$(OBJEXT)
- -rm -f src/vfiles.$(OBJEXT)
+ -rm -f src/vhashify.$(OBJEXT)
-rm -f src/vlimit.$(OBJEXT)
+ -rm -f src/vnamespace.$(OBJEXT)
+ -rm -f src/vps.$(OBJEXT)
-rm -f src/vreboot.$(OBJEXT)
+ -rm -f src/vrsetup.$(OBJEXT)
+ -rm -f src/vsched.$(OBJEXT)
+ -rm -f src/vserver-info.$(OBJEXT)
-rm -f src/vserver-stat.$(OBJEXT)
- -rm -f src/vutil.$(OBJEXT)
+ -rm -f src/vshelper-sync.$(OBJEXT)
+ -rm -f src/vuname.$(OBJEXT)
+ -rm -f src/vunify.$(OBJEXT)
+ -rm -f src/vwait.$(OBJEXT)
-rm -f tests/escaperoot.$(OBJEXT)
-rm -f tests/forkbomb.$(OBJEXT)
+ -rm -f tests/getctx.$(OBJEXT)
+ -rm -f tests/getinitpid.$(OBJEXT)
-rm -f tests/testipc.$(OBJEXT)
-rm -f tests/testlimit.$(OBJEXT)
-rm -f tests/testopenf.$(OBJEXT)
+ -rm -f tests/vserver-info.$(OBJEXT)
+ -rm -f vserver-start/configuration-init.$(OBJEXT)
+ -rm -f vserver-start/configuration.$(OBJEXT)
+ -rm -f vserver-start/defaulttty.$(OBJEXT)
+ -rm -f vserver-start/interface-add.$(OBJEXT)
+ -rm -f vserver-start/interface-print.$(OBJEXT)
+ -rm -f vserver-start/interface-read.$(OBJEXT)
+ -rm -f vserver-start/interface-remove.$(OBJEXT)
+ -rm -f vserver-start/interface.$(OBJEXT)
+ -rm -f vserver-start/main.$(OBJEXT)
+ -rm -f vserver-start/mount.$(OBJEXT)
+ -rm -f vserver-start/scriptlets.$(OBJEXT)
+ -rm -f vserver-start/undo.$(OBJEXT)
+ -rm -f vserver-start/vshelper.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib-dietlibc-not-enabled-error.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib-glibc-not-enabled-error.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-tai64n.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-32.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-64.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-tai64n.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmtx-32.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmtx-64.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-add.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-at.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-free.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-insertinternal.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-search.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-searchselforg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-clear.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-foreach.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-free.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-insert.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-popback.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-pushback.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-resize.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-search.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-searchselforg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-sort.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-unique.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-zeroend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-add.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-at.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-free.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-insertinternal.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-search.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-searchselforg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-clear.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-foreach.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-free.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-insert.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-popback.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-pushback.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-resize.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-search.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-searchselforg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-sort.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-unique.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-zeroend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/testsuite/$(DEPDIR)/test1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ensc_vector/testsuite/$(DEPDIR)/test2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-bcaps-v13.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-bcaps_list-v13.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-capabilities.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-ccaps-v13.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-ccaps_list-v13.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-cflags-compat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-cflags-v13.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-cflags_list-compat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-cflags_list-v13.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-checkversion.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getctx.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getfilecontext.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getinsecurebcaps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getnbipv4root.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getprocentry-legacy.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getversion.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getvserverappdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getvserverbyctx.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getvservercfgdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getvservercfgstyle.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getvserverctx.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getvservername.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getvservervdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getxidtype.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-isdynamicxid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-isfile.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-islink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-issupported.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-issupportedstring.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-listparser_uint32.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-listparser_uint64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-ncaps-net.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-ncaps_list-net.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-nflags-net.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-nflags_list-net.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-parselimit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-personalityflag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-personalityflag_list.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-personalitytype.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall-syscall.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_adddlimit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_cleanupnamespace.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxcreate.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxmigrate.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_enternamespace.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getccaps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getcflags.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getdlimit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getiattr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getncaps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getnflags.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getnxinfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_gettasknid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_gettaskxid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getvhiname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getvxinfo.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_netadd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_netcreate.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_netmigrate.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_netremove.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_remdlimit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-uint2str.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setccaps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setcflags.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setdlimit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setiattr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setnamespace.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setncaps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setnflags.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setsched.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setvhiname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_waitexit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint32.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint32.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-xidopt2xid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-bcaps-v13.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-bcaps_list-v13.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-capabilities.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-ccaps-v13.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-ccaps_list-v13.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-cflags-compat.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-cflags-v13.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-cflags_list-compat.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-cflags_list-v13.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-checkversion.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-createskeleton.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getfilecontext.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getinsecurebcaps.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getnbipv4root.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getprocentry-legacy.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getversion.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getvserverappdir.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getvserverbyctx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getvservercfgdir.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getvservercfgstyle.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getvserverctx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getvservername.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getvservervdir.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getxidtype.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-isdirectory.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-isdynamicxid.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-isfile.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-islink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-issupported.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-issupportedstring.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-listparser_uint32.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-listparser_uint64.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-ncaps-net.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-ncaps_list-net.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-nflags-net.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-nflags_list-net.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-parselimit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-personalityflag.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-personalityflag_list.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-personalitytype.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall-syscall.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_adddlimit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_cleanupnamespace.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxcreate.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxmigrate.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_enternamespace.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getccaps.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getcflags.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getdlimit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getiattr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getncaps.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getnflags.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getnxinfo.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_gettasknid.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_gettaskxid.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getvhiname.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getvxinfo.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_kill.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_netadd.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_netcreate.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_netmigrate.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_netremove.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_remdlimit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setccaps.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setcflags.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setdlimit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setiattr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setnamespace.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setncaps.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setnflags.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setsched.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setvhiname.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_waitexit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint32.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint64.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-val2text-v2t-uint32.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-val2text-v2t-uint64.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-xidopt2xid.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/testsuite/$(DEPDIR)/lib_testsuite_cflags-cflags.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/testsuite/$(DEPDIR)/lib_testsuite_fmt-fmt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/testsuite/$(DEPDIR)/lib_testsuite_parselimit-parselimit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/testsuite/$(DEPDIR)/lib_testsuite_personality-personality.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-appendparameter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-exec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-free.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-reset.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-setparams.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-wait.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-errinfo-writeerrno.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentryflag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentrystr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-jailintotempdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-appendfiles.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-compare.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-destroy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initbyvserver.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initmanually.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-printid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-free.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-append.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-switchtowatchxid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-copy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-deunify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-isiunlinkable.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-settime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-unify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-canonify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-exitlikeprocess.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumber.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-safechdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-appendparameter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-exec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-free.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-reset.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-setparams.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-wait.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-errinfo-writeerrno.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentryflag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentrystr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-jailintotempdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-appendfiles.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-compare.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-destroy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initmanually.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-printid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-free.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-append.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-switchtowatchxid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-copy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-deunify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-isiunlinkable.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-settime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-unify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-canonify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-exitlikeprocess.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumber.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-safechdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/command.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/copy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/filecfg-ml.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/sigbus.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/capchroot.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/chain-echo.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/chbind.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/chcontext.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/check-unixfile.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/chroot-sh.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/chxid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/exec-cd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/exec-ulimit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/fakerunlevel.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/filetime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/fstool.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/ifspec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/keep-ctx-alive.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/listdevip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/lockfile.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/lsxid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/mask2prefix.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/parserpmdump.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/readlink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/rebootmgr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/reducecap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/rpm-fake-resolver.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/save_ctxinfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/secure-mount.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/setattr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/showattr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/showperm.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_rebootmgr-rebootmgr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/sigexec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_rpm_fake_la-rpm-fake.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_vkill-vkill.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_vunify-vunify.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_vunify-vutil.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vbuild.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vcheck.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vattribute.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vcontext.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vcopy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vdlimit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vdu.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vfiles.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vhashify.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vlimit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vnamespace.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vps.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vreboot.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vrsetup.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vsched.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vserver-info.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vserver-stat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vutil.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vshelper-sync.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vuname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vunify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vwait.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/chbind-test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/chcontext-test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/rpm-fake-test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/escaperoot.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/forkbomb.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/getctx.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/getinitpid.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/testipc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/testlimit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/testopenf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/vserver-info.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/configuration-init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/configuration.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/defaulttty.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/interface-add.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/interface-print.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/interface-read.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/interface-remove.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/interface.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/mount.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/scriptlets.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/undo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vserver-start/$(DEPDIR)/vshelper.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
+@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $<
.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
+@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`; \
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCC_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+.c.lo:
+@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`; \
+@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Plo"; else rm -f "$$depbase.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
lib/lib_libvserver_a-syscall.o: lib/syscall.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall.Tpo" -c -o lib/lib_libvserver_a-syscall.o `test -f 'lib/syscall.c' || echo '$(srcdir)/'`lib/syscall.c; \
@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall.c' object='lib/lib_libvserver_a-syscall.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-syscall.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-syscall.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall.o `test -f 'lib/syscall.c' || echo '$(srcdir)/'`lib/syscall.c
lib/lib_libvserver_a-syscall.obj: lib/syscall.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall.Tpo" -c -o lib/lib_libvserver_a-syscall.obj `if test -f 'lib/syscall.c'; then $(CYGPATH_W) 'lib/syscall.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall.c' object='lib/lib_libvserver_a-syscall.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-syscall.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-syscall.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall.obj `if test -f 'lib/syscall.c'; then $(CYGPATH_W) 'lib/syscall.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall.c'; fi`
-lib/lib_libvserver_a-syscall_rlimit.o: lib/syscall_rlimit.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_rlimit.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_rlimit.o `test -f 'lib/syscall_rlimit.c' || echo '$(srcdir)/'`lib/syscall_rlimit.c; \
-@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_rlimit.c' object='lib/lib_libvserver_a-syscall_rlimit.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_rlimit.o `test -f 'lib/syscall_rlimit.c' || echo '$(srcdir)/'`lib/syscall_rlimit.c
-
-lib/lib_libvserver_a-syscall_rlimit.obj: lib/syscall_rlimit.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_rlimit.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_rlimit.obj `if test -f 'lib/syscall_rlimit.c'; then $(CYGPATH_W) 'lib/syscall_rlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_rlimit.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_rlimit.c' object='lib/lib_libvserver_a-syscall_rlimit.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_rlimit.obj `if test -f 'lib/syscall_rlimit.c'; then $(CYGPATH_W) 'lib/syscall_rlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_rlimit.c'; fi`
-
-lib/lib_libvserver_a-syscall_kill.o: lib/syscall_kill.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_kill.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo" -c -o lib/lib_libvserver_a-syscall_kill.o `test -f 'lib/syscall_kill.c' || echo '$(srcdir)/'`lib/syscall_kill.c; \
-@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_kill.c' object='lib/lib_libvserver_a-syscall_kill.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_kill.o `test -f 'lib/syscall_kill.c' || echo '$(srcdir)/'`lib/syscall_kill.c
-
-lib/lib_libvserver_a-syscall_kill.obj: lib/syscall_kill.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_kill.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo" -c -o lib/lib_libvserver_a-syscall_kill.obj `if test -f 'lib/syscall_kill.c'; then $(CYGPATH_W) 'lib/syscall_kill.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_kill.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_kill.c' object='lib/lib_libvserver_a-syscall_kill.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_kill.obj `if test -f 'lib/syscall_kill.c'; then $(CYGPATH_W) 'lib/syscall_kill.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_kill.c'; fi`
-
lib/lib_libvserver_a-checkversion.o: lib/checkversion.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-checkversion.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-checkversion.Tpo" -c -o lib/lib_libvserver_a-checkversion.o `test -f 'lib/checkversion.c' || echo '$(srcdir)/'`lib/checkversion.c; \
@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-checkversion.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-checkversion.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-checkversion.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/checkversion.c' object='lib/lib_libvserver_a-checkversion.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-checkversion.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-checkversion.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-checkversion.o `test -f 'lib/checkversion.c' || echo '$(srcdir)/'`lib/checkversion.c
lib/lib_libvserver_a-checkversion.obj: lib/checkversion.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-checkversion.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-checkversion.Tpo" -c -o lib/lib_libvserver_a-checkversion.obj `if test -f 'lib/checkversion.c'; then $(CYGPATH_W) 'lib/checkversion.c'; else $(CYGPATH_W) '$(srcdir)/lib/checkversion.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-checkversion.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-checkversion.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-checkversion.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/checkversion.c' object='lib/lib_libvserver_a-checkversion.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-checkversion.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-checkversion.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-checkversion.obj `if test -f 'lib/checkversion.c'; then $(CYGPATH_W) 'lib/checkversion.c'; else $(CYGPATH_W) '$(srcdir)/lib/checkversion.c'; fi`
-lib/lib_libvserver_a-getctx.o: lib/getctx.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getctx.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getctx.Tpo" -c -o lib/lib_libvserver_a-getctx.o `test -f 'lib/getctx.c' || echo '$(srcdir)/'`lib/getctx.c; \
-@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getctx.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getctx.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getctx.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getctx.c' object='lib/lib_libvserver_a-getctx.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-getctx.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-getctx.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getctx.o `test -f 'lib/getctx.c' || echo '$(srcdir)/'`lib/getctx.c
-
-lib/lib_libvserver_a-getctx.obj: lib/getctx.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getctx.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getctx.Tpo" -c -o lib/lib_libvserver_a-getctx.obj `if test -f 'lib/getctx.c'; then $(CYGPATH_W) 'lib/getctx.c'; else $(CYGPATH_W) '$(srcdir)/lib/getctx.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getctx.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getctx.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getctx.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getctx.c' object='lib/lib_libvserver_a-getctx.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-getctx.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-getctx.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getctx.obj `if test -f 'lib/getctx.c'; then $(CYGPATH_W) 'lib/getctx.c'; else $(CYGPATH_W) '$(srcdir)/lib/getctx.c'; fi`
+lib/lib_libvserver_a-isdirectory.o: lib/isdirectory.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-isdirectory.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Tpo" -c -o lib/lib_libvserver_a-isdirectory.o `test -f 'lib/isdirectory.c' || echo '$(srcdir)/'`lib/isdirectory.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/isdirectory.c' object='lib/lib_libvserver_a-isdirectory.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-isdirectory.o `test -f 'lib/isdirectory.c' || echo '$(srcdir)/'`lib/isdirectory.c
+
+lib/lib_libvserver_a-isdirectory.obj: lib/isdirectory.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-isdirectory.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Tpo" -c -o lib/lib_libvserver_a-isdirectory.obj `if test -f 'lib/isdirectory.c'; then $(CYGPATH_W) 'lib/isdirectory.c'; else $(CYGPATH_W) '$(srcdir)/lib/isdirectory.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/isdirectory.c' object='lib/lib_libvserver_a-isdirectory.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-isdirectory.obj `if test -f 'lib/isdirectory.c'; then $(CYGPATH_W) 'lib/isdirectory.c'; else $(CYGPATH_W) '$(srcdir)/lib/isdirectory.c'; fi`
+
+lib/lib_libvserver_a-isfile.o: lib/isfile.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-isfile.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-isfile.Tpo" -c -o lib/lib_libvserver_a-isfile.o `test -f 'lib/isfile.c' || echo '$(srcdir)/'`lib/isfile.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-isfile.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-isfile.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-isfile.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/isfile.c' object='lib/lib_libvserver_a-isfile.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-isfile.o `test -f 'lib/isfile.c' || echo '$(srcdir)/'`lib/isfile.c
+
+lib/lib_libvserver_a-isfile.obj: lib/isfile.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-isfile.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-isfile.Tpo" -c -o lib/lib_libvserver_a-isfile.obj `if test -f 'lib/isfile.c'; then $(CYGPATH_W) 'lib/isfile.c'; else $(CYGPATH_W) '$(srcdir)/lib/isfile.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-isfile.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-isfile.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-isfile.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/isfile.c' object='lib/lib_libvserver_a-isfile.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-isfile.obj `if test -f 'lib/isfile.c'; then $(CYGPATH_W) 'lib/isfile.c'; else $(CYGPATH_W) '$(srcdir)/lib/isfile.c'; fi`
+
+lib/lib_libvserver_a-islink.o: lib/islink.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-islink.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-islink.Tpo" -c -o lib/lib_libvserver_a-islink.o `test -f 'lib/islink.c' || echo '$(srcdir)/'`lib/islink.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-islink.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-islink.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-islink.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/islink.c' object='lib/lib_libvserver_a-islink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-islink.o `test -f 'lib/islink.c' || echo '$(srcdir)/'`lib/islink.c
+
+lib/lib_libvserver_a-islink.obj: lib/islink.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-islink.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-islink.Tpo" -c -o lib/lib_libvserver_a-islink.obj `if test -f 'lib/islink.c'; then $(CYGPATH_W) 'lib/islink.c'; else $(CYGPATH_W) '$(srcdir)/lib/islink.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-islink.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-islink.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-islink.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/islink.c' object='lib/lib_libvserver_a-islink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-islink.obj `if test -f 'lib/islink.c'; then $(CYGPATH_W) 'lib/islink.c'; else $(CYGPATH_W) '$(srcdir)/lib/islink.c'; fi`
+
+lib/lib_libvserver_a-getnbipv4root.o: lib/getnbipv4root.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getnbipv4root.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getnbipv4root.Tpo" -c -o lib/lib_libvserver_a-getnbipv4root.o `test -f 'lib/getnbipv4root.c' || echo '$(srcdir)/'`lib/getnbipv4root.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getnbipv4root.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getnbipv4root.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getnbipv4root.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getnbipv4root.c' object='lib/lib_libvserver_a-getnbipv4root.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getnbipv4root.o `test -f 'lib/getnbipv4root.c' || echo '$(srcdir)/'`lib/getnbipv4root.c
+
+lib/lib_libvserver_a-getnbipv4root.obj: lib/getnbipv4root.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getnbipv4root.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getnbipv4root.Tpo" -c -o lib/lib_libvserver_a-getnbipv4root.obj `if test -f 'lib/getnbipv4root.c'; then $(CYGPATH_W) 'lib/getnbipv4root.c'; else $(CYGPATH_W) '$(srcdir)/lib/getnbipv4root.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getnbipv4root.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getnbipv4root.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getnbipv4root.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getnbipv4root.c' object='lib/lib_libvserver_a-getnbipv4root.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getnbipv4root.obj `if test -f 'lib/getnbipv4root.c'; then $(CYGPATH_W) 'lib/getnbipv4root.c'; else $(CYGPATH_W) '$(srcdir)/lib/getnbipv4root.c'; fi`
lib/lib_libvserver_a-getversion.o: lib/getversion.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getversion.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getversion.Tpo" -c -o lib/lib_libvserver_a-getversion.o `test -f 'lib/getversion.c' || echo '$(srcdir)/'`lib/getversion.c; \
@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getversion.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getversion.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getversion.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getversion.c' object='lib/lib_libvserver_a-getversion.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-getversion.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-getversion.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getversion.o `test -f 'lib/getversion.c' || echo '$(srcdir)/'`lib/getversion.c
lib/lib_libvserver_a-getversion.obj: lib/getversion.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getversion.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getversion.Tpo" -c -o lib/lib_libvserver_a-getversion.obj `if test -f 'lib/getversion.c'; then $(CYGPATH_W) 'lib/getversion.c'; else $(CYGPATH_W) '$(srcdir)/lib/getversion.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getversion.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getversion.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getversion.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getversion.c' object='lib/lib_libvserver_a-getversion.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-getversion.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-getversion.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getversion.obj `if test -f 'lib/getversion.c'; then $(CYGPATH_W) 'lib/getversion.c'; else $(CYGPATH_W) '$(srcdir)/lib/getversion.c'; fi`
-lib/lib_libvserver_a-uint2str.o: lib/uint2str.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-uint2str.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-uint2str.Tpo" -c -o lib/lib_libvserver_a-uint2str.o `test -f 'lib/uint2str.c' || echo '$(srcdir)/'`lib/uint2str.c; \
-@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-uint2str.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-uint2str.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-uint2str.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/uint2str.c' object='lib/lib_libvserver_a-uint2str.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-uint2str.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-uint2str.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-uint2str.o `test -f 'lib/uint2str.c' || echo '$(srcdir)/'`lib/uint2str.c
-
-lib/lib_libvserver_a-uint2str.obj: lib/uint2str.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-uint2str.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-uint2str.Tpo" -c -o lib/lib_libvserver_a-uint2str.obj `if test -f 'lib/uint2str.c'; then $(CYGPATH_W) 'lib/uint2str.c'; else $(CYGPATH_W) '$(srcdir)/lib/uint2str.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-uint2str.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-uint2str.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-uint2str.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/uint2str.c' object='lib/lib_libvserver_a-uint2str.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='lib/$(DEPDIR)/lib_libvserver_a-uint2str.Po' tmpdepfile='lib/$(DEPDIR)/lib_libvserver_a-uint2str.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-uint2str.obj `if test -f 'lib/uint2str.c'; then $(CYGPATH_W) 'lib/uint2str.c'; else $(CYGPATH_W) '$(srcdir)/lib/uint2str.c'; fi`
-
-src/capchroot.o: src/capchroot.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/capchroot.o -MD -MP -MF "src/$(DEPDIR)/capchroot.Tpo" -c -o src/capchroot.o `test -f 'src/capchroot.c' || echo '$(srcdir)/'`src/capchroot.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/capchroot.Tpo" "src/$(DEPDIR)/capchroot.Po"; else rm -f "src/$(DEPDIR)/capchroot.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/capchroot.c' object='src/capchroot.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/capchroot.Po' tmpdepfile='src/$(DEPDIR)/capchroot.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/capchroot.o `test -f 'src/capchroot.c' || echo '$(srcdir)/'`src/capchroot.c
-
-src/capchroot.obj: src/capchroot.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/capchroot.obj -MD -MP -MF "src/$(DEPDIR)/capchroot.Tpo" -c -o src/capchroot.obj `if test -f 'src/capchroot.c'; then $(CYGPATH_W) 'src/capchroot.c'; else $(CYGPATH_W) '$(srcdir)/src/capchroot.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/capchroot.Tpo" "src/$(DEPDIR)/capchroot.Po"; else rm -f "src/$(DEPDIR)/capchroot.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/capchroot.c' object='src/capchroot.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/capchroot.Po' tmpdepfile='src/$(DEPDIR)/capchroot.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/capchroot.obj `if test -f 'src/capchroot.c'; then $(CYGPATH_W) 'src/capchroot.c'; else $(CYGPATH_W) '$(srcdir)/src/capchroot.c'; fi`
-
-src/chbind.o: src/chbind.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/chbind.o -MD -MP -MF "src/$(DEPDIR)/chbind.Tpo" -c -o src/chbind.o `test -f 'src/chbind.c' || echo '$(srcdir)/'`src/chbind.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/chbind.Tpo" "src/$(DEPDIR)/chbind.Po"; else rm -f "src/$(DEPDIR)/chbind.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/chbind.c' object='src/chbind.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/chbind.Po' tmpdepfile='src/$(DEPDIR)/chbind.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/chbind.o `test -f 'src/chbind.c' || echo '$(srcdir)/'`src/chbind.c
-
-src/chbind.obj: src/chbind.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/chbind.obj -MD -MP -MF "src/$(DEPDIR)/chbind.Tpo" -c -o src/chbind.obj `if test -f 'src/chbind.c'; then $(CYGPATH_W) 'src/chbind.c'; else $(CYGPATH_W) '$(srcdir)/src/chbind.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/chbind.Tpo" "src/$(DEPDIR)/chbind.Po"; else rm -f "src/$(DEPDIR)/chbind.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/chbind.c' object='src/chbind.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/chbind.Po' tmpdepfile='src/$(DEPDIR)/chbind.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/chbind.obj `if test -f 'src/chbind.c'; then $(CYGPATH_W) 'src/chbind.c'; else $(CYGPATH_W) '$(srcdir)/src/chbind.c'; fi`
-
-src/chcontext.o: src/chcontext.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/chcontext.o -MD -MP -MF "src/$(DEPDIR)/chcontext.Tpo" -c -o src/chcontext.o `test -f 'src/chcontext.c' || echo '$(srcdir)/'`src/chcontext.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/chcontext.Tpo" "src/$(DEPDIR)/chcontext.Po"; else rm -f "src/$(DEPDIR)/chcontext.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/chcontext.c' object='src/chcontext.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/chcontext.Po' tmpdepfile='src/$(DEPDIR)/chcontext.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/chcontext.o `test -f 'src/chcontext.c' || echo '$(srcdir)/'`src/chcontext.c
-
-src/chcontext.obj: src/chcontext.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/chcontext.obj -MD -MP -MF "src/$(DEPDIR)/chcontext.Tpo" -c -o src/chcontext.obj `if test -f 'src/chcontext.c'; then $(CYGPATH_W) 'src/chcontext.c'; else $(CYGPATH_W) '$(srcdir)/src/chcontext.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/chcontext.Tpo" "src/$(DEPDIR)/chcontext.Po"; else rm -f "src/$(DEPDIR)/chcontext.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/chcontext.c' object='src/chcontext.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/chcontext.Po' tmpdepfile='src/$(DEPDIR)/chcontext.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/chcontext.obj `if test -f 'src/chcontext.c'; then $(CYGPATH_W) 'src/chcontext.c'; else $(CYGPATH_W) '$(srcdir)/src/chcontext.c'; fi`
-
-src/fakerunlevel.o: src/fakerunlevel.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/fakerunlevel.o -MD -MP -MF "src/$(DEPDIR)/fakerunlevel.Tpo" -c -o src/fakerunlevel.o `test -f 'src/fakerunlevel.c' || echo '$(srcdir)/'`src/fakerunlevel.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/fakerunlevel.Tpo" "src/$(DEPDIR)/fakerunlevel.Po"; else rm -f "src/$(DEPDIR)/fakerunlevel.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/fakerunlevel.c' object='src/fakerunlevel.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/fakerunlevel.Po' tmpdepfile='src/$(DEPDIR)/fakerunlevel.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/fakerunlevel.o `test -f 'src/fakerunlevel.c' || echo '$(srcdir)/'`src/fakerunlevel.c
-
-src/fakerunlevel.obj: src/fakerunlevel.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/fakerunlevel.obj -MD -MP -MF "src/$(DEPDIR)/fakerunlevel.Tpo" -c -o src/fakerunlevel.obj `if test -f 'src/fakerunlevel.c'; then $(CYGPATH_W) 'src/fakerunlevel.c'; else $(CYGPATH_W) '$(srcdir)/src/fakerunlevel.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/fakerunlevel.Tpo" "src/$(DEPDIR)/fakerunlevel.Po"; else rm -f "src/$(DEPDIR)/fakerunlevel.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/fakerunlevel.c' object='src/fakerunlevel.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/fakerunlevel.Po' tmpdepfile='src/$(DEPDIR)/fakerunlevel.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/fakerunlevel.obj `if test -f 'src/fakerunlevel.c'; then $(CYGPATH_W) 'src/fakerunlevel.c'; else $(CYGPATH_W) '$(srcdir)/src/fakerunlevel.c'; fi`
-
-src/filetime.o: src/filetime.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/filetime.o -MD -MP -MF "src/$(DEPDIR)/filetime.Tpo" -c -o src/filetime.o `test -f 'src/filetime.c' || echo '$(srcdir)/'`src/filetime.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/filetime.Tpo" "src/$(DEPDIR)/filetime.Po"; else rm -f "src/$(DEPDIR)/filetime.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/filetime.c' object='src/filetime.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/filetime.Po' tmpdepfile='src/$(DEPDIR)/filetime.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/filetime.o `test -f 'src/filetime.c' || echo '$(srcdir)/'`src/filetime.c
-
-src/filetime.obj: src/filetime.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/filetime.obj -MD -MP -MF "src/$(DEPDIR)/filetime.Tpo" -c -o src/filetime.obj `if test -f 'src/filetime.c'; then $(CYGPATH_W) 'src/filetime.c'; else $(CYGPATH_W) '$(srcdir)/src/filetime.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/filetime.Tpo" "src/$(DEPDIR)/filetime.Po"; else rm -f "src/$(DEPDIR)/filetime.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/filetime.c' object='src/filetime.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/filetime.Po' tmpdepfile='src/$(DEPDIR)/filetime.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/filetime.obj `if test -f 'src/filetime.c'; then $(CYGPATH_W) 'src/filetime.c'; else $(CYGPATH_W) '$(srcdir)/src/filetime.c'; fi`
-
-src/ifspec.o: src/ifspec.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/ifspec.o -MD -MP -MF "src/$(DEPDIR)/ifspec.Tpo" -c -o src/ifspec.o `test -f 'src/ifspec.c' || echo '$(srcdir)/'`src/ifspec.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/ifspec.Tpo" "src/$(DEPDIR)/ifspec.Po"; else rm -f "src/$(DEPDIR)/ifspec.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/ifspec.c' object='src/ifspec.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/ifspec.Po' tmpdepfile='src/$(DEPDIR)/ifspec.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/ifspec.o `test -f 'src/ifspec.c' || echo '$(srcdir)/'`src/ifspec.c
-
-src/ifspec.obj: src/ifspec.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/ifspec.obj -MD -MP -MF "src/$(DEPDIR)/ifspec.Tpo" -c -o src/ifspec.obj `if test -f 'src/ifspec.c'; then $(CYGPATH_W) 'src/ifspec.c'; else $(CYGPATH_W) '$(srcdir)/src/ifspec.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/ifspec.Tpo" "src/$(DEPDIR)/ifspec.Po"; else rm -f "src/$(DEPDIR)/ifspec.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/ifspec.c' object='src/ifspec.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/ifspec.Po' tmpdepfile='src/$(DEPDIR)/ifspec.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/ifspec.obj `if test -f 'src/ifspec.c'; then $(CYGPATH_W) 'src/ifspec.c'; else $(CYGPATH_W) '$(srcdir)/src/ifspec.c'; fi`
-
-src/listdevip.o: src/listdevip.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/listdevip.o -MD -MP -MF "src/$(DEPDIR)/listdevip.Tpo" -c -o src/listdevip.o `test -f 'src/listdevip.c' || echo '$(srcdir)/'`src/listdevip.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/listdevip.Tpo" "src/$(DEPDIR)/listdevip.Po"; else rm -f "src/$(DEPDIR)/listdevip.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/listdevip.c' object='src/listdevip.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/listdevip.Po' tmpdepfile='src/$(DEPDIR)/listdevip.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/listdevip.o `test -f 'src/listdevip.c' || echo '$(srcdir)/'`src/listdevip.c
-
-src/listdevip.obj: src/listdevip.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/listdevip.obj -MD -MP -MF "src/$(DEPDIR)/listdevip.Tpo" -c -o src/listdevip.obj `if test -f 'src/listdevip.c'; then $(CYGPATH_W) 'src/listdevip.c'; else $(CYGPATH_W) '$(srcdir)/src/listdevip.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/listdevip.Tpo" "src/$(DEPDIR)/listdevip.Po"; else rm -f "src/$(DEPDIR)/listdevip.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/listdevip.c' object='src/listdevip.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/listdevip.Po' tmpdepfile='src/$(DEPDIR)/listdevip.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/listdevip.obj `if test -f 'src/listdevip.c'; then $(CYGPATH_W) 'src/listdevip.c'; else $(CYGPATH_W) '$(srcdir)/src/listdevip.c'; fi`
-
-src/parserpmdump.o: src/parserpmdump.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/parserpmdump.o -MD -MP -MF "src/$(DEPDIR)/parserpmdump.Tpo" -c -o src/parserpmdump.o `test -f 'src/parserpmdump.c' || echo '$(srcdir)/'`src/parserpmdump.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/parserpmdump.Tpo" "src/$(DEPDIR)/parserpmdump.Po"; else rm -f "src/$(DEPDIR)/parserpmdump.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/parserpmdump.c' object='src/parserpmdump.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/parserpmdump.Po' tmpdepfile='src/$(DEPDIR)/parserpmdump.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/parserpmdump.o `test -f 'src/parserpmdump.c' || echo '$(srcdir)/'`src/parserpmdump.c
-
-src/parserpmdump.obj: src/parserpmdump.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/parserpmdump.obj -MD -MP -MF "src/$(DEPDIR)/parserpmdump.Tpo" -c -o src/parserpmdump.obj `if test -f 'src/parserpmdump.c'; then $(CYGPATH_W) 'src/parserpmdump.c'; else $(CYGPATH_W) '$(srcdir)/src/parserpmdump.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/parserpmdump.Tpo" "src/$(DEPDIR)/parserpmdump.Po"; else rm -f "src/$(DEPDIR)/parserpmdump.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/parserpmdump.c' object='src/parserpmdump.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/parserpmdump.Po' tmpdepfile='src/$(DEPDIR)/parserpmdump.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/parserpmdump.obj `if test -f 'src/parserpmdump.c'; then $(CYGPATH_W) 'src/parserpmdump.c'; else $(CYGPATH_W) '$(srcdir)/src/parserpmdump.c'; fi`
-
-src/readlink.o: src/readlink.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/readlink.o -MD -MP -MF "src/$(DEPDIR)/readlink.Tpo" -c -o src/readlink.o `test -f 'src/readlink.c' || echo '$(srcdir)/'`src/readlink.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/readlink.Tpo" "src/$(DEPDIR)/readlink.Po"; else rm -f "src/$(DEPDIR)/readlink.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/readlink.c' object='src/readlink.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/readlink.Po' tmpdepfile='src/$(DEPDIR)/readlink.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/readlink.o `test -f 'src/readlink.c' || echo '$(srcdir)/'`src/readlink.c
-
-src/readlink.obj: src/readlink.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/readlink.obj -MD -MP -MF "src/$(DEPDIR)/readlink.Tpo" -c -o src/readlink.obj `if test -f 'src/readlink.c'; then $(CYGPATH_W) 'src/readlink.c'; else $(CYGPATH_W) '$(srcdir)/src/readlink.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/readlink.Tpo" "src/$(DEPDIR)/readlink.Po"; else rm -f "src/$(DEPDIR)/readlink.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/readlink.c' object='src/readlink.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/readlink.Po' tmpdepfile='src/$(DEPDIR)/readlink.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/readlink.obj `if test -f 'src/readlink.c'; then $(CYGPATH_W) 'src/readlink.c'; else $(CYGPATH_W) '$(srcdir)/src/readlink.c'; fi`
-
-src/src_rebootmgr-rebootmgr.o: src/rebootmgr.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_rebootmgr_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_rebootmgr-rebootmgr.o -MD -MP -MF "src/$(DEPDIR)/src_rebootmgr-rebootmgr.Tpo" -c -o src/src_rebootmgr-rebootmgr.o `test -f 'src/rebootmgr.c' || echo '$(srcdir)/'`src/rebootmgr.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/src_rebootmgr-rebootmgr.Tpo" "src/$(DEPDIR)/src_rebootmgr-rebootmgr.Po"; else rm -f "src/$(DEPDIR)/src_rebootmgr-rebootmgr.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/rebootmgr.c' object='src/src_rebootmgr-rebootmgr.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/src_rebootmgr-rebootmgr.Po' tmpdepfile='src/$(DEPDIR)/src_rebootmgr-rebootmgr.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_rebootmgr_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_rebootmgr-rebootmgr.o `test -f 'src/rebootmgr.c' || echo '$(srcdir)/'`src/rebootmgr.c
-
-src/src_rebootmgr-rebootmgr.obj: src/rebootmgr.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_rebootmgr_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_rebootmgr-rebootmgr.obj -MD -MP -MF "src/$(DEPDIR)/src_rebootmgr-rebootmgr.Tpo" -c -o src/src_rebootmgr-rebootmgr.obj `if test -f 'src/rebootmgr.c'; then $(CYGPATH_W) 'src/rebootmgr.c'; else $(CYGPATH_W) '$(srcdir)/src/rebootmgr.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/src_rebootmgr-rebootmgr.Tpo" "src/$(DEPDIR)/src_rebootmgr-rebootmgr.Po"; else rm -f "src/$(DEPDIR)/src_rebootmgr-rebootmgr.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/rebootmgr.c' object='src/src_rebootmgr-rebootmgr.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/src_rebootmgr-rebootmgr.Po' tmpdepfile='src/$(DEPDIR)/src_rebootmgr-rebootmgr.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_rebootmgr_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_rebootmgr-rebootmgr.obj `if test -f 'src/rebootmgr.c'; then $(CYGPATH_W) 'src/rebootmgr.c'; else $(CYGPATH_W) '$(srcdir)/src/rebootmgr.c'; fi`
-
-src/reducecap.o: src/reducecap.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/reducecap.o -MD -MP -MF "src/$(DEPDIR)/reducecap.Tpo" -c -o src/reducecap.o `test -f 'src/reducecap.c' || echo '$(srcdir)/'`src/reducecap.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/reducecap.Tpo" "src/$(DEPDIR)/reducecap.Po"; else rm -f "src/$(DEPDIR)/reducecap.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/reducecap.c' object='src/reducecap.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/reducecap.Po' tmpdepfile='src/$(DEPDIR)/reducecap.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/reducecap.o `test -f 'src/reducecap.c' || echo '$(srcdir)/'`src/reducecap.c
-
-src/reducecap.obj: src/reducecap.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/reducecap.obj -MD -MP -MF "src/$(DEPDIR)/reducecap.Tpo" -c -o src/reducecap.obj `if test -f 'src/reducecap.c'; then $(CYGPATH_W) 'src/reducecap.c'; else $(CYGPATH_W) '$(srcdir)/src/reducecap.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/reducecap.Tpo" "src/$(DEPDIR)/reducecap.Po"; else rm -f "src/$(DEPDIR)/reducecap.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/reducecap.c' object='src/reducecap.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/reducecap.Po' tmpdepfile='src/$(DEPDIR)/reducecap.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/reducecap.obj `if test -f 'src/reducecap.c'; then $(CYGPATH_W) 'src/reducecap.c'; else $(CYGPATH_W) '$(srcdir)/src/reducecap.c'; fi`
-
-src/showattr.o: src/showattr.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/showattr.o -MD -MP -MF "src/$(DEPDIR)/showattr.Tpo" -c -o src/showattr.o `test -f 'src/showattr.c' || echo '$(srcdir)/'`src/showattr.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/showattr.Tpo" "src/$(DEPDIR)/showattr.Po"; else rm -f "src/$(DEPDIR)/showattr.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/showattr.c' object='src/showattr.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/showattr.Po' tmpdepfile='src/$(DEPDIR)/showattr.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/showattr.o `test -f 'src/showattr.c' || echo '$(srcdir)/'`src/showattr.c
-
-src/showattr.obj: src/showattr.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/showattr.obj -MD -MP -MF "src/$(DEPDIR)/showattr.Tpo" -c -o src/showattr.obj `if test -f 'src/showattr.c'; then $(CYGPATH_W) 'src/showattr.c'; else $(CYGPATH_W) '$(srcdir)/src/showattr.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/showattr.Tpo" "src/$(DEPDIR)/showattr.Po"; else rm -f "src/$(DEPDIR)/showattr.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/showattr.c' object='src/showattr.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/showattr.Po' tmpdepfile='src/$(DEPDIR)/showattr.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/showattr.obj `if test -f 'src/showattr.c'; then $(CYGPATH_W) 'src/showattr.c'; else $(CYGPATH_W) '$(srcdir)/src/showattr.c'; fi`
-
-src/showperm.o: src/showperm.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/showperm.o -MD -MP -MF "src/$(DEPDIR)/showperm.Tpo" -c -o src/showperm.o `test -f 'src/showperm.c' || echo '$(srcdir)/'`src/showperm.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/showperm.Tpo" "src/$(DEPDIR)/showperm.Po"; else rm -f "src/$(DEPDIR)/showperm.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/showperm.c' object='src/showperm.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/showperm.Po' tmpdepfile='src/$(DEPDIR)/showperm.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/showperm.o `test -f 'src/showperm.c' || echo '$(srcdir)/'`src/showperm.c
-
-src/showperm.obj: src/showperm.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/showperm.obj -MD -MP -MF "src/$(DEPDIR)/showperm.Tpo" -c -o src/showperm.obj `if test -f 'src/showperm.c'; then $(CYGPATH_W) 'src/showperm.c'; else $(CYGPATH_W) '$(srcdir)/src/showperm.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/showperm.Tpo" "src/$(DEPDIR)/showperm.Po"; else rm -f "src/$(DEPDIR)/showperm.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/showperm.c' object='src/showperm.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/showperm.Po' tmpdepfile='src/$(DEPDIR)/showperm.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/showperm.obj `if test -f 'src/showperm.c'; then $(CYGPATH_W) 'src/showperm.c'; else $(CYGPATH_W) '$(srcdir)/src/showperm.c'; fi`
-
-src/vdu.o: src/vdu.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/vdu.o -MD -MP -MF "src/$(DEPDIR)/vdu.Tpo" -c -o src/vdu.o `test -f 'src/vdu.c' || echo '$(srcdir)/'`src/vdu.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/vdu.Tpo" "src/$(DEPDIR)/vdu.Po"; else rm -f "src/$(DEPDIR)/vdu.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vdu.c' object='src/vdu.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/vdu.Po' tmpdepfile='src/$(DEPDIR)/vdu.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/vdu.o `test -f 'src/vdu.c' || echo '$(srcdir)/'`src/vdu.c
-
-src/vdu.obj: src/vdu.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/vdu.obj -MD -MP -MF "src/$(DEPDIR)/vdu.Tpo" -c -o src/vdu.obj `if test -f 'src/vdu.c'; then $(CYGPATH_W) 'src/vdu.c'; else $(CYGPATH_W) '$(srcdir)/src/vdu.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/vdu.Tpo" "src/$(DEPDIR)/vdu.Po"; else rm -f "src/$(DEPDIR)/vdu.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vdu.c' object='src/vdu.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/vdu.Po' tmpdepfile='src/$(DEPDIR)/vdu.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/vdu.obj `if test -f 'src/vdu.c'; then $(CYGPATH_W) 'src/vdu.c'; else $(CYGPATH_W) '$(srcdir)/src/vdu.c'; fi`
+lib/lib_libvserver_a-capabilities.o: lib/capabilities.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-capabilities.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-capabilities.Tpo" -c -o lib/lib_libvserver_a-capabilities.o `test -f 'lib/capabilities.c' || echo '$(srcdir)/'`lib/capabilities.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-capabilities.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-capabilities.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-capabilities.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/capabilities.c' object='lib/lib_libvserver_a-capabilities.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-capabilities.o `test -f 'lib/capabilities.c' || echo '$(srcdir)/'`lib/capabilities.c
+
+lib/lib_libvserver_a-capabilities.obj: lib/capabilities.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-capabilities.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-capabilities.Tpo" -c -o lib/lib_libvserver_a-capabilities.obj `if test -f 'lib/capabilities.c'; then $(CYGPATH_W) 'lib/capabilities.c'; else $(CYGPATH_W) '$(srcdir)/lib/capabilities.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-capabilities.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-capabilities.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-capabilities.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/capabilities.c' object='lib/lib_libvserver_a-capabilities.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-capabilities.obj `if test -f 'lib/capabilities.c'; then $(CYGPATH_W) 'lib/capabilities.c'; else $(CYGPATH_W) '$(srcdir)/lib/capabilities.c'; fi`
+
+lib/lib_libvserver_a-getfilecontext.o: lib/getfilecontext.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getfilecontext.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getfilecontext.Tpo" -c -o lib/lib_libvserver_a-getfilecontext.o `test -f 'lib/getfilecontext.c' || echo '$(srcdir)/'`lib/getfilecontext.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getfilecontext.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getfilecontext.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getfilecontext.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getfilecontext.c' object='lib/lib_libvserver_a-getfilecontext.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getfilecontext.o `test -f 'lib/getfilecontext.c' || echo '$(srcdir)/'`lib/getfilecontext.c
+
+lib/lib_libvserver_a-getfilecontext.obj: lib/getfilecontext.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getfilecontext.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getfilecontext.Tpo" -c -o lib/lib_libvserver_a-getfilecontext.obj `if test -f 'lib/getfilecontext.c'; then $(CYGPATH_W) 'lib/getfilecontext.c'; else $(CYGPATH_W) '$(srcdir)/lib/getfilecontext.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getfilecontext.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getfilecontext.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getfilecontext.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getfilecontext.c' object='lib/lib_libvserver_a-getfilecontext.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getfilecontext.obj `if test -f 'lib/getfilecontext.c'; then $(CYGPATH_W) 'lib/getfilecontext.c'; else $(CYGPATH_W) '$(srcdir)/lib/getfilecontext.c'; fi`
+
+lib/lib_libvserver_a-getinsecurebcaps.o: lib/getinsecurebcaps.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getinsecurebcaps.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getinsecurebcaps.Tpo" -c -o lib/lib_libvserver_a-getinsecurebcaps.o `test -f 'lib/getinsecurebcaps.c' || echo '$(srcdir)/'`lib/getinsecurebcaps.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getinsecurebcaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getinsecurebcaps.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getinsecurebcaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getinsecurebcaps.c' object='lib/lib_libvserver_a-getinsecurebcaps.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getinsecurebcaps.o `test -f 'lib/getinsecurebcaps.c' || echo '$(srcdir)/'`lib/getinsecurebcaps.c
+
+lib/lib_libvserver_a-getinsecurebcaps.obj: lib/getinsecurebcaps.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getinsecurebcaps.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getinsecurebcaps.Tpo" -c -o lib/lib_libvserver_a-getinsecurebcaps.obj `if test -f 'lib/getinsecurebcaps.c'; then $(CYGPATH_W) 'lib/getinsecurebcaps.c'; else $(CYGPATH_W) '$(srcdir)/lib/getinsecurebcaps.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getinsecurebcaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getinsecurebcaps.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getinsecurebcaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getinsecurebcaps.c' object='lib/lib_libvserver_a-getinsecurebcaps.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getinsecurebcaps.obj `if test -f 'lib/getinsecurebcaps.c'; then $(CYGPATH_W) 'lib/getinsecurebcaps.c'; else $(CYGPATH_W) '$(srcdir)/lib/getinsecurebcaps.c'; fi`
+
+lib/lib_libvserver_a-getxidtype.o: lib/getxidtype.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getxidtype.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getxidtype.Tpo" -c -o lib/lib_libvserver_a-getxidtype.o `test -f 'lib/getxidtype.c' || echo '$(srcdir)/'`lib/getxidtype.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getxidtype.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getxidtype.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getxidtype.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getxidtype.c' object='lib/lib_libvserver_a-getxidtype.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getxidtype.o `test -f 'lib/getxidtype.c' || echo '$(srcdir)/'`lib/getxidtype.c
+
+lib/lib_libvserver_a-getxidtype.obj: lib/getxidtype.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getxidtype.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getxidtype.Tpo" -c -o lib/lib_libvserver_a-getxidtype.obj `if test -f 'lib/getxidtype.c'; then $(CYGPATH_W) 'lib/getxidtype.c'; else $(CYGPATH_W) '$(srcdir)/lib/getxidtype.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getxidtype.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getxidtype.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getxidtype.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getxidtype.c' object='lib/lib_libvserver_a-getxidtype.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getxidtype.obj `if test -f 'lib/getxidtype.c'; then $(CYGPATH_W) 'lib/getxidtype.c'; else $(CYGPATH_W) '$(srcdir)/lib/getxidtype.c'; fi`
+
+lib/lib_libvserver_a-isdynamicxid.o: lib/isdynamicxid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-isdynamicxid.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-isdynamicxid.Tpo" -c -o lib/lib_libvserver_a-isdynamicxid.o `test -f 'lib/isdynamicxid.c' || echo '$(srcdir)/'`lib/isdynamicxid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-isdynamicxid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-isdynamicxid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-isdynamicxid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/isdynamicxid.c' object='lib/lib_libvserver_a-isdynamicxid.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-isdynamicxid.o `test -f 'lib/isdynamicxid.c' || echo '$(srcdir)/'`lib/isdynamicxid.c
+
+lib/lib_libvserver_a-isdynamicxid.obj: lib/isdynamicxid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-isdynamicxid.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-isdynamicxid.Tpo" -c -o lib/lib_libvserver_a-isdynamicxid.obj `if test -f 'lib/isdynamicxid.c'; then $(CYGPATH_W) 'lib/isdynamicxid.c'; else $(CYGPATH_W) '$(srcdir)/lib/isdynamicxid.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-isdynamicxid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-isdynamicxid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-isdynamicxid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/isdynamicxid.c' object='lib/lib_libvserver_a-isdynamicxid.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-isdynamicxid.obj `if test -f 'lib/isdynamicxid.c'; then $(CYGPATH_W) 'lib/isdynamicxid.c'; else $(CYGPATH_W) '$(srcdir)/lib/isdynamicxid.c'; fi`
+
+lib/lib_libvserver_a-issupported.o: lib/issupported.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-issupported.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-issupported.Tpo" -c -o lib/lib_libvserver_a-issupported.o `test -f 'lib/issupported.c' || echo '$(srcdir)/'`lib/issupported.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-issupported.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-issupported.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-issupported.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/issupported.c' object='lib/lib_libvserver_a-issupported.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-issupported.o `test -f 'lib/issupported.c' || echo '$(srcdir)/'`lib/issupported.c
+
+lib/lib_libvserver_a-issupported.obj: lib/issupported.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-issupported.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-issupported.Tpo" -c -o lib/lib_libvserver_a-issupported.obj `if test -f 'lib/issupported.c'; then $(CYGPATH_W) 'lib/issupported.c'; else $(CYGPATH_W) '$(srcdir)/lib/issupported.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-issupported.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-issupported.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-issupported.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/issupported.c' object='lib/lib_libvserver_a-issupported.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-issupported.obj `if test -f 'lib/issupported.c'; then $(CYGPATH_W) 'lib/issupported.c'; else $(CYGPATH_W) '$(srcdir)/lib/issupported.c'; fi`
+
+lib/lib_libvserver_a-issupportedstring.o: lib/issupportedstring.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-issupportedstring.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-issupportedstring.Tpo" -c -o lib/lib_libvserver_a-issupportedstring.o `test -f 'lib/issupportedstring.c' || echo '$(srcdir)/'`lib/issupportedstring.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-issupportedstring.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-issupportedstring.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-issupportedstring.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/issupportedstring.c' object='lib/lib_libvserver_a-issupportedstring.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-issupportedstring.o `test -f 'lib/issupportedstring.c' || echo '$(srcdir)/'`lib/issupportedstring.c
+
+lib/lib_libvserver_a-issupportedstring.obj: lib/issupportedstring.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-issupportedstring.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-issupportedstring.Tpo" -c -o lib/lib_libvserver_a-issupportedstring.obj `if test -f 'lib/issupportedstring.c'; then $(CYGPATH_W) 'lib/issupportedstring.c'; else $(CYGPATH_W) '$(srcdir)/lib/issupportedstring.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-issupportedstring.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-issupportedstring.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-issupportedstring.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/issupportedstring.c' object='lib/lib_libvserver_a-issupportedstring.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-issupportedstring.obj `if test -f 'lib/issupportedstring.c'; then $(CYGPATH_W) 'lib/issupportedstring.c'; else $(CYGPATH_W) '$(srcdir)/lib/issupportedstring.c'; fi`
+
+lib/lib_libvserver_a-listparser_uint32.o: lib/listparser_uint32.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-listparser_uint32.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint32.Tpo" -c -o lib/lib_libvserver_a-listparser_uint32.o `test -f 'lib/listparser_uint32.c' || echo '$(srcdir)/'`lib/listparser_uint32.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint32.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint32.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/listparser_uint32.c' object='lib/lib_libvserver_a-listparser_uint32.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-listparser_uint32.o `test -f 'lib/listparser_uint32.c' || echo '$(srcdir)/'`lib/listparser_uint32.c
+
+lib/lib_libvserver_a-listparser_uint32.obj: lib/listparser_uint32.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-listparser_uint32.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint32.Tpo" -c -o lib/lib_libvserver_a-listparser_uint32.obj `if test -f 'lib/listparser_uint32.c'; then $(CYGPATH_W) 'lib/listparser_uint32.c'; else $(CYGPATH_W) '$(srcdir)/lib/listparser_uint32.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint32.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint32.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/listparser_uint32.c' object='lib/lib_libvserver_a-listparser_uint32.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-listparser_uint32.obj `if test -f 'lib/listparser_uint32.c'; then $(CYGPATH_W) 'lib/listparser_uint32.c'; else $(CYGPATH_W) '$(srcdir)/lib/listparser_uint32.c'; fi`
+
+lib/lib_libvserver_a-listparser_uint64.o: lib/listparser_uint64.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-listparser_uint64.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint64.Tpo" -c -o lib/lib_libvserver_a-listparser_uint64.o `test -f 'lib/listparser_uint64.c' || echo '$(srcdir)/'`lib/listparser_uint64.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint64.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint64.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/listparser_uint64.c' object='lib/lib_libvserver_a-listparser_uint64.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-listparser_uint64.o `test -f 'lib/listparser_uint64.c' || echo '$(srcdir)/'`lib/listparser_uint64.c
+
+lib/lib_libvserver_a-listparser_uint64.obj: lib/listparser_uint64.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-listparser_uint64.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint64.Tpo" -c -o lib/lib_libvserver_a-listparser_uint64.obj `if test -f 'lib/listparser_uint64.c'; then $(CYGPATH_W) 'lib/listparser_uint64.c'; else $(CYGPATH_W) '$(srcdir)/lib/listparser_uint64.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint64.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint64.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-listparser_uint64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/listparser_uint64.c' object='lib/lib_libvserver_a-listparser_uint64.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-listparser_uint64.obj `if test -f 'lib/listparser_uint64.c'; then $(CYGPATH_W) 'lib/listparser_uint64.c'; else $(CYGPATH_W) '$(srcdir)/lib/listparser_uint64.c'; fi`
+
+lib/lib_libvserver_a-personalityflag.o: lib/personalityflag.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-personalityflag.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-personalityflag.Tpo" -c -o lib/lib_libvserver_a-personalityflag.o `test -f 'lib/personalityflag.c' || echo '$(srcdir)/'`lib/personalityflag.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-personalityflag.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-personalityflag.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-personalityflag.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/personalityflag.c' object='lib/lib_libvserver_a-personalityflag.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-personalityflag.o `test -f 'lib/personalityflag.c' || echo '$(srcdir)/'`lib/personalityflag.c
+
+lib/lib_libvserver_a-personalityflag.obj: lib/personalityflag.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-personalityflag.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-personalityflag.Tpo" -c -o lib/lib_libvserver_a-personalityflag.obj `if test -f 'lib/personalityflag.c'; then $(CYGPATH_W) 'lib/personalityflag.c'; else $(CYGPATH_W) '$(srcdir)/lib/personalityflag.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-personalityflag.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-personalityflag.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-personalityflag.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/personalityflag.c' object='lib/lib_libvserver_a-personalityflag.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-personalityflag.obj `if test -f 'lib/personalityflag.c'; then $(CYGPATH_W) 'lib/personalityflag.c'; else $(CYGPATH_W) '$(srcdir)/lib/personalityflag.c'; fi`
+
+lib/lib_libvserver_a-personalityflag_list.o: lib/personalityflag_list.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-personalityflag_list.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-personalityflag_list.Tpo" -c -o lib/lib_libvserver_a-personalityflag_list.o `test -f 'lib/personalityflag_list.c' || echo '$(srcdir)/'`lib/personalityflag_list.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-personalityflag_list.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-personalityflag_list.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-personalityflag_list.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/personalityflag_list.c' object='lib/lib_libvserver_a-personalityflag_list.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-personalityflag_list.o `test -f 'lib/personalityflag_list.c' || echo '$(srcdir)/'`lib/personalityflag_list.c
+
+lib/lib_libvserver_a-personalityflag_list.obj: lib/personalityflag_list.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-personalityflag_list.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-personalityflag_list.Tpo" -c -o lib/lib_libvserver_a-personalityflag_list.obj `if test -f 'lib/personalityflag_list.c'; then $(CYGPATH_W) 'lib/personalityflag_list.c'; else $(CYGPATH_W) '$(srcdir)/lib/personalityflag_list.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-personalityflag_list.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-personalityflag_list.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-personalityflag_list.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/personalityflag_list.c' object='lib/lib_libvserver_a-personalityflag_list.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-personalityflag_list.obj `if test -f 'lib/personalityflag_list.c'; then $(CYGPATH_W) 'lib/personalityflag_list.c'; else $(CYGPATH_W) '$(srcdir)/lib/personalityflag_list.c'; fi`
+
+lib/lib_libvserver_a-personalitytype.o: lib/personalitytype.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-personalitytype.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-personalitytype.Tpo" -c -o lib/lib_libvserver_a-personalitytype.o `test -f 'lib/personalitytype.c' || echo '$(srcdir)/'`lib/personalitytype.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-personalitytype.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-personalitytype.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-personalitytype.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/personalitytype.c' object='lib/lib_libvserver_a-personalitytype.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-personalitytype.o `test -f 'lib/personalitytype.c' || echo '$(srcdir)/'`lib/personalitytype.c
+
+lib/lib_libvserver_a-personalitytype.obj: lib/personalitytype.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-personalitytype.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-personalitytype.Tpo" -c -o lib/lib_libvserver_a-personalitytype.obj `if test -f 'lib/personalitytype.c'; then $(CYGPATH_W) 'lib/personalitytype.c'; else $(CYGPATH_W) '$(srcdir)/lib/personalitytype.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-personalitytype.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-personalitytype.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-personalitytype.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/personalitytype.c' object='lib/lib_libvserver_a-personalitytype.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-personalitytype.obj `if test -f 'lib/personalitytype.c'; then $(CYGPATH_W) 'lib/personalitytype.c'; else $(CYGPATH_W) '$(srcdir)/lib/personalitytype.c'; fi`
+
+lib/lib_libvserver_a-syscall-syscall.o: lib/syscall-syscall.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall-syscall.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall-syscall.Tpo" -c -o lib/lib_libvserver_a-syscall-syscall.o `test -f 'lib/syscall-syscall.c' || echo '$(srcdir)/'`lib/syscall-syscall.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall-syscall.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall-syscall.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall-syscall.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall-syscall.c' object='lib/lib_libvserver_a-syscall-syscall.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall-syscall.o `test -f 'lib/syscall-syscall.c' || echo '$(srcdir)/'`lib/syscall-syscall.c
+
+lib/lib_libvserver_a-syscall-syscall.obj: lib/syscall-syscall.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall-syscall.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall-syscall.Tpo" -c -o lib/lib_libvserver_a-syscall-syscall.obj `if test -f 'lib/syscall-syscall.c'; then $(CYGPATH_W) 'lib/syscall-syscall.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall-syscall.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall-syscall.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall-syscall.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall-syscall.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall-syscall.c' object='lib/lib_libvserver_a-syscall-syscall.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall-syscall.obj `if test -f 'lib/syscall-syscall.c'; then $(CYGPATH_W) 'lib/syscall-syscall.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall-syscall.c'; fi`
+
+lib/lib_libvserver_a-val2text-t2v-uint32.o: lib/val2text-t2v-uint32.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-val2text-t2v-uint32.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint32.Tpo" -c -o lib/lib_libvserver_a-val2text-t2v-uint32.o `test -f 'lib/val2text-t2v-uint32.c' || echo '$(srcdir)/'`lib/val2text-t2v-uint32.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint32.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint32.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-t2v-uint32.c' object='lib/lib_libvserver_a-val2text-t2v-uint32.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-val2text-t2v-uint32.o `test -f 'lib/val2text-t2v-uint32.c' || echo '$(srcdir)/'`lib/val2text-t2v-uint32.c
+
+lib/lib_libvserver_a-val2text-t2v-uint32.obj: lib/val2text-t2v-uint32.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-val2text-t2v-uint32.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint32.Tpo" -c -o lib/lib_libvserver_a-val2text-t2v-uint32.obj `if test -f 'lib/val2text-t2v-uint32.c'; then $(CYGPATH_W) 'lib/val2text-t2v-uint32.c'; else $(CYGPATH_W) '$(srcdir)/lib/val2text-t2v-uint32.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint32.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint32.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-t2v-uint32.c' object='lib/lib_libvserver_a-val2text-t2v-uint32.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-val2text-t2v-uint32.obj `if test -f 'lib/val2text-t2v-uint32.c'; then $(CYGPATH_W) 'lib/val2text-t2v-uint32.c'; else $(CYGPATH_W) '$(srcdir)/lib/val2text-t2v-uint32.c'; fi`
+
+lib/lib_libvserver_a-val2text-t2v-uint64.o: lib/val2text-t2v-uint64.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-val2text-t2v-uint64.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint64.Tpo" -c -o lib/lib_libvserver_a-val2text-t2v-uint64.o `test -f 'lib/val2text-t2v-uint64.c' || echo '$(srcdir)/'`lib/val2text-t2v-uint64.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint64.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint64.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-t2v-uint64.c' object='lib/lib_libvserver_a-val2text-t2v-uint64.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-val2text-t2v-uint64.o `test -f 'lib/val2text-t2v-uint64.c' || echo '$(srcdir)/'`lib/val2text-t2v-uint64.c
+
+lib/lib_libvserver_a-val2text-t2v-uint64.obj: lib/val2text-t2v-uint64.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-val2text-t2v-uint64.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint64.Tpo" -c -o lib/lib_libvserver_a-val2text-t2v-uint64.obj `if test -f 'lib/val2text-t2v-uint64.c'; then $(CYGPATH_W) 'lib/val2text-t2v-uint64.c'; else $(CYGPATH_W) '$(srcdir)/lib/val2text-t2v-uint64.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint64.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint64.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-t2v-uint64.c' object='lib/lib_libvserver_a-val2text-t2v-uint64.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-val2text-t2v-uint64.obj `if test -f 'lib/val2text-t2v-uint64.c'; then $(CYGPATH_W) 'lib/val2text-t2v-uint64.c'; else $(CYGPATH_W) '$(srcdir)/lib/val2text-t2v-uint64.c'; fi`
+
+lib/lib_libvserver_a-val2text-v2t-uint32.o: lib/val2text-v2t-uint32.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-val2text-v2t-uint32.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint32.Tpo" -c -o lib/lib_libvserver_a-val2text-v2t-uint32.o `test -f 'lib/val2text-v2t-uint32.c' || echo '$(srcdir)/'`lib/val2text-v2t-uint32.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint32.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint32.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-v2t-uint32.c' object='lib/lib_libvserver_a-val2text-v2t-uint32.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-val2text-v2t-uint32.o `test -f 'lib/val2text-v2t-uint32.c' || echo '$(srcdir)/'`lib/val2text-v2t-uint32.c
+
+lib/lib_libvserver_a-val2text-v2t-uint32.obj: lib/val2text-v2t-uint32.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-val2text-v2t-uint32.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint32.Tpo" -c -o lib/lib_libvserver_a-val2text-v2t-uint32.obj `if test -f 'lib/val2text-v2t-uint32.c'; then $(CYGPATH_W) 'lib/val2text-v2t-uint32.c'; else $(CYGPATH_W) '$(srcdir)/lib/val2text-v2t-uint32.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint32.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint32.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-v2t-uint32.c' object='lib/lib_libvserver_a-val2text-v2t-uint32.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-val2text-v2t-uint32.obj `if test -f 'lib/val2text-v2t-uint32.c'; then $(CYGPATH_W) 'lib/val2text-v2t-uint32.c'; else $(CYGPATH_W) '$(srcdir)/lib/val2text-v2t-uint32.c'; fi`
+
+lib/lib_libvserver_a-val2text-v2t-uint64.o: lib/val2text-v2t-uint64.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-val2text-v2t-uint64.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint64.Tpo" -c -o lib/lib_libvserver_a-val2text-v2t-uint64.o `test -f 'lib/val2text-v2t-uint64.c' || echo '$(srcdir)/'`lib/val2text-v2t-uint64.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint64.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint64.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-v2t-uint64.c' object='lib/lib_libvserver_a-val2text-v2t-uint64.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-val2text-v2t-uint64.o `test -f 'lib/val2text-v2t-uint64.c' || echo '$(srcdir)/'`lib/val2text-v2t-uint64.c
+
+lib/lib_libvserver_a-val2text-v2t-uint64.obj: lib/val2text-v2t-uint64.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-val2text-v2t-uint64.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint64.Tpo" -c -o lib/lib_libvserver_a-val2text-v2t-uint64.obj `if test -f 'lib/val2text-v2t-uint64.c'; then $(CYGPATH_W) 'lib/val2text-v2t-uint64.c'; else $(CYGPATH_W) '$(srcdir)/lib/val2text-v2t-uint64.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint64.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint64.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-val2text-v2t-uint64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-v2t-uint64.c' object='lib/lib_libvserver_a-val2text-v2t-uint64.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-val2text-v2t-uint64.obj `if test -f 'lib/val2text-v2t-uint64.c'; then $(CYGPATH_W) 'lib/val2text-v2t-uint64.c'; else $(CYGPATH_W) '$(srcdir)/lib/val2text-v2t-uint64.c'; fi`
+
+lib/lib_libvserver_a-parselimit.o: lib/parselimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-parselimit.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-parselimit.Tpo" -c -o lib/lib_libvserver_a-parselimit.o `test -f 'lib/parselimit.c' || echo '$(srcdir)/'`lib/parselimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-parselimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-parselimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-parselimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/parselimit.c' object='lib/lib_libvserver_a-parselimit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-parselimit.o `test -f 'lib/parselimit.c' || echo '$(srcdir)/'`lib/parselimit.c
+
+lib/lib_libvserver_a-parselimit.obj: lib/parselimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-parselimit.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-parselimit.Tpo" -c -o lib/lib_libvserver_a-parselimit.obj `if test -f 'lib/parselimit.c'; then $(CYGPATH_W) 'lib/parselimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/parselimit.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-parselimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-parselimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-parselimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/parselimit.c' object='lib/lib_libvserver_a-parselimit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-parselimit.obj `if test -f 'lib/parselimit.c'; then $(CYGPATH_W) 'lib/parselimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/parselimit.c'; fi`
+
+lib/lib_libvserver_a-getprocentry-legacy.o: lib/getprocentry-legacy.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getprocentry-legacy.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getprocentry-legacy.Tpo" -c -o lib/lib_libvserver_a-getprocentry-legacy.o `test -f 'lib/getprocentry-legacy.c' || echo '$(srcdir)/'`lib/getprocentry-legacy.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getprocentry-legacy.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getprocentry-legacy.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getprocentry-legacy.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getprocentry-legacy.c' object='lib/lib_libvserver_a-getprocentry-legacy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getprocentry-legacy.o `test -f 'lib/getprocentry-legacy.c' || echo '$(srcdir)/'`lib/getprocentry-legacy.c
+
+lib/lib_libvserver_a-getprocentry-legacy.obj: lib/getprocentry-legacy.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getprocentry-legacy.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getprocentry-legacy.Tpo" -c -o lib/lib_libvserver_a-getprocentry-legacy.obj `if test -f 'lib/getprocentry-legacy.c'; then $(CYGPATH_W) 'lib/getprocentry-legacy.c'; else $(CYGPATH_W) '$(srcdir)/lib/getprocentry-legacy.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getprocentry-legacy.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getprocentry-legacy.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getprocentry-legacy.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getprocentry-legacy.c' object='lib/lib_libvserver_a-getprocentry-legacy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getprocentry-legacy.obj `if test -f 'lib/getprocentry-legacy.c'; then $(CYGPATH_W) 'lib/getprocentry-legacy.c'; else $(CYGPATH_W) '$(srcdir)/lib/getprocentry-legacy.c'; fi`
+
+lib/lib_libvserver_a-cflags-compat.o: lib/cflags-compat.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-cflags-compat.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-cflags-compat.Tpo" -c -o lib/lib_libvserver_a-cflags-compat.o `test -f 'lib/cflags-compat.c' || echo '$(srcdir)/'`lib/cflags-compat.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-cflags-compat.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-cflags-compat.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-cflags-compat.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags-compat.c' object='lib/lib_libvserver_a-cflags-compat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-cflags-compat.o `test -f 'lib/cflags-compat.c' || echo '$(srcdir)/'`lib/cflags-compat.c
+
+lib/lib_libvserver_a-cflags-compat.obj: lib/cflags-compat.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-cflags-compat.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-cflags-compat.Tpo" -c -o lib/lib_libvserver_a-cflags-compat.obj `if test -f 'lib/cflags-compat.c'; then $(CYGPATH_W) 'lib/cflags-compat.c'; else $(CYGPATH_W) '$(srcdir)/lib/cflags-compat.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-cflags-compat.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-cflags-compat.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-cflags-compat.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags-compat.c' object='lib/lib_libvserver_a-cflags-compat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-cflags-compat.obj `if test -f 'lib/cflags-compat.c'; then $(CYGPATH_W) 'lib/cflags-compat.c'; else $(CYGPATH_W) '$(srcdir)/lib/cflags-compat.c'; fi`
+
+lib/lib_libvserver_a-cflags_list-compat.o: lib/cflags_list-compat.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-cflags_list-compat.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-compat.Tpo" -c -o lib/lib_libvserver_a-cflags_list-compat.o `test -f 'lib/cflags_list-compat.c' || echo '$(srcdir)/'`lib/cflags_list-compat.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-compat.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-compat.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-compat.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags_list-compat.c' object='lib/lib_libvserver_a-cflags_list-compat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-cflags_list-compat.o `test -f 'lib/cflags_list-compat.c' || echo '$(srcdir)/'`lib/cflags_list-compat.c
+
+lib/lib_libvserver_a-cflags_list-compat.obj: lib/cflags_list-compat.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-cflags_list-compat.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-compat.Tpo" -c -o lib/lib_libvserver_a-cflags_list-compat.obj `if test -f 'lib/cflags_list-compat.c'; then $(CYGPATH_W) 'lib/cflags_list-compat.c'; else $(CYGPATH_W) '$(srcdir)/lib/cflags_list-compat.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-compat.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-compat.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-compat.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags_list-compat.c' object='lib/lib_libvserver_a-cflags_list-compat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-cflags_list-compat.obj `if test -f 'lib/cflags_list-compat.c'; then $(CYGPATH_W) 'lib/cflags_list-compat.c'; else $(CYGPATH_W) '$(srcdir)/lib/cflags_list-compat.c'; fi`
+
+lib/lib_libvserver_a-createskeleton.o: lib/createskeleton.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-createskeleton.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Tpo" -c -o lib/lib_libvserver_a-createskeleton.o `test -f 'lib/createskeleton.c' || echo '$(srcdir)/'`lib/createskeleton.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/createskeleton.c' object='lib/lib_libvserver_a-createskeleton.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-createskeleton.o `test -f 'lib/createskeleton.c' || echo '$(srcdir)/'`lib/createskeleton.c
+
+lib/lib_libvserver_a-createskeleton.obj: lib/createskeleton.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-createskeleton.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Tpo" -c -o lib/lib_libvserver_a-createskeleton.obj `if test -f 'lib/createskeleton.c'; then $(CYGPATH_W) 'lib/createskeleton.c'; else $(CYGPATH_W) '$(srcdir)/lib/createskeleton.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/createskeleton.c' object='lib/lib_libvserver_a-createskeleton.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-createskeleton.obj `if test -f 'lib/createskeleton.c'; then $(CYGPATH_W) 'lib/createskeleton.c'; else $(CYGPATH_W) '$(srcdir)/lib/createskeleton.c'; fi`
+
+lib/lib_libvserver_a-getvserverbyctx.o: lib/getvserverbyctx.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvserverbyctx.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvserverbyctx.Tpo" -c -o lib/lib_libvserver_a-getvserverbyctx.o `test -f 'lib/getvserverbyctx.c' || echo '$(srcdir)/'`lib/getvserverbyctx.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverbyctx.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvserverbyctx.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverbyctx.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvserverbyctx.c' object='lib/lib_libvserver_a-getvserverbyctx.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvserverbyctx.o `test -f 'lib/getvserverbyctx.c' || echo '$(srcdir)/'`lib/getvserverbyctx.c
+
+lib/lib_libvserver_a-getvserverbyctx.obj: lib/getvserverbyctx.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvserverbyctx.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvserverbyctx.Tpo" -c -o lib/lib_libvserver_a-getvserverbyctx.obj `if test -f 'lib/getvserverbyctx.c'; then $(CYGPATH_W) 'lib/getvserverbyctx.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvserverbyctx.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverbyctx.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvserverbyctx.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverbyctx.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvserverbyctx.c' object='lib/lib_libvserver_a-getvserverbyctx.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvserverbyctx.obj `if test -f 'lib/getvserverbyctx.c'; then $(CYGPATH_W) 'lib/getvserverbyctx.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvserverbyctx.c'; fi`
+
+lib/lib_libvserver_a-getvservercfgstyle.o: lib/getvservercfgstyle.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvservercfgstyle.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgstyle.Tpo" -c -o lib/lib_libvserver_a-getvservercfgstyle.o `test -f 'lib/getvservercfgstyle.c' || echo '$(srcdir)/'`lib/getvservercfgstyle.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgstyle.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgstyle.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgstyle.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservercfgstyle.c' object='lib/lib_libvserver_a-getvservercfgstyle.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvservercfgstyle.o `test -f 'lib/getvservercfgstyle.c' || echo '$(srcdir)/'`lib/getvservercfgstyle.c
+
+lib/lib_libvserver_a-getvservercfgstyle.obj: lib/getvservercfgstyle.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvservercfgstyle.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgstyle.Tpo" -c -o lib/lib_libvserver_a-getvservercfgstyle.obj `if test -f 'lib/getvservercfgstyle.c'; then $(CYGPATH_W) 'lib/getvservercfgstyle.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvservercfgstyle.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgstyle.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgstyle.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgstyle.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservercfgstyle.c' object='lib/lib_libvserver_a-getvservercfgstyle.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvservercfgstyle.obj `if test -f 'lib/getvservercfgstyle.c'; then $(CYGPATH_W) 'lib/getvservercfgstyle.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvservercfgstyle.c'; fi`
+
+lib/lib_libvserver_a-getvserverappdir.o: lib/getvserverappdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvserverappdir.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvserverappdir.Tpo" -c -o lib/lib_libvserver_a-getvserverappdir.o `test -f 'lib/getvserverappdir.c' || echo '$(srcdir)/'`lib/getvserverappdir.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverappdir.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvserverappdir.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverappdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvserverappdir.c' object='lib/lib_libvserver_a-getvserverappdir.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvserverappdir.o `test -f 'lib/getvserverappdir.c' || echo '$(srcdir)/'`lib/getvserverappdir.c
+
+lib/lib_libvserver_a-getvserverappdir.obj: lib/getvserverappdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvserverappdir.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvserverappdir.Tpo" -c -o lib/lib_libvserver_a-getvserverappdir.obj `if test -f 'lib/getvserverappdir.c'; then $(CYGPATH_W) 'lib/getvserverappdir.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvserverappdir.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverappdir.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvserverappdir.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverappdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvserverappdir.c' object='lib/lib_libvserver_a-getvserverappdir.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvserverappdir.obj `if test -f 'lib/getvserverappdir.c'; then $(CYGPATH_W) 'lib/getvserverappdir.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvserverappdir.c'; fi`
+
+lib/lib_libvserver_a-getvservercfgdir.o: lib/getvservercfgdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvservercfgdir.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgdir.Tpo" -c -o lib/lib_libvserver_a-getvservercfgdir.o `test -f 'lib/getvservercfgdir.c' || echo '$(srcdir)/'`lib/getvservercfgdir.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgdir.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgdir.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservercfgdir.c' object='lib/lib_libvserver_a-getvservercfgdir.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvservercfgdir.o `test -f 'lib/getvservercfgdir.c' || echo '$(srcdir)/'`lib/getvservercfgdir.c
+
+lib/lib_libvserver_a-getvservercfgdir.obj: lib/getvservercfgdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvservercfgdir.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgdir.Tpo" -c -o lib/lib_libvserver_a-getvservercfgdir.obj `if test -f 'lib/getvservercfgdir.c'; then $(CYGPATH_W) 'lib/getvservercfgdir.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvservercfgdir.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgdir.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgdir.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvservercfgdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservercfgdir.c' object='lib/lib_libvserver_a-getvservercfgdir.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvservercfgdir.obj `if test -f 'lib/getvservercfgdir.c'; then $(CYGPATH_W) 'lib/getvservercfgdir.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvservercfgdir.c'; fi`
+
+lib/lib_libvserver_a-getvserverctx.o: lib/getvserverctx.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvserverctx.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvserverctx.Tpo" -c -o lib/lib_libvserver_a-getvserverctx.o `test -f 'lib/getvserverctx.c' || echo '$(srcdir)/'`lib/getvserverctx.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverctx.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvserverctx.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverctx.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvserverctx.c' object='lib/lib_libvserver_a-getvserverctx.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvserverctx.o `test -f 'lib/getvserverctx.c' || echo '$(srcdir)/'`lib/getvserverctx.c
+
+lib/lib_libvserver_a-getvserverctx.obj: lib/getvserverctx.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvserverctx.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvserverctx.Tpo" -c -o lib/lib_libvserver_a-getvserverctx.obj `if test -f 'lib/getvserverctx.c'; then $(CYGPATH_W) 'lib/getvserverctx.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvserverctx.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverctx.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvserverctx.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvserverctx.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvserverctx.c' object='lib/lib_libvserver_a-getvserverctx.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvserverctx.obj `if test -f 'lib/getvserverctx.c'; then $(CYGPATH_W) 'lib/getvserverctx.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvserverctx.c'; fi`
+
+lib/lib_libvserver_a-getvservername.o: lib/getvservername.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvservername.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvservername.Tpo" -c -o lib/lib_libvserver_a-getvservername.o `test -f 'lib/getvservername.c' || echo '$(srcdir)/'`lib/getvservername.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvservername.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvservername.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvservername.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservername.c' object='lib/lib_libvserver_a-getvservername.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvservername.o `test -f 'lib/getvservername.c' || echo '$(srcdir)/'`lib/getvservername.c
+
+lib/lib_libvserver_a-getvservername.obj: lib/getvservername.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvservername.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvservername.Tpo" -c -o lib/lib_libvserver_a-getvservername.obj `if test -f 'lib/getvservername.c'; then $(CYGPATH_W) 'lib/getvservername.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvservername.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvservername.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvservername.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvservername.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservername.c' object='lib/lib_libvserver_a-getvservername.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvservername.obj `if test -f 'lib/getvservername.c'; then $(CYGPATH_W) 'lib/getvservername.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvservername.c'; fi`
+
+lib/lib_libvserver_a-getvservervdir.o: lib/getvservervdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvservervdir.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvservervdir.Tpo" -c -o lib/lib_libvserver_a-getvservervdir.o `test -f 'lib/getvservervdir.c' || echo '$(srcdir)/'`lib/getvservervdir.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvservervdir.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvservervdir.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvservervdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservervdir.c' object='lib/lib_libvserver_a-getvservervdir.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvservervdir.o `test -f 'lib/getvservervdir.c' || echo '$(srcdir)/'`lib/getvservervdir.c
+
+lib/lib_libvserver_a-getvservervdir.obj: lib/getvservervdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-getvservervdir.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-getvservervdir.Tpo" -c -o lib/lib_libvserver_a-getvservervdir.obj `if test -f 'lib/getvservervdir.c'; then $(CYGPATH_W) 'lib/getvservervdir.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvservervdir.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-getvservervdir.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-getvservervdir.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-getvservervdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservervdir.c' object='lib/lib_libvserver_a-getvservervdir.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-getvservervdir.obj `if test -f 'lib/getvservervdir.c'; then $(CYGPATH_W) 'lib/getvservervdir.c'; else $(CYGPATH_W) '$(srcdir)/lib/getvservervdir.c'; fi`
+
+lib/lib_libvserver_a-xidopt2xid.o: lib/xidopt2xid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-xidopt2xid.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-xidopt2xid.Tpo" -c -o lib/lib_libvserver_a-xidopt2xid.o `test -f 'lib/xidopt2xid.c' || echo '$(srcdir)/'`lib/xidopt2xid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-xidopt2xid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-xidopt2xid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-xidopt2xid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/xidopt2xid.c' object='lib/lib_libvserver_a-xidopt2xid.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-xidopt2xid.o `test -f 'lib/xidopt2xid.c' || echo '$(srcdir)/'`lib/xidopt2xid.c
+
+lib/lib_libvserver_a-xidopt2xid.obj: lib/xidopt2xid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-xidopt2xid.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-xidopt2xid.Tpo" -c -o lib/lib_libvserver_a-xidopt2xid.obj `if test -f 'lib/xidopt2xid.c'; then $(CYGPATH_W) 'lib/xidopt2xid.c'; else $(CYGPATH_W) '$(srcdir)/lib/xidopt2xid.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-xidopt2xid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-xidopt2xid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-xidopt2xid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/xidopt2xid.c' object='lib/lib_libvserver_a-xidopt2xid.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-xidopt2xid.obj `if test -f 'lib/xidopt2xid.c'; then $(CYGPATH_W) 'lib/xidopt2xid.c'; else $(CYGPATH_W) '$(srcdir)/lib/xidopt2xid.c'; fi`
+
+lib/lib_libvserver_a-syscall_rlimit.o: lib/syscall_rlimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_rlimit.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_rlimit.o `test -f 'lib/syscall_rlimit.c' || echo '$(srcdir)/'`lib/syscall_rlimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_rlimit.c' object='lib/lib_libvserver_a-syscall_rlimit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_rlimit.o `test -f 'lib/syscall_rlimit.c' || echo '$(srcdir)/'`lib/syscall_rlimit.c
+
+lib/lib_libvserver_a-syscall_rlimit.obj: lib/syscall_rlimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_rlimit.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_rlimit.obj `if test -f 'lib/syscall_rlimit.c'; then $(CYGPATH_W) 'lib/syscall_rlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_rlimit.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_rlimit.c' object='lib/lib_libvserver_a-syscall_rlimit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_rlimit.obj `if test -f 'lib/syscall_rlimit.c'; then $(CYGPATH_W) 'lib/syscall_rlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_rlimit.c'; fi`
+
+lib/lib_libvserver_a-syscall_kill.o: lib/syscall_kill.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_kill.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo" -c -o lib/lib_libvserver_a-syscall_kill.o `test -f 'lib/syscall_kill.c' || echo '$(srcdir)/'`lib/syscall_kill.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_kill.c' object='lib/lib_libvserver_a-syscall_kill.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_kill.o `test -f 'lib/syscall_kill.c' || echo '$(srcdir)/'`lib/syscall_kill.c
+
+lib/lib_libvserver_a-syscall_kill.obj: lib/syscall_kill.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_kill.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo" -c -o lib/lib_libvserver_a-syscall_kill.obj `if test -f 'lib/syscall_kill.c'; then $(CYGPATH_W) 'lib/syscall_kill.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_kill.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_kill.c' object='lib/lib_libvserver_a-syscall_kill.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_kill.obj `if test -f 'lib/syscall_kill.c'; then $(CYGPATH_W) 'lib/syscall_kill.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_kill.c'; fi`
+
+lib/lib_libvserver_a-syscall_ctxcreate.o: lib/syscall_ctxcreate.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_ctxcreate.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxcreate.Tpo" -c -o lib/lib_libvserver_a-syscall_ctxcreate.o `test -f 'lib/syscall_ctxcreate.c' || echo '$(srcdir)/'`lib/syscall_ctxcreate.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxcreate.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxcreate.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxcreate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_ctxcreate.c' object='lib/lib_libvserver_a-syscall_ctxcreate.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_ctxcreate.o `test -f 'lib/syscall_ctxcreate.c' || echo '$(srcdir)/'`lib/syscall_ctxcreate.c
+
+lib/lib_libvserver_a-syscall_ctxcreate.obj: lib/syscall_ctxcreate.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_ctxcreate.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxcreate.Tpo" -c -o lib/lib_libvserver_a-syscall_ctxcreate.obj `if test -f 'lib/syscall_ctxcreate.c'; then $(CYGPATH_W) 'lib/syscall_ctxcreate.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_ctxcreate.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxcreate.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxcreate.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxcreate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_ctxcreate.c' object='lib/lib_libvserver_a-syscall_ctxcreate.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_ctxcreate.obj `if test -f 'lib/syscall_ctxcreate.c'; then $(CYGPATH_W) 'lib/syscall_ctxcreate.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_ctxcreate.c'; fi`
+
+lib/lib_libvserver_a-syscall_ctxmigrate.o: lib/syscall_ctxmigrate.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_ctxmigrate.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxmigrate.Tpo" -c -o lib/lib_libvserver_a-syscall_ctxmigrate.o `test -f 'lib/syscall_ctxmigrate.c' || echo '$(srcdir)/'`lib/syscall_ctxmigrate.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxmigrate.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxmigrate.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxmigrate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_ctxmigrate.c' object='lib/lib_libvserver_a-syscall_ctxmigrate.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_ctxmigrate.o `test -f 'lib/syscall_ctxmigrate.c' || echo '$(srcdir)/'`lib/syscall_ctxmigrate.c
+
+lib/lib_libvserver_a-syscall_ctxmigrate.obj: lib/syscall_ctxmigrate.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_ctxmigrate.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxmigrate.Tpo" -c -o lib/lib_libvserver_a-syscall_ctxmigrate.obj `if test -f 'lib/syscall_ctxmigrate.c'; then $(CYGPATH_W) 'lib/syscall_ctxmigrate.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_ctxmigrate.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxmigrate.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxmigrate.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxmigrate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_ctxmigrate.c' object='lib/lib_libvserver_a-syscall_ctxmigrate.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_ctxmigrate.obj `if test -f 'lib/syscall_ctxmigrate.c'; then $(CYGPATH_W) 'lib/syscall_ctxmigrate.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_ctxmigrate.c'; fi`
+
+lib/lib_libvserver_a-syscall_cleanupnamespace.o: lib/syscall_cleanupnamespace.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_cleanupnamespace.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_cleanupnamespace.Tpo" -c -o lib/lib_libvserver_a-syscall_cleanupnamespace.o `test -f 'lib/syscall_cleanupnamespace.c' || echo '$(srcdir)/'`lib/syscall_cleanupnamespace.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_cleanupnamespace.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_cleanupnamespace.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_cleanupnamespace.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_cleanupnamespace.c' object='lib/lib_libvserver_a-syscall_cleanupnamespace.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_cleanupnamespace.o `test -f 'lib/syscall_cleanupnamespace.c' || echo '$(srcdir)/'`lib/syscall_cleanupnamespace.c
+
+lib/lib_libvserver_a-syscall_cleanupnamespace.obj: lib/syscall_cleanupnamespace.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_cleanupnamespace.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_cleanupnamespace.Tpo" -c -o lib/lib_libvserver_a-syscall_cleanupnamespace.obj `if test -f 'lib/syscall_cleanupnamespace.c'; then $(CYGPATH_W) 'lib/syscall_cleanupnamespace.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_cleanupnamespace.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_cleanupnamespace.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_cleanupnamespace.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_cleanupnamespace.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_cleanupnamespace.c' object='lib/lib_libvserver_a-syscall_cleanupnamespace.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_cleanupnamespace.obj `if test -f 'lib/syscall_cleanupnamespace.c'; then $(CYGPATH_W) 'lib/syscall_cleanupnamespace.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_cleanupnamespace.c'; fi`
+
+lib/lib_libvserver_a-syscall_enternamespace.o: lib/syscall_enternamespace.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_enternamespace.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_enternamespace.Tpo" -c -o lib/lib_libvserver_a-syscall_enternamespace.o `test -f 'lib/syscall_enternamespace.c' || echo '$(srcdir)/'`lib/syscall_enternamespace.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_enternamespace.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_enternamespace.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_enternamespace.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_enternamespace.c' object='lib/lib_libvserver_a-syscall_enternamespace.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_enternamespace.o `test -f 'lib/syscall_enternamespace.c' || echo '$(srcdir)/'`lib/syscall_enternamespace.c
+
+lib/lib_libvserver_a-syscall_enternamespace.obj: lib/syscall_enternamespace.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_enternamespace.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_enternamespace.Tpo" -c -o lib/lib_libvserver_a-syscall_enternamespace.obj `if test -f 'lib/syscall_enternamespace.c'; then $(CYGPATH_W) 'lib/syscall_enternamespace.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_enternamespace.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_enternamespace.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_enternamespace.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_enternamespace.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_enternamespace.c' object='lib/lib_libvserver_a-syscall_enternamespace.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_enternamespace.obj `if test -f 'lib/syscall_enternamespace.c'; then $(CYGPATH_W) 'lib/syscall_enternamespace.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_enternamespace.c'; fi`
+
+lib/lib_libvserver_a-syscall_getccaps.o: lib/syscall_getccaps.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getccaps.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getccaps.Tpo" -c -o lib/lib_libvserver_a-syscall_getccaps.o `test -f 'lib/syscall_getccaps.c' || echo '$(srcdir)/'`lib/syscall_getccaps.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getccaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getccaps.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getccaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getccaps.c' object='lib/lib_libvserver_a-syscall_getccaps.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getccaps.o `test -f 'lib/syscall_getccaps.c' || echo '$(srcdir)/'`lib/syscall_getccaps.c
+
+lib/lib_libvserver_a-syscall_getccaps.obj: lib/syscall_getccaps.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getccaps.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getccaps.Tpo" -c -o lib/lib_libvserver_a-syscall_getccaps.obj `if test -f 'lib/syscall_getccaps.c'; then $(CYGPATH_W) 'lib/syscall_getccaps.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getccaps.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getccaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getccaps.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getccaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getccaps.c' object='lib/lib_libvserver_a-syscall_getccaps.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getccaps.obj `if test -f 'lib/syscall_getccaps.c'; then $(CYGPATH_W) 'lib/syscall_getccaps.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getccaps.c'; fi`
+
+lib/lib_libvserver_a-syscall_getcflags.o: lib/syscall_getcflags.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getcflags.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getcflags.Tpo" -c -o lib/lib_libvserver_a-syscall_getcflags.o `test -f 'lib/syscall_getcflags.c' || echo '$(srcdir)/'`lib/syscall_getcflags.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getcflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getcflags.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getcflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getcflags.c' object='lib/lib_libvserver_a-syscall_getcflags.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getcflags.o `test -f 'lib/syscall_getcflags.c' || echo '$(srcdir)/'`lib/syscall_getcflags.c
+
+lib/lib_libvserver_a-syscall_getcflags.obj: lib/syscall_getcflags.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getcflags.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getcflags.Tpo" -c -o lib/lib_libvserver_a-syscall_getcflags.obj `if test -f 'lib/syscall_getcflags.c'; then $(CYGPATH_W) 'lib/syscall_getcflags.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getcflags.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getcflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getcflags.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getcflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getcflags.c' object='lib/lib_libvserver_a-syscall_getcflags.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getcflags.obj `if test -f 'lib/syscall_getcflags.c'; then $(CYGPATH_W) 'lib/syscall_getcflags.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getcflags.c'; fi`
+
+lib/lib_libvserver_a-syscall_getiattr.o: lib/syscall_getiattr.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getiattr.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getiattr.Tpo" -c -o lib/lib_libvserver_a-syscall_getiattr.o `test -f 'lib/syscall_getiattr.c' || echo '$(srcdir)/'`lib/syscall_getiattr.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getiattr.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getiattr.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getiattr.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getiattr.c' object='lib/lib_libvserver_a-syscall_getiattr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getiattr.o `test -f 'lib/syscall_getiattr.c' || echo '$(srcdir)/'`lib/syscall_getiattr.c
+
+lib/lib_libvserver_a-syscall_getiattr.obj: lib/syscall_getiattr.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getiattr.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getiattr.Tpo" -c -o lib/lib_libvserver_a-syscall_getiattr.obj `if test -f 'lib/syscall_getiattr.c'; then $(CYGPATH_W) 'lib/syscall_getiattr.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getiattr.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getiattr.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getiattr.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getiattr.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getiattr.c' object='lib/lib_libvserver_a-syscall_getiattr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getiattr.obj `if test -f 'lib/syscall_getiattr.c'; then $(CYGPATH_W) 'lib/syscall_getiattr.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getiattr.c'; fi`
+
+lib/lib_libvserver_a-syscall_getncaps.o: lib/syscall_getncaps.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getncaps.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getncaps.Tpo" -c -o lib/lib_libvserver_a-syscall_getncaps.o `test -f 'lib/syscall_getncaps.c' || echo '$(srcdir)/'`lib/syscall_getncaps.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getncaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getncaps.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getncaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getncaps.c' object='lib/lib_libvserver_a-syscall_getncaps.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getncaps.o `test -f 'lib/syscall_getncaps.c' || echo '$(srcdir)/'`lib/syscall_getncaps.c
+
+lib/lib_libvserver_a-syscall_getncaps.obj: lib/syscall_getncaps.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getncaps.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getncaps.Tpo" -c -o lib/lib_libvserver_a-syscall_getncaps.obj `if test -f 'lib/syscall_getncaps.c'; then $(CYGPATH_W) 'lib/syscall_getncaps.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getncaps.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getncaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getncaps.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getncaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getncaps.c' object='lib/lib_libvserver_a-syscall_getncaps.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getncaps.obj `if test -f 'lib/syscall_getncaps.c'; then $(CYGPATH_W) 'lib/syscall_getncaps.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getncaps.c'; fi`
+
+lib/lib_libvserver_a-syscall_getnflags.o: lib/syscall_getnflags.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getnflags.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnflags.Tpo" -c -o lib/lib_libvserver_a-syscall_getnflags.o `test -f 'lib/syscall_getnflags.c' || echo '$(srcdir)/'`lib/syscall_getnflags.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnflags.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getnflags.c' object='lib/lib_libvserver_a-syscall_getnflags.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getnflags.o `test -f 'lib/syscall_getnflags.c' || echo '$(srcdir)/'`lib/syscall_getnflags.c
+
+lib/lib_libvserver_a-syscall_getnflags.obj: lib/syscall_getnflags.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getnflags.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnflags.Tpo" -c -o lib/lib_libvserver_a-syscall_getnflags.obj `if test -f 'lib/syscall_getnflags.c'; then $(CYGPATH_W) 'lib/syscall_getnflags.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getnflags.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnflags.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getnflags.c' object='lib/lib_libvserver_a-syscall_getnflags.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getnflags.obj `if test -f 'lib/syscall_getnflags.c'; then $(CYGPATH_W) 'lib/syscall_getnflags.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getnflags.c'; fi`
+
+lib/lib_libvserver_a-syscall_getnxinfo.o: lib/syscall_getnxinfo.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getnxinfo.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnxinfo.Tpo" -c -o lib/lib_libvserver_a-syscall_getnxinfo.o `test -f 'lib/syscall_getnxinfo.c' || echo '$(srcdir)/'`lib/syscall_getnxinfo.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnxinfo.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnxinfo.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnxinfo.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getnxinfo.c' object='lib/lib_libvserver_a-syscall_getnxinfo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getnxinfo.o `test -f 'lib/syscall_getnxinfo.c' || echo '$(srcdir)/'`lib/syscall_getnxinfo.c
+
+lib/lib_libvserver_a-syscall_getnxinfo.obj: lib/syscall_getnxinfo.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getnxinfo.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnxinfo.Tpo" -c -o lib/lib_libvserver_a-syscall_getnxinfo.obj `if test -f 'lib/syscall_getnxinfo.c'; then $(CYGPATH_W) 'lib/syscall_getnxinfo.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getnxinfo.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnxinfo.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnxinfo.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getnxinfo.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getnxinfo.c' object='lib/lib_libvserver_a-syscall_getnxinfo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getnxinfo.obj `if test -f 'lib/syscall_getnxinfo.c'; then $(CYGPATH_W) 'lib/syscall_getnxinfo.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getnxinfo.c'; fi`
+
+lib/lib_libvserver_a-syscall_gettasknid.o: lib/syscall_gettasknid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_gettasknid.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettasknid.Tpo" -c -o lib/lib_libvserver_a-syscall_gettasknid.o `test -f 'lib/syscall_gettasknid.c' || echo '$(srcdir)/'`lib/syscall_gettasknid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettasknid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettasknid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettasknid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_gettasknid.c' object='lib/lib_libvserver_a-syscall_gettasknid.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_gettasknid.o `test -f 'lib/syscall_gettasknid.c' || echo '$(srcdir)/'`lib/syscall_gettasknid.c
+
+lib/lib_libvserver_a-syscall_gettasknid.obj: lib/syscall_gettasknid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_gettasknid.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettasknid.Tpo" -c -o lib/lib_libvserver_a-syscall_gettasknid.obj `if test -f 'lib/syscall_gettasknid.c'; then $(CYGPATH_W) 'lib/syscall_gettasknid.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_gettasknid.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettasknid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettasknid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettasknid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_gettasknid.c' object='lib/lib_libvserver_a-syscall_gettasknid.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_gettasknid.obj `if test -f 'lib/syscall_gettasknid.c'; then $(CYGPATH_W) 'lib/syscall_gettasknid.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_gettasknid.c'; fi`
+
+lib/lib_libvserver_a-syscall_gettaskxid.o: lib/syscall_gettaskxid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_gettaskxid.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettaskxid.Tpo" -c -o lib/lib_libvserver_a-syscall_gettaskxid.o `test -f 'lib/syscall_gettaskxid.c' || echo '$(srcdir)/'`lib/syscall_gettaskxid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettaskxid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettaskxid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettaskxid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_gettaskxid.c' object='lib/lib_libvserver_a-syscall_gettaskxid.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_gettaskxid.o `test -f 'lib/syscall_gettaskxid.c' || echo '$(srcdir)/'`lib/syscall_gettaskxid.c
+
+lib/lib_libvserver_a-syscall_gettaskxid.obj: lib/syscall_gettaskxid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_gettaskxid.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettaskxid.Tpo" -c -o lib/lib_libvserver_a-syscall_gettaskxid.obj `if test -f 'lib/syscall_gettaskxid.c'; then $(CYGPATH_W) 'lib/syscall_gettaskxid.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_gettaskxid.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettaskxid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettaskxid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_gettaskxid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_gettaskxid.c' object='lib/lib_libvserver_a-syscall_gettaskxid.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_gettaskxid.obj `if test -f 'lib/syscall_gettaskxid.c'; then $(CYGPATH_W) 'lib/syscall_gettaskxid.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_gettaskxid.c'; fi`
+
+lib/lib_libvserver_a-syscall_getvhiname.o: lib/syscall_getvhiname.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getvhiname.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvhiname.Tpo" -c -o lib/lib_libvserver_a-syscall_getvhiname.o `test -f 'lib/syscall_getvhiname.c' || echo '$(srcdir)/'`lib/syscall_getvhiname.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvhiname.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvhiname.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvhiname.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getvhiname.c' object='lib/lib_libvserver_a-syscall_getvhiname.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getvhiname.o `test -f 'lib/syscall_getvhiname.c' || echo '$(srcdir)/'`lib/syscall_getvhiname.c
+
+lib/lib_libvserver_a-syscall_getvhiname.obj: lib/syscall_getvhiname.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getvhiname.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvhiname.Tpo" -c -o lib/lib_libvserver_a-syscall_getvhiname.obj `if test -f 'lib/syscall_getvhiname.c'; then $(CYGPATH_W) 'lib/syscall_getvhiname.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getvhiname.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvhiname.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvhiname.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvhiname.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getvhiname.c' object='lib/lib_libvserver_a-syscall_getvhiname.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getvhiname.obj `if test -f 'lib/syscall_getvhiname.c'; then $(CYGPATH_W) 'lib/syscall_getvhiname.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getvhiname.c'; fi`
+
+lib/lib_libvserver_a-syscall_getvxinfo.o: lib/syscall_getvxinfo.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getvxinfo.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvxinfo.Tpo" -c -o lib/lib_libvserver_a-syscall_getvxinfo.o `test -f 'lib/syscall_getvxinfo.c' || echo '$(srcdir)/'`lib/syscall_getvxinfo.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvxinfo.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvxinfo.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvxinfo.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getvxinfo.c' object='lib/lib_libvserver_a-syscall_getvxinfo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getvxinfo.o `test -f 'lib/syscall_getvxinfo.c' || echo '$(srcdir)/'`lib/syscall_getvxinfo.c
+
+lib/lib_libvserver_a-syscall_getvxinfo.obj: lib/syscall_getvxinfo.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getvxinfo.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvxinfo.Tpo" -c -o lib/lib_libvserver_a-syscall_getvxinfo.obj `if test -f 'lib/syscall_getvxinfo.c'; then $(CYGPATH_W) 'lib/syscall_getvxinfo.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getvxinfo.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvxinfo.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvxinfo.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvxinfo.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getvxinfo.c' object='lib/lib_libvserver_a-syscall_getvxinfo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getvxinfo.obj `if test -f 'lib/syscall_getvxinfo.c'; then $(CYGPATH_W) 'lib/syscall_getvxinfo.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getvxinfo.c'; fi`
+
+lib/lib_libvserver_a-syscall_netadd.o: lib/syscall_netadd.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_netadd.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_netadd.Tpo" -c -o lib/lib_libvserver_a-syscall_netadd.o `test -f 'lib/syscall_netadd.c' || echo '$(srcdir)/'`lib/syscall_netadd.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netadd.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_netadd.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netadd.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netadd.c' object='lib/lib_libvserver_a-syscall_netadd.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_netadd.o `test -f 'lib/syscall_netadd.c' || echo '$(srcdir)/'`lib/syscall_netadd.c
+
+lib/lib_libvserver_a-syscall_netadd.obj: lib/syscall_netadd.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_netadd.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_netadd.Tpo" -c -o lib/lib_libvserver_a-syscall_netadd.obj `if test -f 'lib/syscall_netadd.c'; then $(CYGPATH_W) 'lib/syscall_netadd.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_netadd.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netadd.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_netadd.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netadd.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netadd.c' object='lib/lib_libvserver_a-syscall_netadd.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_netadd.obj `if test -f 'lib/syscall_netadd.c'; then $(CYGPATH_W) 'lib/syscall_netadd.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_netadd.c'; fi`
+
+lib/lib_libvserver_a-syscall_netcreate.o: lib/syscall_netcreate.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_netcreate.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_netcreate.Tpo" -c -o lib/lib_libvserver_a-syscall_netcreate.o `test -f 'lib/syscall_netcreate.c' || echo '$(srcdir)/'`lib/syscall_netcreate.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netcreate.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_netcreate.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netcreate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netcreate.c' object='lib/lib_libvserver_a-syscall_netcreate.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_netcreate.o `test -f 'lib/syscall_netcreate.c' || echo '$(srcdir)/'`lib/syscall_netcreate.c
+
+lib/lib_libvserver_a-syscall_netcreate.obj: lib/syscall_netcreate.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_netcreate.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_netcreate.Tpo" -c -o lib/lib_libvserver_a-syscall_netcreate.obj `if test -f 'lib/syscall_netcreate.c'; then $(CYGPATH_W) 'lib/syscall_netcreate.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_netcreate.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netcreate.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_netcreate.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netcreate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netcreate.c' object='lib/lib_libvserver_a-syscall_netcreate.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_netcreate.obj `if test -f 'lib/syscall_netcreate.c'; then $(CYGPATH_W) 'lib/syscall_netcreate.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_netcreate.c'; fi`
+
+lib/lib_libvserver_a-syscall_netmigrate.o: lib/syscall_netmigrate.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_netmigrate.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_netmigrate.Tpo" -c -o lib/lib_libvserver_a-syscall_netmigrate.o `test -f 'lib/syscall_netmigrate.c' || echo '$(srcdir)/'`lib/syscall_netmigrate.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netmigrate.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_netmigrate.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netmigrate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netmigrate.c' object='lib/lib_libvserver_a-syscall_netmigrate.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_netmigrate.o `test -f 'lib/syscall_netmigrate.c' || echo '$(srcdir)/'`lib/syscall_netmigrate.c
+
+lib/lib_libvserver_a-syscall_netmigrate.obj: lib/syscall_netmigrate.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_netmigrate.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_netmigrate.Tpo" -c -o lib/lib_libvserver_a-syscall_netmigrate.obj `if test -f 'lib/syscall_netmigrate.c'; then $(CYGPATH_W) 'lib/syscall_netmigrate.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_netmigrate.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netmigrate.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_netmigrate.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netmigrate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netmigrate.c' object='lib/lib_libvserver_a-syscall_netmigrate.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_netmigrate.obj `if test -f 'lib/syscall_netmigrate.c'; then $(CYGPATH_W) 'lib/syscall_netmigrate.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_netmigrate.c'; fi`
+
+lib/lib_libvserver_a-syscall_netremove.o: lib/syscall_netremove.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_netremove.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_netremove.Tpo" -c -o lib/lib_libvserver_a-syscall_netremove.o `test -f 'lib/syscall_netremove.c' || echo '$(srcdir)/'`lib/syscall_netremove.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netremove.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_netremove.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netremove.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netremove.c' object='lib/lib_libvserver_a-syscall_netremove.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_netremove.o `test -f 'lib/syscall_netremove.c' || echo '$(srcdir)/'`lib/syscall_netremove.c
+
+lib/lib_libvserver_a-syscall_netremove.obj: lib/syscall_netremove.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_netremove.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_netremove.Tpo" -c -o lib/lib_libvserver_a-syscall_netremove.obj `if test -f 'lib/syscall_netremove.c'; then $(CYGPATH_W) 'lib/syscall_netremove.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_netremove.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netremove.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_netremove.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_netremove.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netremove.c' object='lib/lib_libvserver_a-syscall_netremove.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_netremove.obj `if test -f 'lib/syscall_netremove.c'; then $(CYGPATH_W) 'lib/syscall_netremove.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_netremove.c'; fi`
+
+lib/lib_libvserver_a-syscall_setccaps.o: lib/syscall_setccaps.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setccaps.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setccaps.Tpo" -c -o lib/lib_libvserver_a-syscall_setccaps.o `test -f 'lib/syscall_setccaps.c' || echo '$(srcdir)/'`lib/syscall_setccaps.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setccaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setccaps.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setccaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setccaps.c' object='lib/lib_libvserver_a-syscall_setccaps.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setccaps.o `test -f 'lib/syscall_setccaps.c' || echo '$(srcdir)/'`lib/syscall_setccaps.c
+
+lib/lib_libvserver_a-syscall_setccaps.obj: lib/syscall_setccaps.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setccaps.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setccaps.Tpo" -c -o lib/lib_libvserver_a-syscall_setccaps.obj `if test -f 'lib/syscall_setccaps.c'; then $(CYGPATH_W) 'lib/syscall_setccaps.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setccaps.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setccaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setccaps.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setccaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setccaps.c' object='lib/lib_libvserver_a-syscall_setccaps.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setccaps.obj `if test -f 'lib/syscall_setccaps.c'; then $(CYGPATH_W) 'lib/syscall_setccaps.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setccaps.c'; fi`
+
+lib/lib_libvserver_a-syscall_setcflags.o: lib/syscall_setcflags.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setcflags.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setcflags.Tpo" -c -o lib/lib_libvserver_a-syscall_setcflags.o `test -f 'lib/syscall_setcflags.c' || echo '$(srcdir)/'`lib/syscall_setcflags.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setcflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setcflags.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setcflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setcflags.c' object='lib/lib_libvserver_a-syscall_setcflags.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setcflags.o `test -f 'lib/syscall_setcflags.c' || echo '$(srcdir)/'`lib/syscall_setcflags.c
+
+lib/lib_libvserver_a-syscall_setcflags.obj: lib/syscall_setcflags.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setcflags.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setcflags.Tpo" -c -o lib/lib_libvserver_a-syscall_setcflags.obj `if test -f 'lib/syscall_setcflags.c'; then $(CYGPATH_W) 'lib/syscall_setcflags.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setcflags.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setcflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setcflags.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setcflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setcflags.c' object='lib/lib_libvserver_a-syscall_setcflags.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setcflags.obj `if test -f 'lib/syscall_setcflags.c'; then $(CYGPATH_W) 'lib/syscall_setcflags.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setcflags.c'; fi`
+
+lib/lib_libvserver_a-syscall_setiattr.o: lib/syscall_setiattr.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setiattr.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setiattr.Tpo" -c -o lib/lib_libvserver_a-syscall_setiattr.o `test -f 'lib/syscall_setiattr.c' || echo '$(srcdir)/'`lib/syscall_setiattr.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setiattr.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setiattr.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setiattr.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setiattr.c' object='lib/lib_libvserver_a-syscall_setiattr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setiattr.o `test -f 'lib/syscall_setiattr.c' || echo '$(srcdir)/'`lib/syscall_setiattr.c
+
+lib/lib_libvserver_a-syscall_setiattr.obj: lib/syscall_setiattr.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setiattr.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setiattr.Tpo" -c -o lib/lib_libvserver_a-syscall_setiattr.obj `if test -f 'lib/syscall_setiattr.c'; then $(CYGPATH_W) 'lib/syscall_setiattr.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setiattr.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setiattr.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setiattr.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setiattr.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setiattr.c' object='lib/lib_libvserver_a-syscall_setiattr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setiattr.obj `if test -f 'lib/syscall_setiattr.c'; then $(CYGPATH_W) 'lib/syscall_setiattr.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setiattr.c'; fi`
+
+lib/lib_libvserver_a-syscall_setnamespace.o: lib/syscall_setnamespace.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setnamespace.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnamespace.Tpo" -c -o lib/lib_libvserver_a-syscall_setnamespace.o `test -f 'lib/syscall_setnamespace.c' || echo '$(srcdir)/'`lib/syscall_setnamespace.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnamespace.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnamespace.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnamespace.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setnamespace.c' object='lib/lib_libvserver_a-syscall_setnamespace.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setnamespace.o `test -f 'lib/syscall_setnamespace.c' || echo '$(srcdir)/'`lib/syscall_setnamespace.c
+
+lib/lib_libvserver_a-syscall_setnamespace.obj: lib/syscall_setnamespace.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setnamespace.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnamespace.Tpo" -c -o lib/lib_libvserver_a-syscall_setnamespace.obj `if test -f 'lib/syscall_setnamespace.c'; then $(CYGPATH_W) 'lib/syscall_setnamespace.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setnamespace.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnamespace.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnamespace.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnamespace.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setnamespace.c' object='lib/lib_libvserver_a-syscall_setnamespace.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setnamespace.obj `if test -f 'lib/syscall_setnamespace.c'; then $(CYGPATH_W) 'lib/syscall_setnamespace.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setnamespace.c'; fi`
+
+lib/lib_libvserver_a-syscall_setncaps.o: lib/syscall_setncaps.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setncaps.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setncaps.Tpo" -c -o lib/lib_libvserver_a-syscall_setncaps.o `test -f 'lib/syscall_setncaps.c' || echo '$(srcdir)/'`lib/syscall_setncaps.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setncaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setncaps.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setncaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setncaps.c' object='lib/lib_libvserver_a-syscall_setncaps.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setncaps.o `test -f 'lib/syscall_setncaps.c' || echo '$(srcdir)/'`lib/syscall_setncaps.c
+
+lib/lib_libvserver_a-syscall_setncaps.obj: lib/syscall_setncaps.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setncaps.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setncaps.Tpo" -c -o lib/lib_libvserver_a-syscall_setncaps.obj `if test -f 'lib/syscall_setncaps.c'; then $(CYGPATH_W) 'lib/syscall_setncaps.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setncaps.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setncaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setncaps.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setncaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setncaps.c' object='lib/lib_libvserver_a-syscall_setncaps.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setncaps.obj `if test -f 'lib/syscall_setncaps.c'; then $(CYGPATH_W) 'lib/syscall_setncaps.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setncaps.c'; fi`
+
+lib/lib_libvserver_a-syscall_setnflags.o: lib/syscall_setnflags.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setnflags.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnflags.Tpo" -c -o lib/lib_libvserver_a-syscall_setnflags.o `test -f 'lib/syscall_setnflags.c' || echo '$(srcdir)/'`lib/syscall_setnflags.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnflags.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setnflags.c' object='lib/lib_libvserver_a-syscall_setnflags.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setnflags.o `test -f 'lib/syscall_setnflags.c' || echo '$(srcdir)/'`lib/syscall_setnflags.c
+
+lib/lib_libvserver_a-syscall_setnflags.obj: lib/syscall_setnflags.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setnflags.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnflags.Tpo" -c -o lib/lib_libvserver_a-syscall_setnflags.obj `if test -f 'lib/syscall_setnflags.c'; then $(CYGPATH_W) 'lib/syscall_setnflags.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setnflags.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnflags.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setnflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setnflags.c' object='lib/lib_libvserver_a-syscall_setnflags.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setnflags.obj `if test -f 'lib/syscall_setnflags.c'; then $(CYGPATH_W) 'lib/syscall_setnflags.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setnflags.c'; fi`
+
+lib/lib_libvserver_a-syscall_setsched.o: lib/syscall_setsched.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setsched.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setsched.Tpo" -c -o lib/lib_libvserver_a-syscall_setsched.o `test -f 'lib/syscall_setsched.c' || echo '$(srcdir)/'`lib/syscall_setsched.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setsched.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setsched.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setsched.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setsched.c' object='lib/lib_libvserver_a-syscall_setsched.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setsched.o `test -f 'lib/syscall_setsched.c' || echo '$(srcdir)/'`lib/syscall_setsched.c
+
+lib/lib_libvserver_a-syscall_setsched.obj: lib/syscall_setsched.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setsched.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setsched.Tpo" -c -o lib/lib_libvserver_a-syscall_setsched.obj `if test -f 'lib/syscall_setsched.c'; then $(CYGPATH_W) 'lib/syscall_setsched.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setsched.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setsched.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setsched.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setsched.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setsched.c' object='lib/lib_libvserver_a-syscall_setsched.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setsched.obj `if test -f 'lib/syscall_setsched.c'; then $(CYGPATH_W) 'lib/syscall_setsched.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setsched.c'; fi`
+
+lib/lib_libvserver_a-syscall_setvhiname.o: lib/syscall_setvhiname.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setvhiname.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setvhiname.Tpo" -c -o lib/lib_libvserver_a-syscall_setvhiname.o `test -f 'lib/syscall_setvhiname.c' || echo '$(srcdir)/'`lib/syscall_setvhiname.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setvhiname.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setvhiname.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setvhiname.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setvhiname.c' object='lib/lib_libvserver_a-syscall_setvhiname.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setvhiname.o `test -f 'lib/syscall_setvhiname.c' || echo '$(srcdir)/'`lib/syscall_setvhiname.c
+
+lib/lib_libvserver_a-syscall_setvhiname.obj: lib/syscall_setvhiname.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setvhiname.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setvhiname.Tpo" -c -o lib/lib_libvserver_a-syscall_setvhiname.obj `if test -f 'lib/syscall_setvhiname.c'; then $(CYGPATH_W) 'lib/syscall_setvhiname.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setvhiname.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setvhiname.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setvhiname.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setvhiname.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setvhiname.c' object='lib/lib_libvserver_a-syscall_setvhiname.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setvhiname.obj `if test -f 'lib/syscall_setvhiname.c'; then $(CYGPATH_W) 'lib/syscall_setvhiname.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setvhiname.c'; fi`
+
+lib/lib_libvserver_a-syscall_waitexit.o: lib/syscall_waitexit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_waitexit.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_waitexit.Tpo" -c -o lib/lib_libvserver_a-syscall_waitexit.o `test -f 'lib/syscall_waitexit.c' || echo '$(srcdir)/'`lib/syscall_waitexit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_waitexit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_waitexit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_waitexit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_waitexit.c' object='lib/lib_libvserver_a-syscall_waitexit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_waitexit.o `test -f 'lib/syscall_waitexit.c' || echo '$(srcdir)/'`lib/syscall_waitexit.c
+
+lib/lib_libvserver_a-syscall_waitexit.obj: lib/syscall_waitexit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_waitexit.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_waitexit.Tpo" -c -o lib/lib_libvserver_a-syscall_waitexit.obj `if test -f 'lib/syscall_waitexit.c'; then $(CYGPATH_W) 'lib/syscall_waitexit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_waitexit.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_waitexit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_waitexit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_waitexit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_waitexit.c' object='lib/lib_libvserver_a-syscall_waitexit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_waitexit.obj `if test -f 'lib/syscall_waitexit.c'; then $(CYGPATH_W) 'lib/syscall_waitexit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_waitexit.c'; fi`
+
+lib/lib_libvserver_a-bcaps-v13.o: lib/bcaps-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-bcaps-v13.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-bcaps-v13.Tpo" -c -o lib/lib_libvserver_a-bcaps-v13.o `test -f 'lib/bcaps-v13.c' || echo '$(srcdir)/'`lib/bcaps-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-bcaps-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-bcaps-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-bcaps-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/bcaps-v13.c' object='lib/lib_libvserver_a-bcaps-v13.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-bcaps-v13.o `test -f 'lib/bcaps-v13.c' || echo '$(srcdir)/'`lib/bcaps-v13.c
+
+lib/lib_libvserver_a-bcaps-v13.obj: lib/bcaps-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-bcaps-v13.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-bcaps-v13.Tpo" -c -o lib/lib_libvserver_a-bcaps-v13.obj `if test -f 'lib/bcaps-v13.c'; then $(CYGPATH_W) 'lib/bcaps-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/bcaps-v13.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-bcaps-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-bcaps-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-bcaps-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/bcaps-v13.c' object='lib/lib_libvserver_a-bcaps-v13.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-bcaps-v13.obj `if test -f 'lib/bcaps-v13.c'; then $(CYGPATH_W) 'lib/bcaps-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/bcaps-v13.c'; fi`
+
+lib/lib_libvserver_a-bcaps_list-v13.o: lib/bcaps_list-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-bcaps_list-v13.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-bcaps_list-v13.Tpo" -c -o lib/lib_libvserver_a-bcaps_list-v13.o `test -f 'lib/bcaps_list-v13.c' || echo '$(srcdir)/'`lib/bcaps_list-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-bcaps_list-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-bcaps_list-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-bcaps_list-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/bcaps_list-v13.c' object='lib/lib_libvserver_a-bcaps_list-v13.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-bcaps_list-v13.o `test -f 'lib/bcaps_list-v13.c' || echo '$(srcdir)/'`lib/bcaps_list-v13.c
+
+lib/lib_libvserver_a-bcaps_list-v13.obj: lib/bcaps_list-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-bcaps_list-v13.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-bcaps_list-v13.Tpo" -c -o lib/lib_libvserver_a-bcaps_list-v13.obj `if test -f 'lib/bcaps_list-v13.c'; then $(CYGPATH_W) 'lib/bcaps_list-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/bcaps_list-v13.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-bcaps_list-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-bcaps_list-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-bcaps_list-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/bcaps_list-v13.c' object='lib/lib_libvserver_a-bcaps_list-v13.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-bcaps_list-v13.obj `if test -f 'lib/bcaps_list-v13.c'; then $(CYGPATH_W) 'lib/bcaps_list-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/bcaps_list-v13.c'; fi`
+
+lib/lib_libvserver_a-ccaps-v13.o: lib/ccaps-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-ccaps-v13.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-ccaps-v13.Tpo" -c -o lib/lib_libvserver_a-ccaps-v13.o `test -f 'lib/ccaps-v13.c' || echo '$(srcdir)/'`lib/ccaps-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-ccaps-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-ccaps-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-ccaps-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ccaps-v13.c' object='lib/lib_libvserver_a-ccaps-v13.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-ccaps-v13.o `test -f 'lib/ccaps-v13.c' || echo '$(srcdir)/'`lib/ccaps-v13.c
+
+lib/lib_libvserver_a-ccaps-v13.obj: lib/ccaps-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-ccaps-v13.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-ccaps-v13.Tpo" -c -o lib/lib_libvserver_a-ccaps-v13.obj `if test -f 'lib/ccaps-v13.c'; then $(CYGPATH_W) 'lib/ccaps-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/ccaps-v13.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-ccaps-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-ccaps-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-ccaps-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ccaps-v13.c' object='lib/lib_libvserver_a-ccaps-v13.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-ccaps-v13.obj `if test -f 'lib/ccaps-v13.c'; then $(CYGPATH_W) 'lib/ccaps-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/ccaps-v13.c'; fi`
+
+lib/lib_libvserver_a-ccaps_list-v13.o: lib/ccaps_list-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-ccaps_list-v13.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-ccaps_list-v13.Tpo" -c -o lib/lib_libvserver_a-ccaps_list-v13.o `test -f 'lib/ccaps_list-v13.c' || echo '$(srcdir)/'`lib/ccaps_list-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-ccaps_list-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-ccaps_list-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-ccaps_list-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ccaps_list-v13.c' object='lib/lib_libvserver_a-ccaps_list-v13.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-ccaps_list-v13.o `test -f 'lib/ccaps_list-v13.c' || echo '$(srcdir)/'`lib/ccaps_list-v13.c
+
+lib/lib_libvserver_a-ccaps_list-v13.obj: lib/ccaps_list-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-ccaps_list-v13.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-ccaps_list-v13.Tpo" -c -o lib/lib_libvserver_a-ccaps_list-v13.obj `if test -f 'lib/ccaps_list-v13.c'; then $(CYGPATH_W) 'lib/ccaps_list-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/ccaps_list-v13.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-ccaps_list-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-ccaps_list-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-ccaps_list-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ccaps_list-v13.c' object='lib/lib_libvserver_a-ccaps_list-v13.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-ccaps_list-v13.obj `if test -f 'lib/ccaps_list-v13.c'; then $(CYGPATH_W) 'lib/ccaps_list-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/ccaps_list-v13.c'; fi`
+
+lib/lib_libvserver_a-cflags-v13.o: lib/cflags-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-cflags-v13.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-cflags-v13.Tpo" -c -o lib/lib_libvserver_a-cflags-v13.o `test -f 'lib/cflags-v13.c' || echo '$(srcdir)/'`lib/cflags-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-cflags-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-cflags-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-cflags-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags-v13.c' object='lib/lib_libvserver_a-cflags-v13.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-cflags-v13.o `test -f 'lib/cflags-v13.c' || echo '$(srcdir)/'`lib/cflags-v13.c
+
+lib/lib_libvserver_a-cflags-v13.obj: lib/cflags-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-cflags-v13.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-cflags-v13.Tpo" -c -o lib/lib_libvserver_a-cflags-v13.obj `if test -f 'lib/cflags-v13.c'; then $(CYGPATH_W) 'lib/cflags-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/cflags-v13.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-cflags-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-cflags-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-cflags-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags-v13.c' object='lib/lib_libvserver_a-cflags-v13.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-cflags-v13.obj `if test -f 'lib/cflags-v13.c'; then $(CYGPATH_W) 'lib/cflags-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/cflags-v13.c'; fi`
+
+lib/lib_libvserver_a-cflags_list-v13.o: lib/cflags_list-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-cflags_list-v13.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-v13.Tpo" -c -o lib/lib_libvserver_a-cflags_list-v13.o `test -f 'lib/cflags_list-v13.c' || echo '$(srcdir)/'`lib/cflags_list-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags_list-v13.c' object='lib/lib_libvserver_a-cflags_list-v13.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-cflags_list-v13.o `test -f 'lib/cflags_list-v13.c' || echo '$(srcdir)/'`lib/cflags_list-v13.c
+
+lib/lib_libvserver_a-cflags_list-v13.obj: lib/cflags_list-v13.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-cflags_list-v13.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-v13.Tpo" -c -o lib/lib_libvserver_a-cflags_list-v13.obj `if test -f 'lib/cflags_list-v13.c'; then $(CYGPATH_W) 'lib/cflags_list-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/cflags_list-v13.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-v13.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-cflags_list-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags_list-v13.c' object='lib/lib_libvserver_a-cflags_list-v13.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-cflags_list-v13.obj `if test -f 'lib/cflags_list-v13.c'; then $(CYGPATH_W) 'lib/cflags_list-v13.c'; else $(CYGPATH_W) '$(srcdir)/lib/cflags_list-v13.c'; fi`
+
+lib/lib_libvserver_a-ncaps-net.o: lib/ncaps-net.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-ncaps-net.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-ncaps-net.Tpo" -c -o lib/lib_libvserver_a-ncaps-net.o `test -f 'lib/ncaps-net.c' || echo '$(srcdir)/'`lib/ncaps-net.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-ncaps-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-ncaps-net.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-ncaps-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ncaps-net.c' object='lib/lib_libvserver_a-ncaps-net.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-ncaps-net.o `test -f 'lib/ncaps-net.c' || echo '$(srcdir)/'`lib/ncaps-net.c
+
+lib/lib_libvserver_a-ncaps-net.obj: lib/ncaps-net.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-ncaps-net.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-ncaps-net.Tpo" -c -o lib/lib_libvserver_a-ncaps-net.obj `if test -f 'lib/ncaps-net.c'; then $(CYGPATH_W) 'lib/ncaps-net.c'; else $(CYGPATH_W) '$(srcdir)/lib/ncaps-net.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-ncaps-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-ncaps-net.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-ncaps-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ncaps-net.c' object='lib/lib_libvserver_a-ncaps-net.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-ncaps-net.obj `if test -f 'lib/ncaps-net.c'; then $(CYGPATH_W) 'lib/ncaps-net.c'; else $(CYGPATH_W) '$(srcdir)/lib/ncaps-net.c'; fi`
+
+lib/lib_libvserver_a-ncaps_list-net.o: lib/ncaps_list-net.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-ncaps_list-net.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-ncaps_list-net.Tpo" -c -o lib/lib_libvserver_a-ncaps_list-net.o `test -f 'lib/ncaps_list-net.c' || echo '$(srcdir)/'`lib/ncaps_list-net.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-ncaps_list-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-ncaps_list-net.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-ncaps_list-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ncaps_list-net.c' object='lib/lib_libvserver_a-ncaps_list-net.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-ncaps_list-net.o `test -f 'lib/ncaps_list-net.c' || echo '$(srcdir)/'`lib/ncaps_list-net.c
+
+lib/lib_libvserver_a-ncaps_list-net.obj: lib/ncaps_list-net.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-ncaps_list-net.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-ncaps_list-net.Tpo" -c -o lib/lib_libvserver_a-ncaps_list-net.obj `if test -f 'lib/ncaps_list-net.c'; then $(CYGPATH_W) 'lib/ncaps_list-net.c'; else $(CYGPATH_W) '$(srcdir)/lib/ncaps_list-net.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-ncaps_list-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-ncaps_list-net.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-ncaps_list-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ncaps_list-net.c' object='lib/lib_libvserver_a-ncaps_list-net.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-ncaps_list-net.obj `if test -f 'lib/ncaps_list-net.c'; then $(CYGPATH_W) 'lib/ncaps_list-net.c'; else $(CYGPATH_W) '$(srcdir)/lib/ncaps_list-net.c'; fi`
+
+lib/lib_libvserver_a-nflags-net.o: lib/nflags-net.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-nflags-net.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-nflags-net.Tpo" -c -o lib/lib_libvserver_a-nflags-net.o `test -f 'lib/nflags-net.c' || echo '$(srcdir)/'`lib/nflags-net.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-nflags-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-nflags-net.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-nflags-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/nflags-net.c' object='lib/lib_libvserver_a-nflags-net.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-nflags-net.o `test -f 'lib/nflags-net.c' || echo '$(srcdir)/'`lib/nflags-net.c
+
+lib/lib_libvserver_a-nflags-net.obj: lib/nflags-net.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-nflags-net.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-nflags-net.Tpo" -c -o lib/lib_libvserver_a-nflags-net.obj `if test -f 'lib/nflags-net.c'; then $(CYGPATH_W) 'lib/nflags-net.c'; else $(CYGPATH_W) '$(srcdir)/lib/nflags-net.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-nflags-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-nflags-net.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-nflags-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/nflags-net.c' object='lib/lib_libvserver_a-nflags-net.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-nflags-net.obj `if test -f 'lib/nflags-net.c'; then $(CYGPATH_W) 'lib/nflags-net.c'; else $(CYGPATH_W) '$(srcdir)/lib/nflags-net.c'; fi`
+
+lib/lib_libvserver_a-nflags_list-net.o: lib/nflags_list-net.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-nflags_list-net.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-nflags_list-net.Tpo" -c -o lib/lib_libvserver_a-nflags_list-net.o `test -f 'lib/nflags_list-net.c' || echo '$(srcdir)/'`lib/nflags_list-net.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-nflags_list-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-nflags_list-net.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-nflags_list-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/nflags_list-net.c' object='lib/lib_libvserver_a-nflags_list-net.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-nflags_list-net.o `test -f 'lib/nflags_list-net.c' || echo '$(srcdir)/'`lib/nflags_list-net.c
+
+lib/lib_libvserver_a-nflags_list-net.obj: lib/nflags_list-net.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-nflags_list-net.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-nflags_list-net.Tpo" -c -o lib/lib_libvserver_a-nflags_list-net.obj `if test -f 'lib/nflags_list-net.c'; then $(CYGPATH_W) 'lib/nflags_list-net.c'; else $(CYGPATH_W) '$(srcdir)/lib/nflags_list-net.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-nflags_list-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-nflags_list-net.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-nflags_list-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/nflags_list-net.c' object='lib/lib_libvserver_a-nflags_list-net.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-nflags_list-net.obj `if test -f 'lib/nflags_list-net.c'; then $(CYGPATH_W) 'lib/nflags_list-net.c'; else $(CYGPATH_W) '$(srcdir)/lib/nflags_list-net.c'; fi`
+
+lib/lib_libvserver_a-syscall_adddlimit.o: lib/syscall_adddlimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_adddlimit.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_adddlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_adddlimit.o `test -f 'lib/syscall_adddlimit.c' || echo '$(srcdir)/'`lib/syscall_adddlimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_adddlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_adddlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_adddlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_adddlimit.c' object='lib/lib_libvserver_a-syscall_adddlimit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_adddlimit.o `test -f 'lib/syscall_adddlimit.c' || echo '$(srcdir)/'`lib/syscall_adddlimit.c
+
+lib/lib_libvserver_a-syscall_adddlimit.obj: lib/syscall_adddlimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_adddlimit.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_adddlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_adddlimit.obj `if test -f 'lib/syscall_adddlimit.c'; then $(CYGPATH_W) 'lib/syscall_adddlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_adddlimit.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_adddlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_adddlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_adddlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_adddlimit.c' object='lib/lib_libvserver_a-syscall_adddlimit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_adddlimit.obj `if test -f 'lib/syscall_adddlimit.c'; then $(CYGPATH_W) 'lib/syscall_adddlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_adddlimit.c'; fi`
+
+lib/lib_libvserver_a-syscall_getdlimit.o: lib/syscall_getdlimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getdlimit.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getdlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_getdlimit.o `test -f 'lib/syscall_getdlimit.c' || echo '$(srcdir)/'`lib/syscall_getdlimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getdlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getdlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getdlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getdlimit.c' object='lib/lib_libvserver_a-syscall_getdlimit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getdlimit.o `test -f 'lib/syscall_getdlimit.c' || echo '$(srcdir)/'`lib/syscall_getdlimit.c
+
+lib/lib_libvserver_a-syscall_getdlimit.obj: lib/syscall_getdlimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getdlimit.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getdlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_getdlimit.obj `if test -f 'lib/syscall_getdlimit.c'; then $(CYGPATH_W) 'lib/syscall_getdlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getdlimit.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getdlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getdlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getdlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getdlimit.c' object='lib/lib_libvserver_a-syscall_getdlimit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getdlimit.obj `if test -f 'lib/syscall_getdlimit.c'; then $(CYGPATH_W) 'lib/syscall_getdlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getdlimit.c'; fi`
+
+lib/lib_libvserver_a-syscall_remdlimit.o: lib/syscall_remdlimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_remdlimit.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_remdlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_remdlimit.o `test -f 'lib/syscall_remdlimit.c' || echo '$(srcdir)/'`lib/syscall_remdlimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_remdlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_remdlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_remdlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_remdlimit.c' object='lib/lib_libvserver_a-syscall_remdlimit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_remdlimit.o `test -f 'lib/syscall_remdlimit.c' || echo '$(srcdir)/'`lib/syscall_remdlimit.c
+
+lib/lib_libvserver_a-syscall_remdlimit.obj: lib/syscall_remdlimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_remdlimit.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_remdlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_remdlimit.obj `if test -f 'lib/syscall_remdlimit.c'; then $(CYGPATH_W) 'lib/syscall_remdlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_remdlimit.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_remdlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_remdlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_remdlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_remdlimit.c' object='lib/lib_libvserver_a-syscall_remdlimit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_remdlimit.obj `if test -f 'lib/syscall_remdlimit.c'; then $(CYGPATH_W) 'lib/syscall_remdlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_remdlimit.c'; fi`
+
+lib/lib_libvserver_a-syscall_setdlimit.o: lib/syscall_setdlimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setdlimit.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setdlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_setdlimit.o `test -f 'lib/syscall_setdlimit.c' || echo '$(srcdir)/'`lib/syscall_setdlimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setdlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setdlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setdlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setdlimit.c' object='lib/lib_libvserver_a-syscall_setdlimit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setdlimit.o `test -f 'lib/syscall_setdlimit.c' || echo '$(srcdir)/'`lib/syscall_setdlimit.c
+
+lib/lib_libvserver_a-syscall_setdlimit.obj: lib/syscall_setdlimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setdlimit.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setdlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_setdlimit.obj `if test -f 'lib/syscall_setdlimit.c'; then $(CYGPATH_W) 'lib/syscall_setdlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setdlimit.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setdlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setdlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setdlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setdlimit.c' object='lib/lib_libvserver_a-syscall_setdlimit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setdlimit.obj `if test -f 'lib/syscall_setdlimit.c'; then $(CYGPATH_W) 'lib/syscall_setdlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setdlimit.c'; fi`
+
+ensc_fmt/lib_libvserver_a-fmt-32.o: ensc_fmt/fmt-32.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmt-32.o -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Tpo" -c -o ensc_fmt/lib_libvserver_a-fmt-32.o `test -f 'ensc_fmt/fmt-32.c' || echo '$(srcdir)/'`ensc_fmt/fmt-32.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Po"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmt-32.c' object='ensc_fmt/lib_libvserver_a-fmt-32.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_a-fmt-32.o `test -f 'ensc_fmt/fmt-32.c' || echo '$(srcdir)/'`ensc_fmt/fmt-32.c
+
+ensc_fmt/lib_libvserver_a-fmt-32.obj: ensc_fmt/fmt-32.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmt-32.obj -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Tpo" -c -o ensc_fmt/lib_libvserver_a-fmt-32.obj `if test -f 'ensc_fmt/fmt-32.c'; then $(CYGPATH_W) 'ensc_fmt/fmt-32.c'; else $(CYGPATH_W) '$(srcdir)/ensc_fmt/fmt-32.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Po"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmt-32.c' object='ensc_fmt/lib_libvserver_a-fmt-32.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_a-fmt-32.obj `if test -f 'ensc_fmt/fmt-32.c'; then $(CYGPATH_W) 'ensc_fmt/fmt-32.c'; else $(CYGPATH_W) '$(srcdir)/ensc_fmt/fmt-32.c'; fi`
+
+ensc_fmt/lib_libvserver_a-fmt-64.o: ensc_fmt/fmt-64.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmt-64.o -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-64.Tpo" -c -o ensc_fmt/lib_libvserver_a-fmt-64.o `test -f 'ensc_fmt/fmt-64.c' || echo '$(srcdir)/'`ensc_fmt/fmt-64.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-64.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-64.Po"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmt-64.c' object='ensc_fmt/lib_libvserver_a-fmt-64.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_a-fmt-64.o `test -f 'ensc_fmt/fmt-64.c' || echo '$(srcdir)/'`ensc_fmt/fmt-64.c
+
+ensc_fmt/lib_libvserver_a-fmt-64.obj: ensc_fmt/fmt-64.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmt-64.obj -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-64.Tpo" -c -o ensc_fmt/lib_libvserver_a-fmt-64.obj `if test -f 'ensc_fmt/fmt-64.c'; then $(CYGPATH_W) 'ensc_fmt/fmt-64.c'; else $(CYGPATH_W) '$(srcdir)/ensc_fmt/fmt-64.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-64.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-64.Po"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmt-64.c' object='ensc_fmt/lib_libvserver_a-fmt-64.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_a-fmt-64.obj `if test -f 'ensc_fmt/fmt-64.c'; then $(CYGPATH_W) 'ensc_fmt/fmt-64.c'; else $(CYGPATH_W) '$(srcdir)/ensc_fmt/fmt-64.c'; fi`
+
+ensc_fmt/lib_libvserver_a-fmtx-32.o: ensc_fmt/fmtx-32.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmtx-32.o -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-32.Tpo" -c -o ensc_fmt/lib_libvserver_a-fmtx-32.o `test -f 'ensc_fmt/fmtx-32.c' || echo '$(srcdir)/'`ensc_fmt/fmtx-32.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-32.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-32.Po"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmtx-32.c' object='ensc_fmt/lib_libvserver_a-fmtx-32.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_a-fmtx-32.o `test -f 'ensc_fmt/fmtx-32.c' || echo '$(srcdir)/'`ensc_fmt/fmtx-32.c
+
+ensc_fmt/lib_libvserver_a-fmtx-32.obj: ensc_fmt/fmtx-32.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmtx-32.obj -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-32.Tpo" -c -o ensc_fmt/lib_libvserver_a-fmtx-32.obj `if test -f 'ensc_fmt/fmtx-32.c'; then $(CYGPATH_W) 'ensc_fmt/fmtx-32.c'; else $(CYGPATH_W) '$(srcdir)/ensc_fmt/fmtx-32.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-32.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-32.Po"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmtx-32.c' object='ensc_fmt/lib_libvserver_a-fmtx-32.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_a-fmtx-32.obj `if test -f 'ensc_fmt/fmtx-32.c'; then $(CYGPATH_W) 'ensc_fmt/fmtx-32.c'; else $(CYGPATH_W) '$(srcdir)/ensc_fmt/fmtx-32.c'; fi`
+
+ensc_fmt/lib_libvserver_a-fmtx-64.o: ensc_fmt/fmtx-64.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmtx-64.o -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-64.Tpo" -c -o ensc_fmt/lib_libvserver_a-fmtx-64.o `test -f 'ensc_fmt/fmtx-64.c' || echo '$(srcdir)/'`ensc_fmt/fmtx-64.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-64.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-64.Po"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmtx-64.c' object='ensc_fmt/lib_libvserver_a-fmtx-64.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_a-fmtx-64.o `test -f 'ensc_fmt/fmtx-64.c' || echo '$(srcdir)/'`ensc_fmt/fmtx-64.c
+
+ensc_fmt/lib_libvserver_a-fmtx-64.obj: ensc_fmt/fmtx-64.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmtx-64.obj -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-64.Tpo" -c -o ensc_fmt/lib_libvserver_a-fmtx-64.obj `if test -f 'ensc_fmt/fmtx-64.c'; then $(CYGPATH_W) 'ensc_fmt/fmtx-64.c'; else $(CYGPATH_W) '$(srcdir)/ensc_fmt/fmtx-64.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-64.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-64.Po"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmtx-64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmtx-64.c' object='ensc_fmt/lib_libvserver_a-fmtx-64.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_a-fmtx-64.obj `if test -f 'ensc_fmt/fmtx-64.c'; then $(CYGPATH_W) 'ensc_fmt/fmtx-64.c'; else $(CYGPATH_W) '$(srcdir)/ensc_fmt/fmtx-64.c'; fi`
+
+ensc_fmt/lib_libvserver_a-fmt-tai64n.o: ensc_fmt/fmt-tai64n.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmt-tai64n.o -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-tai64n.Tpo" -c -o ensc_fmt/lib_libvserver_a-fmt-tai64n.o `test -f 'ensc_fmt/fmt-tai64n.c' || echo '$(srcdir)/'`ensc_fmt/fmt-tai64n.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-tai64n.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-tai64n.Po"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-tai64n.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmt-tai64n.c' object='ensc_fmt/lib_libvserver_a-fmt-tai64n.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_a-fmt-tai64n.o `test -f 'ensc_fmt/fmt-tai64n.c' || echo '$(srcdir)/'`ensc_fmt/fmt-tai64n.c
+
+ensc_fmt/lib_libvserver_a-fmt-tai64n.obj: ensc_fmt/fmt-tai64n.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmt-tai64n.obj -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-tai64n.Tpo" -c -o ensc_fmt/lib_libvserver_a-fmt-tai64n.obj `if test -f 'ensc_fmt/fmt-tai64n.c'; then $(CYGPATH_W) 'ensc_fmt/fmt-tai64n.c'; else $(CYGPATH_W) '$(srcdir)/ensc_fmt/fmt-tai64n.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-tai64n.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-tai64n.Po"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-tai64n.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmt-tai64n.c' object='ensc_fmt/lib_libvserver_a-fmt-tai64n.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_a-fmt-tai64n.obj `if test -f 'ensc_fmt/fmt-tai64n.c'; then $(CYGPATH_W) 'ensc_fmt/fmt-tai64n.c'; else $(CYGPATH_W) '$(srcdir)/ensc_fmt/fmt-tai64n.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.o: lib_internal/errinfo-writeerrno.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-errinfo-writeerrno.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.o `test -f 'lib_internal/errinfo-writeerrno.c' || echo '$(srcdir)/'`lib_internal/errinfo-writeerrno.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-errinfo-writeerrno.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-errinfo-writeerrno.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-errinfo-writeerrno.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/errinfo-writeerrno.c' object='lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.o `test -f 'lib_internal/errinfo-writeerrno.c' || echo '$(srcdir)/'`lib_internal/errinfo-writeerrno.c
+
+lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.obj: lib_internal/errinfo-writeerrno.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-errinfo-writeerrno.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.obj `if test -f 'lib_internal/errinfo-writeerrno.c'; then $(CYGPATH_W) 'lib_internal/errinfo-writeerrno.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/errinfo-writeerrno.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-errinfo-writeerrno.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-errinfo-writeerrno.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-errinfo-writeerrno.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/errinfo-writeerrno.c' object='lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.obj `if test -f 'lib_internal/errinfo-writeerrno.c'; then $(CYGPATH_W) 'lib_internal/errinfo-writeerrno.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/errinfo-writeerrno.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.o: lib_internal/jailintotempdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-jailintotempdir.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.o `test -f 'lib_internal/jailintotempdir.c' || echo '$(srcdir)/'`lib_internal/jailintotempdir.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-jailintotempdir.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-jailintotempdir.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-jailintotempdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/jailintotempdir.c' object='lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.o `test -f 'lib_internal/jailintotempdir.c' || echo '$(srcdir)/'`lib_internal/jailintotempdir.c
+
+lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.obj: lib_internal/jailintotempdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-jailintotempdir.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.obj `if test -f 'lib_internal/jailintotempdir.c'; then $(CYGPATH_W) 'lib_internal/jailintotempdir.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/jailintotempdir.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-jailintotempdir.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-jailintotempdir.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-jailintotempdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/jailintotempdir.c' object='lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.obj `if test -f 'lib_internal/jailintotempdir.c'; then $(CYGPATH_W) 'lib_internal/jailintotempdir.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/jailintotempdir.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.o: lib_internal/matchlist-appendfiles.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-appendfiles.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.o `test -f 'lib_internal/matchlist-appendfiles.c' || echo '$(srcdir)/'`lib_internal/matchlist-appendfiles.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-appendfiles.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-appendfiles.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-appendfiles.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-appendfiles.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.o `test -f 'lib_internal/matchlist-appendfiles.c' || echo '$(srcdir)/'`lib_internal/matchlist-appendfiles.c
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.obj: lib_internal/matchlist-appendfiles.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-appendfiles.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.obj `if test -f 'lib_internal/matchlist-appendfiles.c'; then $(CYGPATH_W) 'lib_internal/matchlist-appendfiles.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-appendfiles.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-appendfiles.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-appendfiles.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-appendfiles.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-appendfiles.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.obj `if test -f 'lib_internal/matchlist-appendfiles.c'; then $(CYGPATH_W) 'lib_internal/matchlist-appendfiles.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-appendfiles.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.o: lib_internal/matchlist-compare.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-compare.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.o `test -f 'lib_internal/matchlist-compare.c' || echo '$(srcdir)/'`lib_internal/matchlist-compare.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-compare.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-compare.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-compare.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-compare.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.o `test -f 'lib_internal/matchlist-compare.c' || echo '$(srcdir)/'`lib_internal/matchlist-compare.c
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.obj: lib_internal/matchlist-compare.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-compare.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.obj `if test -f 'lib_internal/matchlist-compare.c'; then $(CYGPATH_W) 'lib_internal/matchlist-compare.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-compare.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-compare.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-compare.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-compare.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-compare.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.obj `if test -f 'lib_internal/matchlist-compare.c'; then $(CYGPATH_W) 'lib_internal/matchlist-compare.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-compare.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.o: lib_internal/matchlist-destroy.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-destroy.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.o `test -f 'lib_internal/matchlist-destroy.c' || echo '$(srcdir)/'`lib_internal/matchlist-destroy.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-destroy.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-destroy.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-destroy.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-destroy.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.o `test -f 'lib_internal/matchlist-destroy.c' || echo '$(srcdir)/'`lib_internal/matchlist-destroy.c
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.obj: lib_internal/matchlist-destroy.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-destroy.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.obj `if test -f 'lib_internal/matchlist-destroy.c'; then $(CYGPATH_W) 'lib_internal/matchlist-destroy.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-destroy.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-destroy.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-destroy.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-destroy.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-destroy.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-destroy.obj `if test -f 'lib_internal/matchlist-destroy.c'; then $(CYGPATH_W) 'lib_internal/matchlist-destroy.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-destroy.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-init.o: lib_internal/matchlist-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-init.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-init.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-init.o `test -f 'lib_internal/matchlist-init.c' || echo '$(srcdir)/'`lib_internal/matchlist-init.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-init.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-init.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-init.o `test -f 'lib_internal/matchlist-init.c' || echo '$(srcdir)/'`lib_internal/matchlist-init.c
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-init.obj: lib_internal/matchlist-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-init.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-init.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-init.obj `if test -f 'lib_internal/matchlist-init.c'; then $(CYGPATH_W) 'lib_internal/matchlist-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-init.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-init.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-init.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-init.obj `if test -f 'lib_internal/matchlist-init.c'; then $(CYGPATH_W) 'lib_internal/matchlist-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-init.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.o: lib_internal/matchlist-initmanually.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initmanually.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.o `test -f 'lib_internal/matchlist-initmanually.c' || echo '$(srcdir)/'`lib_internal/matchlist-initmanually.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initmanually.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initmanually.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initmanually.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initmanually.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.o `test -f 'lib_internal/matchlist-initmanually.c' || echo '$(srcdir)/'`lib_internal/matchlist-initmanually.c
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.obj: lib_internal/matchlist-initmanually.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initmanually.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.obj `if test -f 'lib_internal/matchlist-initmanually.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initmanually.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initmanually.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initmanually.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initmanually.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initmanually.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initmanually.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initmanually.obj `if test -f 'lib_internal/matchlist-initmanually.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initmanually.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initmanually.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.o: lib_internal/matchlist-initrefserverlist.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.o `test -f 'lib_internal/matchlist-initrefserverlist.c' || echo '$(srcdir)/'`lib_internal/matchlist-initrefserverlist.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initrefserverlist.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.o `test -f 'lib_internal/matchlist-initrefserverlist.c' || echo '$(srcdir)/'`lib_internal/matchlist-initrefserverlist.c
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.obj: lib_internal/matchlist-initrefserverlist.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.obj `if test -f 'lib_internal/matchlist-initrefserverlist.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initrefserverlist.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initrefserverlist.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initrefserverlist.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initrefserverlist.obj `if test -f 'lib_internal/matchlist-initrefserverlist.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initrefserverlist.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initrefserverlist.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.o: lib_internal/matchlist-printid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-printid.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.o `test -f 'lib_internal/matchlist-printid.c' || echo '$(srcdir)/'`lib_internal/matchlist-printid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-printid.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-printid.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-printid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-printid.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.o `test -f 'lib_internal/matchlist-printid.c' || echo '$(srcdir)/'`lib_internal/matchlist-printid.c
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.obj: lib_internal/matchlist-printid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-printid.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.obj `if test -f 'lib_internal/matchlist-printid.c'; then $(CYGPATH_W) 'lib_internal/matchlist-printid.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-printid.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-printid.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-printid.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-printid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-printid.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-printid.obj `if test -f 'lib_internal/matchlist-printid.c'; then $(CYGPATH_W) 'lib_internal/matchlist-printid.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-printid.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.o: lib_internal/matchvserverinfo-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-free.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.o `test -f 'lib_internal/matchvserverinfo-free.c' || echo '$(srcdir)/'`lib_internal/matchvserverinfo-free.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-free.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-free.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchvserverinfo-free.c' object='lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.o `test -f 'lib_internal/matchvserverinfo-free.c' || echo '$(srcdir)/'`lib_internal/matchvserverinfo-free.c
+
+lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.obj: lib_internal/matchvserverinfo-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-free.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.obj `if test -f 'lib_internal/matchvserverinfo-free.c'; then $(CYGPATH_W) 'lib_internal/matchvserverinfo-free.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchvserverinfo-free.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-free.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-free.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchvserverinfo-free.c' object='lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-free.obj `if test -f 'lib_internal/matchvserverinfo-free.c'; then $(CYGPATH_W) 'lib_internal/matchvserverinfo-free.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchvserverinfo-free.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.o: lib_internal/pathinfo-append.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-append.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.o `test -f 'lib_internal/pathinfo-append.c' || echo '$(srcdir)/'`lib_internal/pathinfo-append.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-append.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-append.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-append.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/pathinfo-append.c' object='lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.o `test -f 'lib_internal/pathinfo-append.c' || echo '$(srcdir)/'`lib_internal/pathinfo-append.c
+
+lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.obj: lib_internal/pathinfo-append.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-append.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.obj `if test -f 'lib_internal/pathinfo-append.c'; then $(CYGPATH_W) 'lib_internal/pathinfo-append.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/pathinfo-append.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-append.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-append.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-append.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/pathinfo-append.c' object='lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-pathinfo-append.obj `if test -f 'lib_internal/pathinfo-append.c'; then $(CYGPATH_W) 'lib_internal/pathinfo-append.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/pathinfo-append.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.o: lib_internal/pathinfo-test.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-test.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.o `test -f 'lib_internal/pathinfo-test.c' || echo '$(srcdir)/'`lib_internal/pathinfo-test.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-test.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-test.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-test.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/pathinfo-test.c' object='lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.o `test -f 'lib_internal/pathinfo-test.c' || echo '$(srcdir)/'`lib_internal/pathinfo-test.c
+
+lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.obj: lib_internal/pathinfo-test.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-test.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.obj `if test -f 'lib_internal/pathinfo-test.c'; then $(CYGPATH_W) 'lib_internal/pathinfo-test.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/pathinfo-test.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-test.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-test.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-pathinfo-test.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/pathinfo-test.c' object='lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-pathinfo-test.obj `if test -f 'lib_internal/pathinfo-test.c'; then $(CYGPATH_W) 'lib_internal/pathinfo-test.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/pathinfo-test.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.o: lib_internal/switchtowatchxid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-switchtowatchxid.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.o `test -f 'lib_internal/switchtowatchxid.c' || echo '$(srcdir)/'`lib_internal/switchtowatchxid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-switchtowatchxid.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-switchtowatchxid.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-switchtowatchxid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/switchtowatchxid.c' object='lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.o `test -f 'lib_internal/switchtowatchxid.c' || echo '$(srcdir)/'`lib_internal/switchtowatchxid.c
+
+lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.obj: lib_internal/switchtowatchxid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-switchtowatchxid.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.obj `if test -f 'lib_internal/switchtowatchxid.c'; then $(CYGPATH_W) 'lib_internal/switchtowatchxid.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/switchtowatchxid.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-switchtowatchxid.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-switchtowatchxid.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-switchtowatchxid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/switchtowatchxid.c' object='lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-switchtowatchxid.obj `if test -f 'lib_internal/switchtowatchxid.c'; then $(CYGPATH_W) 'lib_internal/switchtowatchxid.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/switchtowatchxid.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-unify-deunify.o: lib_internal/unify-deunify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-unify-deunify.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-deunify.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-unify-deunify.o `test -f 'lib_internal/unify-deunify.c' || echo '$(srcdir)/'`lib_internal/unify-deunify.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-deunify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-deunify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-deunify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-deunify.c' object='lib_internal/lib_internal_libinternal_diet_a-unify-deunify.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-unify-deunify.o `test -f 'lib_internal/unify-deunify.c' || echo '$(srcdir)/'`lib_internal/unify-deunify.c
+
+lib_internal/lib_internal_libinternal_diet_a-unify-deunify.obj: lib_internal/unify-deunify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-unify-deunify.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-deunify.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-unify-deunify.obj `if test -f 'lib_internal/unify-deunify.c'; then $(CYGPATH_W) 'lib_internal/unify-deunify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-deunify.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-deunify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-deunify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-deunify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-deunify.c' object='lib_internal/lib_internal_libinternal_diet_a-unify-deunify.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-unify-deunify.obj `if test -f 'lib_internal/unify-deunify.c'; then $(CYGPATH_W) 'lib_internal/unify-deunify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-deunify.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-unify-settime.o: lib_internal/unify-settime.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-unify-settime.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-settime.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-unify-settime.o `test -f 'lib_internal/unify-settime.c' || echo '$(srcdir)/'`lib_internal/unify-settime.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-settime.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-settime.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-settime.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-settime.c' object='lib_internal/lib_internal_libinternal_diet_a-unify-settime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-unify-settime.o `test -f 'lib_internal/unify-settime.c' || echo '$(srcdir)/'`lib_internal/unify-settime.c
+
+lib_internal/lib_internal_libinternal_diet_a-unify-settime.obj: lib_internal/unify-settime.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-unify-settime.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-settime.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-unify-settime.obj `if test -f 'lib_internal/unify-settime.c'; then $(CYGPATH_W) 'lib_internal/unify-settime.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-settime.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-settime.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-settime.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-settime.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-settime.c' object='lib_internal/lib_internal_libinternal_diet_a-unify-settime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-unify-settime.obj `if test -f 'lib_internal/unify-settime.c'; then $(CYGPATH_W) 'lib_internal/unify-settime.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-settime.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-unify-unify.o: lib_internal/unify-unify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-unify-unify.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-unify.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-unify-unify.o `test -f 'lib_internal/unify-unify.c' || echo '$(srcdir)/'`lib_internal/unify-unify.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-unify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-unify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-unify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-unify.c' object='lib_internal/lib_internal_libinternal_diet_a-unify-unify.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-unify-unify.o `test -f 'lib_internal/unify-unify.c' || echo '$(srcdir)/'`lib_internal/unify-unify.c
+
+lib_internal/lib_internal_libinternal_diet_a-unify-unify.obj: lib_internal/unify-unify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-unify-unify.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-unify.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-unify-unify.obj `if test -f 'lib_internal/unify-unify.c'; then $(CYGPATH_W) 'lib_internal/unify-unify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-unify.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-unify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-unify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-unify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-unify.c' object='lib_internal/lib_internal_libinternal_diet_a-unify-unify.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-unify-unify.obj `if test -f 'lib_internal/unify-unify.c'; then $(CYGPATH_W) 'lib_internal/unify-unify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-unify.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.o: lib_internal/unify-isiunlinkable.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-isiunlinkable.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.o `test -f 'lib_internal/unify-isiunlinkable.c' || echo '$(srcdir)/'`lib_internal/unify-isiunlinkable.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-isiunlinkable.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-isiunlinkable.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-isiunlinkable.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-isiunlinkable.c' object='lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.o `test -f 'lib_internal/unify-isiunlinkable.c' || echo '$(srcdir)/'`lib_internal/unify-isiunlinkable.c
+
+lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.obj: lib_internal/unify-isiunlinkable.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-isiunlinkable.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.obj `if test -f 'lib_internal/unify-isiunlinkable.c'; then $(CYGPATH_W) 'lib_internal/unify-isiunlinkable.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-isiunlinkable.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-isiunlinkable.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-isiunlinkable.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-isiunlinkable.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-isiunlinkable.c' object='lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-unify-isiunlinkable.obj `if test -f 'lib_internal/unify-isiunlinkable.c'; then $(CYGPATH_W) 'lib_internal/unify-isiunlinkable.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-isiunlinkable.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-util-canonify.o: lib_internal/util-canonify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-canonify.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-canonify.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-canonify.o `test -f 'lib_internal/util-canonify.c' || echo '$(srcdir)/'`lib_internal/util-canonify.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-canonify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-canonify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-canonify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-canonify.c' object='lib_internal/lib_internal_libinternal_diet_a-util-canonify.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-canonify.o `test -f 'lib_internal/util-canonify.c' || echo '$(srcdir)/'`lib_internal/util-canonify.c
+
+lib_internal/lib_internal_libinternal_diet_a-util-canonify.obj: lib_internal/util-canonify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-canonify.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-canonify.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-canonify.obj `if test -f 'lib_internal/util-canonify.c'; then $(CYGPATH_W) 'lib_internal/util-canonify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-canonify.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-canonify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-canonify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-canonify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-canonify.c' object='lib_internal/lib_internal_libinternal_diet_a-util-canonify.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-canonify.obj `if test -f 'lib_internal/util-canonify.c'; then $(CYGPATH_W) 'lib_internal/util-canonify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-canonify.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.o: lib_internal/util-exitlikeprocess.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-exitlikeprocess.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.o `test -f 'lib_internal/util-exitlikeprocess.c' || echo '$(srcdir)/'`lib_internal/util-exitlikeprocess.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-exitlikeprocess.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-exitlikeprocess.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-exitlikeprocess.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-exitlikeprocess.c' object='lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.o `test -f 'lib_internal/util-exitlikeprocess.c' || echo '$(srcdir)/'`lib_internal/util-exitlikeprocess.c
+
+lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.obj: lib_internal/util-exitlikeprocess.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-exitlikeprocess.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.obj `if test -f 'lib_internal/util-exitlikeprocess.c'; then $(CYGPATH_W) 'lib_internal/util-exitlikeprocess.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-exitlikeprocess.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-exitlikeprocess.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-exitlikeprocess.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-exitlikeprocess.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-exitlikeprocess.c' object='lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.obj `if test -f 'lib_internal/util-exitlikeprocess.c'; then $(CYGPATH_W) 'lib_internal/util-exitlikeprocess.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-exitlikeprocess.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-util-isnumber.o: lib_internal/util-isnumber.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-isnumber.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumber.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-isnumber.o `test -f 'lib_internal/util-isnumber.c' || echo '$(srcdir)/'`lib_internal/util-isnumber.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumber.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumber.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumber.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-isnumber.c' object='lib_internal/lib_internal_libinternal_diet_a-util-isnumber.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-isnumber.o `test -f 'lib_internal/util-isnumber.c' || echo '$(srcdir)/'`lib_internal/util-isnumber.c
+
+lib_internal/lib_internal_libinternal_diet_a-util-isnumber.obj: lib_internal/util-isnumber.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-isnumber.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumber.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-isnumber.obj `if test -f 'lib_internal/util-isnumber.c'; then $(CYGPATH_W) 'lib_internal/util-isnumber.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-isnumber.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumber.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumber.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumber.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-isnumber.c' object='lib_internal/lib_internal_libinternal_diet_a-util-isnumber.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-isnumber.obj `if test -f 'lib_internal/util-isnumber.c'; then $(CYGPATH_W) 'lib_internal/util-isnumber.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-isnumber.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-util-lockfile.o: lib_internal/util-lockfile.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-lockfile.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-lockfile.o `test -f 'lib_internal/util-lockfile.c' || echo '$(srcdir)/'`lib_internal/util-lockfile.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-lockfile.c' object='lib_internal/lib_internal_libinternal_diet_a-util-lockfile.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-lockfile.o `test -f 'lib_internal/util-lockfile.c' || echo '$(srcdir)/'`lib_internal/util-lockfile.c
+
+lib_internal/lib_internal_libinternal_diet_a-util-lockfile.obj: lib_internal/util-lockfile.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-lockfile.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-lockfile.obj `if test -f 'lib_internal/util-lockfile.c'; then $(CYGPATH_W) 'lib_internal/util-lockfile.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-lockfile.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-lockfile.c' object='lib_internal/lib_internal_libinternal_diet_a-util-lockfile.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-lockfile.obj `if test -f 'lib_internal/util-lockfile.c'; then $(CYGPATH_W) 'lib_internal/util-lockfile.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-lockfile.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-util-safechdir.o: lib_internal/util-safechdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-safechdir.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-safechdir.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-safechdir.o `test -f 'lib_internal/util-safechdir.c' || echo '$(srcdir)/'`lib_internal/util-safechdir.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-safechdir.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-safechdir.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-safechdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-safechdir.c' object='lib_internal/lib_internal_libinternal_diet_a-util-safechdir.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-safechdir.o `test -f 'lib_internal/util-safechdir.c' || echo '$(srcdir)/'`lib_internal/util-safechdir.c
+
+lib_internal/lib_internal_libinternal_diet_a-util-safechdir.obj: lib_internal/util-safechdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-safechdir.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-safechdir.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-safechdir.obj `if test -f 'lib_internal/util-safechdir.c'; then $(CYGPATH_W) 'lib_internal/util-safechdir.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-safechdir.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-safechdir.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-safechdir.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-safechdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-safechdir.c' object='lib_internal/lib_internal_libinternal_diet_a-util-safechdir.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-safechdir.obj `if test -f 'lib_internal/util-safechdir.c'; then $(CYGPATH_W) 'lib_internal/util-safechdir.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-safechdir.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.o: lib_internal/command-appendparameter.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-appendparameter.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.o `test -f 'lib_internal/command-appendparameter.c' || echo '$(srcdir)/'`lib_internal/command-appendparameter.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-appendparameter.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-appendparameter.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-appendparameter.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-appendparameter.c' object='lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.o `test -f 'lib_internal/command-appendparameter.c' || echo '$(srcdir)/'`lib_internal/command-appendparameter.c
+
+lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.obj: lib_internal/command-appendparameter.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-appendparameter.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.obj `if test -f 'lib_internal/command-appendparameter.c'; then $(CYGPATH_W) 'lib_internal/command-appendparameter.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-appendparameter.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-appendparameter.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-appendparameter.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-appendparameter.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-appendparameter.c' object='lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.obj `if test -f 'lib_internal/command-appendparameter.c'; then $(CYGPATH_W) 'lib_internal/command-appendparameter.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-appendparameter.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-command-setparams.o: lib_internal/command-setparams.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-setparams.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-setparams.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-setparams.o `test -f 'lib_internal/command-setparams.c' || echo '$(srcdir)/'`lib_internal/command-setparams.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-setparams.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-setparams.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-setparams.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-setparams.c' object='lib_internal/lib_internal_libinternal_diet_a-command-setparams.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-setparams.o `test -f 'lib_internal/command-setparams.c' || echo '$(srcdir)/'`lib_internal/command-setparams.c
+
+lib_internal/lib_internal_libinternal_diet_a-command-setparams.obj: lib_internal/command-setparams.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-setparams.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-setparams.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-setparams.obj `if test -f 'lib_internal/command-setparams.c'; then $(CYGPATH_W) 'lib_internal/command-setparams.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-setparams.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-setparams.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-setparams.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-setparams.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-setparams.c' object='lib_internal/lib_internal_libinternal_diet_a-command-setparams.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-setparams.obj `if test -f 'lib_internal/command-setparams.c'; then $(CYGPATH_W) 'lib_internal/command-setparams.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-setparams.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-command-exec.o: lib_internal/command-exec.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-exec.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-exec.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-exec.o `test -f 'lib_internal/command-exec.c' || echo '$(srcdir)/'`lib_internal/command-exec.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-exec.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-exec.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-exec.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-exec.c' object='lib_internal/lib_internal_libinternal_diet_a-command-exec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-exec.o `test -f 'lib_internal/command-exec.c' || echo '$(srcdir)/'`lib_internal/command-exec.c
+
+lib_internal/lib_internal_libinternal_diet_a-command-exec.obj: lib_internal/command-exec.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-exec.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-exec.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-exec.obj `if test -f 'lib_internal/command-exec.c'; then $(CYGPATH_W) 'lib_internal/command-exec.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-exec.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-exec.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-exec.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-exec.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-exec.c' object='lib_internal/lib_internal_libinternal_diet_a-command-exec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-exec.obj `if test -f 'lib_internal/command-exec.c'; then $(CYGPATH_W) 'lib_internal/command-exec.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-exec.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-command-free.o: lib_internal/command-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-free.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-free.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-free.o `test -f 'lib_internal/command-free.c' || echo '$(srcdir)/'`lib_internal/command-free.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-free.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-free.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-free.c' object='lib_internal/lib_internal_libinternal_diet_a-command-free.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-free.o `test -f 'lib_internal/command-free.c' || echo '$(srcdir)/'`lib_internal/command-free.c
+
+lib_internal/lib_internal_libinternal_diet_a-command-free.obj: lib_internal/command-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-free.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-free.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-free.obj `if test -f 'lib_internal/command-free.c'; then $(CYGPATH_W) 'lib_internal/command-free.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-free.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-free.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-free.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-free.c' object='lib_internal/lib_internal_libinternal_diet_a-command-free.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-free.obj `if test -f 'lib_internal/command-free.c'; then $(CYGPATH_W) 'lib_internal/command-free.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-free.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-command-init.o: lib_internal/command-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-init.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-init.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-init.o `test -f 'lib_internal/command-init.c' || echo '$(srcdir)/'`lib_internal/command-init.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-init.c' object='lib_internal/lib_internal_libinternal_diet_a-command-init.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-init.o `test -f 'lib_internal/command-init.c' || echo '$(srcdir)/'`lib_internal/command-init.c
+
+lib_internal/lib_internal_libinternal_diet_a-command-init.obj: lib_internal/command-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-init.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-init.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-init.obj `if test -f 'lib_internal/command-init.c'; then $(CYGPATH_W) 'lib_internal/command-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-init.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-init.c' object='lib_internal/lib_internal_libinternal_diet_a-command-init.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-init.obj `if test -f 'lib_internal/command-init.c'; then $(CYGPATH_W) 'lib_internal/command-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-init.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-command-reset.o: lib_internal/command-reset.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-reset.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-reset.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-reset.o `test -f 'lib_internal/command-reset.c' || echo '$(srcdir)/'`lib_internal/command-reset.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-reset.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-reset.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-reset.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-reset.c' object='lib_internal/lib_internal_libinternal_diet_a-command-reset.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-reset.o `test -f 'lib_internal/command-reset.c' || echo '$(srcdir)/'`lib_internal/command-reset.c
+
+lib_internal/lib_internal_libinternal_diet_a-command-reset.obj: lib_internal/command-reset.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-reset.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-reset.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-reset.obj `if test -f 'lib_internal/command-reset.c'; then $(CYGPATH_W) 'lib_internal/command-reset.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-reset.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-reset.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-reset.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-reset.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-reset.c' object='lib_internal/lib_internal_libinternal_diet_a-command-reset.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-reset.obj `if test -f 'lib_internal/command-reset.c'; then $(CYGPATH_W) 'lib_internal/command-reset.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-reset.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-command-wait.o: lib_internal/command-wait.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-wait.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-wait.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-wait.o `test -f 'lib_internal/command-wait.c' || echo '$(srcdir)/'`lib_internal/command-wait.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-wait.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-wait.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-wait.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-wait.c' object='lib_internal/lib_internal_libinternal_diet_a-command-wait.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-wait.o `test -f 'lib_internal/command-wait.c' || echo '$(srcdir)/'`lib_internal/command-wait.c
+
+lib_internal/lib_internal_libinternal_diet_a-command-wait.obj: lib_internal/command-wait.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-command-wait.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-wait.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-command-wait.obj `if test -f 'lib_internal/command-wait.c'; then $(CYGPATH_W) 'lib_internal/command-wait.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-wait.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-wait.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-wait.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-command-wait.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-wait.c' object='lib_internal/lib_internal_libinternal_diet_a-command-wait.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-command-wait.obj `if test -f 'lib_internal/command-wait.c'; then $(CYGPATH_W) 'lib_internal/command-wait.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-wait.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.o: lib_internal/filecfg-iteratemultiline.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.o `test -f 'lib_internal/filecfg-iteratemultiline.c' || echo '$(srcdir)/'`lib_internal/filecfg-iteratemultiline.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-iteratemultiline.c' object='lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.o `test -f 'lib_internal/filecfg-iteratemultiline.c' || echo '$(srcdir)/'`lib_internal/filecfg-iteratemultiline.c
+
+lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.obj: lib_internal/filecfg-iteratemultiline.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.obj `if test -f 'lib_internal/filecfg-iteratemultiline.c'; then $(CYGPATH_W) 'lib_internal/filecfg-iteratemultiline.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-iteratemultiline.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-iteratemultiline.c' object='lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.obj `if test -f 'lib_internal/filecfg-iteratemultiline.c'; then $(CYGPATH_W) 'lib_internal/filecfg-iteratemultiline.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-iteratemultiline.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.o: lib_internal/filecfg-readentryflag.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentryflag.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.o `test -f 'lib_internal/filecfg-readentryflag.c' || echo '$(srcdir)/'`lib_internal/filecfg-readentryflag.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentryflag.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentryflag.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentryflag.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-readentryflag.c' object='lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.o `test -f 'lib_internal/filecfg-readentryflag.c' || echo '$(srcdir)/'`lib_internal/filecfg-readentryflag.c
+
+lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.obj: lib_internal/filecfg-readentryflag.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentryflag.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.obj `if test -f 'lib_internal/filecfg-readentryflag.c'; then $(CYGPATH_W) 'lib_internal/filecfg-readentryflag.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-readentryflag.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentryflag.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentryflag.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentryflag.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-readentryflag.c' object='lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.obj `if test -f 'lib_internal/filecfg-readentryflag.c'; then $(CYGPATH_W) 'lib_internal/filecfg-readentryflag.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-readentryflag.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.o: lib_internal/filecfg-readentrystr.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentrystr.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.o `test -f 'lib_internal/filecfg-readentrystr.c' || echo '$(srcdir)/'`lib_internal/filecfg-readentrystr.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentrystr.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentrystr.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentrystr.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-readentrystr.c' object='lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.o `test -f 'lib_internal/filecfg-readentrystr.c' || echo '$(srcdir)/'`lib_internal/filecfg-readentrystr.c
+
+lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.obj: lib_internal/filecfg-readentrystr.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentrystr.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.obj `if test -f 'lib_internal/filecfg-readentrystr.c'; then $(CYGPATH_W) 'lib_internal/filecfg-readentrystr.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-readentrystr.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentrystr.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentrystr.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-filecfg-readentrystr.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-readentrystr.c' object='lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.obj `if test -f 'lib_internal/filecfg-readentrystr.c'; then $(CYGPATH_W) 'lib_internal/filecfg-readentrystr.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-readentrystr.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.o: lib_internal/matchlist-initbyvserver.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initbyvserver.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.o `test -f 'lib_internal/matchlist-initbyvserver.c' || echo '$(srcdir)/'`lib_internal/matchlist-initbyvserver.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initbyvserver.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initbyvserver.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initbyvserver.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initbyvserver.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.o `test -f 'lib_internal/matchlist-initbyvserver.c' || echo '$(srcdir)/'`lib_internal/matchlist-initbyvserver.c
+
+lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.obj: lib_internal/matchlist-initbyvserver.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initbyvserver.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.obj `if test -f 'lib_internal/matchlist-initbyvserver.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initbyvserver.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initbyvserver.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initbyvserver.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initbyvserver.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchlist-initbyvserver.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initbyvserver.c' object='lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.obj `if test -f 'lib_internal/matchlist-initbyvserver.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initbyvserver.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initbyvserver.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.o: lib_internal/matchvserverinfo-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-init.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.o `test -f 'lib_internal/matchvserverinfo-init.c' || echo '$(srcdir)/'`lib_internal/matchvserverinfo-init.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchvserverinfo-init.c' object='lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.o `test -f 'lib_internal/matchvserverinfo-init.c' || echo '$(srcdir)/'`lib_internal/matchvserverinfo-init.c
+
+lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.obj: lib_internal/matchvserverinfo-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-init.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.obj `if test -f 'lib_internal/matchvserverinfo-init.c'; then $(CYGPATH_W) 'lib_internal/matchvserverinfo-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchvserverinfo-init.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-matchvserverinfo-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchvserverinfo-init.c' object='lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.obj `if test -f 'lib_internal/matchvserverinfo-init.c'; then $(CYGPATH_W) 'lib_internal/matchvserverinfo-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchvserverinfo-init.c'; fi`
+
+lib_internal/lib_internal_libinternal_diet_a-unify-copy.o: lib_internal/unify-copy.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-unify-copy.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-copy.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-unify-copy.o `test -f 'lib_internal/unify-copy.c' || echo '$(srcdir)/'`lib_internal/unify-copy.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-copy.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-copy.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-copy.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-copy.c' object='lib_internal/lib_internal_libinternal_diet_a-unify-copy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-unify-copy.o `test -f 'lib_internal/unify-copy.c' || echo '$(srcdir)/'`lib_internal/unify-copy.c
+
+lib_internal/lib_internal_libinternal_diet_a-unify-copy.obj: lib_internal/unify-copy.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-unify-copy.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-copy.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-unify-copy.obj `if test -f 'lib_internal/unify-copy.c'; then $(CYGPATH_W) 'lib_internal/unify-copy.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-copy.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-copy.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-copy.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-unify-copy.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-copy.c' object='lib_internal/lib_internal_libinternal_diet_a-unify-copy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-unify-copy.obj `if test -f 'lib_internal/unify-copy.c'; then $(CYGPATH_W) 'lib_internal/unify-copy.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-copy.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.o: lib_internal/errinfo-writeerrno.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-errinfo-writeerrno.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.o `test -f 'lib_internal/errinfo-writeerrno.c' || echo '$(srcdir)/'`lib_internal/errinfo-writeerrno.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-errinfo-writeerrno.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-errinfo-writeerrno.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-errinfo-writeerrno.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/errinfo-writeerrno.c' object='lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.o `test -f 'lib_internal/errinfo-writeerrno.c' || echo '$(srcdir)/'`lib_internal/errinfo-writeerrno.c
+
+lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.obj: lib_internal/errinfo-writeerrno.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-errinfo-writeerrno.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.obj `if test -f 'lib_internal/errinfo-writeerrno.c'; then $(CYGPATH_W) 'lib_internal/errinfo-writeerrno.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/errinfo-writeerrno.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-errinfo-writeerrno.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-errinfo-writeerrno.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-errinfo-writeerrno.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/errinfo-writeerrno.c' object='lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.obj `if test -f 'lib_internal/errinfo-writeerrno.c'; then $(CYGPATH_W) 'lib_internal/errinfo-writeerrno.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/errinfo-writeerrno.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.o: lib_internal/jailintotempdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-jailintotempdir.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.o `test -f 'lib_internal/jailintotempdir.c' || echo '$(srcdir)/'`lib_internal/jailintotempdir.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-jailintotempdir.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-jailintotempdir.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-jailintotempdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/jailintotempdir.c' object='lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.o `test -f 'lib_internal/jailintotempdir.c' || echo '$(srcdir)/'`lib_internal/jailintotempdir.c
+
+lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.obj: lib_internal/jailintotempdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-jailintotempdir.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.obj `if test -f 'lib_internal/jailintotempdir.c'; then $(CYGPATH_W) 'lib_internal/jailintotempdir.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/jailintotempdir.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-jailintotempdir.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-jailintotempdir.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-jailintotempdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/jailintotempdir.c' object='lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.obj `if test -f 'lib_internal/jailintotempdir.c'; then $(CYGPATH_W) 'lib_internal/jailintotempdir.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/jailintotempdir.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.o: lib_internal/matchlist-appendfiles.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-appendfiles.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.o `test -f 'lib_internal/matchlist-appendfiles.c' || echo '$(srcdir)/'`lib_internal/matchlist-appendfiles.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-appendfiles.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-appendfiles.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-appendfiles.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-appendfiles.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.o `test -f 'lib_internal/matchlist-appendfiles.c' || echo '$(srcdir)/'`lib_internal/matchlist-appendfiles.c
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.obj: lib_internal/matchlist-appendfiles.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-appendfiles.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.obj `if test -f 'lib_internal/matchlist-appendfiles.c'; then $(CYGPATH_W) 'lib_internal/matchlist-appendfiles.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-appendfiles.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-appendfiles.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-appendfiles.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-appendfiles.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-appendfiles.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.obj `if test -f 'lib_internal/matchlist-appendfiles.c'; then $(CYGPATH_W) 'lib_internal/matchlist-appendfiles.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-appendfiles.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.o: lib_internal/matchlist-compare.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-compare.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.o `test -f 'lib_internal/matchlist-compare.c' || echo '$(srcdir)/'`lib_internal/matchlist-compare.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-compare.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-compare.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-compare.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-compare.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.o `test -f 'lib_internal/matchlist-compare.c' || echo '$(srcdir)/'`lib_internal/matchlist-compare.c
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.obj: lib_internal/matchlist-compare.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-compare.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.obj `if test -f 'lib_internal/matchlist-compare.c'; then $(CYGPATH_W) 'lib_internal/matchlist-compare.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-compare.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-compare.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-compare.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-compare.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-compare.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.obj `if test -f 'lib_internal/matchlist-compare.c'; then $(CYGPATH_W) 'lib_internal/matchlist-compare.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-compare.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.o: lib_internal/matchlist-destroy.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-destroy.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.o `test -f 'lib_internal/matchlist-destroy.c' || echo '$(srcdir)/'`lib_internal/matchlist-destroy.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-destroy.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-destroy.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-destroy.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-destroy.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.o `test -f 'lib_internal/matchlist-destroy.c' || echo '$(srcdir)/'`lib_internal/matchlist-destroy.c
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.obj: lib_internal/matchlist-destroy.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-destroy.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.obj `if test -f 'lib_internal/matchlist-destroy.c'; then $(CYGPATH_W) 'lib_internal/matchlist-destroy.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-destroy.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-destroy.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-destroy.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-destroy.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-destroy.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-destroy.obj `if test -f 'lib_internal/matchlist-destroy.c'; then $(CYGPATH_W) 'lib_internal/matchlist-destroy.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-destroy.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.o: lib_internal/matchlist-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-init.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.o `test -f 'lib_internal/matchlist-init.c' || echo '$(srcdir)/'`lib_internal/matchlist-init.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-init.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.o `test -f 'lib_internal/matchlist-init.c' || echo '$(srcdir)/'`lib_internal/matchlist-init.c
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.obj: lib_internal/matchlist-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-init.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.obj `if test -f 'lib_internal/matchlist-init.c'; then $(CYGPATH_W) 'lib_internal/matchlist-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-init.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-init.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-init.obj `if test -f 'lib_internal/matchlist-init.c'; then $(CYGPATH_W) 'lib_internal/matchlist-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-init.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.o: lib_internal/matchlist-initmanually.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initmanually.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.o `test -f 'lib_internal/matchlist-initmanually.c' || echo '$(srcdir)/'`lib_internal/matchlist-initmanually.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initmanually.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initmanually.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initmanually.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initmanually.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.o `test -f 'lib_internal/matchlist-initmanually.c' || echo '$(srcdir)/'`lib_internal/matchlist-initmanually.c
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.obj: lib_internal/matchlist-initmanually.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initmanually.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.obj `if test -f 'lib_internal/matchlist-initmanually.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initmanually.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initmanually.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initmanually.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initmanually.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initmanually.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initmanually.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initmanually.obj `if test -f 'lib_internal/matchlist-initmanually.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initmanually.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initmanually.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.o: lib_internal/matchlist-initrefserverlist.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.o `test -f 'lib_internal/matchlist-initrefserverlist.c' || echo '$(srcdir)/'`lib_internal/matchlist-initrefserverlist.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initrefserverlist.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.o `test -f 'lib_internal/matchlist-initrefserverlist.c' || echo '$(srcdir)/'`lib_internal/matchlist-initrefserverlist.c
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.obj: lib_internal/matchlist-initrefserverlist.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.obj `if test -f 'lib_internal/matchlist-initrefserverlist.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initrefserverlist.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initrefserverlist.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initrefserverlist.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initrefserverlist.obj `if test -f 'lib_internal/matchlist-initrefserverlist.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initrefserverlist.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initrefserverlist.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.o: lib_internal/matchlist-printid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-printid.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.o `test -f 'lib_internal/matchlist-printid.c' || echo '$(srcdir)/'`lib_internal/matchlist-printid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-printid.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-printid.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-printid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-printid.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.o `test -f 'lib_internal/matchlist-printid.c' || echo '$(srcdir)/'`lib_internal/matchlist-printid.c
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.obj: lib_internal/matchlist-printid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-printid.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.obj `if test -f 'lib_internal/matchlist-printid.c'; then $(CYGPATH_W) 'lib_internal/matchlist-printid.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-printid.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-printid.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-printid.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-printid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-printid.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-printid.obj `if test -f 'lib_internal/matchlist-printid.c'; then $(CYGPATH_W) 'lib_internal/matchlist-printid.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-printid.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.o: lib_internal/matchvserverinfo-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-free.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.o `test -f 'lib_internal/matchvserverinfo-free.c' || echo '$(srcdir)/'`lib_internal/matchvserverinfo-free.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-free.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-free.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchvserverinfo-free.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.o `test -f 'lib_internal/matchvserverinfo-free.c' || echo '$(srcdir)/'`lib_internal/matchvserverinfo-free.c
+
+lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.obj: lib_internal/matchvserverinfo-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-free.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.obj `if test -f 'lib_internal/matchvserverinfo-free.c'; then $(CYGPATH_W) 'lib_internal/matchvserverinfo-free.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchvserverinfo-free.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-free.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-free.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchvserverinfo-free.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-free.obj `if test -f 'lib_internal/matchvserverinfo-free.c'; then $(CYGPATH_W) 'lib_internal/matchvserverinfo-free.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchvserverinfo-free.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.o: lib_internal/pathinfo-append.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-append.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.o `test -f 'lib_internal/pathinfo-append.c' || echo '$(srcdir)/'`lib_internal/pathinfo-append.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-append.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-append.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-append.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/pathinfo-append.c' object='lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.o `test -f 'lib_internal/pathinfo-append.c' || echo '$(srcdir)/'`lib_internal/pathinfo-append.c
+
+lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.obj: lib_internal/pathinfo-append.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-append.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.obj `if test -f 'lib_internal/pathinfo-append.c'; then $(CYGPATH_W) 'lib_internal/pathinfo-append.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/pathinfo-append.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-append.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-append.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-append.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/pathinfo-append.c' object='lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-pathinfo-append.obj `if test -f 'lib_internal/pathinfo-append.c'; then $(CYGPATH_W) 'lib_internal/pathinfo-append.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/pathinfo-append.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.o: lib_internal/pathinfo-test.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-test.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.o `test -f 'lib_internal/pathinfo-test.c' || echo '$(srcdir)/'`lib_internal/pathinfo-test.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-test.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-test.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-test.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/pathinfo-test.c' object='lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.o `test -f 'lib_internal/pathinfo-test.c' || echo '$(srcdir)/'`lib_internal/pathinfo-test.c
+
+lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.obj: lib_internal/pathinfo-test.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-test.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.obj `if test -f 'lib_internal/pathinfo-test.c'; then $(CYGPATH_W) 'lib_internal/pathinfo-test.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/pathinfo-test.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-test.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-test.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-pathinfo-test.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/pathinfo-test.c' object='lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-pathinfo-test.obj `if test -f 'lib_internal/pathinfo-test.c'; then $(CYGPATH_W) 'lib_internal/pathinfo-test.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/pathinfo-test.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.o: lib_internal/switchtowatchxid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-switchtowatchxid.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.o `test -f 'lib_internal/switchtowatchxid.c' || echo '$(srcdir)/'`lib_internal/switchtowatchxid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-switchtowatchxid.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-switchtowatchxid.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-switchtowatchxid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/switchtowatchxid.c' object='lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.o `test -f 'lib_internal/switchtowatchxid.c' || echo '$(srcdir)/'`lib_internal/switchtowatchxid.c
+
+lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.obj: lib_internal/switchtowatchxid.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-switchtowatchxid.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.obj `if test -f 'lib_internal/switchtowatchxid.c'; then $(CYGPATH_W) 'lib_internal/switchtowatchxid.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/switchtowatchxid.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-switchtowatchxid.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-switchtowatchxid.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-switchtowatchxid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/switchtowatchxid.c' object='lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-switchtowatchxid.obj `if test -f 'lib_internal/switchtowatchxid.c'; then $(CYGPATH_W) 'lib_internal/switchtowatchxid.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/switchtowatchxid.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.o: lib_internal/unify-deunify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-deunify.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.o `test -f 'lib_internal/unify-deunify.c' || echo '$(srcdir)/'`lib_internal/unify-deunify.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-deunify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-deunify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-deunify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-deunify.c' object='lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.o `test -f 'lib_internal/unify-deunify.c' || echo '$(srcdir)/'`lib_internal/unify-deunify.c
+
+lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.obj: lib_internal/unify-deunify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-deunify.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.obj `if test -f 'lib_internal/unify-deunify.c'; then $(CYGPATH_W) 'lib_internal/unify-deunify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-deunify.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-deunify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-deunify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-deunify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-deunify.c' object='lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-deunify.obj `if test -f 'lib_internal/unify-deunify.c'; then $(CYGPATH_W) 'lib_internal/unify-deunify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-deunify.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-unify-settime.o: lib_internal/unify-settime.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-unify-settime.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-settime.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-settime.o `test -f 'lib_internal/unify-settime.c' || echo '$(srcdir)/'`lib_internal/unify-settime.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-settime.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-settime.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-settime.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-settime.c' object='lib_internal/lib_internal_libinternal_glibc_a-unify-settime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-settime.o `test -f 'lib_internal/unify-settime.c' || echo '$(srcdir)/'`lib_internal/unify-settime.c
+
+lib_internal/lib_internal_libinternal_glibc_a-unify-settime.obj: lib_internal/unify-settime.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-unify-settime.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-settime.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-settime.obj `if test -f 'lib_internal/unify-settime.c'; then $(CYGPATH_W) 'lib_internal/unify-settime.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-settime.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-settime.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-settime.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-settime.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-settime.c' object='lib_internal/lib_internal_libinternal_glibc_a-unify-settime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-settime.obj `if test -f 'lib_internal/unify-settime.c'; then $(CYGPATH_W) 'lib_internal/unify-settime.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-settime.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-unify-unify.o: lib_internal/unify-unify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-unify-unify.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-unify.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-unify.o `test -f 'lib_internal/unify-unify.c' || echo '$(srcdir)/'`lib_internal/unify-unify.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-unify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-unify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-unify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-unify.c' object='lib_internal/lib_internal_libinternal_glibc_a-unify-unify.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-unify.o `test -f 'lib_internal/unify-unify.c' || echo '$(srcdir)/'`lib_internal/unify-unify.c
+
+lib_internal/lib_internal_libinternal_glibc_a-unify-unify.obj: lib_internal/unify-unify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-unify-unify.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-unify.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-unify.obj `if test -f 'lib_internal/unify-unify.c'; then $(CYGPATH_W) 'lib_internal/unify-unify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-unify.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-unify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-unify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-unify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-unify.c' object='lib_internal/lib_internal_libinternal_glibc_a-unify-unify.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-unify.obj `if test -f 'lib_internal/unify-unify.c'; then $(CYGPATH_W) 'lib_internal/unify-unify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-unify.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.o: lib_internal/unify-isiunlinkable.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-isiunlinkable.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.o `test -f 'lib_internal/unify-isiunlinkable.c' || echo '$(srcdir)/'`lib_internal/unify-isiunlinkable.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-isiunlinkable.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-isiunlinkable.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-isiunlinkable.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-isiunlinkable.c' object='lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.o `test -f 'lib_internal/unify-isiunlinkable.c' || echo '$(srcdir)/'`lib_internal/unify-isiunlinkable.c
+
+lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.obj: lib_internal/unify-isiunlinkable.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-isiunlinkable.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.obj `if test -f 'lib_internal/unify-isiunlinkable.c'; then $(CYGPATH_W) 'lib_internal/unify-isiunlinkable.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-isiunlinkable.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-isiunlinkable.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-isiunlinkable.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-isiunlinkable.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-isiunlinkable.c' object='lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-isiunlinkable.obj `if test -f 'lib_internal/unify-isiunlinkable.c'; then $(CYGPATH_W) 'lib_internal/unify-isiunlinkable.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-isiunlinkable.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-util-canonify.o: lib_internal/util-canonify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-canonify.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-canonify.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-canonify.o `test -f 'lib_internal/util-canonify.c' || echo '$(srcdir)/'`lib_internal/util-canonify.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-canonify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-canonify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-canonify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-canonify.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-canonify.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-canonify.o `test -f 'lib_internal/util-canonify.c' || echo '$(srcdir)/'`lib_internal/util-canonify.c
+
+lib_internal/lib_internal_libinternal_glibc_a-util-canonify.obj: lib_internal/util-canonify.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-canonify.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-canonify.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-canonify.obj `if test -f 'lib_internal/util-canonify.c'; then $(CYGPATH_W) 'lib_internal/util-canonify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-canonify.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-canonify.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-canonify.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-canonify.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-canonify.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-canonify.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-canonify.obj `if test -f 'lib_internal/util-canonify.c'; then $(CYGPATH_W) 'lib_internal/util-canonify.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-canonify.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.o: lib_internal/util-exitlikeprocess.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-exitlikeprocess.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.o `test -f 'lib_internal/util-exitlikeprocess.c' || echo '$(srcdir)/'`lib_internal/util-exitlikeprocess.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-exitlikeprocess.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-exitlikeprocess.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-exitlikeprocess.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-exitlikeprocess.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.o `test -f 'lib_internal/util-exitlikeprocess.c' || echo '$(srcdir)/'`lib_internal/util-exitlikeprocess.c
+
+lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.obj: lib_internal/util-exitlikeprocess.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-exitlikeprocess.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.obj `if test -f 'lib_internal/util-exitlikeprocess.c'; then $(CYGPATH_W) 'lib_internal/util-exitlikeprocess.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-exitlikeprocess.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-exitlikeprocess.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-exitlikeprocess.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-exitlikeprocess.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-exitlikeprocess.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.obj `if test -f 'lib_internal/util-exitlikeprocess.c'; then $(CYGPATH_W) 'lib_internal/util-exitlikeprocess.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-exitlikeprocess.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.o: lib_internal/util-isnumber.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumber.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.o `test -f 'lib_internal/util-isnumber.c' || echo '$(srcdir)/'`lib_internal/util-isnumber.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumber.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumber.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumber.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-isnumber.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.o `test -f 'lib_internal/util-isnumber.c' || echo '$(srcdir)/'`lib_internal/util-isnumber.c
+
+lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.obj: lib_internal/util-isnumber.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumber.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.obj `if test -f 'lib_internal/util-isnumber.c'; then $(CYGPATH_W) 'lib_internal/util-isnumber.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-isnumber.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumber.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumber.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumber.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-isnumber.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.obj `if test -f 'lib_internal/util-isnumber.c'; then $(CYGPATH_W) 'lib_internal/util-isnumber.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-isnumber.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.o: lib_internal/util-lockfile.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.o `test -f 'lib_internal/util-lockfile.c' || echo '$(srcdir)/'`lib_internal/util-lockfile.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-lockfile.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.o `test -f 'lib_internal/util-lockfile.c' || echo '$(srcdir)/'`lib_internal/util-lockfile.c
+
+lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.obj: lib_internal/util-lockfile.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.obj `if test -f 'lib_internal/util-lockfile.c'; then $(CYGPATH_W) 'lib_internal/util-lockfile.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-lockfile.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-lockfile.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.obj `if test -f 'lib_internal/util-lockfile.c'; then $(CYGPATH_W) 'lib_internal/util-lockfile.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-lockfile.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.o: lib_internal/util-safechdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-safechdir.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.o `test -f 'lib_internal/util-safechdir.c' || echo '$(srcdir)/'`lib_internal/util-safechdir.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-safechdir.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-safechdir.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-safechdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-safechdir.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.o `test -f 'lib_internal/util-safechdir.c' || echo '$(srcdir)/'`lib_internal/util-safechdir.c
+
+lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.obj: lib_internal/util-safechdir.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-safechdir.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.obj `if test -f 'lib_internal/util-safechdir.c'; then $(CYGPATH_W) 'lib_internal/util-safechdir.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-safechdir.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-safechdir.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-safechdir.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-safechdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-safechdir.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.obj `if test -f 'lib_internal/util-safechdir.c'; then $(CYGPATH_W) 'lib_internal/util-safechdir.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-safechdir.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.o: lib_internal/command-appendparameter.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-appendparameter.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.o `test -f 'lib_internal/command-appendparameter.c' || echo '$(srcdir)/'`lib_internal/command-appendparameter.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-appendparameter.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-appendparameter.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-appendparameter.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-appendparameter.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.o `test -f 'lib_internal/command-appendparameter.c' || echo '$(srcdir)/'`lib_internal/command-appendparameter.c
+
+lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.obj: lib_internal/command-appendparameter.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-appendparameter.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.obj `if test -f 'lib_internal/command-appendparameter.c'; then $(CYGPATH_W) 'lib_internal/command-appendparameter.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-appendparameter.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-appendparameter.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-appendparameter.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-appendparameter.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-appendparameter.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.obj `if test -f 'lib_internal/command-appendparameter.c'; then $(CYGPATH_W) 'lib_internal/command-appendparameter.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-appendparameter.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-command-setparams.o: lib_internal/command-setparams.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-setparams.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-setparams.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-setparams.o `test -f 'lib_internal/command-setparams.c' || echo '$(srcdir)/'`lib_internal/command-setparams.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-setparams.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-setparams.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-setparams.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-setparams.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-setparams.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-setparams.o `test -f 'lib_internal/command-setparams.c' || echo '$(srcdir)/'`lib_internal/command-setparams.c
+
+lib_internal/lib_internal_libinternal_glibc_a-command-setparams.obj: lib_internal/command-setparams.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-setparams.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-setparams.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-setparams.obj `if test -f 'lib_internal/command-setparams.c'; then $(CYGPATH_W) 'lib_internal/command-setparams.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-setparams.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-setparams.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-setparams.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-setparams.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-setparams.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-setparams.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-setparams.obj `if test -f 'lib_internal/command-setparams.c'; then $(CYGPATH_W) 'lib_internal/command-setparams.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-setparams.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-command-exec.o: lib_internal/command-exec.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-exec.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-exec.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-exec.o `test -f 'lib_internal/command-exec.c' || echo '$(srcdir)/'`lib_internal/command-exec.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-exec.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-exec.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-exec.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-exec.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-exec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-exec.o `test -f 'lib_internal/command-exec.c' || echo '$(srcdir)/'`lib_internal/command-exec.c
+
+lib_internal/lib_internal_libinternal_glibc_a-command-exec.obj: lib_internal/command-exec.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-exec.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-exec.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-exec.obj `if test -f 'lib_internal/command-exec.c'; then $(CYGPATH_W) 'lib_internal/command-exec.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-exec.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-exec.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-exec.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-exec.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-exec.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-exec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-exec.obj `if test -f 'lib_internal/command-exec.c'; then $(CYGPATH_W) 'lib_internal/command-exec.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-exec.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-command-free.o: lib_internal/command-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-free.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-free.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-free.o `test -f 'lib_internal/command-free.c' || echo '$(srcdir)/'`lib_internal/command-free.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-free.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-free.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-free.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-free.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-free.o `test -f 'lib_internal/command-free.c' || echo '$(srcdir)/'`lib_internal/command-free.c
+
+lib_internal/lib_internal_libinternal_glibc_a-command-free.obj: lib_internal/command-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-free.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-free.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-free.obj `if test -f 'lib_internal/command-free.c'; then $(CYGPATH_W) 'lib_internal/command-free.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-free.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-free.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-free.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-free.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-free.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-free.obj `if test -f 'lib_internal/command-free.c'; then $(CYGPATH_W) 'lib_internal/command-free.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-free.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-command-init.o: lib_internal/command-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-init.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-init.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-init.o `test -f 'lib_internal/command-init.c' || echo '$(srcdir)/'`lib_internal/command-init.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-init.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-init.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-init.o `test -f 'lib_internal/command-init.c' || echo '$(srcdir)/'`lib_internal/command-init.c
+
+lib_internal/lib_internal_libinternal_glibc_a-command-init.obj: lib_internal/command-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-init.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-init.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-init.obj `if test -f 'lib_internal/command-init.c'; then $(CYGPATH_W) 'lib_internal/command-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-init.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-init.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-init.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-init.obj `if test -f 'lib_internal/command-init.c'; then $(CYGPATH_W) 'lib_internal/command-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-init.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-command-reset.o: lib_internal/command-reset.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-reset.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-reset.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-reset.o `test -f 'lib_internal/command-reset.c' || echo '$(srcdir)/'`lib_internal/command-reset.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-reset.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-reset.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-reset.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-reset.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-reset.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-reset.o `test -f 'lib_internal/command-reset.c' || echo '$(srcdir)/'`lib_internal/command-reset.c
+
+lib_internal/lib_internal_libinternal_glibc_a-command-reset.obj: lib_internal/command-reset.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-reset.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-reset.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-reset.obj `if test -f 'lib_internal/command-reset.c'; then $(CYGPATH_W) 'lib_internal/command-reset.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-reset.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-reset.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-reset.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-reset.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-reset.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-reset.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-reset.obj `if test -f 'lib_internal/command-reset.c'; then $(CYGPATH_W) 'lib_internal/command-reset.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-reset.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-command-wait.o: lib_internal/command-wait.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-wait.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-wait.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-wait.o `test -f 'lib_internal/command-wait.c' || echo '$(srcdir)/'`lib_internal/command-wait.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-wait.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-wait.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-wait.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-wait.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-wait.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-wait.o `test -f 'lib_internal/command-wait.c' || echo '$(srcdir)/'`lib_internal/command-wait.c
+
+lib_internal/lib_internal_libinternal_glibc_a-command-wait.obj: lib_internal/command-wait.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-command-wait.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-wait.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-command-wait.obj `if test -f 'lib_internal/command-wait.c'; then $(CYGPATH_W) 'lib_internal/command-wait.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-wait.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-wait.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-wait.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-wait.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/command-wait.c' object='lib_internal/lib_internal_libinternal_glibc_a-command-wait.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-command-wait.obj `if test -f 'lib_internal/command-wait.c'; then $(CYGPATH_W) 'lib_internal/command-wait.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/command-wait.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.o: lib_internal/filecfg-iteratemultiline.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.o `test -f 'lib_internal/filecfg-iteratemultiline.c' || echo '$(srcdir)/'`lib_internal/filecfg-iteratemultiline.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-iteratemultiline.c' object='lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.o `test -f 'lib_internal/filecfg-iteratemultiline.c' || echo '$(srcdir)/'`lib_internal/filecfg-iteratemultiline.c
+
+lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.obj: lib_internal/filecfg-iteratemultiline.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.obj `if test -f 'lib_internal/filecfg-iteratemultiline.c'; then $(CYGPATH_W) 'lib_internal/filecfg-iteratemultiline.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-iteratemultiline.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-iteratemultiline.c' object='lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.obj `if test -f 'lib_internal/filecfg-iteratemultiline.c'; then $(CYGPATH_W) 'lib_internal/filecfg-iteratemultiline.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-iteratemultiline.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.o: lib_internal/filecfg-readentryflag.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentryflag.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.o `test -f 'lib_internal/filecfg-readentryflag.c' || echo '$(srcdir)/'`lib_internal/filecfg-readentryflag.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentryflag.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentryflag.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentryflag.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-readentryflag.c' object='lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.o `test -f 'lib_internal/filecfg-readentryflag.c' || echo '$(srcdir)/'`lib_internal/filecfg-readentryflag.c
+
+lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.obj: lib_internal/filecfg-readentryflag.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentryflag.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.obj `if test -f 'lib_internal/filecfg-readentryflag.c'; then $(CYGPATH_W) 'lib_internal/filecfg-readentryflag.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-readentryflag.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentryflag.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentryflag.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentryflag.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-readentryflag.c' object='lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.obj `if test -f 'lib_internal/filecfg-readentryflag.c'; then $(CYGPATH_W) 'lib_internal/filecfg-readentryflag.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-readentryflag.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.o: lib_internal/filecfg-readentrystr.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentrystr.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.o `test -f 'lib_internal/filecfg-readentrystr.c' || echo '$(srcdir)/'`lib_internal/filecfg-readentrystr.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentrystr.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentrystr.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentrystr.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-readentrystr.c' object='lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.o `test -f 'lib_internal/filecfg-readentrystr.c' || echo '$(srcdir)/'`lib_internal/filecfg-readentrystr.c
+
+lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.obj: lib_internal/filecfg-readentrystr.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentrystr.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.obj `if test -f 'lib_internal/filecfg-readentrystr.c'; then $(CYGPATH_W) 'lib_internal/filecfg-readentrystr.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-readentrystr.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentrystr.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentrystr.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-filecfg-readentrystr.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/filecfg-readentrystr.c' object='lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.obj `if test -f 'lib_internal/filecfg-readentrystr.c'; then $(CYGPATH_W) 'lib_internal/filecfg-readentrystr.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/filecfg-readentrystr.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.o: lib_internal/matchlist-initbyvserver.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.o `test -f 'lib_internal/matchlist-initbyvserver.c' || echo '$(srcdir)/'`lib_internal/matchlist-initbyvserver.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initbyvserver.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.o `test -f 'lib_internal/matchlist-initbyvserver.c' || echo '$(srcdir)/'`lib_internal/matchlist-initbyvserver.c
+
+lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.obj: lib_internal/matchlist-initbyvserver.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.obj `if test -f 'lib_internal/matchlist-initbyvserver.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initbyvserver.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initbyvserver.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchlist-initbyvserver.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.obj `if test -f 'lib_internal/matchlist-initbyvserver.c'; then $(CYGPATH_W) 'lib_internal/matchlist-initbyvserver.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchlist-initbyvserver.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.o: lib_internal/matchvserverinfo-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-init.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.o `test -f 'lib_internal/matchvserverinfo-init.c' || echo '$(srcdir)/'`lib_internal/matchvserverinfo-init.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchvserverinfo-init.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.o `test -f 'lib_internal/matchvserverinfo-init.c' || echo '$(srcdir)/'`lib_internal/matchvserverinfo-init.c
+
+lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.obj: lib_internal/matchvserverinfo-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-init.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.obj `if test -f 'lib_internal/matchvserverinfo-init.c'; then $(CYGPATH_W) 'lib_internal/matchvserverinfo-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchvserverinfo-init.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-init.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-init.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-matchvserverinfo-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/matchvserverinfo-init.c' object='lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.obj `if test -f 'lib_internal/matchvserverinfo-init.c'; then $(CYGPATH_W) 'lib_internal/matchvserverinfo-init.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/matchvserverinfo-init.c'; fi`
+
+lib_internal/lib_internal_libinternal_glibc_a-unify-copy.o: lib_internal/unify-copy.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-unify-copy.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-copy.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-copy.o `test -f 'lib_internal/unify-copy.c' || echo '$(srcdir)/'`lib_internal/unify-copy.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-copy.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-copy.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-copy.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-copy.c' object='lib_internal/lib_internal_libinternal_glibc_a-unify-copy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-copy.o `test -f 'lib_internal/unify-copy.c' || echo '$(srcdir)/'`lib_internal/unify-copy.c
+
+lib_internal/lib_internal_libinternal_glibc_a-unify-copy.obj: lib_internal/unify-copy.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-unify-copy.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-copy.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-copy.obj `if test -f 'lib_internal/unify-copy.c'; then $(CYGPATH_W) 'lib_internal/unify-copy.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-copy.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-copy.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-copy.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-unify-copy.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/unify-copy.c' object='lib_internal/lib_internal_libinternal_glibc_a-unify-copy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-unify-copy.obj `if test -f 'lib_internal/unify-copy.c'; then $(CYGPATH_W) 'lib_internal/unify-copy.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/unify-copy.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-clear.o: ensc_vector/vector-clear.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-clear.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-clear.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-clear.o `test -f 'ensc_vector/vector-clear.c' || echo '$(srcdir)/'`ensc_vector/vector-clear.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-clear.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-clear.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-clear.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-clear.c' object='ensc_vector/libensc_vector_diet_a-vector-clear.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-clear.o `test -f 'ensc_vector/vector-clear.c' || echo '$(srcdir)/'`ensc_vector/vector-clear.c
+
+ensc_vector/libensc_vector_diet_a-vector-clear.obj: ensc_vector/vector-clear.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-clear.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-clear.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-clear.obj `if test -f 'ensc_vector/vector-clear.c'; then $(CYGPATH_W) 'ensc_vector/vector-clear.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-clear.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-clear.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-clear.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-clear.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-clear.c' object='ensc_vector/libensc_vector_diet_a-vector-clear.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-clear.obj `if test -f 'ensc_vector/vector-clear.c'; then $(CYGPATH_W) 'ensc_vector/vector-clear.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-clear.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-foreach.o: ensc_vector/vector-foreach.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-foreach.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-foreach.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-foreach.o `test -f 'ensc_vector/vector-foreach.c' || echo '$(srcdir)/'`ensc_vector/vector-foreach.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-foreach.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-foreach.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-foreach.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-foreach.c' object='ensc_vector/libensc_vector_diet_a-vector-foreach.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-foreach.o `test -f 'ensc_vector/vector-foreach.c' || echo '$(srcdir)/'`ensc_vector/vector-foreach.c
+
+ensc_vector/libensc_vector_diet_a-vector-foreach.obj: ensc_vector/vector-foreach.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-foreach.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-foreach.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-foreach.obj `if test -f 'ensc_vector/vector-foreach.c'; then $(CYGPATH_W) 'ensc_vector/vector-foreach.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-foreach.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-foreach.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-foreach.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-foreach.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-foreach.c' object='ensc_vector/libensc_vector_diet_a-vector-foreach.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-foreach.obj `if test -f 'ensc_vector/vector-foreach.c'; then $(CYGPATH_W) 'ensc_vector/vector-foreach.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-foreach.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-free.o: ensc_vector/vector-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-free.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-free.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-free.o `test -f 'ensc_vector/vector-free.c' || echo '$(srcdir)/'`ensc_vector/vector-free.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-free.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-free.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-free.c' object='ensc_vector/libensc_vector_diet_a-vector-free.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-free.o `test -f 'ensc_vector/vector-free.c' || echo '$(srcdir)/'`ensc_vector/vector-free.c
+
+ensc_vector/libensc_vector_diet_a-vector-free.obj: ensc_vector/vector-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-free.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-free.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-free.obj `if test -f 'ensc_vector/vector-free.c'; then $(CYGPATH_W) 'ensc_vector/vector-free.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-free.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-free.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-free.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-free.c' object='ensc_vector/libensc_vector_diet_a-vector-free.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-free.obj `if test -f 'ensc_vector/vector-free.c'; then $(CYGPATH_W) 'ensc_vector/vector-free.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-free.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-init.o: ensc_vector/vector-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-init.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-init.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-init.o `test -f 'ensc_vector/vector-init.c' || echo '$(srcdir)/'`ensc_vector/vector-init.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-init.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-init.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-init.c' object='ensc_vector/libensc_vector_diet_a-vector-init.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-init.o `test -f 'ensc_vector/vector-init.c' || echo '$(srcdir)/'`ensc_vector/vector-init.c
+
+ensc_vector/libensc_vector_diet_a-vector-init.obj: ensc_vector/vector-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-init.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-init.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-init.obj `if test -f 'ensc_vector/vector-init.c'; then $(CYGPATH_W) 'ensc_vector/vector-init.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-init.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-init.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-init.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-init.c' object='ensc_vector/libensc_vector_diet_a-vector-init.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-init.obj `if test -f 'ensc_vector/vector-init.c'; then $(CYGPATH_W) 'ensc_vector/vector-init.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-init.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-insert.o: ensc_vector/vector-insert.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-insert.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-insert.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-insert.o `test -f 'ensc_vector/vector-insert.c' || echo '$(srcdir)/'`ensc_vector/vector-insert.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-insert.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-insert.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-insert.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-insert.c' object='ensc_vector/libensc_vector_diet_a-vector-insert.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-insert.o `test -f 'ensc_vector/vector-insert.c' || echo '$(srcdir)/'`ensc_vector/vector-insert.c
+
+ensc_vector/libensc_vector_diet_a-vector-insert.obj: ensc_vector/vector-insert.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-insert.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-insert.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-insert.obj `if test -f 'ensc_vector/vector-insert.c'; then $(CYGPATH_W) 'ensc_vector/vector-insert.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-insert.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-insert.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-insert.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-insert.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-insert.c' object='ensc_vector/libensc_vector_diet_a-vector-insert.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-insert.obj `if test -f 'ensc_vector/vector-insert.c'; then $(CYGPATH_W) 'ensc_vector/vector-insert.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-insert.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-popback.o: ensc_vector/vector-popback.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-popback.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-popback.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-popback.o `test -f 'ensc_vector/vector-popback.c' || echo '$(srcdir)/'`ensc_vector/vector-popback.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-popback.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-popback.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-popback.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-popback.c' object='ensc_vector/libensc_vector_diet_a-vector-popback.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-popback.o `test -f 'ensc_vector/vector-popback.c' || echo '$(srcdir)/'`ensc_vector/vector-popback.c
+
+ensc_vector/libensc_vector_diet_a-vector-popback.obj: ensc_vector/vector-popback.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-popback.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-popback.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-popback.obj `if test -f 'ensc_vector/vector-popback.c'; then $(CYGPATH_W) 'ensc_vector/vector-popback.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-popback.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-popback.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-popback.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-popback.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-popback.c' object='ensc_vector/libensc_vector_diet_a-vector-popback.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-popback.obj `if test -f 'ensc_vector/vector-popback.c'; then $(CYGPATH_W) 'ensc_vector/vector-popback.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-popback.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-pushback.o: ensc_vector/vector-pushback.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-pushback.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-pushback.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-pushback.o `test -f 'ensc_vector/vector-pushback.c' || echo '$(srcdir)/'`ensc_vector/vector-pushback.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-pushback.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-pushback.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-pushback.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-pushback.c' object='ensc_vector/libensc_vector_diet_a-vector-pushback.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-pushback.o `test -f 'ensc_vector/vector-pushback.c' || echo '$(srcdir)/'`ensc_vector/vector-pushback.c
+
+ensc_vector/libensc_vector_diet_a-vector-pushback.obj: ensc_vector/vector-pushback.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-pushback.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-pushback.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-pushback.obj `if test -f 'ensc_vector/vector-pushback.c'; then $(CYGPATH_W) 'ensc_vector/vector-pushback.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-pushback.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-pushback.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-pushback.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-pushback.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-pushback.c' object='ensc_vector/libensc_vector_diet_a-vector-pushback.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-pushback.obj `if test -f 'ensc_vector/vector-pushback.c'; then $(CYGPATH_W) 'ensc_vector/vector-pushback.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-pushback.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-resize.o: ensc_vector/vector-resize.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-resize.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-resize.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-resize.o `test -f 'ensc_vector/vector-resize.c' || echo '$(srcdir)/'`ensc_vector/vector-resize.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-resize.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-resize.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-resize.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-resize.c' object='ensc_vector/libensc_vector_diet_a-vector-resize.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-resize.o `test -f 'ensc_vector/vector-resize.c' || echo '$(srcdir)/'`ensc_vector/vector-resize.c
+
+ensc_vector/libensc_vector_diet_a-vector-resize.obj: ensc_vector/vector-resize.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-resize.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-resize.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-resize.obj `if test -f 'ensc_vector/vector-resize.c'; then $(CYGPATH_W) 'ensc_vector/vector-resize.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-resize.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-resize.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-resize.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-resize.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-resize.c' object='ensc_vector/libensc_vector_diet_a-vector-resize.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-resize.obj `if test -f 'ensc_vector/vector-resize.c'; then $(CYGPATH_W) 'ensc_vector/vector-resize.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-resize.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-search.o: ensc_vector/vector-search.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-search.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-search.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-search.o `test -f 'ensc_vector/vector-search.c' || echo '$(srcdir)/'`ensc_vector/vector-search.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-search.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-search.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-search.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-search.c' object='ensc_vector/libensc_vector_diet_a-vector-search.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-search.o `test -f 'ensc_vector/vector-search.c' || echo '$(srcdir)/'`ensc_vector/vector-search.c
+
+ensc_vector/libensc_vector_diet_a-vector-search.obj: ensc_vector/vector-search.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-search.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-search.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-search.obj `if test -f 'ensc_vector/vector-search.c'; then $(CYGPATH_W) 'ensc_vector/vector-search.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-search.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-search.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-search.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-search.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-search.c' object='ensc_vector/libensc_vector_diet_a-vector-search.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-search.obj `if test -f 'ensc_vector/vector-search.c'; then $(CYGPATH_W) 'ensc_vector/vector-search.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-search.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-searchselforg.o: ensc_vector/vector-searchselforg.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-searchselforg.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-searchselforg.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-searchselforg.o `test -f 'ensc_vector/vector-searchselforg.c' || echo '$(srcdir)/'`ensc_vector/vector-searchselforg.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-searchselforg.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-searchselforg.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-searchselforg.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-searchselforg.c' object='ensc_vector/libensc_vector_diet_a-vector-searchselforg.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-searchselforg.o `test -f 'ensc_vector/vector-searchselforg.c' || echo '$(srcdir)/'`ensc_vector/vector-searchselforg.c
+
+ensc_vector/libensc_vector_diet_a-vector-searchselforg.obj: ensc_vector/vector-searchselforg.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-searchselforg.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-searchselforg.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-searchselforg.obj `if test -f 'ensc_vector/vector-searchselforg.c'; then $(CYGPATH_W) 'ensc_vector/vector-searchselforg.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-searchselforg.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-searchselforg.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-searchselforg.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-searchselforg.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-searchselforg.c' object='ensc_vector/libensc_vector_diet_a-vector-searchselforg.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-searchselforg.obj `if test -f 'ensc_vector/vector-searchselforg.c'; then $(CYGPATH_W) 'ensc_vector/vector-searchselforg.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-searchselforg.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-sort.o: ensc_vector/vector-sort.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-sort.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-sort.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-sort.o `test -f 'ensc_vector/vector-sort.c' || echo '$(srcdir)/'`ensc_vector/vector-sort.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-sort.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-sort.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-sort.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-sort.c' object='ensc_vector/libensc_vector_diet_a-vector-sort.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-sort.o `test -f 'ensc_vector/vector-sort.c' || echo '$(srcdir)/'`ensc_vector/vector-sort.c
+
+ensc_vector/libensc_vector_diet_a-vector-sort.obj: ensc_vector/vector-sort.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-sort.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-sort.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-sort.obj `if test -f 'ensc_vector/vector-sort.c'; then $(CYGPATH_W) 'ensc_vector/vector-sort.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-sort.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-sort.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-sort.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-sort.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-sort.c' object='ensc_vector/libensc_vector_diet_a-vector-sort.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-sort.obj `if test -f 'ensc_vector/vector-sort.c'; then $(CYGPATH_W) 'ensc_vector/vector-sort.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-sort.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-unique.o: ensc_vector/vector-unique.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-unique.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-unique.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-unique.o `test -f 'ensc_vector/vector-unique.c' || echo '$(srcdir)/'`ensc_vector/vector-unique.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-unique.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-unique.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-unique.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-unique.c' object='ensc_vector/libensc_vector_diet_a-vector-unique.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-unique.o `test -f 'ensc_vector/vector-unique.c' || echo '$(srcdir)/'`ensc_vector/vector-unique.c
+
+ensc_vector/libensc_vector_diet_a-vector-unique.obj: ensc_vector/vector-unique.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-unique.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-unique.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-unique.obj `if test -f 'ensc_vector/vector-unique.c'; then $(CYGPATH_W) 'ensc_vector/vector-unique.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-unique.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-unique.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-unique.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-unique.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-unique.c' object='ensc_vector/libensc_vector_diet_a-vector-unique.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-unique.obj `if test -f 'ensc_vector/vector-unique.c'; then $(CYGPATH_W) 'ensc_vector/vector-unique.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-unique.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-vector-zeroend.o: ensc_vector/vector-zeroend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-zeroend.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-zeroend.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-zeroend.o `test -f 'ensc_vector/vector-zeroend.c' || echo '$(srcdir)/'`ensc_vector/vector-zeroend.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-zeroend.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-zeroend.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-zeroend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-zeroend.c' object='ensc_vector/libensc_vector_diet_a-vector-zeroend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-zeroend.o `test -f 'ensc_vector/vector-zeroend.c' || echo '$(srcdir)/'`ensc_vector/vector-zeroend.c
+
+ensc_vector/libensc_vector_diet_a-vector-zeroend.obj: ensc_vector/vector-zeroend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-vector-zeroend.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-zeroend.Tpo" -c -o ensc_vector/libensc_vector_diet_a-vector-zeroend.obj `if test -f 'ensc_vector/vector-zeroend.c'; then $(CYGPATH_W) 'ensc_vector/vector-zeroend.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-zeroend.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-zeroend.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-zeroend.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-vector-zeroend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-zeroend.c' object='ensc_vector/libensc_vector_diet_a-vector-zeroend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-vector-zeroend.obj `if test -f 'ensc_vector/vector-zeroend.c'; then $(CYGPATH_W) 'ensc_vector/vector-zeroend.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-zeroend.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-list-at.o: ensc_vector/list-at.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-at.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-at.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-at.o `test -f 'ensc_vector/list-at.c' || echo '$(srcdir)/'`ensc_vector/list-at.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-at.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-at.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-at.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-at.c' object='ensc_vector/libensc_vector_diet_a-list-at.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-at.o `test -f 'ensc_vector/list-at.c' || echo '$(srcdir)/'`ensc_vector/list-at.c
+
+ensc_vector/libensc_vector_diet_a-list-at.obj: ensc_vector/list-at.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-at.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-at.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-at.obj `if test -f 'ensc_vector/list-at.c'; then $(CYGPATH_W) 'ensc_vector/list-at.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-at.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-at.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-at.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-at.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-at.c' object='ensc_vector/libensc_vector_diet_a-list-at.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-at.obj `if test -f 'ensc_vector/list-at.c'; then $(CYGPATH_W) 'ensc_vector/list-at.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-at.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-list-add.o: ensc_vector/list-add.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-add.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-add.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-add.o `test -f 'ensc_vector/list-add.c' || echo '$(srcdir)/'`ensc_vector/list-add.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-add.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-add.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-add.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-add.c' object='ensc_vector/libensc_vector_diet_a-list-add.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-add.o `test -f 'ensc_vector/list-add.c' || echo '$(srcdir)/'`ensc_vector/list-add.c
+
+ensc_vector/libensc_vector_diet_a-list-add.obj: ensc_vector/list-add.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-add.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-add.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-add.obj `if test -f 'ensc_vector/list-add.c'; then $(CYGPATH_W) 'ensc_vector/list-add.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-add.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-add.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-add.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-add.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-add.c' object='ensc_vector/libensc_vector_diet_a-list-add.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-add.obj `if test -f 'ensc_vector/list-add.c'; then $(CYGPATH_W) 'ensc_vector/list-add.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-add.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-list-free.o: ensc_vector/list-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-free.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-free.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-free.o `test -f 'ensc_vector/list-free.c' || echo '$(srcdir)/'`ensc_vector/list-free.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-free.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-free.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-free.c' object='ensc_vector/libensc_vector_diet_a-list-free.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-free.o `test -f 'ensc_vector/list-free.c' || echo '$(srcdir)/'`ensc_vector/list-free.c
+
+ensc_vector/libensc_vector_diet_a-list-free.obj: ensc_vector/list-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-free.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-free.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-free.obj `if test -f 'ensc_vector/list-free.c'; then $(CYGPATH_W) 'ensc_vector/list-free.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-free.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-free.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-free.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-free.c' object='ensc_vector/libensc_vector_diet_a-list-free.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-free.obj `if test -f 'ensc_vector/list-free.c'; then $(CYGPATH_W) 'ensc_vector/list-free.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-free.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-list-init.o: ensc_vector/list-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-init.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-init.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-init.o `test -f 'ensc_vector/list-init.c' || echo '$(srcdir)/'`ensc_vector/list-init.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-init.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-init.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-init.c' object='ensc_vector/libensc_vector_diet_a-list-init.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-init.o `test -f 'ensc_vector/list-init.c' || echo '$(srcdir)/'`ensc_vector/list-init.c
+
+ensc_vector/libensc_vector_diet_a-list-init.obj: ensc_vector/list-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-init.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-init.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-init.obj `if test -f 'ensc_vector/list-init.c'; then $(CYGPATH_W) 'ensc_vector/list-init.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-init.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-init.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-init.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-init.c' object='ensc_vector/libensc_vector_diet_a-list-init.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-init.obj `if test -f 'ensc_vector/list-init.c'; then $(CYGPATH_W) 'ensc_vector/list-init.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-init.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-list-insertinternal.o: ensc_vector/list-insertinternal.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-insertinternal.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-insertinternal.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-insertinternal.o `test -f 'ensc_vector/list-insertinternal.c' || echo '$(srcdir)/'`ensc_vector/list-insertinternal.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-insertinternal.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-insertinternal.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-insertinternal.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-insertinternal.c' object='ensc_vector/libensc_vector_diet_a-list-insertinternal.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-insertinternal.o `test -f 'ensc_vector/list-insertinternal.c' || echo '$(srcdir)/'`ensc_vector/list-insertinternal.c
+
+ensc_vector/libensc_vector_diet_a-list-insertinternal.obj: ensc_vector/list-insertinternal.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-insertinternal.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-insertinternal.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-insertinternal.obj `if test -f 'ensc_vector/list-insertinternal.c'; then $(CYGPATH_W) 'ensc_vector/list-insertinternal.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-insertinternal.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-insertinternal.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-insertinternal.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-insertinternal.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-insertinternal.c' object='ensc_vector/libensc_vector_diet_a-list-insertinternal.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-insertinternal.obj `if test -f 'ensc_vector/list-insertinternal.c'; then $(CYGPATH_W) 'ensc_vector/list-insertinternal.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-insertinternal.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-list-search.o: ensc_vector/list-search.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-search.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-search.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-search.o `test -f 'ensc_vector/list-search.c' || echo '$(srcdir)/'`ensc_vector/list-search.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-search.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-search.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-search.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-search.c' object='ensc_vector/libensc_vector_diet_a-list-search.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-search.o `test -f 'ensc_vector/list-search.c' || echo '$(srcdir)/'`ensc_vector/list-search.c
+
+ensc_vector/libensc_vector_diet_a-list-search.obj: ensc_vector/list-search.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-search.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-search.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-search.obj `if test -f 'ensc_vector/list-search.c'; then $(CYGPATH_W) 'ensc_vector/list-search.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-search.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-search.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-search.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-search.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-search.c' object='ensc_vector/libensc_vector_diet_a-list-search.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-search.obj `if test -f 'ensc_vector/list-search.c'; then $(CYGPATH_W) 'ensc_vector/list-search.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-search.c'; fi`
+
+ensc_vector/libensc_vector_diet_a-list-searchselforg.o: ensc_vector/list-searchselforg.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-searchselforg.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-searchselforg.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-searchselforg.o `test -f 'ensc_vector/list-searchselforg.c' || echo '$(srcdir)/'`ensc_vector/list-searchselforg.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-searchselforg.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-searchselforg.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-searchselforg.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-searchselforg.c' object='ensc_vector/libensc_vector_diet_a-list-searchselforg.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-searchselforg.o `test -f 'ensc_vector/list-searchselforg.c' || echo '$(srcdir)/'`ensc_vector/list-searchselforg.c
+
+ensc_vector/libensc_vector_diet_a-list-searchselforg.obj: ensc_vector/list-searchselforg.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_diet_a-list-searchselforg.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-searchselforg.Tpo" -c -o ensc_vector/libensc_vector_diet_a-list-searchselforg.obj `if test -f 'ensc_vector/list-searchselforg.c'; then $(CYGPATH_W) 'ensc_vector/list-searchselforg.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-searchselforg.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-searchselforg.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-searchselforg.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_diet_a-list-searchselforg.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-searchselforg.c' object='ensc_vector/libensc_vector_diet_a-list-searchselforg.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_diet_a-list-searchselforg.obj `if test -f 'ensc_vector/list-searchselforg.c'; then $(CYGPATH_W) 'ensc_vector/list-searchselforg.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-searchselforg.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-clear.o: ensc_vector/vector-clear.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-clear.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-clear.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-clear.o `test -f 'ensc_vector/vector-clear.c' || echo '$(srcdir)/'`ensc_vector/vector-clear.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-clear.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-clear.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-clear.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-clear.c' object='ensc_vector/libensc_vector_glibc_a-vector-clear.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-clear.o `test -f 'ensc_vector/vector-clear.c' || echo '$(srcdir)/'`ensc_vector/vector-clear.c
+
+ensc_vector/libensc_vector_glibc_a-vector-clear.obj: ensc_vector/vector-clear.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-clear.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-clear.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-clear.obj `if test -f 'ensc_vector/vector-clear.c'; then $(CYGPATH_W) 'ensc_vector/vector-clear.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-clear.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-clear.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-clear.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-clear.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-clear.c' object='ensc_vector/libensc_vector_glibc_a-vector-clear.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-clear.obj `if test -f 'ensc_vector/vector-clear.c'; then $(CYGPATH_W) 'ensc_vector/vector-clear.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-clear.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-foreach.o: ensc_vector/vector-foreach.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-foreach.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-foreach.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-foreach.o `test -f 'ensc_vector/vector-foreach.c' || echo '$(srcdir)/'`ensc_vector/vector-foreach.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-foreach.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-foreach.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-foreach.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-foreach.c' object='ensc_vector/libensc_vector_glibc_a-vector-foreach.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-foreach.o `test -f 'ensc_vector/vector-foreach.c' || echo '$(srcdir)/'`ensc_vector/vector-foreach.c
+
+ensc_vector/libensc_vector_glibc_a-vector-foreach.obj: ensc_vector/vector-foreach.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-foreach.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-foreach.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-foreach.obj `if test -f 'ensc_vector/vector-foreach.c'; then $(CYGPATH_W) 'ensc_vector/vector-foreach.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-foreach.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-foreach.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-foreach.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-foreach.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-foreach.c' object='ensc_vector/libensc_vector_glibc_a-vector-foreach.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-foreach.obj `if test -f 'ensc_vector/vector-foreach.c'; then $(CYGPATH_W) 'ensc_vector/vector-foreach.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-foreach.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-free.o: ensc_vector/vector-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-free.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-free.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-free.o `test -f 'ensc_vector/vector-free.c' || echo '$(srcdir)/'`ensc_vector/vector-free.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-free.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-free.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-free.c' object='ensc_vector/libensc_vector_glibc_a-vector-free.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-free.o `test -f 'ensc_vector/vector-free.c' || echo '$(srcdir)/'`ensc_vector/vector-free.c
+
+ensc_vector/libensc_vector_glibc_a-vector-free.obj: ensc_vector/vector-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-free.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-free.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-free.obj `if test -f 'ensc_vector/vector-free.c'; then $(CYGPATH_W) 'ensc_vector/vector-free.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-free.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-free.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-free.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-free.c' object='ensc_vector/libensc_vector_glibc_a-vector-free.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-free.obj `if test -f 'ensc_vector/vector-free.c'; then $(CYGPATH_W) 'ensc_vector/vector-free.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-free.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-init.o: ensc_vector/vector-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-init.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-init.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-init.o `test -f 'ensc_vector/vector-init.c' || echo '$(srcdir)/'`ensc_vector/vector-init.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-init.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-init.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-init.c' object='ensc_vector/libensc_vector_glibc_a-vector-init.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-init.o `test -f 'ensc_vector/vector-init.c' || echo '$(srcdir)/'`ensc_vector/vector-init.c
+
+ensc_vector/libensc_vector_glibc_a-vector-init.obj: ensc_vector/vector-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-init.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-init.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-init.obj `if test -f 'ensc_vector/vector-init.c'; then $(CYGPATH_W) 'ensc_vector/vector-init.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-init.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-init.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-init.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-init.c' object='ensc_vector/libensc_vector_glibc_a-vector-init.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-init.obj `if test -f 'ensc_vector/vector-init.c'; then $(CYGPATH_W) 'ensc_vector/vector-init.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-init.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-insert.o: ensc_vector/vector-insert.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-insert.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-insert.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-insert.o `test -f 'ensc_vector/vector-insert.c' || echo '$(srcdir)/'`ensc_vector/vector-insert.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-insert.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-insert.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-insert.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-insert.c' object='ensc_vector/libensc_vector_glibc_a-vector-insert.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-insert.o `test -f 'ensc_vector/vector-insert.c' || echo '$(srcdir)/'`ensc_vector/vector-insert.c
+
+ensc_vector/libensc_vector_glibc_a-vector-insert.obj: ensc_vector/vector-insert.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-insert.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-insert.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-insert.obj `if test -f 'ensc_vector/vector-insert.c'; then $(CYGPATH_W) 'ensc_vector/vector-insert.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-insert.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-insert.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-insert.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-insert.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-insert.c' object='ensc_vector/libensc_vector_glibc_a-vector-insert.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-insert.obj `if test -f 'ensc_vector/vector-insert.c'; then $(CYGPATH_W) 'ensc_vector/vector-insert.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-insert.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-popback.o: ensc_vector/vector-popback.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-popback.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-popback.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-popback.o `test -f 'ensc_vector/vector-popback.c' || echo '$(srcdir)/'`ensc_vector/vector-popback.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-popback.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-popback.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-popback.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-popback.c' object='ensc_vector/libensc_vector_glibc_a-vector-popback.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-popback.o `test -f 'ensc_vector/vector-popback.c' || echo '$(srcdir)/'`ensc_vector/vector-popback.c
+
+ensc_vector/libensc_vector_glibc_a-vector-popback.obj: ensc_vector/vector-popback.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-popback.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-popback.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-popback.obj `if test -f 'ensc_vector/vector-popback.c'; then $(CYGPATH_W) 'ensc_vector/vector-popback.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-popback.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-popback.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-popback.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-popback.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-popback.c' object='ensc_vector/libensc_vector_glibc_a-vector-popback.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-popback.obj `if test -f 'ensc_vector/vector-popback.c'; then $(CYGPATH_W) 'ensc_vector/vector-popback.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-popback.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-pushback.o: ensc_vector/vector-pushback.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-pushback.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-pushback.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-pushback.o `test -f 'ensc_vector/vector-pushback.c' || echo '$(srcdir)/'`ensc_vector/vector-pushback.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-pushback.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-pushback.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-pushback.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-pushback.c' object='ensc_vector/libensc_vector_glibc_a-vector-pushback.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-pushback.o `test -f 'ensc_vector/vector-pushback.c' || echo '$(srcdir)/'`ensc_vector/vector-pushback.c
+
+ensc_vector/libensc_vector_glibc_a-vector-pushback.obj: ensc_vector/vector-pushback.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-pushback.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-pushback.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-pushback.obj `if test -f 'ensc_vector/vector-pushback.c'; then $(CYGPATH_W) 'ensc_vector/vector-pushback.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-pushback.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-pushback.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-pushback.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-pushback.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-pushback.c' object='ensc_vector/libensc_vector_glibc_a-vector-pushback.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-pushback.obj `if test -f 'ensc_vector/vector-pushback.c'; then $(CYGPATH_W) 'ensc_vector/vector-pushback.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-pushback.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-resize.o: ensc_vector/vector-resize.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-resize.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-resize.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-resize.o `test -f 'ensc_vector/vector-resize.c' || echo '$(srcdir)/'`ensc_vector/vector-resize.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-resize.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-resize.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-resize.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-resize.c' object='ensc_vector/libensc_vector_glibc_a-vector-resize.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-resize.o `test -f 'ensc_vector/vector-resize.c' || echo '$(srcdir)/'`ensc_vector/vector-resize.c
+
+ensc_vector/libensc_vector_glibc_a-vector-resize.obj: ensc_vector/vector-resize.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-resize.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-resize.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-resize.obj `if test -f 'ensc_vector/vector-resize.c'; then $(CYGPATH_W) 'ensc_vector/vector-resize.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-resize.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-resize.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-resize.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-resize.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-resize.c' object='ensc_vector/libensc_vector_glibc_a-vector-resize.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-resize.obj `if test -f 'ensc_vector/vector-resize.c'; then $(CYGPATH_W) 'ensc_vector/vector-resize.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-resize.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-search.o: ensc_vector/vector-search.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-search.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-search.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-search.o `test -f 'ensc_vector/vector-search.c' || echo '$(srcdir)/'`ensc_vector/vector-search.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-search.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-search.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-search.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-search.c' object='ensc_vector/libensc_vector_glibc_a-vector-search.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-search.o `test -f 'ensc_vector/vector-search.c' || echo '$(srcdir)/'`ensc_vector/vector-search.c
+
+ensc_vector/libensc_vector_glibc_a-vector-search.obj: ensc_vector/vector-search.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-search.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-search.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-search.obj `if test -f 'ensc_vector/vector-search.c'; then $(CYGPATH_W) 'ensc_vector/vector-search.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-search.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-search.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-search.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-search.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-search.c' object='ensc_vector/libensc_vector_glibc_a-vector-search.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-search.obj `if test -f 'ensc_vector/vector-search.c'; then $(CYGPATH_W) 'ensc_vector/vector-search.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-search.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-searchselforg.o: ensc_vector/vector-searchselforg.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-searchselforg.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-searchselforg.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-searchselforg.o `test -f 'ensc_vector/vector-searchselforg.c' || echo '$(srcdir)/'`ensc_vector/vector-searchselforg.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-searchselforg.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-searchselforg.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-searchselforg.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-searchselforg.c' object='ensc_vector/libensc_vector_glibc_a-vector-searchselforg.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-searchselforg.o `test -f 'ensc_vector/vector-searchselforg.c' || echo '$(srcdir)/'`ensc_vector/vector-searchselforg.c
+
+ensc_vector/libensc_vector_glibc_a-vector-searchselforg.obj: ensc_vector/vector-searchselforg.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-searchselforg.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-searchselforg.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-searchselforg.obj `if test -f 'ensc_vector/vector-searchselforg.c'; then $(CYGPATH_W) 'ensc_vector/vector-searchselforg.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-searchselforg.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-searchselforg.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-searchselforg.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-searchselforg.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-searchselforg.c' object='ensc_vector/libensc_vector_glibc_a-vector-searchselforg.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-searchselforg.obj `if test -f 'ensc_vector/vector-searchselforg.c'; then $(CYGPATH_W) 'ensc_vector/vector-searchselforg.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-searchselforg.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-sort.o: ensc_vector/vector-sort.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-sort.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-sort.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-sort.o `test -f 'ensc_vector/vector-sort.c' || echo '$(srcdir)/'`ensc_vector/vector-sort.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-sort.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-sort.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-sort.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-sort.c' object='ensc_vector/libensc_vector_glibc_a-vector-sort.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-sort.o `test -f 'ensc_vector/vector-sort.c' || echo '$(srcdir)/'`ensc_vector/vector-sort.c
+
+ensc_vector/libensc_vector_glibc_a-vector-sort.obj: ensc_vector/vector-sort.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-sort.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-sort.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-sort.obj `if test -f 'ensc_vector/vector-sort.c'; then $(CYGPATH_W) 'ensc_vector/vector-sort.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-sort.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-sort.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-sort.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-sort.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-sort.c' object='ensc_vector/libensc_vector_glibc_a-vector-sort.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-sort.obj `if test -f 'ensc_vector/vector-sort.c'; then $(CYGPATH_W) 'ensc_vector/vector-sort.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-sort.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-unique.o: ensc_vector/vector-unique.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-unique.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-unique.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-unique.o `test -f 'ensc_vector/vector-unique.c' || echo '$(srcdir)/'`ensc_vector/vector-unique.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-unique.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-unique.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-unique.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-unique.c' object='ensc_vector/libensc_vector_glibc_a-vector-unique.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-unique.o `test -f 'ensc_vector/vector-unique.c' || echo '$(srcdir)/'`ensc_vector/vector-unique.c
+
+ensc_vector/libensc_vector_glibc_a-vector-unique.obj: ensc_vector/vector-unique.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-unique.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-unique.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-unique.obj `if test -f 'ensc_vector/vector-unique.c'; then $(CYGPATH_W) 'ensc_vector/vector-unique.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-unique.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-unique.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-unique.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-unique.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-unique.c' object='ensc_vector/libensc_vector_glibc_a-vector-unique.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-unique.obj `if test -f 'ensc_vector/vector-unique.c'; then $(CYGPATH_W) 'ensc_vector/vector-unique.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-unique.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-vector-zeroend.o: ensc_vector/vector-zeroend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-zeroend.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-zeroend.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-zeroend.o `test -f 'ensc_vector/vector-zeroend.c' || echo '$(srcdir)/'`ensc_vector/vector-zeroend.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-zeroend.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-zeroend.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-zeroend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-zeroend.c' object='ensc_vector/libensc_vector_glibc_a-vector-zeroend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-zeroend.o `test -f 'ensc_vector/vector-zeroend.c' || echo '$(srcdir)/'`ensc_vector/vector-zeroend.c
+
+ensc_vector/libensc_vector_glibc_a-vector-zeroend.obj: ensc_vector/vector-zeroend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-vector-zeroend.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-zeroend.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-vector-zeroend.obj `if test -f 'ensc_vector/vector-zeroend.c'; then $(CYGPATH_W) 'ensc_vector/vector-zeroend.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-zeroend.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-zeroend.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-zeroend.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-vector-zeroend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/vector-zeroend.c' object='ensc_vector/libensc_vector_glibc_a-vector-zeroend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-vector-zeroend.obj `if test -f 'ensc_vector/vector-zeroend.c'; then $(CYGPATH_W) 'ensc_vector/vector-zeroend.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/vector-zeroend.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-list-at.o: ensc_vector/list-at.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-at.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-at.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-at.o `test -f 'ensc_vector/list-at.c' || echo '$(srcdir)/'`ensc_vector/list-at.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-at.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-at.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-at.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-at.c' object='ensc_vector/libensc_vector_glibc_a-list-at.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-at.o `test -f 'ensc_vector/list-at.c' || echo '$(srcdir)/'`ensc_vector/list-at.c
+
+ensc_vector/libensc_vector_glibc_a-list-at.obj: ensc_vector/list-at.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-at.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-at.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-at.obj `if test -f 'ensc_vector/list-at.c'; then $(CYGPATH_W) 'ensc_vector/list-at.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-at.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-at.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-at.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-at.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-at.c' object='ensc_vector/libensc_vector_glibc_a-list-at.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-at.obj `if test -f 'ensc_vector/list-at.c'; then $(CYGPATH_W) 'ensc_vector/list-at.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-at.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-list-add.o: ensc_vector/list-add.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-add.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-add.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-add.o `test -f 'ensc_vector/list-add.c' || echo '$(srcdir)/'`ensc_vector/list-add.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-add.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-add.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-add.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-add.c' object='ensc_vector/libensc_vector_glibc_a-list-add.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-add.o `test -f 'ensc_vector/list-add.c' || echo '$(srcdir)/'`ensc_vector/list-add.c
+
+ensc_vector/libensc_vector_glibc_a-list-add.obj: ensc_vector/list-add.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-add.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-add.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-add.obj `if test -f 'ensc_vector/list-add.c'; then $(CYGPATH_W) 'ensc_vector/list-add.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-add.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-add.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-add.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-add.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-add.c' object='ensc_vector/libensc_vector_glibc_a-list-add.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-add.obj `if test -f 'ensc_vector/list-add.c'; then $(CYGPATH_W) 'ensc_vector/list-add.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-add.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-list-free.o: ensc_vector/list-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-free.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-free.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-free.o `test -f 'ensc_vector/list-free.c' || echo '$(srcdir)/'`ensc_vector/list-free.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-free.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-free.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-free.c' object='ensc_vector/libensc_vector_glibc_a-list-free.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-free.o `test -f 'ensc_vector/list-free.c' || echo '$(srcdir)/'`ensc_vector/list-free.c
+
+ensc_vector/libensc_vector_glibc_a-list-free.obj: ensc_vector/list-free.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-free.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-free.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-free.obj `if test -f 'ensc_vector/list-free.c'; then $(CYGPATH_W) 'ensc_vector/list-free.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-free.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-free.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-free.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-free.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-free.c' object='ensc_vector/libensc_vector_glibc_a-list-free.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-free.obj `if test -f 'ensc_vector/list-free.c'; then $(CYGPATH_W) 'ensc_vector/list-free.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-free.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-list-init.o: ensc_vector/list-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-init.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-init.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-init.o `test -f 'ensc_vector/list-init.c' || echo '$(srcdir)/'`ensc_vector/list-init.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-init.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-init.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-init.c' object='ensc_vector/libensc_vector_glibc_a-list-init.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-init.o `test -f 'ensc_vector/list-init.c' || echo '$(srcdir)/'`ensc_vector/list-init.c
+
+ensc_vector/libensc_vector_glibc_a-list-init.obj: ensc_vector/list-init.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-init.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-init.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-init.obj `if test -f 'ensc_vector/list-init.c'; then $(CYGPATH_W) 'ensc_vector/list-init.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-init.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-init.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-init.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-init.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-init.c' object='ensc_vector/libensc_vector_glibc_a-list-init.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-init.obj `if test -f 'ensc_vector/list-init.c'; then $(CYGPATH_W) 'ensc_vector/list-init.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-init.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-list-insertinternal.o: ensc_vector/list-insertinternal.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-insertinternal.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-insertinternal.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-insertinternal.o `test -f 'ensc_vector/list-insertinternal.c' || echo '$(srcdir)/'`ensc_vector/list-insertinternal.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-insertinternal.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-insertinternal.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-insertinternal.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-insertinternal.c' object='ensc_vector/libensc_vector_glibc_a-list-insertinternal.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-insertinternal.o `test -f 'ensc_vector/list-insertinternal.c' || echo '$(srcdir)/'`ensc_vector/list-insertinternal.c
+
+ensc_vector/libensc_vector_glibc_a-list-insertinternal.obj: ensc_vector/list-insertinternal.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-insertinternal.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-insertinternal.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-insertinternal.obj `if test -f 'ensc_vector/list-insertinternal.c'; then $(CYGPATH_W) 'ensc_vector/list-insertinternal.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-insertinternal.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-insertinternal.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-insertinternal.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-insertinternal.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-insertinternal.c' object='ensc_vector/libensc_vector_glibc_a-list-insertinternal.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-insertinternal.obj `if test -f 'ensc_vector/list-insertinternal.c'; then $(CYGPATH_W) 'ensc_vector/list-insertinternal.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-insertinternal.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-list-search.o: ensc_vector/list-search.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-search.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-search.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-search.o `test -f 'ensc_vector/list-search.c' || echo '$(srcdir)/'`ensc_vector/list-search.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-search.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-search.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-search.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-search.c' object='ensc_vector/libensc_vector_glibc_a-list-search.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-search.o `test -f 'ensc_vector/list-search.c' || echo '$(srcdir)/'`ensc_vector/list-search.c
+
+ensc_vector/libensc_vector_glibc_a-list-search.obj: ensc_vector/list-search.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-search.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-search.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-search.obj `if test -f 'ensc_vector/list-search.c'; then $(CYGPATH_W) 'ensc_vector/list-search.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-search.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-search.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-search.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-search.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-search.c' object='ensc_vector/libensc_vector_glibc_a-list-search.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-search.obj `if test -f 'ensc_vector/list-search.c'; then $(CYGPATH_W) 'ensc_vector/list-search.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-search.c'; fi`
+
+ensc_vector/libensc_vector_glibc_a-list-searchselforg.o: ensc_vector/list-searchselforg.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-searchselforg.o -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-searchselforg.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-searchselforg.o `test -f 'ensc_vector/list-searchselforg.c' || echo '$(srcdir)/'`ensc_vector/list-searchselforg.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-searchselforg.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-searchselforg.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-searchselforg.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-searchselforg.c' object='ensc_vector/libensc_vector_glibc_a-list-searchselforg.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-searchselforg.o `test -f 'ensc_vector/list-searchselforg.c' || echo '$(srcdir)/'`ensc_vector/list-searchselforg.c
+
+ensc_vector/libensc_vector_glibc_a-list-searchselforg.obj: ensc_vector/list-searchselforg.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_vector/libensc_vector_glibc_a-list-searchselforg.obj -MD -MP -MF "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-searchselforg.Tpo" -c -o ensc_vector/libensc_vector_glibc_a-list-searchselforg.obj `if test -f 'ensc_vector/list-searchselforg.c'; then $(CYGPATH_W) 'ensc_vector/list-searchselforg.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-searchselforg.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-searchselforg.Tpo" "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-searchselforg.Po"; else rm -f "ensc_vector/$(DEPDIR)/libensc_vector_glibc_a-list-searchselforg.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_vector/list-searchselforg.c' object='ensc_vector/libensc_vector_glibc_a-list-searchselforg.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libensc_vector_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_vector/libensc_vector_glibc_a-list-searchselforg.obj `if test -f 'ensc_vector/list-searchselforg.c'; then $(CYGPATH_W) 'ensc_vector/list-searchselforg.c'; else $(CYGPATH_W) '$(srcdir)/ensc_vector/list-searchselforg.c'; fi`
+
+lib/lib_libvserver_la-syscall.lo: lib/syscall.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall.Tpo" -c -o lib/lib_libvserver_la-syscall.lo `test -f 'lib/syscall.c' || echo '$(srcdir)/'`lib/syscall.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall.c' object='lib/lib_libvserver_la-syscall.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall.lo `test -f 'lib/syscall.c' || echo '$(srcdir)/'`lib/syscall.c
+
+lib/lib_libvserver_la-checkversion.lo: lib/checkversion.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-checkversion.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-checkversion.Tpo" -c -o lib/lib_libvserver_la-checkversion.lo `test -f 'lib/checkversion.c' || echo '$(srcdir)/'`lib/checkversion.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-checkversion.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-checkversion.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-checkversion.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/checkversion.c' object='lib/lib_libvserver_la-checkversion.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-checkversion.lo `test -f 'lib/checkversion.c' || echo '$(srcdir)/'`lib/checkversion.c
+
+lib/lib_libvserver_la-isdirectory.lo: lib/isdirectory.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-isdirectory.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-isdirectory.Tpo" -c -o lib/lib_libvserver_la-isdirectory.lo `test -f 'lib/isdirectory.c' || echo '$(srcdir)/'`lib/isdirectory.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-isdirectory.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-isdirectory.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-isdirectory.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/isdirectory.c' object='lib/lib_libvserver_la-isdirectory.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-isdirectory.lo `test -f 'lib/isdirectory.c' || echo '$(srcdir)/'`lib/isdirectory.c
+
+lib/lib_libvserver_la-isfile.lo: lib/isfile.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-isfile.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-isfile.Tpo" -c -o lib/lib_libvserver_la-isfile.lo `test -f 'lib/isfile.c' || echo '$(srcdir)/'`lib/isfile.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-isfile.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-isfile.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-isfile.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/isfile.c' object='lib/lib_libvserver_la-isfile.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-isfile.lo `test -f 'lib/isfile.c' || echo '$(srcdir)/'`lib/isfile.c
+
+lib/lib_libvserver_la-islink.lo: lib/islink.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-islink.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-islink.Tpo" -c -o lib/lib_libvserver_la-islink.lo `test -f 'lib/islink.c' || echo '$(srcdir)/'`lib/islink.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-islink.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-islink.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-islink.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/islink.c' object='lib/lib_libvserver_la-islink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-islink.lo `test -f 'lib/islink.c' || echo '$(srcdir)/'`lib/islink.c
+
+lib/lib_libvserver_la-getnbipv4root.lo: lib/getnbipv4root.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getnbipv4root.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getnbipv4root.Tpo" -c -o lib/lib_libvserver_la-getnbipv4root.lo `test -f 'lib/getnbipv4root.c' || echo '$(srcdir)/'`lib/getnbipv4root.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getnbipv4root.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getnbipv4root.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getnbipv4root.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getnbipv4root.c' object='lib/lib_libvserver_la-getnbipv4root.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getnbipv4root.lo `test -f 'lib/getnbipv4root.c' || echo '$(srcdir)/'`lib/getnbipv4root.c
+
+lib/lib_libvserver_la-getversion.lo: lib/getversion.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getversion.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getversion.Tpo" -c -o lib/lib_libvserver_la-getversion.lo `test -f 'lib/getversion.c' || echo '$(srcdir)/'`lib/getversion.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getversion.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getversion.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getversion.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getversion.c' object='lib/lib_libvserver_la-getversion.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getversion.lo `test -f 'lib/getversion.c' || echo '$(srcdir)/'`lib/getversion.c
+
+lib/lib_libvserver_la-capabilities.lo: lib/capabilities.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-capabilities.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-capabilities.Tpo" -c -o lib/lib_libvserver_la-capabilities.lo `test -f 'lib/capabilities.c' || echo '$(srcdir)/'`lib/capabilities.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-capabilities.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-capabilities.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-capabilities.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/capabilities.c' object='lib/lib_libvserver_la-capabilities.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-capabilities.lo `test -f 'lib/capabilities.c' || echo '$(srcdir)/'`lib/capabilities.c
+
+lib/lib_libvserver_la-getfilecontext.lo: lib/getfilecontext.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getfilecontext.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getfilecontext.Tpo" -c -o lib/lib_libvserver_la-getfilecontext.lo `test -f 'lib/getfilecontext.c' || echo '$(srcdir)/'`lib/getfilecontext.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getfilecontext.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getfilecontext.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getfilecontext.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getfilecontext.c' object='lib/lib_libvserver_la-getfilecontext.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getfilecontext.lo `test -f 'lib/getfilecontext.c' || echo '$(srcdir)/'`lib/getfilecontext.c
+
+lib/lib_libvserver_la-getinsecurebcaps.lo: lib/getinsecurebcaps.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getinsecurebcaps.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getinsecurebcaps.Tpo" -c -o lib/lib_libvserver_la-getinsecurebcaps.lo `test -f 'lib/getinsecurebcaps.c' || echo '$(srcdir)/'`lib/getinsecurebcaps.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getinsecurebcaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getinsecurebcaps.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getinsecurebcaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getinsecurebcaps.c' object='lib/lib_libvserver_la-getinsecurebcaps.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getinsecurebcaps.lo `test -f 'lib/getinsecurebcaps.c' || echo '$(srcdir)/'`lib/getinsecurebcaps.c
+
+lib/lib_libvserver_la-getxidtype.lo: lib/getxidtype.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getxidtype.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getxidtype.Tpo" -c -o lib/lib_libvserver_la-getxidtype.lo `test -f 'lib/getxidtype.c' || echo '$(srcdir)/'`lib/getxidtype.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getxidtype.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getxidtype.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getxidtype.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getxidtype.c' object='lib/lib_libvserver_la-getxidtype.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getxidtype.lo `test -f 'lib/getxidtype.c' || echo '$(srcdir)/'`lib/getxidtype.c
+
+lib/lib_libvserver_la-isdynamicxid.lo: lib/isdynamicxid.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-isdynamicxid.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-isdynamicxid.Tpo" -c -o lib/lib_libvserver_la-isdynamicxid.lo `test -f 'lib/isdynamicxid.c' || echo '$(srcdir)/'`lib/isdynamicxid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-isdynamicxid.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-isdynamicxid.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-isdynamicxid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/isdynamicxid.c' object='lib/lib_libvserver_la-isdynamicxid.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-isdynamicxid.lo `test -f 'lib/isdynamicxid.c' || echo '$(srcdir)/'`lib/isdynamicxid.c
+
+lib/lib_libvserver_la-issupported.lo: lib/issupported.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-issupported.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-issupported.Tpo" -c -o lib/lib_libvserver_la-issupported.lo `test -f 'lib/issupported.c' || echo '$(srcdir)/'`lib/issupported.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-issupported.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-issupported.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-issupported.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/issupported.c' object='lib/lib_libvserver_la-issupported.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-issupported.lo `test -f 'lib/issupported.c' || echo '$(srcdir)/'`lib/issupported.c
+
+lib/lib_libvserver_la-issupportedstring.lo: lib/issupportedstring.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-issupportedstring.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-issupportedstring.Tpo" -c -o lib/lib_libvserver_la-issupportedstring.lo `test -f 'lib/issupportedstring.c' || echo '$(srcdir)/'`lib/issupportedstring.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-issupportedstring.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-issupportedstring.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-issupportedstring.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/issupportedstring.c' object='lib/lib_libvserver_la-issupportedstring.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-issupportedstring.lo `test -f 'lib/issupportedstring.c' || echo '$(srcdir)/'`lib/issupportedstring.c
+
+lib/lib_libvserver_la-listparser_uint32.lo: lib/listparser_uint32.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-listparser_uint32.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-listparser_uint32.Tpo" -c -o lib/lib_libvserver_la-listparser_uint32.lo `test -f 'lib/listparser_uint32.c' || echo '$(srcdir)/'`lib/listparser_uint32.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-listparser_uint32.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-listparser_uint32.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-listparser_uint32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/listparser_uint32.c' object='lib/lib_libvserver_la-listparser_uint32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-listparser_uint32.lo `test -f 'lib/listparser_uint32.c' || echo '$(srcdir)/'`lib/listparser_uint32.c
+
+lib/lib_libvserver_la-listparser_uint64.lo: lib/listparser_uint64.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-listparser_uint64.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-listparser_uint64.Tpo" -c -o lib/lib_libvserver_la-listparser_uint64.lo `test -f 'lib/listparser_uint64.c' || echo '$(srcdir)/'`lib/listparser_uint64.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-listparser_uint64.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-listparser_uint64.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-listparser_uint64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/listparser_uint64.c' object='lib/lib_libvserver_la-listparser_uint64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-listparser_uint64.lo `test -f 'lib/listparser_uint64.c' || echo '$(srcdir)/'`lib/listparser_uint64.c
+
+lib/lib_libvserver_la-personalityflag.lo: lib/personalityflag.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-personalityflag.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-personalityflag.Tpo" -c -o lib/lib_libvserver_la-personalityflag.lo `test -f 'lib/personalityflag.c' || echo '$(srcdir)/'`lib/personalityflag.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-personalityflag.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-personalityflag.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-personalityflag.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/personalityflag.c' object='lib/lib_libvserver_la-personalityflag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-personalityflag.lo `test -f 'lib/personalityflag.c' || echo '$(srcdir)/'`lib/personalityflag.c
+
+lib/lib_libvserver_la-personalityflag_list.lo: lib/personalityflag_list.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-personalityflag_list.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-personalityflag_list.Tpo" -c -o lib/lib_libvserver_la-personalityflag_list.lo `test -f 'lib/personalityflag_list.c' || echo '$(srcdir)/'`lib/personalityflag_list.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-personalityflag_list.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-personalityflag_list.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-personalityflag_list.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/personalityflag_list.c' object='lib/lib_libvserver_la-personalityflag_list.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-personalityflag_list.lo `test -f 'lib/personalityflag_list.c' || echo '$(srcdir)/'`lib/personalityflag_list.c
+
+lib/lib_libvserver_la-personalitytype.lo: lib/personalitytype.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-personalitytype.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-personalitytype.Tpo" -c -o lib/lib_libvserver_la-personalitytype.lo `test -f 'lib/personalitytype.c' || echo '$(srcdir)/'`lib/personalitytype.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-personalitytype.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-personalitytype.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-personalitytype.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/personalitytype.c' object='lib/lib_libvserver_la-personalitytype.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-personalitytype.lo `test -f 'lib/personalitytype.c' || echo '$(srcdir)/'`lib/personalitytype.c
+
+lib/lib_libvserver_la-syscall-syscall.lo: lib/syscall-syscall.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall-syscall.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall-syscall.Tpo" -c -o lib/lib_libvserver_la-syscall-syscall.lo `test -f 'lib/syscall-syscall.c' || echo '$(srcdir)/'`lib/syscall-syscall.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall-syscall.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall-syscall.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall-syscall.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall-syscall.c' object='lib/lib_libvserver_la-syscall-syscall.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall-syscall.lo `test -f 'lib/syscall-syscall.c' || echo '$(srcdir)/'`lib/syscall-syscall.c
+
+lib/lib_libvserver_la-val2text-t2v-uint32.lo: lib/val2text-t2v-uint32.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-val2text-t2v-uint32.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint32.Tpo" -c -o lib/lib_libvserver_la-val2text-t2v-uint32.lo `test -f 'lib/val2text-t2v-uint32.c' || echo '$(srcdir)/'`lib/val2text-t2v-uint32.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint32.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint32.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-t2v-uint32.c' object='lib/lib_libvserver_la-val2text-t2v-uint32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-val2text-t2v-uint32.lo `test -f 'lib/val2text-t2v-uint32.c' || echo '$(srcdir)/'`lib/val2text-t2v-uint32.c
+
+lib/lib_libvserver_la-val2text-t2v-uint64.lo: lib/val2text-t2v-uint64.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-val2text-t2v-uint64.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint64.Tpo" -c -o lib/lib_libvserver_la-val2text-t2v-uint64.lo `test -f 'lib/val2text-t2v-uint64.c' || echo '$(srcdir)/'`lib/val2text-t2v-uint64.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint64.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint64.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-t2v-uint64.c' object='lib/lib_libvserver_la-val2text-t2v-uint64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-val2text-t2v-uint64.lo `test -f 'lib/val2text-t2v-uint64.c' || echo '$(srcdir)/'`lib/val2text-t2v-uint64.c
+
+lib/lib_libvserver_la-val2text-v2t-uint32.lo: lib/val2text-v2t-uint32.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-val2text-v2t-uint32.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-val2text-v2t-uint32.Tpo" -c -o lib/lib_libvserver_la-val2text-v2t-uint32.lo `test -f 'lib/val2text-v2t-uint32.c' || echo '$(srcdir)/'`lib/val2text-v2t-uint32.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-val2text-v2t-uint32.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-val2text-v2t-uint32.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-val2text-v2t-uint32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-v2t-uint32.c' object='lib/lib_libvserver_la-val2text-v2t-uint32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-val2text-v2t-uint32.lo `test -f 'lib/val2text-v2t-uint32.c' || echo '$(srcdir)/'`lib/val2text-v2t-uint32.c
+
+lib/lib_libvserver_la-val2text-v2t-uint64.lo: lib/val2text-v2t-uint64.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-val2text-v2t-uint64.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-val2text-v2t-uint64.Tpo" -c -o lib/lib_libvserver_la-val2text-v2t-uint64.lo `test -f 'lib/val2text-v2t-uint64.c' || echo '$(srcdir)/'`lib/val2text-v2t-uint64.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-val2text-v2t-uint64.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-val2text-v2t-uint64.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-val2text-v2t-uint64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/val2text-v2t-uint64.c' object='lib/lib_libvserver_la-val2text-v2t-uint64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-val2text-v2t-uint64.lo `test -f 'lib/val2text-v2t-uint64.c' || echo '$(srcdir)/'`lib/val2text-v2t-uint64.c
+
+lib/lib_libvserver_la-parselimit.lo: lib/parselimit.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-parselimit.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-parselimit.Tpo" -c -o lib/lib_libvserver_la-parselimit.lo `test -f 'lib/parselimit.c' || echo '$(srcdir)/'`lib/parselimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-parselimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-parselimit.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-parselimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/parselimit.c' object='lib/lib_libvserver_la-parselimit.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-parselimit.lo `test -f 'lib/parselimit.c' || echo '$(srcdir)/'`lib/parselimit.c
+
+lib/lib_libvserver_la-getprocentry-legacy.lo: lib/getprocentry-legacy.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getprocentry-legacy.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getprocentry-legacy.Tpo" -c -o lib/lib_libvserver_la-getprocentry-legacy.lo `test -f 'lib/getprocentry-legacy.c' || echo '$(srcdir)/'`lib/getprocentry-legacy.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getprocentry-legacy.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getprocentry-legacy.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getprocentry-legacy.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getprocentry-legacy.c' object='lib/lib_libvserver_la-getprocentry-legacy.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getprocentry-legacy.lo `test -f 'lib/getprocentry-legacy.c' || echo '$(srcdir)/'`lib/getprocentry-legacy.c
+
+lib/lib_libvserver_la-cflags-compat.lo: lib/cflags-compat.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-cflags-compat.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-cflags-compat.Tpo" -c -o lib/lib_libvserver_la-cflags-compat.lo `test -f 'lib/cflags-compat.c' || echo '$(srcdir)/'`lib/cflags-compat.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-cflags-compat.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-cflags-compat.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-cflags-compat.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags-compat.c' object='lib/lib_libvserver_la-cflags-compat.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-cflags-compat.lo `test -f 'lib/cflags-compat.c' || echo '$(srcdir)/'`lib/cflags-compat.c
+
+lib/lib_libvserver_la-cflags_list-compat.lo: lib/cflags_list-compat.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-cflags_list-compat.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-cflags_list-compat.Tpo" -c -o lib/lib_libvserver_la-cflags_list-compat.lo `test -f 'lib/cflags_list-compat.c' || echo '$(srcdir)/'`lib/cflags_list-compat.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-cflags_list-compat.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-cflags_list-compat.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-cflags_list-compat.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags_list-compat.c' object='lib/lib_libvserver_la-cflags_list-compat.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-cflags_list-compat.lo `test -f 'lib/cflags_list-compat.c' || echo '$(srcdir)/'`lib/cflags_list-compat.c
+
+lib/lib_libvserver_la-createskeleton.lo: lib/createskeleton.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-createskeleton.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-createskeleton.Tpo" -c -o lib/lib_libvserver_la-createskeleton.lo `test -f 'lib/createskeleton.c' || echo '$(srcdir)/'`lib/createskeleton.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-createskeleton.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-createskeleton.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-createskeleton.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/createskeleton.c' object='lib/lib_libvserver_la-createskeleton.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-createskeleton.lo `test -f 'lib/createskeleton.c' || echo '$(srcdir)/'`lib/createskeleton.c
+
+lib/lib_libvserver_la-getvserverbyctx.lo: lib/getvserverbyctx.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getvserverbyctx.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getvserverbyctx.Tpo" -c -o lib/lib_libvserver_la-getvserverbyctx.lo `test -f 'lib/getvserverbyctx.c' || echo '$(srcdir)/'`lib/getvserverbyctx.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getvserverbyctx.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getvserverbyctx.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getvserverbyctx.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvserverbyctx.c' object='lib/lib_libvserver_la-getvserverbyctx.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getvserverbyctx.lo `test -f 'lib/getvserverbyctx.c' || echo '$(srcdir)/'`lib/getvserverbyctx.c
+
+lib/lib_libvserver_la-getvservercfgstyle.lo: lib/getvservercfgstyle.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getvservercfgstyle.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getvservercfgstyle.Tpo" -c -o lib/lib_libvserver_la-getvservercfgstyle.lo `test -f 'lib/getvservercfgstyle.c' || echo '$(srcdir)/'`lib/getvservercfgstyle.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getvservercfgstyle.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getvservercfgstyle.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getvservercfgstyle.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservercfgstyle.c' object='lib/lib_libvserver_la-getvservercfgstyle.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getvservercfgstyle.lo `test -f 'lib/getvservercfgstyle.c' || echo '$(srcdir)/'`lib/getvservercfgstyle.c
+
+lib/lib_libvserver_la-getvserverappdir.lo: lib/getvserverappdir.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getvserverappdir.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getvserverappdir.Tpo" -c -o lib/lib_libvserver_la-getvserverappdir.lo `test -f 'lib/getvserverappdir.c' || echo '$(srcdir)/'`lib/getvserverappdir.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getvserverappdir.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getvserverappdir.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getvserverappdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvserverappdir.c' object='lib/lib_libvserver_la-getvserverappdir.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getvserverappdir.lo `test -f 'lib/getvserverappdir.c' || echo '$(srcdir)/'`lib/getvserverappdir.c
+
+lib/lib_libvserver_la-getvservercfgdir.lo: lib/getvservercfgdir.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getvservercfgdir.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getvservercfgdir.Tpo" -c -o lib/lib_libvserver_la-getvservercfgdir.lo `test -f 'lib/getvservercfgdir.c' || echo '$(srcdir)/'`lib/getvservercfgdir.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getvservercfgdir.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getvservercfgdir.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getvservercfgdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservercfgdir.c' object='lib/lib_libvserver_la-getvservercfgdir.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getvservercfgdir.lo `test -f 'lib/getvservercfgdir.c' || echo '$(srcdir)/'`lib/getvservercfgdir.c
+
+lib/lib_libvserver_la-getvserverctx.lo: lib/getvserverctx.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getvserverctx.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getvserverctx.Tpo" -c -o lib/lib_libvserver_la-getvserverctx.lo `test -f 'lib/getvserverctx.c' || echo '$(srcdir)/'`lib/getvserverctx.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getvserverctx.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getvserverctx.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getvserverctx.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvserverctx.c' object='lib/lib_libvserver_la-getvserverctx.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getvserverctx.lo `test -f 'lib/getvserverctx.c' || echo '$(srcdir)/'`lib/getvserverctx.c
+
+lib/lib_libvserver_la-getvservername.lo: lib/getvservername.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getvservername.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getvservername.Tpo" -c -o lib/lib_libvserver_la-getvservername.lo `test -f 'lib/getvservername.c' || echo '$(srcdir)/'`lib/getvservername.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getvservername.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getvservername.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getvservername.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservername.c' object='lib/lib_libvserver_la-getvservername.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getvservername.lo `test -f 'lib/getvservername.c' || echo '$(srcdir)/'`lib/getvservername.c
+
+lib/lib_libvserver_la-getvservervdir.lo: lib/getvservervdir.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-getvservervdir.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-getvservervdir.Tpo" -c -o lib/lib_libvserver_la-getvservervdir.lo `test -f 'lib/getvservervdir.c' || echo '$(srcdir)/'`lib/getvservervdir.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-getvservervdir.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-getvservervdir.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-getvservervdir.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/getvservervdir.c' object='lib/lib_libvserver_la-getvservervdir.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-getvservervdir.lo `test -f 'lib/getvservervdir.c' || echo '$(srcdir)/'`lib/getvservervdir.c
+
+lib/lib_libvserver_la-xidopt2xid.lo: lib/xidopt2xid.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-xidopt2xid.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-xidopt2xid.Tpo" -c -o lib/lib_libvserver_la-xidopt2xid.lo `test -f 'lib/xidopt2xid.c' || echo '$(srcdir)/'`lib/xidopt2xid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-xidopt2xid.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-xidopt2xid.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-xidopt2xid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/xidopt2xid.c' object='lib/lib_libvserver_la-xidopt2xid.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-xidopt2xid.lo `test -f 'lib/xidopt2xid.c' || echo '$(srcdir)/'`lib/xidopt2xid.c
+
+lib/lib_libvserver_la-syscall_rlimit.lo: lib/syscall_rlimit.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_rlimit.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimit.Tpo" -c -o lib/lib_libvserver_la-syscall_rlimit.lo `test -f 'lib/syscall_rlimit.c' || echo '$(srcdir)/'`lib/syscall_rlimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimit.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_rlimit.c' object='lib/lib_libvserver_la-syscall_rlimit.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_rlimit.lo `test -f 'lib/syscall_rlimit.c' || echo '$(srcdir)/'`lib/syscall_rlimit.c
+
+lib/lib_libvserver_la-syscall_kill.lo: lib/syscall_kill.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_kill.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_kill.Tpo" -c -o lib/lib_libvserver_la-syscall_kill.lo `test -f 'lib/syscall_kill.c' || echo '$(srcdir)/'`lib/syscall_kill.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_kill.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_kill.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_kill.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_kill.c' object='lib/lib_libvserver_la-syscall_kill.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_kill.lo `test -f 'lib/syscall_kill.c' || echo '$(srcdir)/'`lib/syscall_kill.c
+
+lib/lib_libvserver_la-syscall_ctxcreate.lo: lib/syscall_ctxcreate.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_ctxcreate.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxcreate.Tpo" -c -o lib/lib_libvserver_la-syscall_ctxcreate.lo `test -f 'lib/syscall_ctxcreate.c' || echo '$(srcdir)/'`lib/syscall_ctxcreate.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxcreate.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxcreate.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxcreate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_ctxcreate.c' object='lib/lib_libvserver_la-syscall_ctxcreate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_ctxcreate.lo `test -f 'lib/syscall_ctxcreate.c' || echo '$(srcdir)/'`lib/syscall_ctxcreate.c
+
+lib/lib_libvserver_la-syscall_ctxmigrate.lo: lib/syscall_ctxmigrate.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_ctxmigrate.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxmigrate.Tpo" -c -o lib/lib_libvserver_la-syscall_ctxmigrate.lo `test -f 'lib/syscall_ctxmigrate.c' || echo '$(srcdir)/'`lib/syscall_ctxmigrate.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxmigrate.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxmigrate.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxmigrate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_ctxmigrate.c' object='lib/lib_libvserver_la-syscall_ctxmigrate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_ctxmigrate.lo `test -f 'lib/syscall_ctxmigrate.c' || echo '$(srcdir)/'`lib/syscall_ctxmigrate.c
+
+lib/lib_libvserver_la-syscall_cleanupnamespace.lo: lib/syscall_cleanupnamespace.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_cleanupnamespace.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_cleanupnamespace.Tpo" -c -o lib/lib_libvserver_la-syscall_cleanupnamespace.lo `test -f 'lib/syscall_cleanupnamespace.c' || echo '$(srcdir)/'`lib/syscall_cleanupnamespace.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_cleanupnamespace.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_cleanupnamespace.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_cleanupnamespace.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_cleanupnamespace.c' object='lib/lib_libvserver_la-syscall_cleanupnamespace.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_cleanupnamespace.lo `test -f 'lib/syscall_cleanupnamespace.c' || echo '$(srcdir)/'`lib/syscall_cleanupnamespace.c
+
+lib/lib_libvserver_la-syscall_enternamespace.lo: lib/syscall_enternamespace.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_enternamespace.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_enternamespace.Tpo" -c -o lib/lib_libvserver_la-syscall_enternamespace.lo `test -f 'lib/syscall_enternamespace.c' || echo '$(srcdir)/'`lib/syscall_enternamespace.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_enternamespace.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_enternamespace.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_enternamespace.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_enternamespace.c' object='lib/lib_libvserver_la-syscall_enternamespace.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_enternamespace.lo `test -f 'lib/syscall_enternamespace.c' || echo '$(srcdir)/'`lib/syscall_enternamespace.c
+
+lib/lib_libvserver_la-syscall_getccaps.lo: lib/syscall_getccaps.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getccaps.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_getccaps.Tpo" -c -o lib/lib_libvserver_la-syscall_getccaps.lo `test -f 'lib/syscall_getccaps.c' || echo '$(srcdir)/'`lib/syscall_getccaps.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getccaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_getccaps.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getccaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getccaps.c' object='lib/lib_libvserver_la-syscall_getccaps.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getccaps.lo `test -f 'lib/syscall_getccaps.c' || echo '$(srcdir)/'`lib/syscall_getccaps.c
+
+lib/lib_libvserver_la-syscall_getcflags.lo: lib/syscall_getcflags.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getcflags.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_getcflags.Tpo" -c -o lib/lib_libvserver_la-syscall_getcflags.lo `test -f 'lib/syscall_getcflags.c' || echo '$(srcdir)/'`lib/syscall_getcflags.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getcflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_getcflags.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getcflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getcflags.c' object='lib/lib_libvserver_la-syscall_getcflags.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getcflags.lo `test -f 'lib/syscall_getcflags.c' || echo '$(srcdir)/'`lib/syscall_getcflags.c
+
+lib/lib_libvserver_la-syscall_getiattr.lo: lib/syscall_getiattr.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getiattr.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_getiattr.Tpo" -c -o lib/lib_libvserver_la-syscall_getiattr.lo `test -f 'lib/syscall_getiattr.c' || echo '$(srcdir)/'`lib/syscall_getiattr.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getiattr.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_getiattr.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getiattr.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getiattr.c' object='lib/lib_libvserver_la-syscall_getiattr.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getiattr.lo `test -f 'lib/syscall_getiattr.c' || echo '$(srcdir)/'`lib/syscall_getiattr.c
+
+lib/lib_libvserver_la-syscall_getncaps.lo: lib/syscall_getncaps.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getncaps.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_getncaps.Tpo" -c -o lib/lib_libvserver_la-syscall_getncaps.lo `test -f 'lib/syscall_getncaps.c' || echo '$(srcdir)/'`lib/syscall_getncaps.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getncaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_getncaps.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getncaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getncaps.c' object='lib/lib_libvserver_la-syscall_getncaps.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getncaps.lo `test -f 'lib/syscall_getncaps.c' || echo '$(srcdir)/'`lib/syscall_getncaps.c
+
+lib/lib_libvserver_la-syscall_getnflags.lo: lib/syscall_getnflags.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getnflags.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_getnflags.Tpo" -c -o lib/lib_libvserver_la-syscall_getnflags.lo `test -f 'lib/syscall_getnflags.c' || echo '$(srcdir)/'`lib/syscall_getnflags.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getnflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_getnflags.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getnflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getnflags.c' object='lib/lib_libvserver_la-syscall_getnflags.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getnflags.lo `test -f 'lib/syscall_getnflags.c' || echo '$(srcdir)/'`lib/syscall_getnflags.c
+
+lib/lib_libvserver_la-syscall_getnxinfo.lo: lib/syscall_getnxinfo.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getnxinfo.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_getnxinfo.Tpo" -c -o lib/lib_libvserver_la-syscall_getnxinfo.lo `test -f 'lib/syscall_getnxinfo.c' || echo '$(srcdir)/'`lib/syscall_getnxinfo.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getnxinfo.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_getnxinfo.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getnxinfo.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getnxinfo.c' object='lib/lib_libvserver_la-syscall_getnxinfo.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getnxinfo.lo `test -f 'lib/syscall_getnxinfo.c' || echo '$(srcdir)/'`lib/syscall_getnxinfo.c
+
+lib/lib_libvserver_la-syscall_gettasknid.lo: lib/syscall_gettasknid.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_gettasknid.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_gettasknid.Tpo" -c -o lib/lib_libvserver_la-syscall_gettasknid.lo `test -f 'lib/syscall_gettasknid.c' || echo '$(srcdir)/'`lib/syscall_gettasknid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_gettasknid.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_gettasknid.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_gettasknid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_gettasknid.c' object='lib/lib_libvserver_la-syscall_gettasknid.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_gettasknid.lo `test -f 'lib/syscall_gettasknid.c' || echo '$(srcdir)/'`lib/syscall_gettasknid.c
+
+lib/lib_libvserver_la-syscall_gettaskxid.lo: lib/syscall_gettaskxid.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_gettaskxid.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_gettaskxid.Tpo" -c -o lib/lib_libvserver_la-syscall_gettaskxid.lo `test -f 'lib/syscall_gettaskxid.c' || echo '$(srcdir)/'`lib/syscall_gettaskxid.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_gettaskxid.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_gettaskxid.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_gettaskxid.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_gettaskxid.c' object='lib/lib_libvserver_la-syscall_gettaskxid.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_gettaskxid.lo `test -f 'lib/syscall_gettaskxid.c' || echo '$(srcdir)/'`lib/syscall_gettaskxid.c
+
+lib/lib_libvserver_la-syscall_getvhiname.lo: lib/syscall_getvhiname.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getvhiname.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvhiname.Tpo" -c -o lib/lib_libvserver_la-syscall_getvhiname.lo `test -f 'lib/syscall_getvhiname.c' || echo '$(srcdir)/'`lib/syscall_getvhiname.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvhiname.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvhiname.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvhiname.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getvhiname.c' object='lib/lib_libvserver_la-syscall_getvhiname.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getvhiname.lo `test -f 'lib/syscall_getvhiname.c' || echo '$(srcdir)/'`lib/syscall_getvhiname.c
+
+lib/lib_libvserver_la-syscall_getvxinfo.lo: lib/syscall_getvxinfo.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getvxinfo.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvxinfo.Tpo" -c -o lib/lib_libvserver_la-syscall_getvxinfo.lo `test -f 'lib/syscall_getvxinfo.c' || echo '$(srcdir)/'`lib/syscall_getvxinfo.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvxinfo.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvxinfo.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvxinfo.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getvxinfo.c' object='lib/lib_libvserver_la-syscall_getvxinfo.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getvxinfo.lo `test -f 'lib/syscall_getvxinfo.c' || echo '$(srcdir)/'`lib/syscall_getvxinfo.c
+
+lib/lib_libvserver_la-syscall_netadd.lo: lib/syscall_netadd.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_netadd.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_netadd.Tpo" -c -o lib/lib_libvserver_la-syscall_netadd.lo `test -f 'lib/syscall_netadd.c' || echo '$(srcdir)/'`lib/syscall_netadd.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_netadd.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_netadd.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_netadd.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netadd.c' object='lib/lib_libvserver_la-syscall_netadd.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_netadd.lo `test -f 'lib/syscall_netadd.c' || echo '$(srcdir)/'`lib/syscall_netadd.c
+
+lib/lib_libvserver_la-syscall_netcreate.lo: lib/syscall_netcreate.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_netcreate.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_netcreate.Tpo" -c -o lib/lib_libvserver_la-syscall_netcreate.lo `test -f 'lib/syscall_netcreate.c' || echo '$(srcdir)/'`lib/syscall_netcreate.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_netcreate.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_netcreate.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_netcreate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netcreate.c' object='lib/lib_libvserver_la-syscall_netcreate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_netcreate.lo `test -f 'lib/syscall_netcreate.c' || echo '$(srcdir)/'`lib/syscall_netcreate.c
+
+lib/lib_libvserver_la-syscall_netmigrate.lo: lib/syscall_netmigrate.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_netmigrate.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_netmigrate.Tpo" -c -o lib/lib_libvserver_la-syscall_netmigrate.lo `test -f 'lib/syscall_netmigrate.c' || echo '$(srcdir)/'`lib/syscall_netmigrate.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_netmigrate.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_netmigrate.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_netmigrate.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netmigrate.c' object='lib/lib_libvserver_la-syscall_netmigrate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_netmigrate.lo `test -f 'lib/syscall_netmigrate.c' || echo '$(srcdir)/'`lib/syscall_netmigrate.c
+
+lib/lib_libvserver_la-syscall_netremove.lo: lib/syscall_netremove.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_netremove.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_netremove.Tpo" -c -o lib/lib_libvserver_la-syscall_netremove.lo `test -f 'lib/syscall_netremove.c' || echo '$(srcdir)/'`lib/syscall_netremove.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_netremove.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_netremove.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_netremove.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_netremove.c' object='lib/lib_libvserver_la-syscall_netremove.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_netremove.lo `test -f 'lib/syscall_netremove.c' || echo '$(srcdir)/'`lib/syscall_netremove.c
+
+lib/lib_libvserver_la-syscall_setccaps.lo: lib/syscall_setccaps.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_setccaps.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_setccaps.Tpo" -c -o lib/lib_libvserver_la-syscall_setccaps.lo `test -f 'lib/syscall_setccaps.c' || echo '$(srcdir)/'`lib/syscall_setccaps.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setccaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_setccaps.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setccaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setccaps.c' object='lib/lib_libvserver_la-syscall_setccaps.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setccaps.lo `test -f 'lib/syscall_setccaps.c' || echo '$(srcdir)/'`lib/syscall_setccaps.c
+
+lib/lib_libvserver_la-syscall_setcflags.lo: lib/syscall_setcflags.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_setcflags.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_setcflags.Tpo" -c -o lib/lib_libvserver_la-syscall_setcflags.lo `test -f 'lib/syscall_setcflags.c' || echo '$(srcdir)/'`lib/syscall_setcflags.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setcflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_setcflags.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setcflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setcflags.c' object='lib/lib_libvserver_la-syscall_setcflags.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setcflags.lo `test -f 'lib/syscall_setcflags.c' || echo '$(srcdir)/'`lib/syscall_setcflags.c
+
+lib/lib_libvserver_la-syscall_setiattr.lo: lib/syscall_setiattr.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_setiattr.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_setiattr.Tpo" -c -o lib/lib_libvserver_la-syscall_setiattr.lo `test -f 'lib/syscall_setiattr.c' || echo '$(srcdir)/'`lib/syscall_setiattr.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setiattr.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_setiattr.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setiattr.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setiattr.c' object='lib/lib_libvserver_la-syscall_setiattr.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setiattr.lo `test -f 'lib/syscall_setiattr.c' || echo '$(srcdir)/'`lib/syscall_setiattr.c
+
+lib/lib_libvserver_la-syscall_setnamespace.lo: lib/syscall_setnamespace.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_setnamespace.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_setnamespace.Tpo" -c -o lib/lib_libvserver_la-syscall_setnamespace.lo `test -f 'lib/syscall_setnamespace.c' || echo '$(srcdir)/'`lib/syscall_setnamespace.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setnamespace.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_setnamespace.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setnamespace.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setnamespace.c' object='lib/lib_libvserver_la-syscall_setnamespace.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setnamespace.lo `test -f 'lib/syscall_setnamespace.c' || echo '$(srcdir)/'`lib/syscall_setnamespace.c
+
+lib/lib_libvserver_la-syscall_setncaps.lo: lib/syscall_setncaps.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_setncaps.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_setncaps.Tpo" -c -o lib/lib_libvserver_la-syscall_setncaps.lo `test -f 'lib/syscall_setncaps.c' || echo '$(srcdir)/'`lib/syscall_setncaps.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setncaps.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_setncaps.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setncaps.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setncaps.c' object='lib/lib_libvserver_la-syscall_setncaps.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setncaps.lo `test -f 'lib/syscall_setncaps.c' || echo '$(srcdir)/'`lib/syscall_setncaps.c
+
+lib/lib_libvserver_la-syscall_setnflags.lo: lib/syscall_setnflags.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_setnflags.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_setnflags.Tpo" -c -o lib/lib_libvserver_la-syscall_setnflags.lo `test -f 'lib/syscall_setnflags.c' || echo '$(srcdir)/'`lib/syscall_setnflags.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setnflags.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_setnflags.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setnflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setnflags.c' object='lib/lib_libvserver_la-syscall_setnflags.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setnflags.lo `test -f 'lib/syscall_setnflags.c' || echo '$(srcdir)/'`lib/syscall_setnflags.c
+
+lib/lib_libvserver_la-syscall_setsched.lo: lib/syscall_setsched.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_setsched.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_setsched.Tpo" -c -o lib/lib_libvserver_la-syscall_setsched.lo `test -f 'lib/syscall_setsched.c' || echo '$(srcdir)/'`lib/syscall_setsched.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setsched.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_setsched.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setsched.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setsched.c' object='lib/lib_libvserver_la-syscall_setsched.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setsched.lo `test -f 'lib/syscall_setsched.c' || echo '$(srcdir)/'`lib/syscall_setsched.c
+
+lib/lib_libvserver_la-syscall_setvhiname.lo: lib/syscall_setvhiname.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_setvhiname.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_setvhiname.Tpo" -c -o lib/lib_libvserver_la-syscall_setvhiname.lo `test -f 'lib/syscall_setvhiname.c' || echo '$(srcdir)/'`lib/syscall_setvhiname.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setvhiname.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_setvhiname.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setvhiname.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setvhiname.c' object='lib/lib_libvserver_la-syscall_setvhiname.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setvhiname.lo `test -f 'lib/syscall_setvhiname.c' || echo '$(srcdir)/'`lib/syscall_setvhiname.c
+
+lib/lib_libvserver_la-syscall_waitexit.lo: lib/syscall_waitexit.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_waitexit.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_waitexit.Tpo" -c -o lib/lib_libvserver_la-syscall_waitexit.lo `test -f 'lib/syscall_waitexit.c' || echo '$(srcdir)/'`lib/syscall_waitexit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_waitexit.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_waitexit.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_waitexit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_waitexit.c' object='lib/lib_libvserver_la-syscall_waitexit.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_waitexit.lo `test -f 'lib/syscall_waitexit.c' || echo '$(srcdir)/'`lib/syscall_waitexit.c
+
+lib/lib_libvserver_la-bcaps-v13.lo: lib/bcaps-v13.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-bcaps-v13.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-bcaps-v13.Tpo" -c -o lib/lib_libvserver_la-bcaps-v13.lo `test -f 'lib/bcaps-v13.c' || echo '$(srcdir)/'`lib/bcaps-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-bcaps-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-bcaps-v13.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-bcaps-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/bcaps-v13.c' object='lib/lib_libvserver_la-bcaps-v13.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-bcaps-v13.lo `test -f 'lib/bcaps-v13.c' || echo '$(srcdir)/'`lib/bcaps-v13.c
+
+lib/lib_libvserver_la-bcaps_list-v13.lo: lib/bcaps_list-v13.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-bcaps_list-v13.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-bcaps_list-v13.Tpo" -c -o lib/lib_libvserver_la-bcaps_list-v13.lo `test -f 'lib/bcaps_list-v13.c' || echo '$(srcdir)/'`lib/bcaps_list-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-bcaps_list-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-bcaps_list-v13.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-bcaps_list-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/bcaps_list-v13.c' object='lib/lib_libvserver_la-bcaps_list-v13.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-bcaps_list-v13.lo `test -f 'lib/bcaps_list-v13.c' || echo '$(srcdir)/'`lib/bcaps_list-v13.c
+
+lib/lib_libvserver_la-ccaps-v13.lo: lib/ccaps-v13.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-ccaps-v13.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-ccaps-v13.Tpo" -c -o lib/lib_libvserver_la-ccaps-v13.lo `test -f 'lib/ccaps-v13.c' || echo '$(srcdir)/'`lib/ccaps-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-ccaps-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-ccaps-v13.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-ccaps-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ccaps-v13.c' object='lib/lib_libvserver_la-ccaps-v13.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-ccaps-v13.lo `test -f 'lib/ccaps-v13.c' || echo '$(srcdir)/'`lib/ccaps-v13.c
+
+lib/lib_libvserver_la-ccaps_list-v13.lo: lib/ccaps_list-v13.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-ccaps_list-v13.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-ccaps_list-v13.Tpo" -c -o lib/lib_libvserver_la-ccaps_list-v13.lo `test -f 'lib/ccaps_list-v13.c' || echo '$(srcdir)/'`lib/ccaps_list-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-ccaps_list-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-ccaps_list-v13.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-ccaps_list-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ccaps_list-v13.c' object='lib/lib_libvserver_la-ccaps_list-v13.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-ccaps_list-v13.lo `test -f 'lib/ccaps_list-v13.c' || echo '$(srcdir)/'`lib/ccaps_list-v13.c
+
+lib/lib_libvserver_la-cflags-v13.lo: lib/cflags-v13.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-cflags-v13.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-cflags-v13.Tpo" -c -o lib/lib_libvserver_la-cflags-v13.lo `test -f 'lib/cflags-v13.c' || echo '$(srcdir)/'`lib/cflags-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-cflags-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-cflags-v13.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-cflags-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags-v13.c' object='lib/lib_libvserver_la-cflags-v13.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-cflags-v13.lo `test -f 'lib/cflags-v13.c' || echo '$(srcdir)/'`lib/cflags-v13.c
+
+lib/lib_libvserver_la-cflags_list-v13.lo: lib/cflags_list-v13.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-cflags_list-v13.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-cflags_list-v13.Tpo" -c -o lib/lib_libvserver_la-cflags_list-v13.lo `test -f 'lib/cflags_list-v13.c' || echo '$(srcdir)/'`lib/cflags_list-v13.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-cflags_list-v13.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-cflags_list-v13.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-cflags_list-v13.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/cflags_list-v13.c' object='lib/lib_libvserver_la-cflags_list-v13.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-cflags_list-v13.lo `test -f 'lib/cflags_list-v13.c' || echo '$(srcdir)/'`lib/cflags_list-v13.c
+
+lib/lib_libvserver_la-ncaps-net.lo: lib/ncaps-net.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-ncaps-net.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-ncaps-net.Tpo" -c -o lib/lib_libvserver_la-ncaps-net.lo `test -f 'lib/ncaps-net.c' || echo '$(srcdir)/'`lib/ncaps-net.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-ncaps-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-ncaps-net.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-ncaps-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ncaps-net.c' object='lib/lib_libvserver_la-ncaps-net.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-ncaps-net.lo `test -f 'lib/ncaps-net.c' || echo '$(srcdir)/'`lib/ncaps-net.c
+
+lib/lib_libvserver_la-ncaps_list-net.lo: lib/ncaps_list-net.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-ncaps_list-net.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-ncaps_list-net.Tpo" -c -o lib/lib_libvserver_la-ncaps_list-net.lo `test -f 'lib/ncaps_list-net.c' || echo '$(srcdir)/'`lib/ncaps_list-net.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-ncaps_list-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-ncaps_list-net.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-ncaps_list-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/ncaps_list-net.c' object='lib/lib_libvserver_la-ncaps_list-net.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-ncaps_list-net.lo `test -f 'lib/ncaps_list-net.c' || echo '$(srcdir)/'`lib/ncaps_list-net.c
+
+lib/lib_libvserver_la-nflags-net.lo: lib/nflags-net.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-nflags-net.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-nflags-net.Tpo" -c -o lib/lib_libvserver_la-nflags-net.lo `test -f 'lib/nflags-net.c' || echo '$(srcdir)/'`lib/nflags-net.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-nflags-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-nflags-net.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-nflags-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/nflags-net.c' object='lib/lib_libvserver_la-nflags-net.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-nflags-net.lo `test -f 'lib/nflags-net.c' || echo '$(srcdir)/'`lib/nflags-net.c
+
+lib/lib_libvserver_la-nflags_list-net.lo: lib/nflags_list-net.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-nflags_list-net.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-nflags_list-net.Tpo" -c -o lib/lib_libvserver_la-nflags_list-net.lo `test -f 'lib/nflags_list-net.c' || echo '$(srcdir)/'`lib/nflags_list-net.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-nflags_list-net.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-nflags_list-net.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-nflags_list-net.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/nflags_list-net.c' object='lib/lib_libvserver_la-nflags_list-net.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-nflags_list-net.lo `test -f 'lib/nflags_list-net.c' || echo '$(srcdir)/'`lib/nflags_list-net.c
+
+lib/lib_libvserver_la-syscall_adddlimit.lo: lib/syscall_adddlimit.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_adddlimit.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_adddlimit.Tpo" -c -o lib/lib_libvserver_la-syscall_adddlimit.lo `test -f 'lib/syscall_adddlimit.c' || echo '$(srcdir)/'`lib/syscall_adddlimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_adddlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_adddlimit.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_adddlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_adddlimit.c' object='lib/lib_libvserver_la-syscall_adddlimit.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_adddlimit.lo `test -f 'lib/syscall_adddlimit.c' || echo '$(srcdir)/'`lib/syscall_adddlimit.c
+
+lib/lib_libvserver_la-syscall_getdlimit.lo: lib/syscall_getdlimit.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getdlimit.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_getdlimit.Tpo" -c -o lib/lib_libvserver_la-syscall_getdlimit.lo `test -f 'lib/syscall_getdlimit.c' || echo '$(srcdir)/'`lib/syscall_getdlimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getdlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_getdlimit.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getdlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getdlimit.c' object='lib/lib_libvserver_la-syscall_getdlimit.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getdlimit.lo `test -f 'lib/syscall_getdlimit.c' || echo '$(srcdir)/'`lib/syscall_getdlimit.c
+
+lib/lib_libvserver_la-syscall_remdlimit.lo: lib/syscall_remdlimit.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_remdlimit.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_remdlimit.Tpo" -c -o lib/lib_libvserver_la-syscall_remdlimit.lo `test -f 'lib/syscall_remdlimit.c' || echo '$(srcdir)/'`lib/syscall_remdlimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_remdlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_remdlimit.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_remdlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_remdlimit.c' object='lib/lib_libvserver_la-syscall_remdlimit.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_remdlimit.lo `test -f 'lib/syscall_remdlimit.c' || echo '$(srcdir)/'`lib/syscall_remdlimit.c
+
+lib/lib_libvserver_la-syscall_setdlimit.lo: lib/syscall_setdlimit.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_setdlimit.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_setdlimit.Tpo" -c -o lib/lib_libvserver_la-syscall_setdlimit.lo `test -f 'lib/syscall_setdlimit.c' || echo '$(srcdir)/'`lib/syscall_setdlimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setdlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_setdlimit.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setdlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setdlimit.c' object='lib/lib_libvserver_la-syscall_setdlimit.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setdlimit.lo `test -f 'lib/syscall_setdlimit.c' || echo '$(srcdir)/'`lib/syscall_setdlimit.c
+
+ensc_fmt/lib_libvserver_la-fmt-32.lo: ensc_fmt/fmt-32.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_la-fmt-32.lo -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Tpo" -c -o ensc_fmt/lib_libvserver_la-fmt-32.lo `test -f 'ensc_fmt/fmt-32.c' || echo '$(srcdir)/'`ensc_fmt/fmt-32.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Plo"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmt-32.c' object='ensc_fmt/lib_libvserver_la-fmt-32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_la-fmt-32.lo `test -f 'ensc_fmt/fmt-32.c' || echo '$(srcdir)/'`ensc_fmt/fmt-32.c
+
+ensc_fmt/lib_libvserver_la-fmt-64.lo: ensc_fmt/fmt-64.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_la-fmt-64.lo -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-64.Tpo" -c -o ensc_fmt/lib_libvserver_la-fmt-64.lo `test -f 'ensc_fmt/fmt-64.c' || echo '$(srcdir)/'`ensc_fmt/fmt-64.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-64.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-64.Plo"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmt-64.c' object='ensc_fmt/lib_libvserver_la-fmt-64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_la-fmt-64.lo `test -f 'ensc_fmt/fmt-64.c' || echo '$(srcdir)/'`ensc_fmt/fmt-64.c
+
+ensc_fmt/lib_libvserver_la-fmtx-32.lo: ensc_fmt/fmtx-32.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_la-fmtx-32.lo -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmtx-32.Tpo" -c -o ensc_fmt/lib_libvserver_la-fmtx-32.lo `test -f 'ensc_fmt/fmtx-32.c' || echo '$(srcdir)/'`ensc_fmt/fmtx-32.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmtx-32.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmtx-32.Plo"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmtx-32.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmtx-32.c' object='ensc_fmt/lib_libvserver_la-fmtx-32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_la-fmtx-32.lo `test -f 'ensc_fmt/fmtx-32.c' || echo '$(srcdir)/'`ensc_fmt/fmtx-32.c
+
+ensc_fmt/lib_libvserver_la-fmtx-64.lo: ensc_fmt/fmtx-64.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_la-fmtx-64.lo -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmtx-64.Tpo" -c -o ensc_fmt/lib_libvserver_la-fmtx-64.lo `test -f 'ensc_fmt/fmtx-64.c' || echo '$(srcdir)/'`ensc_fmt/fmtx-64.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmtx-64.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmtx-64.Plo"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmtx-64.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmtx-64.c' object='ensc_fmt/lib_libvserver_la-fmtx-64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_la-fmtx-64.lo `test -f 'ensc_fmt/fmtx-64.c' || echo '$(srcdir)/'`ensc_fmt/fmtx-64.c
+
+ensc_fmt/lib_libvserver_la-fmt-tai64n.lo: ensc_fmt/fmt-tai64n.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_la-fmt-tai64n.lo -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-tai64n.Tpo" -c -o ensc_fmt/lib_libvserver_la-fmt-tai64n.lo `test -f 'ensc_fmt/fmt-tai64n.c' || echo '$(srcdir)/'`ensc_fmt/fmt-tai64n.c; \
+@am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-tai64n.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-tai64n.Plo"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-tai64n.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ensc_fmt/fmt-tai64n.c' object='ensc_fmt/lib_libvserver_la-fmt-tai64n.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ensc_fmt/lib_libvserver_la-fmt-tai64n.lo `test -f 'ensc_fmt/fmt-tai64n.c' || echo '$(srcdir)/'`ensc_fmt/fmt-tai64n.c
+
+src/src_rpm_fake_la-rpm-fake.lo: src/rpm-fake.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_rpm_fake_la_CFLAGS) $(CFLAGS) -MT src/src_rpm_fake_la-rpm-fake.lo -MD -MP -MF "src/$(DEPDIR)/src_rpm_fake_la-rpm-fake.Tpo" -c -o src/src_rpm_fake_la-rpm-fake.lo `test -f 'src/rpm-fake.c' || echo '$(srcdir)/'`src/rpm-fake.c; \
+@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/src_rpm_fake_la-rpm-fake.Tpo" "src/$(DEPDIR)/src_rpm_fake_la-rpm-fake.Plo"; else rm -f "src/$(DEPDIR)/src_rpm_fake_la-rpm-fake.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/rpm-fake.c' object='src/src_rpm_fake_la-rpm-fake.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_rpm_fake_la_CFLAGS) $(CFLAGS) -c -o src/src_rpm_fake_la-rpm-fake.lo `test -f 'src/rpm-fake.c' || echo '$(srcdir)/'`src/rpm-fake.c
+
+lib/testsuite/lib_testsuite_cflags-cflags.o: lib/testsuite/cflags.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_cflags_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/testsuite/lib_testsuite_cflags-cflags.o -MD -MP -MF "lib/testsuite/$(DEPDIR)/lib_testsuite_cflags-cflags.Tpo" -c -o lib/testsuite/lib_testsuite_cflags-cflags.o `test -f 'lib/testsuite/cflags.c' || echo '$(srcdir)/'`lib/testsuite/cflags.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/testsuite/$(DEPDIR)/lib_testsuite_cflags-cflags.Tpo" "lib/testsuite/$(DEPDIR)/lib_testsuite_cflags-cflags.Po"; else rm -f "lib/testsuite/$(DEPDIR)/lib_testsuite_cflags-cflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/testsuite/cflags.c' object='lib/testsuite/lib_testsuite_cflags-cflags.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_cflags_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/testsuite/lib_testsuite_cflags-cflags.o `test -f 'lib/testsuite/cflags.c' || echo '$(srcdir)/'`lib/testsuite/cflags.c
+
+lib/testsuite/lib_testsuite_cflags-cflags.obj: lib/testsuite/cflags.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_cflags_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/testsuite/lib_testsuite_cflags-cflags.obj -MD -MP -MF "lib/testsuite/$(DEPDIR)/lib_testsuite_cflags-cflags.Tpo" -c -o lib/testsuite/lib_testsuite_cflags-cflags.obj `if test -f 'lib/testsuite/cflags.c'; then $(CYGPATH_W) 'lib/testsuite/cflags.c'; else $(CYGPATH_W) '$(srcdir)/lib/testsuite/cflags.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/testsuite/$(DEPDIR)/lib_testsuite_cflags-cflags.Tpo" "lib/testsuite/$(DEPDIR)/lib_testsuite_cflags-cflags.Po"; else rm -f "lib/testsuite/$(DEPDIR)/lib_testsuite_cflags-cflags.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/testsuite/cflags.c' object='lib/testsuite/lib_testsuite_cflags-cflags.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_cflags_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/testsuite/lib_testsuite_cflags-cflags.obj `if test -f 'lib/testsuite/cflags.c'; then $(CYGPATH_W) 'lib/testsuite/cflags.c'; else $(CYGPATH_W) '$(srcdir)/lib/testsuite/cflags.c'; fi`
+
+lib/testsuite/lib_testsuite_fmt-fmt.o: lib/testsuite/fmt.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_fmt_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/testsuite/lib_testsuite_fmt-fmt.o -MD -MP -MF "lib/testsuite/$(DEPDIR)/lib_testsuite_fmt-fmt.Tpo" -c -o lib/testsuite/lib_testsuite_fmt-fmt.o `test -f 'lib/testsuite/fmt.c' || echo '$(srcdir)/'`lib/testsuite/fmt.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/testsuite/$(DEPDIR)/lib_testsuite_fmt-fmt.Tpo" "lib/testsuite/$(DEPDIR)/lib_testsuite_fmt-fmt.Po"; else rm -f "lib/testsuite/$(DEPDIR)/lib_testsuite_fmt-fmt.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/testsuite/fmt.c' object='lib/testsuite/lib_testsuite_fmt-fmt.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_fmt_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/testsuite/lib_testsuite_fmt-fmt.o `test -f 'lib/testsuite/fmt.c' || echo '$(srcdir)/'`lib/testsuite/fmt.c
+
+lib/testsuite/lib_testsuite_fmt-fmt.obj: lib/testsuite/fmt.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_fmt_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/testsuite/lib_testsuite_fmt-fmt.obj -MD -MP -MF "lib/testsuite/$(DEPDIR)/lib_testsuite_fmt-fmt.Tpo" -c -o lib/testsuite/lib_testsuite_fmt-fmt.obj `if test -f 'lib/testsuite/fmt.c'; then $(CYGPATH_W) 'lib/testsuite/fmt.c'; else $(CYGPATH_W) '$(srcdir)/lib/testsuite/fmt.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/testsuite/$(DEPDIR)/lib_testsuite_fmt-fmt.Tpo" "lib/testsuite/$(DEPDIR)/lib_testsuite_fmt-fmt.Po"; else rm -f "lib/testsuite/$(DEPDIR)/lib_testsuite_fmt-fmt.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/testsuite/fmt.c' object='lib/testsuite/lib_testsuite_fmt-fmt.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_fmt_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/testsuite/lib_testsuite_fmt-fmt.obj `if test -f 'lib/testsuite/fmt.c'; then $(CYGPATH_W) 'lib/testsuite/fmt.c'; else $(CYGPATH_W) '$(srcdir)/lib/testsuite/fmt.c'; fi`
+
+lib/testsuite/lib_testsuite_parselimit-parselimit.o: lib/testsuite/parselimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_parselimit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/testsuite/lib_testsuite_parselimit-parselimit.o -MD -MP -MF "lib/testsuite/$(DEPDIR)/lib_testsuite_parselimit-parselimit.Tpo" -c -o lib/testsuite/lib_testsuite_parselimit-parselimit.o `test -f 'lib/testsuite/parselimit.c' || echo '$(srcdir)/'`lib/testsuite/parselimit.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/testsuite/$(DEPDIR)/lib_testsuite_parselimit-parselimit.Tpo" "lib/testsuite/$(DEPDIR)/lib_testsuite_parselimit-parselimit.Po"; else rm -f "lib/testsuite/$(DEPDIR)/lib_testsuite_parselimit-parselimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/testsuite/parselimit.c' object='lib/testsuite/lib_testsuite_parselimit-parselimit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_parselimit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/testsuite/lib_testsuite_parselimit-parselimit.o `test -f 'lib/testsuite/parselimit.c' || echo '$(srcdir)/'`lib/testsuite/parselimit.c
+
+lib/testsuite/lib_testsuite_parselimit-parselimit.obj: lib/testsuite/parselimit.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_parselimit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/testsuite/lib_testsuite_parselimit-parselimit.obj -MD -MP -MF "lib/testsuite/$(DEPDIR)/lib_testsuite_parselimit-parselimit.Tpo" -c -o lib/testsuite/lib_testsuite_parselimit-parselimit.obj `if test -f 'lib/testsuite/parselimit.c'; then $(CYGPATH_W) 'lib/testsuite/parselimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/testsuite/parselimit.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/testsuite/$(DEPDIR)/lib_testsuite_parselimit-parselimit.Tpo" "lib/testsuite/$(DEPDIR)/lib_testsuite_parselimit-parselimit.Po"; else rm -f "lib/testsuite/$(DEPDIR)/lib_testsuite_parselimit-parselimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/testsuite/parselimit.c' object='lib/testsuite/lib_testsuite_parselimit-parselimit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_parselimit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/testsuite/lib_testsuite_parselimit-parselimit.obj `if test -f 'lib/testsuite/parselimit.c'; then $(CYGPATH_W) 'lib/testsuite/parselimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/testsuite/parselimit.c'; fi`
+
+lib/testsuite/lib_testsuite_personality-personality.o: lib/testsuite/personality.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_personality_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/testsuite/lib_testsuite_personality-personality.o -MD -MP -MF "lib/testsuite/$(DEPDIR)/lib_testsuite_personality-personality.Tpo" -c -o lib/testsuite/lib_testsuite_personality-personality.o `test -f 'lib/testsuite/personality.c' || echo '$(srcdir)/'`lib/testsuite/personality.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/testsuite/$(DEPDIR)/lib_testsuite_personality-personality.Tpo" "lib/testsuite/$(DEPDIR)/lib_testsuite_personality-personality.Po"; else rm -f "lib/testsuite/$(DEPDIR)/lib_testsuite_personality-personality.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/testsuite/personality.c' object='lib/testsuite/lib_testsuite_personality-personality.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_personality_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/testsuite/lib_testsuite_personality-personality.o `test -f 'lib/testsuite/personality.c' || echo '$(srcdir)/'`lib/testsuite/personality.c
+
+lib/testsuite/lib_testsuite_personality-personality.obj: lib/testsuite/personality.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_personality_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/testsuite/lib_testsuite_personality-personality.obj -MD -MP -MF "lib/testsuite/$(DEPDIR)/lib_testsuite_personality-personality.Tpo" -c -o lib/testsuite/lib_testsuite_personality-personality.obj `if test -f 'lib/testsuite/personality.c'; then $(CYGPATH_W) 'lib/testsuite/personality.c'; else $(CYGPATH_W) '$(srcdir)/lib/testsuite/personality.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/testsuite/$(DEPDIR)/lib_testsuite_personality-personality.Tpo" "lib/testsuite/$(DEPDIR)/lib_testsuite_personality-personality.Po"; else rm -f "lib/testsuite/$(DEPDIR)/lib_testsuite_personality-personality.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/testsuite/personality.c' object='lib/testsuite/lib_testsuite_personality-personality.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_personality_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/testsuite/lib_testsuite_personality-personality.obj `if test -f 'lib/testsuite/personality.c'; then $(CYGPATH_W) 'lib/testsuite/personality.c'; else $(CYGPATH_W) '$(srcdir)/lib/testsuite/personality.c'; fi`
+
+src/testsuite/src_testsuite_vunify_functest-vunify-functest.o: src/testsuite/vunify-functest.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testsuite_vunify_functest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/testsuite/src_testsuite_vunify_functest-vunify-functest.o -MD -MP -MF "src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Tpo" -c -o src/testsuite/src_testsuite_vunify_functest-vunify-functest.o `test -f 'src/testsuite/vunify-functest.c' || echo '$(srcdir)/'`src/testsuite/vunify-functest.c; \
+@am__fastdepCC_TRUE@ then mv -f "src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Tpo" "src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Po"; else rm -f "src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/testsuite/vunify-functest.c' object='src/testsuite/src_testsuite_vunify_functest-vunify-functest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testsuite_vunify_functest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/testsuite/src_testsuite_vunify_functest-vunify-functest.o `test -f 'src/testsuite/vunify-functest.c' || echo '$(srcdir)/'`src/testsuite/vunify-functest.c
+
+src/testsuite/src_testsuite_vunify_functest-vunify-functest.obj: src/testsuite/vunify-functest.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testsuite_vunify_functest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/testsuite/src_testsuite_vunify_functest-vunify-functest.obj -MD -MP -MF "src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Tpo" -c -o src/testsuite/src_testsuite_vunify_functest-vunify-functest.obj `if test -f 'src/testsuite/vunify-functest.c'; then $(CYGPATH_W) 'src/testsuite/vunify-functest.c'; else $(CYGPATH_W) '$(srcdir)/src/testsuite/vunify-functest.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Tpo" "src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Po"; else rm -f "src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/testsuite/vunify-functest.c' object='src/testsuite/src_testsuite_vunify_functest-vunify-functest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testsuite_vunify_functest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/testsuite/src_testsuite_vunify_functest-vunify-functest.obj `if test -f 'src/testsuite/vunify-functest.c'; then $(CYGPATH_W) 'src/testsuite/vunify-functest.c'; else $(CYGPATH_W) '$(srcdir)/src/testsuite/vunify-functest.c'; fi`
src/src_vkill-vkill.o: src/vkill.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vkill_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_vkill-vkill.o -MD -MP -MF "src/$(DEPDIR)/src_vkill-vkill.Tpo" -c -o src/src_vkill-vkill.o `test -f 'src/vkill.c' || echo '$(srcdir)/'`src/vkill.c; \
@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/src_vkill-vkill.Tpo" "src/$(DEPDIR)/src_vkill-vkill.Po"; else rm -f "src/$(DEPDIR)/src_vkill-vkill.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vkill.c' object='src/src_vkill-vkill.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/src_vkill-vkill.Po' tmpdepfile='src/$(DEPDIR)/src_vkill-vkill.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vkill_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_vkill-vkill.o `test -f 'src/vkill.c' || echo '$(srcdir)/'`src/vkill.c
src/src_vkill-vkill.obj: src/vkill.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vkill_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_vkill-vkill.obj -MD -MP -MF "src/$(DEPDIR)/src_vkill-vkill.Tpo" -c -o src/src_vkill-vkill.obj `if test -f 'src/vkill.c'; then $(CYGPATH_W) 'src/vkill.c'; else $(CYGPATH_W) '$(srcdir)/src/vkill.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/src_vkill-vkill.Tpo" "src/$(DEPDIR)/src_vkill-vkill.Po"; else rm -f "src/$(DEPDIR)/src_vkill-vkill.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vkill.c' object='src/src_vkill-vkill.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/src_vkill-vkill.Po' tmpdepfile='src/$(DEPDIR)/src_vkill-vkill.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vkill_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_vkill-vkill.obj `if test -f 'src/vkill.c'; then $(CYGPATH_W) 'src/vkill.c'; else $(CYGPATH_W) '$(srcdir)/src/vkill.c'; fi`
-src/vlimit.o: src/vlimit.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/vlimit.o -MD -MP -MF "src/$(DEPDIR)/vlimit.Tpo" -c -o src/vlimit.o `test -f 'src/vlimit.c' || echo '$(srcdir)/'`src/vlimit.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/vlimit.Tpo" "src/$(DEPDIR)/vlimit.Po"; else rm -f "src/$(DEPDIR)/vlimit.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vlimit.c' object='src/vlimit.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/vlimit.Po' tmpdepfile='src/$(DEPDIR)/vlimit.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/vlimit.o `test -f 'src/vlimit.c' || echo '$(srcdir)/'`src/vlimit.c
-
-src/vlimit.obj: src/vlimit.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/vlimit.obj -MD -MP -MF "src/$(DEPDIR)/vlimit.Tpo" -c -o src/vlimit.obj `if test -f 'src/vlimit.c'; then $(CYGPATH_W) 'src/vlimit.c'; else $(CYGPATH_W) '$(srcdir)/src/vlimit.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/vlimit.Tpo" "src/$(DEPDIR)/vlimit.Po"; else rm -f "src/$(DEPDIR)/vlimit.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vlimit.c' object='src/vlimit.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/vlimit.Po' tmpdepfile='src/$(DEPDIR)/vlimit.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/vlimit.obj `if test -f 'src/vlimit.c'; then $(CYGPATH_W) 'src/vlimit.c'; else $(CYGPATH_W) '$(srcdir)/src/vlimit.c'; fi`
-
-src/vreboot.o: src/vreboot.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/vreboot.o -MD -MP -MF "src/$(DEPDIR)/vreboot.Tpo" -c -o src/vreboot.o `test -f 'src/vreboot.c' || echo '$(srcdir)/'`src/vreboot.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/vreboot.Tpo" "src/$(DEPDIR)/vreboot.Po"; else rm -f "src/$(DEPDIR)/vreboot.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vreboot.c' object='src/vreboot.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/vreboot.Po' tmpdepfile='src/$(DEPDIR)/vreboot.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/vreboot.o `test -f 'src/vreboot.c' || echo '$(srcdir)/'`src/vreboot.c
-
-src/vreboot.obj: src/vreboot.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/vreboot.obj -MD -MP -MF "src/$(DEPDIR)/vreboot.Tpo" -c -o src/vreboot.obj `if test -f 'src/vreboot.c'; then $(CYGPATH_W) 'src/vreboot.c'; else $(CYGPATH_W) '$(srcdir)/src/vreboot.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/vreboot.Tpo" "src/$(DEPDIR)/vreboot.Po"; else rm -f "src/$(DEPDIR)/vreboot.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vreboot.c' object='src/vreboot.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/vreboot.Po' tmpdepfile='src/$(DEPDIR)/vreboot.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/vreboot.obj `if test -f 'src/vreboot.c'; then $(CYGPATH_W) 'src/vreboot.c'; else $(CYGPATH_W) '$(srcdir)/src/vreboot.c'; fi`
-
-src/vserver-stat.o: src/vserver-stat.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/vserver-stat.o -MD -MP -MF "src/$(DEPDIR)/vserver-stat.Tpo" -c -o src/vserver-stat.o `test -f 'src/vserver-stat.c' || echo '$(srcdir)/'`src/vserver-stat.c; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/vserver-stat.Tpo" "src/$(DEPDIR)/vserver-stat.Po"; else rm -f "src/$(DEPDIR)/vserver-stat.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vserver-stat.c' object='src/vserver-stat.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/vserver-stat.Po' tmpdepfile='src/$(DEPDIR)/vserver-stat.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/vserver-stat.o `test -f 'src/vserver-stat.c' || echo '$(srcdir)/'`src/vserver-stat.c
-
-src/vserver-stat.obj: src/vserver-stat.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/vserver-stat.obj -MD -MP -MF "src/$(DEPDIR)/vserver-stat.Tpo" -c -o src/vserver-stat.obj `if test -f 'src/vserver-stat.c'; then $(CYGPATH_W) 'src/vserver-stat.c'; else $(CYGPATH_W) '$(srcdir)/src/vserver-stat.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "src/$(DEPDIR)/vserver-stat.Tpo" "src/$(DEPDIR)/vserver-stat.Po"; else rm -f "src/$(DEPDIR)/vserver-stat.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vserver-stat.c' object='src/vserver-stat.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='src/$(DEPDIR)/vserver-stat.Po' tmpdepfile='src/$(DEPDIR)/vserver-stat.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/vserver-stat.obj `if test -f 'src/vserver-stat.c'; then $(CYGPATH_W) 'src/vserver-stat.c'; else $(CYGPATH_W) '$(srcdir)/src/vserver-stat.c'; fi`
-
-.cc.o:
-@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-src/vbuild.o: src/vbuild.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/vbuild.o -MD -MP -MF "src/$(DEPDIR)/vbuild.Tpo" -c -o src/vbuild.o `test -f 'src/vbuild.cc' || echo '$(srcdir)/'`src/vbuild.cc; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/vbuild.Tpo" "src/$(DEPDIR)/vbuild.Po"; else rm -f "src/$(DEPDIR)/vbuild.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vbuild.cc' object='src/vbuild.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/vbuild.Po' tmpdepfile='src/$(DEPDIR)/vbuild.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/vbuild.o `test -f 'src/vbuild.cc' || echo '$(srcdir)/'`src/vbuild.cc
-
-src/vbuild.obj: src/vbuild.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/vbuild.obj -MD -MP -MF "src/$(DEPDIR)/vbuild.Tpo" -c -o src/vbuild.obj `if test -f 'src/vbuild.cc'; then $(CYGPATH_W) 'src/vbuild.cc'; else $(CYGPATH_W) '$(srcdir)/src/vbuild.cc'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/vbuild.Tpo" "src/$(DEPDIR)/vbuild.Po"; else rm -f "src/$(DEPDIR)/vbuild.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vbuild.cc' object='src/vbuild.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/vbuild.Po' tmpdepfile='src/$(DEPDIR)/vbuild.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/vbuild.obj `if test -f 'src/vbuild.cc'; then $(CYGPATH_W) 'src/vbuild.cc'; else $(CYGPATH_W) '$(srcdir)/src/vbuild.cc'; fi`
-
-src/vutil.o: src/vutil.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/vutil.o -MD -MP -MF "src/$(DEPDIR)/vutil.Tpo" -c -o src/vutil.o `test -f 'src/vutil.cc' || echo '$(srcdir)/'`src/vutil.cc; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/vutil.Tpo" "src/$(DEPDIR)/vutil.Po"; else rm -f "src/$(DEPDIR)/vutil.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vutil.cc' object='src/vutil.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/vutil.Po' tmpdepfile='src/$(DEPDIR)/vutil.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/vutil.o `test -f 'src/vutil.cc' || echo '$(srcdir)/'`src/vutil.cc
-
-src/vutil.obj: src/vutil.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/vutil.obj -MD -MP -MF "src/$(DEPDIR)/vutil.Tpo" -c -o src/vutil.obj `if test -f 'src/vutil.cc'; then $(CYGPATH_W) 'src/vutil.cc'; else $(CYGPATH_W) '$(srcdir)/src/vutil.cc'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/vutil.Tpo" "src/$(DEPDIR)/vutil.Po"; else rm -f "src/$(DEPDIR)/vutil.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vutil.cc' object='src/vutil.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/vutil.Po' tmpdepfile='src/$(DEPDIR)/vutil.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/vutil.obj `if test -f 'src/vutil.cc'; then $(CYGPATH_W) 'src/vutil.cc'; else $(CYGPATH_W) '$(srcdir)/src/vutil.cc'; fi`
-
-src/vcheck.o: src/vcheck.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/vcheck.o -MD -MP -MF "src/$(DEPDIR)/vcheck.Tpo" -c -o src/vcheck.o `test -f 'src/vcheck.cc' || echo '$(srcdir)/'`src/vcheck.cc; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/vcheck.Tpo" "src/$(DEPDIR)/vcheck.Po"; else rm -f "src/$(DEPDIR)/vcheck.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vcheck.cc' object='src/vcheck.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/vcheck.Po' tmpdepfile='src/$(DEPDIR)/vcheck.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/vcheck.o `test -f 'src/vcheck.cc' || echo '$(srcdir)/'`src/vcheck.cc
-
-src/vcheck.obj: src/vcheck.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/vcheck.obj -MD -MP -MF "src/$(DEPDIR)/vcheck.Tpo" -c -o src/vcheck.obj `if test -f 'src/vcheck.cc'; then $(CYGPATH_W) 'src/vcheck.cc'; else $(CYGPATH_W) '$(srcdir)/src/vcheck.cc'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/vcheck.Tpo" "src/$(DEPDIR)/vcheck.Po"; else rm -f "src/$(DEPDIR)/vcheck.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vcheck.cc' object='src/vcheck.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/vcheck.Po' tmpdepfile='src/$(DEPDIR)/vcheck.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/vcheck.obj `if test -f 'src/vcheck.cc'; then $(CYGPATH_W) 'src/vcheck.cc'; else $(CYGPATH_W) '$(srcdir)/src/vcheck.cc'; fi`
-
-src/vfiles.o: src/vfiles.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/vfiles.o -MD -MP -MF "src/$(DEPDIR)/vfiles.Tpo" -c -o src/vfiles.o `test -f 'src/vfiles.cc' || echo '$(srcdir)/'`src/vfiles.cc; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/vfiles.Tpo" "src/$(DEPDIR)/vfiles.Po"; else rm -f "src/$(DEPDIR)/vfiles.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vfiles.cc' object='src/vfiles.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/vfiles.Po' tmpdepfile='src/$(DEPDIR)/vfiles.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/vfiles.o `test -f 'src/vfiles.cc' || echo '$(srcdir)/'`src/vfiles.cc
-
-src/vfiles.obj: src/vfiles.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/vfiles.obj -MD -MP -MF "src/$(DEPDIR)/vfiles.Tpo" -c -o src/vfiles.obj `if test -f 'src/vfiles.cc'; then $(CYGPATH_W) 'src/vfiles.cc'; else $(CYGPATH_W) '$(srcdir)/src/vfiles.cc'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/vfiles.Tpo" "src/$(DEPDIR)/vfiles.Po"; else rm -f "src/$(DEPDIR)/vfiles.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vfiles.cc' object='src/vfiles.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/vfiles.Po' tmpdepfile='src/$(DEPDIR)/vfiles.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/vfiles.obj `if test -f 'src/vfiles.cc'; then $(CYGPATH_W) 'src/vfiles.cc'; else $(CYGPATH_W) '$(srcdir)/src/vfiles.cc'; fi`
-
-src/src_vunify-vunify.o: src/vunify.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vunify_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/src_vunify-vunify.o -MD -MP -MF "src/$(DEPDIR)/src_vunify-vunify.Tpo" -c -o src/src_vunify-vunify.o `test -f 'src/vunify.cc' || echo '$(srcdir)/'`src/vunify.cc; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/src_vunify-vunify.Tpo" "src/$(DEPDIR)/src_vunify-vunify.Po"; else rm -f "src/$(DEPDIR)/src_vunify-vunify.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vunify.cc' object='src/src_vunify-vunify.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/src_vunify-vunify.Po' tmpdepfile='src/$(DEPDIR)/src_vunify-vunify.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vunify_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/src_vunify-vunify.o `test -f 'src/vunify.cc' || echo '$(srcdir)/'`src/vunify.cc
-
-src/src_vunify-vunify.obj: src/vunify.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vunify_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/src_vunify-vunify.obj -MD -MP -MF "src/$(DEPDIR)/src_vunify-vunify.Tpo" -c -o src/src_vunify-vunify.obj `if test -f 'src/vunify.cc'; then $(CYGPATH_W) 'src/vunify.cc'; else $(CYGPATH_W) '$(srcdir)/src/vunify.cc'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/src_vunify-vunify.Tpo" "src/$(DEPDIR)/src_vunify-vunify.Po"; else rm -f "src/$(DEPDIR)/src_vunify-vunify.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vunify.cc' object='src/src_vunify-vunify.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/src_vunify-vunify.Po' tmpdepfile='src/$(DEPDIR)/src_vunify-vunify.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vunify_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/src_vunify-vunify.obj `if test -f 'src/vunify.cc'; then $(CYGPATH_W) 'src/vunify.cc'; else $(CYGPATH_W) '$(srcdir)/src/vunify.cc'; fi`
-
-src/src_vunify-vutil.o: src/vutil.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vunify_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/src_vunify-vutil.o -MD -MP -MF "src/$(DEPDIR)/src_vunify-vutil.Tpo" -c -o src/src_vunify-vutil.o `test -f 'src/vutil.cc' || echo '$(srcdir)/'`src/vutil.cc; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/src_vunify-vutil.Tpo" "src/$(DEPDIR)/src_vunify-vutil.Po"; else rm -f "src/$(DEPDIR)/src_vunify-vutil.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vutil.cc' object='src/src_vunify-vutil.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/src_vunify-vutil.Po' tmpdepfile='src/$(DEPDIR)/src_vunify-vutil.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vunify_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/src_vunify-vutil.o `test -f 'src/vutil.cc' || echo '$(srcdir)/'`src/vutil.cc
-
-src/src_vunify-vutil.obj: src/vutil.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vunify_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/src_vunify-vutil.obj -MD -MP -MF "src/$(DEPDIR)/src_vunify-vutil.Tpo" -c -o src/src_vunify-vutil.obj `if test -f 'src/vutil.cc'; then $(CYGPATH_W) 'src/vutil.cc'; else $(CYGPATH_W) '$(srcdir)/src/vutil.cc'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "src/$(DEPDIR)/src_vunify-vutil.Tpo" "src/$(DEPDIR)/src_vunify-vutil.Po"; else rm -f "src/$(DEPDIR)/src_vunify-vutil.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/vutil.cc' object='src/src_vunify-vutil.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='src/$(DEPDIR)/src_vunify-vutil.Po' tmpdepfile='src/$(DEPDIR)/src_vunify-vutil.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vunify_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/src_vunify-vutil.obj `if test -f 'src/vutil.cc'; then $(CYGPATH_W) 'src/vutil.cc'; else $(CYGPATH_W) '$(srcdir)/src/vutil.cc'; fi`
-
-tests/escaperoot.o: tests/escaperoot.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tests/escaperoot.o -MD -MP -MF "tests/$(DEPDIR)/escaperoot.Tpo" -c -o tests/escaperoot.o `test -f 'tests/escaperoot.cc' || echo '$(srcdir)/'`tests/escaperoot.cc; \
-@am__fastdepCXX_TRUE@ then mv -f "tests/$(DEPDIR)/escaperoot.Tpo" "tests/$(DEPDIR)/escaperoot.Po"; else rm -f "tests/$(DEPDIR)/escaperoot.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/escaperoot.cc' object='tests/escaperoot.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='tests/$(DEPDIR)/escaperoot.Po' tmpdepfile='tests/$(DEPDIR)/escaperoot.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tests/escaperoot.o `test -f 'tests/escaperoot.cc' || echo '$(srcdir)/'`tests/escaperoot.cc
-
-tests/escaperoot.obj: tests/escaperoot.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tests/escaperoot.obj -MD -MP -MF "tests/$(DEPDIR)/escaperoot.Tpo" -c -o tests/escaperoot.obj `if test -f 'tests/escaperoot.cc'; then $(CYGPATH_W) 'tests/escaperoot.cc'; else $(CYGPATH_W) '$(srcdir)/tests/escaperoot.cc'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "tests/$(DEPDIR)/escaperoot.Tpo" "tests/$(DEPDIR)/escaperoot.Po"; else rm -f "tests/$(DEPDIR)/escaperoot.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/escaperoot.cc' object='tests/escaperoot.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='tests/$(DEPDIR)/escaperoot.Po' tmpdepfile='tests/$(DEPDIR)/escaperoot.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tests/escaperoot.obj `if test -f 'tests/escaperoot.cc'; then $(CYGPATH_W) 'tests/escaperoot.cc'; else $(CYGPATH_W) '$(srcdir)/tests/escaperoot.cc'; fi`
-
-tests/forkbomb.o: tests/forkbomb.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tests/forkbomb.o -MD -MP -MF "tests/$(DEPDIR)/forkbomb.Tpo" -c -o tests/forkbomb.o `test -f 'tests/forkbomb.cc' || echo '$(srcdir)/'`tests/forkbomb.cc; \
-@am__fastdepCXX_TRUE@ then mv -f "tests/$(DEPDIR)/forkbomb.Tpo" "tests/$(DEPDIR)/forkbomb.Po"; else rm -f "tests/$(DEPDIR)/forkbomb.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/forkbomb.cc' object='tests/forkbomb.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='tests/$(DEPDIR)/forkbomb.Po' tmpdepfile='tests/$(DEPDIR)/forkbomb.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tests/forkbomb.o `test -f 'tests/forkbomb.cc' || echo '$(srcdir)/'`tests/forkbomb.cc
-
-tests/forkbomb.obj: tests/forkbomb.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tests/forkbomb.obj -MD -MP -MF "tests/$(DEPDIR)/forkbomb.Tpo" -c -o tests/forkbomb.obj `if test -f 'tests/forkbomb.cc'; then $(CYGPATH_W) 'tests/forkbomb.cc'; else $(CYGPATH_W) '$(srcdir)/tests/forkbomb.cc'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "tests/$(DEPDIR)/forkbomb.Tpo" "tests/$(DEPDIR)/forkbomb.Po"; else rm -f "tests/$(DEPDIR)/forkbomb.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/forkbomb.cc' object='tests/forkbomb.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='tests/$(DEPDIR)/forkbomb.Po' tmpdepfile='tests/$(DEPDIR)/forkbomb.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tests/forkbomb.obj `if test -f 'tests/forkbomb.cc'; then $(CYGPATH_W) 'tests/forkbomb.cc'; else $(CYGPATH_W) '$(srcdir)/tests/forkbomb.cc'; fi`
-
-tests/testipc.o: tests/testipc.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tests/testipc.o -MD -MP -MF "tests/$(DEPDIR)/testipc.Tpo" -c -o tests/testipc.o `test -f 'tests/testipc.cc' || echo '$(srcdir)/'`tests/testipc.cc; \
-@am__fastdepCXX_TRUE@ then mv -f "tests/$(DEPDIR)/testipc.Tpo" "tests/$(DEPDIR)/testipc.Po"; else rm -f "tests/$(DEPDIR)/testipc.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/testipc.cc' object='tests/testipc.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='tests/$(DEPDIR)/testipc.Po' tmpdepfile='tests/$(DEPDIR)/testipc.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tests/testipc.o `test -f 'tests/testipc.cc' || echo '$(srcdir)/'`tests/testipc.cc
-
-tests/testipc.obj: tests/testipc.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tests/testipc.obj -MD -MP -MF "tests/$(DEPDIR)/testipc.Tpo" -c -o tests/testipc.obj `if test -f 'tests/testipc.cc'; then $(CYGPATH_W) 'tests/testipc.cc'; else $(CYGPATH_W) '$(srcdir)/tests/testipc.cc'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "tests/$(DEPDIR)/testipc.Tpo" "tests/$(DEPDIR)/testipc.Po"; else rm -f "tests/$(DEPDIR)/testipc.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/testipc.cc' object='tests/testipc.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='tests/$(DEPDIR)/testipc.Po' tmpdepfile='tests/$(DEPDIR)/testipc.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tests/testipc.obj `if test -f 'tests/testipc.cc'; then $(CYGPATH_W) 'tests/testipc.cc'; else $(CYGPATH_W) '$(srcdir)/tests/testipc.cc'; fi`
-
-tests/testlimit.o: tests/testlimit.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tests/testlimit.o -MD -MP -MF "tests/$(DEPDIR)/testlimit.Tpo" -c -o tests/testlimit.o `test -f 'tests/testlimit.cc' || echo '$(srcdir)/'`tests/testlimit.cc; \
-@am__fastdepCXX_TRUE@ then mv -f "tests/$(DEPDIR)/testlimit.Tpo" "tests/$(DEPDIR)/testlimit.Po"; else rm -f "tests/$(DEPDIR)/testlimit.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/testlimit.cc' object='tests/testlimit.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='tests/$(DEPDIR)/testlimit.Po' tmpdepfile='tests/$(DEPDIR)/testlimit.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tests/testlimit.o `test -f 'tests/testlimit.cc' || echo '$(srcdir)/'`tests/testlimit.cc
-
-tests/testlimit.obj: tests/testlimit.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tests/testlimit.obj -MD -MP -MF "tests/$(DEPDIR)/testlimit.Tpo" -c -o tests/testlimit.obj `if test -f 'tests/testlimit.cc'; then $(CYGPATH_W) 'tests/testlimit.cc'; else $(CYGPATH_W) '$(srcdir)/tests/testlimit.cc'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "tests/$(DEPDIR)/testlimit.Tpo" "tests/$(DEPDIR)/testlimit.Po"; else rm -f "tests/$(DEPDIR)/testlimit.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/testlimit.cc' object='tests/testlimit.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='tests/$(DEPDIR)/testlimit.Po' tmpdepfile='tests/$(DEPDIR)/testlimit.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tests/testlimit.obj `if test -f 'tests/testlimit.cc'; then $(CYGPATH_W) 'tests/testlimit.cc'; else $(CYGPATH_W) '$(srcdir)/tests/testlimit.cc'; fi`
-
-tests/testopenf.o: tests/testopenf.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tests/testopenf.o -MD -MP -MF "tests/$(DEPDIR)/testopenf.Tpo" -c -o tests/testopenf.o `test -f 'tests/testopenf.cc' || echo '$(srcdir)/'`tests/testopenf.cc; \
-@am__fastdepCXX_TRUE@ then mv -f "tests/$(DEPDIR)/testopenf.Tpo" "tests/$(DEPDIR)/testopenf.Po"; else rm -f "tests/$(DEPDIR)/testopenf.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/testopenf.cc' object='tests/testopenf.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='tests/$(DEPDIR)/testopenf.Po' tmpdepfile='tests/$(DEPDIR)/testopenf.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tests/testopenf.o `test -f 'tests/testopenf.cc' || echo '$(srcdir)/'`tests/testopenf.cc
-
-tests/testopenf.obj: tests/testopenf.cc
-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT tests/testopenf.obj -MD -MP -MF "tests/$(DEPDIR)/testopenf.Tpo" -c -o tests/testopenf.obj `if test -f 'tests/testopenf.cc'; then $(CYGPATH_W) 'tests/testopenf.cc'; else $(CYGPATH_W) '$(srcdir)/tests/testopenf.cc'; fi`; \
-@am__fastdepCXX_TRUE@ then mv -f "tests/$(DEPDIR)/testopenf.Tpo" "tests/$(DEPDIR)/testopenf.Po"; else rm -f "tests/$(DEPDIR)/testopenf.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/testopenf.cc' object='tests/testopenf.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='tests/$(DEPDIR)/testopenf.Po' tmpdepfile='tests/$(DEPDIR)/testopenf.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o tests/testopenf.obj `if test -f 'tests/testopenf.cc'; then $(CYGPATH_W) 'tests/testopenf.cc'; else $(CYGPATH_W) '$(srcdir)/tests/testopenf.cc'; fi`
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+ -rm -rf ensc_fmt/.libs ensc_fmt/_libs
+ -rm -rf lib/.libs lib/_libs
+ -rm -rf src/.libs src/_libs
+
+distclean-libtool:
+ -rm -f libtool
uninstall-info-am:
install-man8: $(man8_MANS) $(man_MANS)
@$(NORMAL_INSTALL)
echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
done
+install-pkgconfDATA: $(pkgconf_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkgconfdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfdir)"
+ @list='$(pkgconf_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(pkgconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfdir)/$$f'"; \
+ $(pkgconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfdir)/$$f"; \
+ done
+
+uninstall-pkgconfDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconf_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(pkgconfdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(pkgconfdir)/$$f"; \
+ done
install-pkglibDATA: $(pkglib_DATA)
@$(NORMAL_INSTALL)
test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
@list='$(pkglib_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
$(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
done
uninstall-pkglibDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkglib_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
done
-install-scriptscfgDATA: $(scriptscfg_DATA)
- @$(NORMAL_INSTALL)
- test -z "$(scriptscfgdir)" || $(mkdir_p) "$(DESTDIR)$(scriptscfgdir)"
- @list='$(scriptscfg_DATA)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(scriptscfgDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(scriptscfgdir)/$$f'"; \
- $(scriptscfgDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(scriptscfgdir)/$$f"; \
- done
-
-uninstall-scriptscfgDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(scriptscfg_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " rm -f '$(DESTDIR)$(scriptscfgdir)/$$f'"; \
- rm -f "$(DESTDIR)$(scriptscfgdir)/$$f"; \
- done
install-sysconfDATA: $(sysconf_DATA)
@$(NORMAL_INSTALL)
test -z "$(sysconfdir)" || $(mkdir_p) "$(DESTDIR)$(sysconfdir)"
@list='$(sysconf_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \
$(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
done
uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL)
@list='$(sysconf_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
done
-install-vservercfgDATA: $(vservercfg_DATA)
- @$(NORMAL_INSTALL)
- test -z "$(vservercfgdir)" || $(mkdir_p) "$(DESTDIR)$(vservercfgdir)"
- @list='$(vservercfg_DATA)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(vservercfgDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vservercfgdir)/$$f'"; \
- $(vservercfgDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vservercfgdir)/$$f"; \
- done
-
-uninstall-vservercfgDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(vservercfg_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " rm -f '$(DESTDIR)$(vservercfgdir)/$$f'"; \
- rm -f "$(DESTDIR)$(vservercfgdir)/$$f"; \
- done
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
$(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
done
uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
rm -f "$(DESTDIR)$(includedir)/$$f"; \
done
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
mkid -fID $$unique
tags: TAGS
-TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -z "$$unique" && unique=$$empty_fix; \
+ test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list='$(TESTS)'; \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *" $$tst "*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ echo "XPASS: $$tst"; \
+ ;; \
+ *) \
+ echo "PASS: $$tst"; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *" $$tst "*) \
+ xfail=`expr $$xfail + 1`; \
+ echo "XFAIL: $$tst"; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ echo "FAIL: $$tst"; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ echo "SKIP: $$tst"; \
+ fi; \
+ done; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="All $$all tests passed"; \
+ else \
+ banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all tests failed"; \
+ else \
+ banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ skipped="($$skip tests were not run)"; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ echo "$$dashes"; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
distdir: $(DISTFILES)
+ @case `sed 15q $(srcdir)/NEWS` in \
+ *"$(VERSION)"*) : ;; \
+ *) \
+ echo "NEWS not updated; not releasing" 1>&2; \
+ exit 1;; \
+ esac
$(am__remove_distdir)
mkdir $(distdir)
- $(mkdir_p) $(distdir)/. $(distdir)/distrib $(distdir)/doc $(distdir)/lib $(distdir)/linuxconf $(distdir)/m4 $(distdir)/man $(distdir)/scripts $(distdir)/src $(distdir)/sysv $(distdir)/tests
+ $(mkdir_p) $(distdir)/. $(distdir)/contrib $(distdir)/doc $(distdir)/ensc_fmt $(distdir)/ensc_vector $(distdir)/ensc_vector/testsuite $(distdir)/ensc_wrappers $(distdir)/kernel $(distdir)/lib $(distdir)/lib/apidoc $(distdir)/lib/testsuite $(distdir)/lib_internal $(distdir)/lib_internal/testsuite $(distdir)/m4 $(distdir)/man $(distdir)/scripts $(distdir)/scripts/legacy $(distdir)/src $(distdir)/src/testsuite $(distdir)/sysv $(distdir)/tests $(distdir)/vserver-start
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
|| exit 1; \
fi; \
done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
- $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-tarZ: distdir
- $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
$(am__remove_distdir)
dist dist-all: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
- bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) \
- $(HEADERS) config.h
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(legacydir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(sysvdir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(scriptscfgdir)" "$(DESTDIR)$(sysconfdir)" "$(DESTDIR)$(vservercfgdir)" "$(DESTDIR)$(includedir)"; do \
+ $(MAKE) $(AM_MAKEFLAGS) check-recursive
+all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) \
+ $(MANS) $(DATA) $(HEADERS) config.h
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(legacydir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(initrddir)" "$(DESTDIR)$(legacydir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(pkgconfdir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(sysconfdir)" "$(DESTDIR)$(includedir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
+ $(MAKE) $(AM_MAKEFLAGS) install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-installcheck: installcheck-am
+installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
- -rm -f tests/$(am__dirstamp)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -rm -f ensc_fmt/$(DEPDIR)/$(am__dirstamp)
+ -rm -f ensc_fmt/$(am__dirstamp)
+ -rm -f ensc_vector/$(DEPDIR)/$(am__dirstamp)
+ -rm -f ensc_vector/$(am__dirstamp)
+ -rm -f ensc_vector/testsuite/$(DEPDIR)/$(am__dirstamp)
+ -rm -f ensc_vector/testsuite/$(am__dirstamp)
+ -rm -f lib/$(DEPDIR)/$(am__dirstamp)
-rm -f lib/$(am__dirstamp)
+ -rm -f lib/testsuite/$(DEPDIR)/$(am__dirstamp)
+ -rm -f lib/testsuite/$(am__dirstamp)
+ -rm -f lib_internal/$(DEPDIR)/$(am__dirstamp)
+ -rm -f lib_internal/$(am__dirstamp)
+ -rm -f lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp)
+ -rm -f lib_internal/testsuite/$(am__dirstamp)
+ -rm -f src/$(DEPDIR)/$(am__dirstamp)
-rm -f src/$(am__dirstamp)
+ -rm -f src/testsuite/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/testsuite/$(am__dirstamp)
-rm -f tests/$(DEPDIR)/$(am__dirstamp)
- -rm -f lib/$(DEPDIR)/$(am__dirstamp)
- -rm -f src/$(DEPDIR)/$(am__dirstamp)
+ -rm -f tests/$(am__dirstamp)
+ -rm -f vserver-start/$(DEPDIR)/$(am__dirstamp)
+ -rm -f vserver-start/$(am__dirstamp)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
+clean: clean-recursive
-clean-am: clean-generic clean-libLIBRARIES clean-noinstPROGRAMS \
- clean-pkglibPROGRAMS clean-sbinPROGRAMS mostlyclean-am
+clean-am: clean-checkPROGRAMS clean-generic clean-legacyPROGRAMS \
+ clean-libLIBRARIES clean-libLTLIBRARIES clean-libtool \
+ clean-local clean-noinstLIBRARIES clean-noinstPROGRAMS \
+ clean-pkglibLTLIBRARIES clean-pkglibPROGRAMS \
+ clean-sbinPROGRAMS mostlyclean-am
-distclean: distclean-am
+distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf lib/$(DEPDIR) src/$(DEPDIR) tests/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) ensc_fmt/$(DEPDIR) ensc_vector/$(DEPDIR) ensc_vector/testsuite/$(DEPDIR) lib/$(DEPDIR) lib/testsuite/$(DEPDIR) lib_internal/$(DEPDIR) lib_internal/testsuite/$(DEPDIR) src/$(DEPDIR) src/testsuite/$(DEPDIR) tests/$(DEPDIR) vserver-start/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
- distclean-hdr distclean-local distclean-tags
+ distclean-hdr distclean-libtool distclean-local distclean-tags
-dvi: dvi-am
+dvi: dvi-recursive
dvi-am:
-html: html-am
+html: html-recursive
-info: info-am
+info: info-recursive
info-am:
-install-data-am: install-includeHEADERS install-legacySCRIPTS \
- install-man install-scriptscfgDATA install-sysvSCRIPTS \
- install-vservercfgDATA
+install-data-am: install-includeHEADERS install-initrdSCRIPTS \
+ install-legacyPROGRAMS install-legacySCRIPTS install-man \
+ install-pkgconfDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
-install-exec-am: install-libLIBRARIES install-pkglibDATA \
+install-exec-am: install-libLIBRARIES install-libLTLIBRARIES \
+ install-pkglibDATA install-pkglibLTLIBRARIES \
install-pkglibPROGRAMS install-pkglibSCRIPTS \
install-sbinPROGRAMS install-sbinSCRIPTS install-sysconfDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
-install-info: install-info-am
+install-info: install-info-recursive
install-man: install-man8
-installcheck-am:
+installcheck-am: installcheck-initrdSCRIPTS \
+ installcheck-legacyPROGRAMS installcheck-legacySCRIPTS \
+ installcheck-pkglibPROGRAMS installcheck-pkglibSCRIPTS \
+ installcheck-sbinPROGRAMS installcheck-sbinSCRIPTS
-maintainer-clean: maintainer-clean-am
+maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
- -rm -rf lib/$(DEPDIR) src/$(DEPDIR) tests/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) ensc_fmt/$(DEPDIR) ensc_vector/$(DEPDIR) ensc_vector/testsuite/$(DEPDIR) lib/$(DEPDIR) lib/testsuite/$(DEPDIR) lib_internal/$(DEPDIR) lib_internal/testsuite/$(DEPDIR) src/$(DEPDIR) src/testsuite/$(DEPDIR) tests/$(DEPDIR) vserver-start/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
-mostlyclean: mostlyclean-am
+mostlyclean: mostlyclean-recursive
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
-pdf: pdf-am
+pdf: pdf-recursive
pdf-am:
-ps: ps-am
+ps: ps-recursive
ps-am:
uninstall-am: uninstall-includeHEADERS uninstall-info-am \
- uninstall-legacySCRIPTS uninstall-libLIBRARIES uninstall-man \
- uninstall-pkglibDATA uninstall-pkglibPROGRAMS \
- uninstall-pkglibSCRIPTS uninstall-sbinPROGRAMS \
- uninstall-sbinSCRIPTS uninstall-scriptscfgDATA \
- uninstall-sysconfDATA uninstall-sysvSCRIPTS \
- uninstall-vservercfgDATA
+ uninstall-initrdSCRIPTS uninstall-legacyPROGRAMS \
+ uninstall-legacySCRIPTS uninstall-libLIBRARIES \
+ uninstall-libLTLIBRARIES uninstall-man uninstall-pkgconfDATA \
+ uninstall-pkglibDATA uninstall-pkglibLTLIBRARIES \
+ uninstall-pkglibPROGRAMS uninstall-pkglibSCRIPTS \
+ uninstall-sbinPROGRAMS uninstall-sbinSCRIPTS \
+ uninstall-sysconfDATA
+
+uninstall-info: uninstall-info-recursive
uninstall-man: uninstall-man8
-.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
- clean-generic clean-libLIBRARIES clean-noinstPROGRAMS \
- clean-pkglibPROGRAMS clean-sbinPROGRAMS ctags dist dist-all \
- dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip distcheck \
- distclean distclean-compile distclean-generic distclean-hdr \
- distclean-local distclean-tags distcleancheck distdir \
- distuninstallcheck dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-includeHEADERS install-info \
- install-info-am install-legacySCRIPTS install-libLIBRARIES \
- install-man install-man8 install-pkglibDATA \
- install-pkglibPROGRAMS install-pkglibSCRIPTS \
- install-sbinPROGRAMS install-sbinSCRIPTS \
- install-scriptscfgDATA install-strip install-sysconfDATA \
- install-sysvSCRIPTS install-vservercfgDATA 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-includeHEADERS uninstall-info-am \
- uninstall-legacySCRIPTS uninstall-libLIBRARIES uninstall-man \
- uninstall-man8 uninstall-pkglibDATA uninstall-pkglibPROGRAMS \
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
+ check-TESTS check-am clean clean-checkPROGRAMS clean-generic \
+ clean-legacyPROGRAMS clean-libLIBRARIES clean-libLTLIBRARIES \
+ clean-libtool clean-local clean-noinstLIBRARIES \
+ clean-noinstPROGRAMS clean-pkglibLTLIBRARIES \
+ clean-pkglibPROGRAMS clean-recursive clean-sbinPROGRAMS ctags \
+ ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
+ dist-tarZ dist-zip distcheck distclean distclean-compile \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-local distclean-recursive distclean-tags \
+ distcleancheck distdir distuninstallcheck dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-data-hook install-exec install-exec-am \
+ install-exec-hook install-includeHEADERS install-info \
+ install-info-am install-initrdSCRIPTS install-legacyPROGRAMS \
+ install-legacySCRIPTS install-libLIBRARIES \
+ install-libLTLIBRARIES install-man install-man8 \
+ install-pkgconfDATA install-pkglibDATA \
+ install-pkglibLTLIBRARIES install-pkglibPROGRAMS \
+ install-pkglibSCRIPTS install-sbinPROGRAMS install-sbinSCRIPTS \
+ install-strip install-sysconfDATA installcheck installcheck-am \
+ installcheck-initrdSCRIPTS installcheck-legacyPROGRAMS \
+ installcheck-legacySCRIPTS installcheck-pkglibPROGRAMS \
+ installcheck-pkglibSCRIPTS installcheck-sbinPROGRAMS \
+ installcheck-sbinSCRIPTS installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
+ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-includeHEADERS uninstall-info-am \
+ uninstall-initrdSCRIPTS uninstall-legacyPROGRAMS \
+ uninstall-legacySCRIPTS uninstall-libLIBRARIES \
+ uninstall-libLTLIBRARIES uninstall-man uninstall-man8 \
+ uninstall-pkgconfDATA uninstall-pkglibDATA \
+ uninstall-pkglibLTLIBRARIES uninstall-pkglibPROGRAMS \
uninstall-pkglibSCRIPTS uninstall-sbinPROGRAMS \
- uninstall-sbinSCRIPTS uninstall-scriptscfgDATA \
- uninstall-sysconfDATA uninstall-sysvSCRIPTS \
- uninstall-vservercfgDATA
+ uninstall-sbinSCRIPTS uninstall-sysconfDATA
-linuxcaps.h: ${kernelincludedir}/linux/capability.h Makefile
- @rm -f $@
- echo '#include <stdint.h>' >$@.tmp
- sed -e 's!^#include .*!!g;s!\<__u32\>!uint32_t!g;s!\<__user\>!!g;' $< >>$@.tmp
- @-chmod --reference $< $@.tmp &>/dev/null
- mv -f $@.tmp $@
- @chmod a-w $@
+silent.%: FORCE
+ @t=$$(mktemp /tmp/build.XXXXXX) && \
+ $(MAKE) '$*' -s 2>$$t >/dev/null && \
+ ( cat $$t | \
+ grep -v ': In function' | \
+ grep -v 'your code still has assertions enabled' | \
+ grep -v ' is obsoleted' | \
+ grep -v 'warning: #warning'; \
+ rm -f $$t || : )
linuxvirtual.h:
-@ENSC_ENABLE_INTERNAL_HEADERS_TRUE@ ln -sf '$(top_srcdir)/lib/virtual.h' '$@'
-@ENSC_ENABLE_INTERNAL_HEADERS_FALSE@ ln -sf '$(kernelincludedir)/linux/virtual.h' '$@' && test -e '$@' || \
-@ENSC_ENABLE_INTERNAL_HEADERS_FALSE@ ln -sf '$(top_srcdir)/lib/virtual.h' '$@'
+@ENSC_ENABLE_INTERNAL_HEADERS_TRUE@ ln -sf '$(top_srcdir)/lib/virtual.h' '$@'
+@ENSC_ENABLE_INTERNAL_HEADERS_FALSE@ ln -sf '$(kernelincludedir)/linux/virtual.h' '$@' && test -e '$@' || \
+@ENSC_ENABLE_INTERNAL_HEADERS_FALSE@ ln -sf '$(top_srcdir)/lib/virtual.h' '$@'
-#install-data-hook: $(DESTDIR)$(pkglibdir)/setattr
+pathconfig.h: .pathconfig.h.pathsubst.stamp
+.%.pathsubst.stamp: %.pathsubst Makefile
+ @mkdir -p $$(dirname '$@')
+ @echo "$(SED) -e '...' $*.pathsubst >$*"
+ @$(SED) -e '$(pathsubst_RULES)' '$<' >'$@.tmp'
+ @-chmod --reference='$<' '$@.tmp'
+ @if cmp -s '$@.tmp' '$*'; then \
+ echo "... no changes, reusing old version"; \
+ rm -f '$@.tmp'; \
+ else \
+ rm -f '$*'; mv '$@.tmp' '$*'; \
+ fi
+ @chmod a-w '$*'
+ @touch '$@'
-#$(DESTDIR)$(pkglibdir)/setattr:
-# ln -s showattr '$@'
+update-doc: doc
+ $(top_srcdir)/update-doc
-src/setattr$(EXEEXT): src/showattr$(EXEEXT)
- @rm -f '$@'
- ln -s showattr$(EXEEXT) '$@'
+install-data-hook: install-fix-script-paths install-create-dirs
-scripts/%: scripts/%.subst
- @mkdir -p $$(dirname '$@')
- sed -e 's!@'PKGLIBDIR'@!$(pkglibdir)!g; \
- s!@'SBINDIR'@!$(sbindir)!g; \
- s!@'VSERVERDIR'@!$(vserverdir)!g' '$<' >'$@.tmp'
- @-chmod --reference='$<' '$@.tmp'
- @-rm -f '$@'
- mv '$@.tmp' '$@'
- @chmod a-w '$@'
+install-create-dirs:
+ $(mkinstalldirs) -m 755 $(DESTDIR)$(pkgstatedir) $(DESTDIR)$(pkgstatedir).rev $(DESTDIR)$(vshelperstatedir)
+ $(mkinstalldirs) -m 755 $(DESTDIR)$(confdefaultsdir)
+ f=$(DESTDIR)$(confdefaultsdir)/vdirbase; test -e "$$f" || ln -sf '$(vserverdir)' "$$f"
+ f=$(DESTDIR)$(pkgstaterevdir); test -e "$$f" || ln -sf '$(pkgstatedir).rev' "$$f"
+
+install-fix-script-paths:
+ test "/usr/lib/util-vserver" = "$(pkglibdir)" || \
+ for i in $(fix_SCRPTS); do \
+ f="$(DESTDIR)$$i"; \
+ $(SED) -e 's!/usr/lib/util-vserver!$(pkglibdir)!g' "$$f" >"$$f.tmp"; \
+ $(CMP) -s "$$f.tmp" "$$f" || cat "$$f.tmp" >"$$f"; \
+ rm -f "$$f.tmp"; \
+ done
+
+install-distribution: _install-vserverdir _install-vshelperlink
+
+_install-vshelperlink:
+ $(mkinstalldirs) $(DESTDIR)/sbin
+ ln -sf ..$(pkglibdir)/vshelper $(DESTDIR)/sbin/vshelper
+
+_install-vserverdir:
+ $(mkinstalldirs) $(DESTDIR)$(vserverdir) $(DESTDIR)$(vserverpkgdir)
+
+.fixups: config.status util-vserver.spec
+ chmod a-w util-vserver.spec
+ touch $@
+
+@USE_DIETLIBC_TRUE@$(addsuffix $(EXEEXT), $(DIETPROGS)) \
+@USE_DIETLIBC_TRUE@$(addsuffix $(OBJEXT), $(DIETPROGS)) \
+@USE_DIETLIBC_TRUE@ : CC=$(DIET_CC)
+
+doc: lib/apidoc/.apidoc
+clean-local: clean_lib_apidoc
+
+clean_lib_apidoc:
+ -rm -rf lib/apidoc/html lib/apidoc/latex lib/apidoc/man
+
+lib/apidoc/.apidoc: lib/apidoc/Doxyfile lib/vserver.h lib/internal.h
+ -rm -rf lib/apidoc/html lib/apidoc/latex lib/apidoc/man
+ cd "$$(dirname '$<')" && $(DOXYGEN) "$$(basename '$<')"
+ $(MAKE) -j1 -C lib/apidoc/latex
+ touch '$@'
+
+install-exec-hook: src_install_exec_hook
+
+src_install_exec_hook:
+ -rm -f $(DESTDIR)$(pkglibdir)/rpm-fake.a $(DESTDIR)$(pkglibdir)/rpm-fake.la
+
+clean-local: clean-testsuite
+
+clean-testsuite:
+ rm -rf src/testsuite/.libs src/testsuite/_libs
+
+doc/configuration.html: STYLESHEET=$(srcdir)/doc/configuration-xhtml.xsl
+doc/configuration.html: $(srcdir)/doc/configuration-xhtml.xsl
+
+doc/compatibility.html: STYLESHEET=$(srcdir)/doc/compatibility-xhtml.xsl
+doc/compatibility.html: $(srcdir)/doc/compatibility-xhtml.xsl
+
+doc: doc_doc
+doc_doc: $(doc_gen_DOCS)
+@HAVE_XSLTP_TRUE@%.html: %.xml $(STYLESHEET)
+@HAVE_XSLTP_TRUE@ @-rm -f '$@.tmp' '$@'
+@HAVE_XSLTP_TRUE@ LANG=C $(XSLTP) $(XSLTP_AMFLAGS) -in '$<' -xsl $(STYLESHEET) -out '$@.tmp'
+@HAVE_XSLTP_TRUE@ @mv -f '$@.tmp' '$@'
+@HAVE_XSLTPROC_TRUE@@HAVE_XSLTP_FALSE@%.html: %.xml $(STYLESHEET)
+@HAVE_XSLTPROC_TRUE@@HAVE_XSLTP_FALSE@ @-rm -f '$@.tmp' '$@'
+@HAVE_XSLTPROC_TRUE@@HAVE_XSLTP_FALSE@ $(XSLTPROC) $(XSLT_FLAGS) $(XSLT_AMFLAGS) -o '$@.tmp' "$(STYLESHEET)" "$<"
+@HAVE_XSLTPROC_TRUE@@HAVE_XSLTP_FALSE@ @mv -f '$@.tmp' '$@'
+
+scripts/util-vserver-vars: scripts/.util-vserver-vars.pathsubst.stamp
+scripts/legacy/vps: scripts/legacy/.vps.pathsubst.stamp
sysv/%: sysv/%.subst
@mkdir -p $$(dirname '$@')
- sed -e 's!/usr/lib/util-vserver!$(pkglibdir)!g; \
- s!^USR_SBIN=/usr/sbin$$!USR_SBIN=$(sbindir)!g; \
- s!^VROOTDIR=/vservers$$!VROOTDIR=$(vserverdir)!g; \
- ' '$<' >'$@.tmp'
- if cmp -s '$<' '$@.tmp'; then \
+ sed -e '$(sysv_SUBSTRULE)' '$<' >'$@.tmp'
+ @rm -f '$@'
+ @if cmp -s '$<' '$@.tmp'; then \
cp -p '$<' '$@'; \
else \
mv -f '$@.tmp' '$@'; \
fi
- -rm -f '$@.tmp'
+ @rm -f '$@.tmp'
@chmod a-w '$@'
-@ENSC_ENABLE_LINUXCONF_TRUE@linuxconf/%: linuxconf/%.subst
-@ENSC_ENABLE_LINUXCONF_TRUE@ @mkdir -p $$(dirname '$@')
-@ENSC_ENABLE_LINUXCONF_TRUE@ sed -e 's!@'PKGLIBDIR'@!$(pkglibdir)!g; \
-@ENSC_ENABLE_LINUXCONF_TRUE@ s!@'SBINDIR'@!$(sbindir)!g' '$<' >'$@.tmp'
-@ENSC_ENABLE_LINUXCONF_TRUE@ @-chmod --reference='$<' '$@.tmp'
-@ENSC_ENABLE_LINUXCONF_TRUE@ @-rm -f '$@'
-@ENSC_ENABLE_LINUXCONF_TRUE@ mv '$@.tmp' '$@'
-@ENSC_ENABLE_LINUXCONF_TRUE@ @chmod a-w '$@'
+contrib/manifest.dat: contrib/.manifest.dat.pathsubst.stamp
gpgsig:
- gpg --armor --detach-sign $(distdir).tar.bz2
+ gpgkey=$(GPG_KEY); \
+ gpg $${gpgkey:+--default-key "$$gpgkey"} --armor --detach-sign $(distdir).tar.bz2
$(BUILT_SOURCES) config.h: .X$(subst /,_,$(sysconfdir))-up-to-date
@HAVE_CVS2CL_FALSE@@HAVE_RCS2LOG_TRUE@ fi
.PHONY: ChangeLog
+
+%.pc: %.pc.subst Makefile
+ rm -f $@
+ @case '$(libdir)' in \
+ $(BAD_LIB_PATHS)) libflags=;; \
+ *) libflags='-L$${libdir} ';; \
+ esac; \
+ case '$(pkgincludedir)' in \
+ $(BAD_INC_PATHS)) pkgincflags=;; \
+ *) pkgincflags='-I$${pkgincludedir} ';; \
+ esac; \
+ case '$(includedir)' in \
+ $(BAD_INC_PATHS)) incflags=;; \
+ *) incflags='-I$${includedir} ';; \
+ esac; \
+ sed -e 's!@'PACKAGE'@!$(PACKAGE)!g; \
+ s!@'VERSION'@!$(VERSION)!g; \
+ s!@'prefix'@!$(prefix)!g; \
+ s!@'exec_prefix'@!$(exec_prefix)!g; \
+ s!@'libdir'@!$(libdir)!g; \
+ s!@'includedir'@!$(includedir)!g; \
+ s!@'libflags"@!$${libflags}$(pkgconf_LIBFLAGS)!g;"' \
+ s!@'incflags"@!$${incflags}$(pkgconf_INCFLAGS)!g;"' \
+ s!@'pkgincflags"@!$${pkgincflags}$(pkgconf_PKGINCFLAGS)!g;"' \
+ s!@'pkgincludedir'@!$(pkgincludedir)!g' \
+ $< >$@
+ test -z "$(CHMOD_REFERENCE)" || $(CHMOD_REFERENCE) '$<' '$@'
+ chmod a-w $@
+
+# if !ENSC_USE_DIETLIBC
+# if !ENSC_USE_GLIBC
+# nodist_lib_nolib_enabled_error_a_SOURCES = \
+# lib-nolib-enabled-error.c
+# endif
+# endif
+
+.PHONY: lib-glibc-not-enabled-error.a \
+ lib-glibc-not-enabled-error.c \
+ lib-dietlibc-not-enabled-error.a \
+ lib-dietlibc-not-enabled-error.c \
+ lib-nolib-enabled-error.a \
+ lib-nolib-enabled-error.c
+
+install-exec-hook install-data-hook: install-notify-xtra
+
+install-notify-xtra:
+ @echo
+ @echo
+ @echo '***************************'
+ @echo '*'
+ @echo '* NOTE: a plain "make install" installs only the files under $$(prefix)'
+ @echo '* which might be insufficient. To complete the installation,'
+ @echo '* "make install-distribution" should be executed. See README,'
+ @echo '* "Notes for distributors" for details.'
+ @echo '*'
+ @echo '***************************'
+ @echo
+ @echo
+
+.PHONY: install-notify-xtra
+
+.PHONY: FORCE update-doc
# 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:
-Version 0.30
-============
+version 0.30.208
+================
- - BUGFIX: vlimit: fixed communication with kernel so that it
- should work now. Output of this tools has been enhanced too.
-
- - BUGFIX: fixed off-by-one error when setting ipv4root; now the
- full 16 IPs can be specified instead of 15 formerly
-
- - added better detection for the syscall number; this can solve
- problems on non-ix86 architectures where __NR_vserver is not 273
-
- - BUGFIX/ENHANCEMENTS: the CLI interface of 'reducecap' was fixed
- significantly: now it is possible to remove capabilities like
- CHOWN'. Formerly, only privileged caps like SYS_* or *_ADMIN
- could be removed because of a coding error. Changes in the
- related code are making it possible that both '--CAP_XXX' and
- '--XXX' syntax will be recognized (based on patches and reports
- by Bodo Eggert).
-
- - cleaned up the documentation and removed unused files
-
- - "minimum" installation method: added fc1 target, fixed the rh9
- filelist and use '-HS' in the sample.conf (reported by Arne
- Blankerts)
-
- - 'distrib-info' knows now how to deal with Debian; vunify &
- related tools should now work there (patch provided by Matthew
- Lavy)
-
- - init-scripts are now a little bit more Debian compliantly
- (Savannah patch #2633; provided by Noèl Köthe)
-
-
-
-Version 0.29
-============
-
- - further compilation fixes
-
- - adapted the 'vserver ... build' command to the new barrier
- mechanism
-
-
-
-Version 0.28
-============
-
- - BUGFIX: fixed context creation when both fakeinit-flag and a
- static context is wanted; previous versions ignored the fakeinit
- flag in this situation
-
- - BUGFIX: vserver-copy: autodetect mktemp/tempfile (reported by
- DUCLOS Andre)
-
- - FEATURE: allow to override start/stop commands of vservers
- (patch by Erik Smit)
-
- - BUGFIX: call 'chkconfig' to fix initscripts *after* generating
- the configuration (reported by DUCLOS Andre)
-
- - call programs with 'exec' on vserver's 'suexec' command (patch
- by Alec Thomas)
-
- - improved e2fsprogs header detection
-
- - API-CHANGE: removed argument from vc_get_version() since the
- only supported category is VC_CAT_COMPAT
-
-
-Version 0.27
-============
-
- - added new 'vkill' implementation which uses the syscall from
- vserver 1.1.6+.
-
- - BUGFIX: fixed typo in vc_get_version() wrapper which caused an
- infinite recursive call of this function; this should not have
- affected any userspace program
-
- - BUGFIX: 'vps' accepts multiple arguments now (from Debian patch)
-
- - vc_ctx_kill() was added
-
- - chrootsafe() code was removed since such a functionality seems
- to be impossible
-
- - use 'vserver' instead of 'virtual_context' as the syscall name;
- this will fix problems with architectures where the syscall is not
- at #273.
-
- - BUGFIX: fixed '--enable-apis' ./configure option; formerly, only
- 'ALL' or none were possible
-
- - moved some old, unused programs/scripts into a seperate 'legacy'/
- directory
-
- - BUGFIX: /dev/pts will be mounted with correct options now
-
- - added support for Slackware's init-method (thanks to Stephen
- Pearce for the patch)
-
- - API-CHANGE: followed kernel patches and renamed 'ctx_t' datatype
- to 'xid_t'.
-
-
-Version 0.26
-============
-
- - BUGFIX: uninitialized variables in 'ifspec' were fixed and
- error-messages will be given out when ioctl() on the requested
- interface fails (thanks to Herbert Poetzl)
-
- - BUGFIX: fixed vc_get_rlimit_mask() to return the queried
- values. This step was missing in 0.25 which returned the
- error-code only.
-
- - use the shipped 'virtual.h' header on default instead of the
- kernel version. The old Behavior can be restored with the
- '--disable-internal-headers' ./configure option
-
-
-Version 0.25
-============
-
- - BUGFIX: this version fixes handling of ctx >= 32768
-
- - experimental support for new resource-limit syscall was add
- (vserver >= 1.1.3); the new 'vlimit' tool replaces 'setctxlimit'
-
- - some man-pages were added and init-scripts improved (taken from
- Debian patches provided by Sam Vilain)
-
- - basic Gentoo support was added to the 'vserver' script (thanks to
- "Allen D. Parker II")
-
- - compilation fixes for kernel 2.6 headers
-
- - set mode/owner of /var/run/utmp (owner is customizable through
- $UTMP_GROUP)
-
-
-Version 0.24
-============
-
- - updated to new syscall API (patch c17h and later)
-
- - revived copy-all-mode for 'vserver ... build' (can be disabled
- with $UTIL_VSERVER_AVOID_COPY)
-
- - use '-HS' ulimit switch for newly created vservers
-
- - added QUOTACTL capability, removed OPENDEV capability
-
- - location of vservers-rootdir can now be configured through a
- '--with-vrootdir' configure switch; it defaults still to
- '/vservers'
-
- - build of 'newvserver' linuxconf-module is conditionalized since
- it is unsupported and will be dropped in future versions. To
- enable it. call './configure' with '--enable-linuxconf'.
+ - large revamping...
version 0.23.6
-Build-Requirements:
+Some common notes/FAQs:
+======================
- * at least gcc-2.95 (C and C++ frontends)
+* when vserver startup/shutdown fails, or when you get
- * when using 2.6 kernel-headers, the 'e2fsprogs' headers are
- required. RHL/Fedora Core ships them in the 'e2fsprogs-devel'
- package, Mandrake in 'libext2fs2-devel'.
+ | Error: /proc must be mounted
- Using these headers with kernel 2.4 will not hurt and can prevent
- problems, so they are strongly recommended.
+ errors, make sure, that 'vprocunhide' was executed. When installing
+ 'util-vserver' with packagemanagement, an appropriate initscript
+ should be installed
+
+* the name of old-style vservers is shown on 2.4 kernels only; the
+ needed functionality is not implemented for 2.6 kernels.
+
+
+
+Some distribution specific notes:
+=================================
+
+Red Hat 7.3, Red Hat 9, Fedora Core 1&2
+---------------------------------------
+* tested and running successfully as host and guest systems
+
+* it is *strongly* suggested to use the rpm packages which can be
+ created from the tarball with
+
+ | $ rpmbuild -tb util-vserver-<version>.tar.bz2
+
+ For distributions below Fedora Core 2, additional
+
+ | --without dietlibc --without xalan
+
+ flags are required for the 'rpmbuild' command. Builds on Red Hat 7.3
+ will require a
+
+ | --nodeps
+
+ also, since 'vconfig' is not available there. Since it is required
+ for path-detection only and paths from RH systems will be assumed by
+ default, this should not be a big problem.
+
+* guest systems can be created with the 'apt-rpm' or 'yum' build-methods.
+ The first one requires the 'apt' package e.g. from http://fedora.us and
+ the configuration of a near mirror in
+
+ | /etc/vservers/.distributions/<id>/apt/sources.list
+
+ (To avoid slashdotting by the masses of util-vserver-users, there
+ does not exist a standard mirror).
+
+ The 'yum' method uses the repository configuration shipped by the
+ fedora-release package.
+
+* RH/FC uses the 'sysv' initstyle which is assumed by default
+
+* when having existing vservers with RH 9 or Fedora Core 1, the startup
+ of the vserver will probably fail. You will have to add
+
+ | true
+
+ to etc/rc.d/rc (within the vserver root directory)
+
+* when having RH/FC guestsystems, it is *strongly* recommended to use
+ a dietlibc linked version of 'rpm-fake-resolver'. Else, package
+ installation with 'vrpm', 'vapt-get' or 'vyum' can fail since users
+ can not be resolved.
+
+
+
+Debian Woody & Sarge
+--------------------
+* tested and running successfully as guest systems on FC1/FC2 hosts
+
+* guest systems can be created with the 'debootstrap' method. When
+ not already existing, the needed package will be downloaded
+ automatically. Since it is updated very often, it can happen
+ that a '404 Not found' error occurs; in this case look either
+ for a newer util-vserver package, or configure the new URI e.g. with
+
+ | echo 'http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_<version>_i386.deb' \
+ | >/etc/vservers/.defaults/apps/debootstrap/uri
+
+ You can download a local copy of this tarball also, and register it
+ with
+
+ | echo '/<path-to-the-tarball>' \
+ | >/etc/vservers/.defaults/apps/debootstrap/uri
+
+* it is known, that warning messages will be created at startup and
+ shutdown of guest servers. This is non fatal and can be ignored
+
+* Debian guest systems are running fine with the 'sysv' initstyle;
+ success with 'plain' was reported also
+
+* no packages for Debian hosts are known at time of writing (May 2004)
+
+
+
+Gentoo
+------
+* Gentoo guest systems are very complicated and are requiring lots of
+ modifications in the initscripts. Currently, no step-by-step guide
+ can be provided
+
+* 'sysv' initstyle is probably not working for Gentoo guests (e.g. you
+ will see messages about missing 'utmp' files); 'gentoo' should be
+ used instead of:
+
+ | echo 'gentoo' >/etc/vservers/<id>/apps/init/style
+
+* there does not exist a build-method for Gentoo guests; instead of,
+ create a skeleton with
+
+ | # vserver <id> build -m skeleton --initstyle gentoo <other-opts>*
+
+ and fill the vserver directory at /etc/vservers/<id>/vdir/ manually.
+
+
+
+Notes for distributors:
+=======================
+
+To generate FHS compliant paths, call configure with
+
+| ./configure --prefix=/usr --mandir=/usr/share/man \
+| --sysconfdir=/etc --localstatedir=/var \
+| --with-vrootdir=<an FHS compliant path for /vservers>
+
+Except the '--with-vrootdir' option, rpm's '%configure' option will
+expand to this.
+
+
+There exists a 'make install-distribution' target which installs
+files outside of the configured 'prefix'. In particular, these files are:
+
+* the /sbin/vshelper symlink
+* the /vservers and related directories (or whatever you configured
+ with '--with-vrootdir')
+
+Without this rule, 'make distcheck' would fail.
+
+
+It might be needed also, to call 'setattr --barrier /vservers' in an
+after-installation script.
+
+
+
+Which version shall I use?
+==========================
+
+As you probably know, two branches of 'util-vserver' are existing: the
+'stable' one, and the 'alpha' one. This terms are to be understood as
+a level of the featureset stability but not of the software stability.
+
+E.g. 'stable' is not really stable: it has huge security problems and
+missing functionality. But you can expect that the current configuration
+will work in future versions also. This version is untested on author's
+side and it will be hard to bring patches/fixes in, since it must be
+proofed that they will not break anything.
+
+In the opposite, the 'alpha' branch does not have known security issues
+and works well (at least on author's system ;)). But it may happen
+that some behavior or configuration options change.
+
+With 'alpha' you should be still able to use vservers created with the
+'stable' branch, but you may encounter some oddities -- especially on
+kernel 2.6 systems (e.g. 'vserver-stat' will not show the names of old
+vservers).
+
+
+So let me summarize:
+
+* when you have productive vservers running for some years already, stay
+ at the 'stable' branch. A change to 'alpha' will need a completely
+ rewritten configuration which must be perhaps changed again.
+
+* when you are new at vservers, use the 'alpha' branch. You will have
+ to learn the principles of vserver configuration for both branches
+ but 'alpha' makes some things easier.
+
+* when you have existing vservers and want all the new kernel 2.6
+ functionality, use the 'alpha' branch.
+
+
+A last note: the 'alpha' branch works both with the stable 2.4 and the
+development 2.6 kernel patch.
+
+
+
+## $Id: README,v 1.7 2005/01/27 19:07:05 ensc Exp $
--- /dev/null
+Build requirements:
+* iproute/iproute2
+* iptables
+* vconfig/vlan (see http://www.candelatech.com/~greear/vlan.html)
+* wget
+
+Recommended build environment:
+* gcc >= 3
+* beecrypt-devel
+* dietlibc >= 0.25
Sam Vilain,
for providing man-pages and patches used in the Debian package
+Olivier Poitrey
+ for his work on the XML/XSD based documentation format
+
all the other people, who contributed to the original 'vserver' package
-# generated automatically by aclocal 1.8.4 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005 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.
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
+Xsed='sed -e 1s/^X//'
[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
# Same as above, but do not quote variable references.
old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
fi
+_LT_CC_BASENAME([$compiler])
+
# Only perform the check for file, if the check method requires it
case $deplibs_check_method in
file_magic*)
])# _LT_AC_SYS_COMPILER
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+AC_DEFUN([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+ case $cc_temp in
+ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+AC_DEFUN([_LT_COMPILER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+AC_DEFUN([_LT_LINKER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_LINKER_BOILERPLATE
+
+
# _LT_AC_SYS_LIBPATH_AIX
# ----------------------
# Links a minimal program and checks the executable
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
if test -z "$ECHO"; then
if test "X${echo_test_string+set}" != Xset; then
echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test ! -s conftest.err; then
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
$2=yes
fi
fi
if test -s conftest.err; then
# Append any errors to the config.log.
cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
else
$2=yes
fi
lt_cv_sys_max_cmd_len=8192;
;;
- *)
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for *BSD
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ *)
# If test is not a shell built-in, we'll probably end up computing a
# maximum length that is only half of the actual maximum length, but
# we can't tell.
- while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
= "XX$teststring") >/dev/null 2>&1 &&
new_result=`expr "X$teststring" : ".*" 2>&1` &&
lt_cv_sys_max_cmd_len=$new_result &&
then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
- if test ! -s out/conftest.err; then
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
fi
fi
[AC_MSG_CHECKING([how to hardcode library paths into programs])
_LT_AC_TAGVAR(hardcode_action, $1)=
if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
- test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
- test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
+ test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
+ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
# We can hardcode non-existant directories.
if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
shlibpath_var=LIBRARY_PATH
;;
-bsdi4*)
+bsdi[[45]]*)
version_type=linux
need_version=no
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
;;
pw32*)
# pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
;;
esac
;;
dynamic_linker='GNU ld.so'
;;
-freebsd*)
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
version_type=freebsd-$objformat
case $version_type in
freebsd2*)
shlibpath_overrides_runpath=yes
;;
- freebsd3.[01]* | freebsdelf3.[01]*)
+ freebsd3.[[01]]* | freebsdelf3.[[01]]*)
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '`
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi
openbsd*)
version_type=sunos
need_lib_prefix=no
- need_version=yes
+ need_version=no
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
shlibpath_var=LD_LIBRARY_PATH
case $tagname in
CXX)
- if test -n "$CXX" && test "X$CXX" != "Xno"; then
+ if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
AC_LIBTOOL_LANG_CXX_CONFIG
else
tagname=""
*) reload_flag=" $reload_flag" ;;
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
])# AC_PROG_LD_RELOAD_FLAG
lt_cv_deplibs_check_method=pass_all
;;
-bsdi4*)
+bsdi[[45]]*)
lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
lt_cv_file_magic_cmd='/usr/bin/file -L'
lt_cv_file_magic_test_file=/shlib/libc.so
lt_cv_deplibs_check_method=pass_all
;;
-freebsd* | kfreebsd*-gnu)
+freebsd* | kfreebsd*-gnu | dragonfly*)
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
case $host_cpu in
i*86 )
# Not sure whether the presence of OpenBSD here was a mistake.
# Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
;;
# This must be Linux ELF.
linux*)
- case $host_cpu in
- alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64*)
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
lt_cv_deplibs_check_method=pass_all
;;
;;
openbsd*)
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
else
- lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
fi
;;
# ---------------
AC_DEFUN([_LT_AC_LANG_CXX],
[AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
])# _LT_AC_LANG_CXX
+# _LT_AC_PROG_CXXCPP
+# ---------------
+AC_DEFUN([_LT_AC_PROG_CXXCPP],
+[
+AC_REQUIRE([AC_PROG_CXX])
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ AC_PROG_CXXCPP
+fi
+])# _LT_AC_PROG_CXXCPP
# AC_LIBTOOL_F77
# --------------
_LT_AC_SYS_COMPILER
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
#
# Check for any special shared library compilation flags.
#
aix4* | aix5*)
if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- darwin* | rhapsody*)
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- case "$host_os" in
- rhapsody* | darwin1.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
- ;;
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
- else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
- ;;
- 10.*)
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
- ;;
- esac
- fi
- ;;
- esac
- output_verbose_link_cmd='echo'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
fi
;;
esac
AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
[AC_LANG_PUSH(C++)
AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
_LT_AC_TAGVAR(allow_undefined_flag, $1)=
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
# Allow CC to be a program name with arguments.
lt_save_CC=$CC
lt_save_LD=$LD
CC=${CXX-"c++"}
compiler=$CC
_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+_LT_CC_BASENAME([$compiler])
# We don't want -fno-exception wen compiling C++ code, so set the
# no_builtin_flag separately
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
if test "$GXX" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
# We only want to do this on AIX 4.2 and lower, the check
# below for broken collect2 doesn't work under 4.3+
collect2name=`${CC} -print-prog-name=collect2`
fi
esac
shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
else
# not using gcc
if test "$host_cpu" = ia64; then
esac
;;
+
cygwin* | mingw* | pw32*)
# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
# as there is no search path for DLLs.
_LT_AC_TAGVAR(ld_shlibs, $1)=no
fi
;;
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- darwin* | rhapsody*)
- if test "$GXX" = yes; then
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- case "$host_os" in
- rhapsody* | darwin1.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
- ;;
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
+ if test "$GXX" = yes ; then
+ lt_int_apple_cc_single_mod=no
+ output_verbose_link_cmd='echo'
+ if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
+ lt_int_apple_cc_single_mod=yes
+ fi
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
- ;;
- 10.*)
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
- ;;
- esac
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ fi
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
fi
- ;;
- esac
- lt_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
- lt_int_apple_cc_single_mod=yes
- fi
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- fi
- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
+ ;;
dgux*)
case $cc_basename in
- ec++)
+ ec++*)
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- ghcx)
+ ghcx*)
# Green Hills C++ Compiler
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
esac
;;
- freebsd[12]*)
+ freebsd[[12]]*)
# C++ shared libraries reported to be fairly broken before switch to ELF
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
freebsd-elf*)
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
;;
- freebsd* | kfreebsd*-gnu)
+ freebsd* | kfreebsd*-gnu | dragonfly*)
# FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
# conventions
_LT_AC_TAGVAR(ld_shlibs, $1)=yes
# location of the library.
case $cc_basename in
- CC)
+ CC*)
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- aCC)
+ aCC*)
_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# explicitly linking system object files so we need to strip them
# from the output so that they don't get included in the library
# dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
;;
*)
if test "$GXX" = yes; then
esac
case $cc_basename in
- CC)
+ CC*)
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- aCC)
+ aCC*)
case "$host_cpu" in
hppa*64*|ia64*)
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
;;
irix5* | irix6*)
case $cc_basename in
- CC)
+ CC*)
# SGI C++
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
# Archives containing C++ object files must be created using
# "CC -ar", where "CC" is the IRIX C++ compiler. This is
*)
if test "$GXX" = yes; then
if test "$with_gnu_ld" = no; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
else
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
fi
;;
linux*)
case $cc_basename in
- KCC)
+ KCC*)
# Kuck and Associates, Inc. (KAI) C++ Compiler
# KCC will only create a shared library if the output file
# "CC -Bstatic", where "CC" is the KAI C++ compiler.
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
;;
- icpc)
+ icpc*)
# Intel C++
with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
;;
- cxx)
+ pgCC*)
+ # Portland Group C++ compiler
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+ ;;
+ cxx*)
# Compaq C++
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
;;
mvs*)
case $cc_basename in
- cxx)
+ cxx*)
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
# Workaround some broken pre-1.5 toolchains
output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
;;
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ openbsd*)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd='echo'
+ ;;
osf3*)
case $cc_basename in
- KCC)
+ KCC*)
# Kuck and Associates, Inc. (KAI) C++ Compiler
# KCC will only create a shared library if the output file
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
;;
- RCC)
+ RCC*)
# Rational C++ 2.4.1
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- cxx)
+ cxx*)
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
*)
if test "$GXX" = yes && test "$with_gnu_ld" = no; then
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
;;
osf4* | osf5*)
case $cc_basename in
- KCC)
+ KCC*)
# Kuck and Associates, Inc. (KAI) C++ Compiler
# KCC will only create a shared library if the output file
# the KAI C++ compiler.
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
;;
- RCC)
+ RCC*)
# Rational C++ 2.4.1
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- cxx)
+ cxx*)
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~
$rm $lib.exp'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
*)
if test "$GXX" = yes && test "$with_gnu_ld" = no; then
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
sco*)
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
case $cc_basename in
- CC)
+ CC*)
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
;;
sunos4*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.x
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- lcc)
+ lcc*)
# Lucid
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
solaris*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.2, 5.x and Centerline C++
_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
*)
# The C++ compiler is used as linker so we must use $wl
# flag to pass the commands to the underlying system
- # linker.
+ # linker. We must also pass each convience library through
+ # to the system linker between allextract/defaultextract.
+ # The C++ compiler will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl.
# Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
;;
esac
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
# in the archive.
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
;;
- gcx)
+ gcx*)
# Green Hills C++ Compiler
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
;;
tandem*)
case $cc_basename in
- NCC)
+ NCC*)
# NonStop-UX NCC 3.20
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
# Allow CC to be a program name with arguments.
lt_save_CC="$CC"
CC=${F77-"f77"}
compiler=$CC
_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+_LT_CC_BASENAME([$compiler])
AC_MSG_CHECKING([if libtool supports shared libraries])
AC_MSG_RESULT([$can_build_shared])
fi
;;
aix4* | aix5*)
- test "$enable_shared" = yes && enable_static=no
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
;;
esac
AC_MSG_RESULT([$enable_shared])
lt_simple_compile_test_code="class foo {}\n"
# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n'
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
# Allow CC to be a program name with arguments.
lt_save_CC="$CC"
CC=${GCJ-"gcj"}
compiler=$CC
_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
# GCJ did not exist at the time GCC didn't implicitly link libc in.
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
AC_LIBTOOL_PROG_COMPILER_PIC($1)
AC_LIBTOOL_PROG_CC_C_O($1)
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
# Allow CC to be a program name with arguments.
lt_save_CC="$CC"
CC=${RC-"windres"}
compiler=$CC
_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
AC_LIBTOOL_CONFIG($1)
#
# 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.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
SED=$lt_SED
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e s/^X//"
+Xsed="$SED -e 1s/^X//"
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# The names of the tagged configurations supported by this script.
available_tags=
# The host system.
host_alias=$host_alias
host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
# An echo program that does not interpret backslashes.
echo=$lt_echo
# Does compiler simultaneously support -c and -o options?
compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
-# Must we lock files when doing compilation ?
+# Must we lock files when doing compilation?
need_locks=$lt_need_locks
# Do we need the lib prefix for modules?
# Regexp to match symbols that can be accessed directly from C.
sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
# Transform an extracted symbol line into a proper C declaration
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
;;
+linux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[[ABCDGIRSTW]]'
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ fi
+ ;;
irix* | nonstopux*)
symcode='[[BCDEGRST]]'
;;
# Try without a prefix undercore, then with it.
for ac_symprfx in "" "_"; do
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
# Write the raw and C identifiers.
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
# Check to see that the pipe works correctly.
pipe_works=no
;;
chorus*)
case $cc_basename in
- cxch68)
+ cxch68*)
# Green Hills C++ Compiler
# _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
;;
esac
;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ esac
+ ;;
dgux*)
case $cc_basename in
- ec++)
+ ec++*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
;;
- ghcx)
+ ghcx*)
# Green Hills C++ Compiler
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
;;
;;
esac
;;
- freebsd* | kfreebsd*-gnu)
+ freebsd* | kfreebsd*-gnu | dragonfly*)
# FreeBSD uses GNU C++
;;
hpux9* | hpux10* | hpux11*)
case $cc_basename in
- CC)
+ CC*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
if test "$host_cpu" != ia64; then
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
fi
;;
- aCC)
+ aCC*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
case "$host_cpu" in
;;
irix5* | irix6* | nonstopux*)
case $cc_basename in
- CC)
+ CC*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
# CC pic flag -KPIC is the default.
;;
linux*)
case $cc_basename in
- KCC)
+ KCC*)
# KAI C++ Compiler
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
;;
- icpc)
+ icpc* | ecpc*)
# Intel C++
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
- cxx)
+ pgCC*)
+ # Portland Group C++ compiler.
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ cxx*)
# Compaq C++
# Make sure the PIC flag is empty. It appears that all Alpha
# Linux and Compaq Tru64 Unix objects are PIC.
;;
mvs*)
case $cc_basename in
- cxx)
+ cxx*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
;;
*)
;;
osf3* | osf4* | osf5*)
case $cc_basename in
- KCC)
+ KCC*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
;;
- RCC)
+ RCC*)
# Rational C++ 2.4.1
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
;;
- cxx)
+ cxx*)
# Digital/Compaq C++
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
# Make sure the PIC flag is empty. It appears that all Alpha
;;
sco*)
case $cc_basename in
- CC)
+ CC*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
;;
*)
;;
solaris*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.2, 5.x and Centerline C++
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
;;
- gcx)
+ gcx*)
# Green Hills C++ Compiler
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
;;
;;
sunos4*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.x
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
;;
- lcc)
+ lcc*)
# Lucid
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
;;
;;
tandem*)
case $cc_basename in
- NCC)
+ NCC*)
# NonStop-UX NCC 3.20
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
;;
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
fi
;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ esac
+ ;;
mingw* | pw32* | os2*)
# This hack is so that the source file can tell whether it is being
;;
linux*)
- case $CC in
+ case $cc_basename in
icc* | ecc*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
+ pgcc* | pgf77* | pgf90*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
ccc*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
# All Alpha code is PIC.
;;
solaris*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+ esac
;;
sunos4*)
fi
;;
+ unicos*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+
uts4*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
_LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
;;
cygwin* | mingw*)
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
;;
*)
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
extract_expsyms_cmds=
-
+ # Just being paranoid about ensuring that cc_basename is set.
+ _LT_CC_BASENAME([$compiler])
case $host_os in
cygwin* | mingw* | pw32*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
if test "$with_gnu_ld" = yes; then
# If archive_cmds runs LD, not CC, wlarc should be empty
wlarc='${wl}'
-
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
# See if GNU ld supports shared libraries.
case $host_os in
aix3* | aix4* | aix5*)
_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
_LT_AC_TAGVAR(always_export_symbols, $1)=no
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
fi~
$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
else
- ld_shlibs=no
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ tmp_addflag=' -fpic -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
fi
;;
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
;;
- linux*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds"
- supports_anon_versioning=no
- case `$LD -v 2>/dev/null` in
- *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
- if test $supports_anon_versioning = yes; then
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- else
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds"
- fi
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
;;
esac
- if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
- runpath_var=LD_RUN_PATH
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
- fi
+ if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then
+ runpath_var=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
fi
else
# PORTME fill in a description of your system's linker (not GNU ld)
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
# We only want to do this on AIX 4.2 and lower, the check
# below for broken collect2 doesn't work under 4.3+
collect2name=`${CC} -print-prog-name=collect2`
fi
esac
shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
else
# not using gcc
if test "$host_cpu" = ia64; then
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- bsdi4*)
+ bsdi[[45]]*)
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
;;
_LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
# FIXME: Should let the user specify the lib program.
_LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
- fix_srcfile_path='`cygpath -w "$srcfile"`'
+ _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
;;
darwin* | rhapsody*)
- if test "$GXX" = yes ; then
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
case "$host_os" in
- rhapsody* | darwin1.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
- ;;
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
- else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
- ;;
- 10.*)
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
- ;;
- esac
- fi
- ;;
+ rhapsody* | darwin1.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
esac
- lt_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
- lt_int_apple_cc_single_mod=yes
- fi
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- fi
- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
_LT_AC_TAGVAR(hardcode_direct, $1)=no
_LT_AC_TAGVAR(hardcode_automatic, $1)=yes
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
fi
;;
;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | kfreebsd*-gnu)
+ freebsd* | kfreebsd*-gnu | dragonfly*)
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
_LT_AC_TAGVAR(hardcode_direct, $1)=yes
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
else
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
# Both c and cxx compiler support -rpath directly
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
solaris*)
_LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
if test "$GCC" = yes; then
+ wlarc='${wl}'
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
else
+ wlarc=''
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
case $host_os in
solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+ *)
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
esac
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
;;
# Add /usr/xpg4/bin/sed as it is typically found on Solaris
# along with /bin/sed that truncates output.
for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
- test ! -f $lt_ac_sed && break
+ test ! -f $lt_ac_sed && continue
cat /dev/null > conftest.in
lt_ac_count=0
echo $ECHO_N "0123456789$ECHO_C" >conftest.in
fi
done
done
-SED=$lt_cv_path_SED
])
+SED=$lt_cv_path_SED
AC_MSG_RESULT([$SED])
])
-# -*- 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
+# Copyright (C) 2002, 2003, 2005 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.
# 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"])
+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
# 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.4])])
-
-# AM_AUX_DIR_EXPAND
-
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+ [AM_AUTOMAKE_VERSION([1.9.5])])
-# 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.
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# 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.
+# Copyright (C) 2001, 2003, 2005 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.
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
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.
+# AM_CONDITIONAL -*- Autoconf -*-
-# 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.
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# 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.
-# serial 6
+# serial 7
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
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.])
+ 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
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
# 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 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 8
# 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,
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
# _AM_DEPENDENCIES(NAME)
# ----------------------
# See how the compiler implements dependency checking.
AC_SUBST([AMDEPBACKSLASH])
])
-# Generate code to set up dependency tracking. -*- Autoconf -*-
+# 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.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# 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.
-#serial 2
+#serial 3
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
else
continue
fi
- grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue
- # Extract the definition of DEP_FILES from the Makefile without
- # running `make'.
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
- 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" | \
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
])
-# Do all the work for Automake. -*- Autoconf -*-
+# 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
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
# 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 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 12
-# serial 11
+# 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.
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
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
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
_AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC],
[_AM_DEPENDENCIES(CC)],
done
echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+# Copyright (C) 2001, 2003, 2005 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.
+
# 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.
+# Copyright (C) 2003, 2005 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.
-# serial 1
+# serial 2
# Check whether the underlying file-system supports filenames
# with a leading dot. For instance MS-DOS doesn't.
rmdir .tst 2>/dev/null
AC_SUBST([am__leading_dot])])
-# Add --enable-maintainer-mode option to configure.
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
# 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 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
+# serial 4
AC_DEFUN([AM_MAINTAINER_MODE],
[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+# Check to see how 'make' treats includes. -*- Autoconf -*-
-# 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.
+# Copyright (C) 2001, 2002, 2003, 2005 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.
-# serial 2
+# serial 3
# AM_MAKE_INCLUDE()
# -----------------
rm -f confinc confmf
])
-# serial 2
+# Copyright (C) 1999, 2000, 2001, 2003, 2005 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.
+
+# serial 3
# AM_PROG_CC_C_O
# --------------
# Like AC_PROG_CC_C_O, but changed for automake.
-
-# Copyright (C) 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.
-
AC_DEFUN([AM_PROG_CC_C_O],
[AC_REQUIRE([AC_PROG_CC_C_O])dnl
AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
fi
])
-# -*- Autoconf -*-
-
+# Fake the existence of programs that GNU maintainers use. -*- 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.
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# 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.
-# serial 3
+# serial 4
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
fi
])
+# Copyright (C) 2003, 2004, 2005 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.
+
# 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.)
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
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
# $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined.
- # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more
- # expensive solution, as it forces Make to start a sub-shell.)
- mkdir_p='mkdir -p -- .'
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
else
# On NextStep and OpenStep, the `mkdir' command does not
# recognize any option. It will interpret all options as
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.
+# Helper functions for option handling. -*- Autoconf -*-
-# 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.
+# Copyright (C) 2001, 2002, 2003, 2005 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.
-# serial 2
+# serial 3
# _AM_MANGLE_OPTION(NAME)
# -----------------------
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.
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# 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.
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# 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.
-# serial 3
+# serial 4
# AM_SANITY_CHECK
# ---------------
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.
+# Copyright (C) 2001, 2003, 2005 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.
+# AM_PROG_INSTALL_STRIP
+# ---------------------
# 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
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 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.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
m4_include([m4/ensc_cflags.m4])
m4_include([m4/ensc_changelog.m4])
+m4_include([m4/ensc_cxxcompiler.m4])
+m4_include([m4/ensc_dietlibc.m4])
+m4_include([m4/ensc_dietlibc_compat.m4])
m4_include([m4/ensc_e2fscheck.m4])
+m4_include([m4/ensc_initrddir.m4])
m4_include([m4/ensc_kerneldir.m4])
+m4_include([m4/ensc_pathprog.m4])
+m4_include([m4/ensc_personality.m4])
+m4_include([m4/ensc_release.m4])
m4_include([m4/ensc_syscall.m4])
m4_include([m4/ensc_syscallnr.m4])
m4_include([m4/ensc_uv_vrootdir.m4])
--- /dev/null
+// $Id: compat-c99.h,v 1.1 2003/12/26 00:49:32 uid68581 Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_COMPAT_C99_H
+#define H_UTIL_VSERVER_COMPAT_C99_H
+
+#if defined(__GNUC__) && __GNUC__ < 3 || (__GNUC__==3 && __GNUC_MINOR__<3)
+# warning Enabling hacks to make it compilable with non-C99 compilers
+# define BS { do {} while (0)
+# define BE } do {} while (0)
+#else
+# define BS do {} while (0)
+# define BE do {} while (0)
+#endif
+
+#endif // H_UTIL_VSERVER_COMPAT_C99_H
-// $Id: compat.h,v 1.1.4.3 2003/12/30 13:47:56 ensc Exp $ --*- c++ -*--
+// $Id: compat.h,v 1.17 2004/04/22 20:47:31 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#ifndef H_UTIL_VSERVER_COMPAT_H
#define H_UTIL_VSERVER_COMPAT_H
+#if defined(__dietlibc__) && !defined(ENSC_DIETLIBC_C99) && defined(__STRICT_ANSI__) && defined(__STDC_VERSION__)
+# include <sys/cdefs.h>
+# undef inline
+
+# undef __STRICT_ANSI__
+# include <stdint.h>
+# define __STRICT_ANSI__
+#endif
+
+#if defined(__dietlibc__)
+# define ENSC_FIX_IOCTL(X) do { if ((X)<-1) { errno=-(X); (X) = -1; } } while (0)
+#else
+# define ENSC_FIX_IOCTL(X) do { } while (0)
+#endif
+
#if defined(__GNUC__)
# define UNUSED __attribute__((__unused__))
# define NORETURN __attribute__((__noreturn__))
-# if __GNUC__ >= 3
+# define CONST __attribute__((__const__))
+# if __GNUC__*0x10000 + __GNUC_MINOR__*0x100 + __GNUC_PATCHLEVEL__ >= 0x30300
+# define NONNULL(ARGS) __attribute__((__nonnull__ ARGS))
# define ALWAYSINLINE __attribute__((__always_inline__))
# else
+# define NONNULL(ARGS)
# define ALWAYSINLINE
+# define PURE
+# endif
+# if __GNUC__*0x10000 + __GNUC_MINOR__*0x100 + __GNUC_PATCHLEVEL__ >= 0x30303
+# define PURE __attribute__((__pure__))
+# else
+# define PURE
# endif
#else
+# define NONNULL(ARGS)
# define UNUSED
# define NORETURN
# define ALWAYSINLINE
+# define PURE
+# define CONST
+#endif
+
+ // shamelessly stolen from dietlibc
+#define LINK_WARNING(symbol,msg) \
+ __asm__ (".section .gnu.warning." symbol "\n\t.string \"" msg "\"\n\t.previous")
+
+#if !defined(__builtin_expect) && (__GNUC__+0)<3
+# define __builtin_expect(foo,bar) (foo)
+#endif
+
+#if !defined(__STDC_VERSION__) || (__STDC_VERSION__<199901L)
+# define restrict
#endif
#if !defined(HAVE_DECL_MS_MOVE) || !(HAVE_DECL_MS_MOVE)
typedef uint32_t xid_t;
#endif
+#ifndef HAVE_NID_T
+#include <stdint.h>
+typedef uint32_t nid_t;
+#endif
+
+
+#if defined(__dietlibc__)
+ #define TEMP_FAILURE_RETRY(expression) \
+ (__extension__ \
+ ({ long int __result; \
+ do __result = (long int) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+#endif
+
+#define FMT_PREFIX utilvserver_fmt_
+
#endif // H_UTIL_VSERVER_COMPAT_H
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
-scriptversion=2003-11-09.00
+scriptversion=2005-02-03.08
-# Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
Report bugs to <bug-automake@gnu.org>.
EOF
- exit 0
+ exit $?
;;
-v | --v*)
echo "compile $scriptversion"
- exit 0
+ exit $?
;;
esac
-
-prog=$1
-shift
-
ofile=
cfile=
-args=
-while test $# -gt 0; do
- case "$1" in
- -o)
- # configure might choose to run compile as `compile cc -o foo foo.c'.
- # So we do something ugly here.
- ofile=$2
- shift
- case "$ofile" in
- *.o | *.obj)
- ;;
- *)
- args="$args -o $ofile"
- ofile=
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- args="$args $1"
- ;;
- *)
- args="$args $1"
- ;;
- esac
+eat=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as `compile cc -o foo foo.c'.
+ # So we strip `-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
shift
done
# normal compilation that the losing compiler can handle. If no
# `.c' file was seen then we are probably linking. That is also
# ok.
- exec "$prog" $args
+ exec "$@"
fi
# Name of file we expect compiler to create.
-cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
# Create the lock directory.
# Note: use `[/.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
-lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
+lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
while true; do
- if mkdir $lockdir > /dev/null 2>&1; then
+ if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir $lockdir; exit 1" 1 2 15
+trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
-"$prog" $args
-status=$?
+"$@"
+ret=$?
if test -f "$cofile"; then
mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ mv "${cofile}bj" "$ofile"
fi
-rmdir $lockdir
-exit $status
+rmdir "$lockdir"
+exit $ret
# Local Variables:
# mode: shell-script
--- /dev/null
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+timestamp='2005-02-10'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 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 Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit 0 ;;
+ amd64:OpenBSD:*:*)
+ echo x86_64-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ amiga:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ cats:OpenBSD:*:*)
+ echo arm-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ hp300:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ luna88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvmeppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sgi:OpenBSD:*:*)
+ echo mips64-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sun3:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:OpenBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:MirBSD:*:*)
+ echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit 0 ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit 0 ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit 0 ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit 0 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit 0;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit 0 ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit 0 ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit 0 ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit 0 ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit 0 ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit 0;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit 0;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit 0 ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit 0 ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7 && exit 0 ;;
+ esac ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ i86pc:SunOS:5.*:*)
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit 0 ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit 0 ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit 0 ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit 0 ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit 0 ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit 0 ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c \
+ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && exit 0
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit 0 ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit 0 ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit 0 ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit 0 ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit 0 ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit 0 ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit 0 ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit 0 ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit 0 ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit 0 ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo rs6000-ibm-aix3.2.5
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit 0 ;;
+ *:AIX:*:[45])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit 0 ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit 0 ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit 0 ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit 0 ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit 0 ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit 0 ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit 0 ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ # avoid double evaluation of $set_cc_for_build
+ test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo unknown-hitachi-hiuxwe2
+ exit 0 ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit 0 ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit 0 ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit 0 ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit 0 ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit 0 ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit 0 ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit 0 ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:FreeBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit 0 ;;
+ i*:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit 0 ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit 0 ;;
+ x86:Interix*:[34]*)
+ echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+ exit 0 ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit 0 ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit 0 ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit 0 ;;
+ amd64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit 0 ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit 0 ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit 0 ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ exit 0 ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit 0 ;;
+ arm*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+ exit 0 ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit 0 ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+ exit 0 ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ mips:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mipsel
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips64
+ #undef mips64el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mips64el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips64
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit 0 ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit 0 ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit 0 ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit 0 ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit 0 ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit 0 ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit 0 ;;
+ i*86:Linux:*:*)
+ # The BFD linker knows what the default object file format is, so
+ # first see if it will tell us. cd to the root directory to prevent
+ # problems with other programs or directories called `ld' in the path.
+ # Set LC_ALL=C to ensure ld outputs messages in English.
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+ | sed -ne '/supported targets:/!d
+ s/[ ][ ]*/ /g
+ s/.*supported targets: *//
+ s/ .*//
+ p'`
+ case "$ld_supported_targets" in
+ elf32-i386)
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+ ;;
+ a.out-i386-linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit 0 ;;
+ coff-i386)
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ exit 0 ;;
+ "")
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
+ # one that does not give us useful --help.
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ exit 0 ;;
+ esac
+ # Determine whether the default compiler is a.out or elf
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #ifdef __ELF__
+ # ifdef __GLIBC__
+ # if __GLIBC__ >= 2
+ LIBC=gnu
+ # else
+ LIBC=gnulibc1
+ # endif
+ # else
+ LIBC=gnulibc1
+ # endif
+ #else
+ #ifdef __INTEL_COMPILER
+ LIBC=gnu
+ #else
+ LIBC=gnuaout
+ #endif
+ #endif
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit 0 ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit 0 ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit 0 ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit 0 ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit 0 ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit 0 ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit 0 ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit 0 ;;
+ i*86:*:5:[78]*)
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit 0 ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit 0 ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
+ echo i386-pc-msdosdjgpp
+ exit 0 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit 0 ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit 0 ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit 0 ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit 0 ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit 0 ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit 0 ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4 && exit 0 ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit 0 ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit 0 ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit 0 ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit 0 ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit 0 ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit 0 ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit 0 ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit 0 ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit 0 ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit 0 ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit 0 ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+ *86) UNAME_PROCESSOR=i686 ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit 0 ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit 0 ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit 0 ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit 0 ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit 0 ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit 0 ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit 0 ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit 0 ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit 0 ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit 0 ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit 0 ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit 0 ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit 0 ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit 0 ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms && exit 0 ;;
+ I*) echo ia64-dec-vms && exit 0 ;;
+ V*) echo vax-dec-vms && exit 0 ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ c34*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ c38*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ c4*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
/* config.h.in. Generated from configure.ac by autoheader. */
+/* Define to 1 if dietlibc supports C99 */
+#undef ENSC_DIETLIBC_C99
+
/* define when <ext2fs/ext2_fs.h> is usable */
#undef ENSC_HAVE_EXT2FS_EXT2_FS_H
/* The number of the vserver syscall */
#undef ENSC_SYSCALL__NR_vserver
+/* Use alternative _syscallX macros */
+#undef ENSC_USE_ALTERNATIVE_SYSCALL_MACROS
+
+/* Define to 1 if you have the declaration of `ADDR_LIMIT_32BIT', and to 0 if
+ you don't. */
+#undef HAVE_DECL_ADDR_LIMIT_32BIT
+
+/* Define to 1 if you have the declaration of `ADDR_LIMIT_3GB', and to 0 if
+ you don't. */
+#undef HAVE_DECL_ADDR_LIMIT_3GB
+
+/* Define to 1 if you have the declaration of `MMAP_PAGE_ZERO', and to 0 if
+ you don't. */
+#undef HAVE_DECL_MMAP_PAGE_ZERO
+
/* Define to 1 if you have the declaration of `MS_MOVE', and to 0 if you
don't. */
#undef HAVE_DECL_MS_MOVE
+/* Define to 1 if you have the declaration of `PER_BSD', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_BSD
+
+/* Define to 1 if you have the declaration of `PER_HPUX', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_HPUX
+
+/* Define to 1 if you have the declaration of `PER_IRIX32', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_IRIX32
+
+/* Define to 1 if you have the declaration of `PER_IRIX64', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_IRIX64
+
+/* Define to 1 if you have the declaration of `PER_IRIXN32', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_IRIXN32
+
+/* Define to 1 if you have the declaration of `PER_ISCR4', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_ISCR4
+
+/* Define to 1 if you have the declaration of `PER_LINUX', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_LINUX
+
+/* Define to 1 if you have the declaration of `PER_LINUX32', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_LINUX32
+
+/* Define to 1 if you have the declaration of `PER_LINUX32_3GB', and to 0 if
+ you don't. */
+#undef HAVE_DECL_PER_LINUX32_3GB
+
+/* Define to 1 if you have the declaration of `PER_LINUX_32BIT', and to 0 if
+ you don't. */
+#undef HAVE_DECL_PER_LINUX_32BIT
+
+/* Define to 1 if you have the declaration of `PER_OSF4', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_OSF4
+
+/* Define to 1 if you have the declaration of `PER_OSR5', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_OSR5
+
+/* Define to 1 if you have the declaration of `PER_RISCOS', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_RISCOS
+
+/* Define to 1 if you have the declaration of `PER_SCOSVR3', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_SCOSVR3
+
+/* Define to 1 if you have the declaration of `PER_SOLARIS', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_SOLARIS
+
+/* Define to 1 if you have the declaration of `PER_SUNOS', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_SUNOS
+
+/* Define to 1 if you have the declaration of `PER_SVR3', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_SVR3
+
+/* Define to 1 if you have the declaration of `PER_SVR4', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_SVR4
+
+/* Define to 1 if you have the declaration of `PER_UW7', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_UW7
+
+/* Define to 1 if you have the declaration of `PER_WYSEV386', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_WYSEV386
+
+/* Define to 1 if you have the declaration of `PER_XENIX', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PER_XENIX
+
+/* Define to 1 if you have the declaration of `SHORT_INODE', and to 0 if you
+ don't. */
+#undef HAVE_DECL_SHORT_INODE
+
+/* Define to 1 if you have the declaration of `STICKY_TIMEOUTS', and to 0 if
+ you don't. */
+#undef HAVE_DECL_STICKY_TIMEOUTS
+
+/* Define to 1 if you have the declaration of `WHOLE_SECONDS', and to 0 if you
+ don't. */
+#undef HAVE_DECL_WHOLE_SECONDS
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if the stack is on growing addresses */
+#undef HAVE_GROWING_STACK
+
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
+/* Define to 1 if the system has the type `nid_t'. */
+#undef HAVE_NID_T
+
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
+/* Define to 1 if you have the <sys/capability.h> header file. */
+#undef HAVE_SYS_CAPABILITY_H
+
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
-/* Enable support for compatibily syscall API */
+/* The utmp gid-number */
+#undef UTMP_GID
+
+/* Enable support for compatibility syscall API */
#undef VC_ENABLE_API_COMPAT
+/* Enable support for filesystem compatibility API */
+#undef VC_ENABLE_API_FSCOMPAT
+
/* Enable support for old, /proc parsing API */
#undef VC_ENABLE_API_LEGACY
+/* Enable support for network context API */
+#undef VC_ENABLE_API_NET
+
+/* Enable API for a backward compatible /proc parsing */
+#undef VC_ENABLE_API_OLDPROC
+
+/* Enable API for a backward compatible uts handling */
+#undef VC_ENABLE_API_OLDUTS
+
/* Enable support for API of vserver 1.1.x */
#undef VC_ENABLE_API_V11
+/* Enable support for API of vserver 1.3.x */
+#undef VC_ENABLE_API_V13
+
/* Version number of package */
#undef VERSION
+/* Use 64bit interface for filesystem operations */
+#undef _FILE_OFFSET_BITS
+
#if defined(__pic__) && defined(__i386) && !defined(ENSC_SYSCALL_TRADITIONAL)
# define ENSC_SYSCALL_TRADITIONAL 1
#endif
+
+#include "compat.h"
+
--- /dev/null
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+timestamp='2005-02-10'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 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.
+
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit 0;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
+ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis | -knuth | -cray)
+ os=
+ basic_machine=$1
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64vr | mips64vrel \
+ | mips64orion | mips64orionel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | msp430 \
+ | ns16k | ns32k \
+ | openrisc | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | pyramid \
+ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
+ | strongarm \
+ | tahoe | thumb | tic4x | tic80 | tron \
+ | v850 | v850e \
+ | we32k \
+ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | z8k)
+ basic_machine=$basic_machine-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* \
+ | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | msp430-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | pyramid-* \
+ | romp-* | rs6000-* \
+ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | tahoe-* | thumb-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tron-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa-* \
+ | ymp-* \
+ | z8k-*)
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16c)
+ basic_machine=cr16c-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ or32 | or32-*)
+ basic_machine=or32-unknown
+ os=-coff
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc) basic_machine=powerpc-unknown
+ ;;
+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tic54x | c54x*)
+ basic_machine=tic54x-unknown
+ os=-coff
+ ;;
+ tic55x | c55x*)
+ basic_machine=tic55x-unknown
+ os=-coff
+ ;;
+ tic6x | c6x*)
+ basic_machine=tic6x-unknown
+ os=-coff
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto-qnx*)
+ ;;
+ -nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ # This also exists in the configure program, but was not the
+ # default.
+ # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -os400*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for util-vserver 0.30.
+# Generated by GNU Autoconf 2.59 for util-vserver 0.30.208.
#
# Report bugs to <enrico.scholz@informatik.tu-chemnitz.de>.
#
$as_unset CDPATH
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
+ ;;
+esac
+
+echo=${ECHO-echo}
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+ echo_test_string="`eval $cmd`" &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+ then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ IFS="$lt_save_ifs"
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+ else
+ # Try using printf.
+ echo='printf %s\n'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+tagnames=${tagnames+${tagnames},}CXX
+
+tagnames=${tagnames+${tagnames},}F77
+
# Name of the host.
# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
# so uname gets run too.
# Identity of this package.
PACKAGE_NAME='util-vserver'
PACKAGE_TARNAME='util-vserver'
-PACKAGE_VERSION='0.30'
-PACKAGE_STRING='util-vserver 0.30'
+PACKAGE_VERSION='0.30.208'
+PACKAGE_STRING='util-vserver 0.30.208'
PACKAGE_BUGREPORT='enrico.scholz@informatik.tu-chemnitz.de'
ac_unique_file="src/capchroot.c"
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS 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 MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S RANLIB ac_ct_RANLIB kernelincludedir vserverdir CVS2CL_TAG CVS2CL HAVE_CVS2CL_TRUE HAVE_CVS2CL_FALSE RCS2LOG HAVE_RCS2LOG_TRUE HAVE_RCS2LOG_FALSE ENSC_ENABLE_LINUXCONF_TRUE ENSC_ENABLE_LINUXCONF_FALSE ENSC_ENABLE_INTERNAL_HEADERS_TRUE ENSC_ENABLE_INTERNAL_HEADERS_FALSE CPP EGREP CXXCPP LIBOBJS LTLIBOBJS'
+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 install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os GPG_KEY CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S ENSC_HAVE_CXX_COMPILER_TRUE ENSC_HAVE_CXX_COMPILER_FALSE ENSC_HAVE_C99_COMPILER_TRUE ENSC_HAVE_C99_COMPILER_FALSE ENSC_PATHPROG_SED CAT CHOWN CMP CP DIRNAME EGREP ENV GREP LN MKDIR MKFIFO MKTEMP MOUNT MV NICE PS RM RMDIR SED SH TAC TAR TOUCH TTY UMOUNT WC IP IPTABLES MODPROBE NAMEIF NOHUP RMMOD VCONFIG WGET DOXYGEN XSLTP XSLTPROC HAVE_XSLTP_TRUE HAVE_XSLTP_FALSE HAVE_XSLTPROC_TRUE HAVE_XSLTPROC_FALSE LIB_DEBUG_CPPFLAGS ENSC_USE_EXPENSIVE_TESTS initrddir RELEASE_CPPFLAGS DIET DIETFLAGS USE_DIETLIBC_TRUE USE_DIETLIBC_FALSE USE_DIETLIBC_COMPAT_TRUE USE_DIETLIBC_COMPAT_FALSE ENSC_USE_DIETLIBC_TRUE ENSC_USE_DIETLIBC_FALSE ENSC_USE_GLIBC_TRUE ENSC_USE_GLIBC_FALSE ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL kernelincludedir vserverdir CVS2CL_TAG CVS2CL HAVE_CVS2CL_TRUE HAVE_CVS2CL_FALSE RCS2LOG HAVE_RCS2LOG_TRUE HAVE_RCS2LOG_FALSE ENSC_ENABLE_INTERNAL_HEADERS_TRUE ENSC_ENABLE_INTERNAL_HEADERS_FALSE ENSC_HAVE_BEECRYPT_TRUE ENSC_HAVE_BEECRYPT_FALSE ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
ac_env_CFLAGS_value=$CFLAGS
ac_cv_env_CFLAGS_set=${CFLAGS+set}
ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_DIET_set=${DIET+set}
+ac_env_DIET_value=$DIET
+ac_cv_env_DIET_set=${DIET+set}
+ac_cv_env_DIET_value=$DIET
+ac_env_DIETFLAGS_set=${DIETFLAGS+set}
+ac_env_DIETFLAGS_value=$DIETFLAGS
+ac_cv_env_DIETFLAGS_set=${DIETFLAGS+set}
+ac_cv_env_DIETFLAGS_value=$DIETFLAGS
ac_env_CPP_set=${CPP+set}
ac_env_CPP_value=$CPP
ac_cv_env_CPP_set=${CPP+set}
ac_env_CXXCPP_value=$CXXCPP
ac_cv_env_CXXCPP_set=${CXXCPP+set}
ac_cv_env_CXXCPP_value=$CXXCPP
+ac_env_F77_set=${F77+set}
+ac_env_F77_value=$F77
+ac_cv_env_F77_set=${F77+set}
+ac_cv_env_F77_value=$F77
+ac_env_FFLAGS_set=${FFLAGS+set}
+ac_env_FFLAGS_value=$FFLAGS
+ac_cv_env_FFLAGS_set=${FFLAGS+set}
+ac_cv_env_FFLAGS_value=$FFLAGS
#
# Report the --help message.
# 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 util-vserver 0.30 to adapt to many kinds of systems.
+\`configure' configures util-vserver 0.30.208 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of util-vserver 0.30:";;
+ short | recursive ) echo "Configuration of util-vserver 0.30.208:";;
esac
cat <<\_ACEOF
(and sometimes confusing) to the casual installer
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
- --enable-linuxconf enable 'newvserver' linuxconf module (default: no)
+ --disable-extra-optimizations
+ disable certain extra optimizations (default: no)
+ --enable-lib-debug enable additional debug code in library (default:
+ no)
+ --disable-expensive-tests
+ disable tests which might be expensive on some
+ systems (default: no)
+ --enable-release enable release mode (default: no)
+ --disable-dietlibc do not use dietlibc resp. enforce its usage (with
+ --enable-dietlibc) (default: autodetect dietlibc)
+ --disable-alternative-syscalls
+ do not use the alternative _syscallX macros provided
+ by Herbert Poetzl (default: use them)
+ --enable-shared[=PKGS]
+ build shared libraries [default=yes]
+ --enable-static[=PKGS]
+ build static libraries [default=yes]
+ --enable-fast-install[=PKGS]
+ optimize for fast installation [default=yes]
+ --disable-libtool-lock avoid locking (might break parallel builds)
--disable-internal-headers
use vserver specific headers from the kernel instead
of the shipped versions (default: no)
--enable-apis=APIS enable support for the given apis; possible values
- are: legacy,compat,v11,ALL (default: ALL)
+ are: legacy,compat,v11,v13,fscompat,net,ALL
+ (default: all except 'legacy')
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-initrddir <DIR> use <DIR> as directory for SysV init-files (default:
+ $sysconfdir/init.d)
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-tags[=TAGS]
+ include additional configurations [automatic]
--with-kerneldir=DIR assume kernelsources in DIR (default:
/lib/modules/<current>/build)
--with-vrootdir=DIR place vservers under DIR (default: /vservers)
headers in a nonstandard directory <include dir>
CC C compiler command
CFLAGS C compiler flags
+ DIET The 'diet' wrapper (default: diet)
+ DIETFLAGS Flags passed to the 'diet' wrapper (default: -O)
CPP C preprocessor
CXXCPP C++ preprocessor
+ F77 Fortran 77 compiler command
+ FFLAGS Fortran 77 compiler flags
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-util-vserver configure 0.30
+util-vserver configure 0.30.208
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by util-vserver $as_me 0.30, which was
+It was created by util-vserver $as_me 0.30.208, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
ac_config_headers="$ac_config_headers config.h"
-am__api_version="1.8"
+am__api_version="1.9"
ac_aux_dir=
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
if test -f $ac_dir/install-sh; then
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
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
# $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined.
- # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more
- # expensive solution, as it forces Make to start a sub-shell.)
- mkdir_p='mkdir -p -- .'
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
else
# On NextStep and OpenStep, the `mkdir' command does not
# recognize any option. It will interpret all options as
# Define the identity of the package.
PACKAGE='util-vserver'
- VERSION='0.30'
+ VERSION='0.30.208'
cat >>confdefs.h <<_ACEOF
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
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+ { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+ { (exit 1); exit 1; }; }
+
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+ ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+ { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+ { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+ ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+
+GPG_KEY="0xFFD316AC53ACA43A!"
+
# Checks for programs.
ac_ext=cc
echo "${ECHO_T}no, using $LN_S" >&6
fi
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- RANLIB=$ac_ct_RANLIB
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
if test "x$CC" != xcc; then
echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5
echo $ECHO_N "checking whether $CC and cc understand -c and -o together... $ECHO_C" >&6
- warn_flags="-Werror -W"
- echo "$as_me:$LINENO: checking whether the C-compiler accepts ${warn_flags}" >&5
-echo $ECHO_N "checking whether the C-compiler accepts ${warn_flags}... $ECHO_C" >&6
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ echo "$as_me:$LINENO: checking whether $CXX is a C++ compiler" >&5
+echo $ECHO_N "checking whether $CXX is a C++ compiler... $ECHO_C" >&6
+if test "${ensc_cv_cxx_cxxcompiler+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
- __ensc_check_warnflags_old_CFLAGS="${CFLAGS}"
- CFLAGS="$warn_flags"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-inline static void f(){}
-int
-main ()
-{
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat >conftest.$ac_ext <<_ACEOF
+
+ #include <ostream>
- ;
- return 0;
-}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
+ { ac_try='test -z "$ac_cxx_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ensc_sys_compilerwarnflags_C=${warn_flags}
+ ensc_cv_cxx_cxxcompiler=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ensc_sys_compilerwarnflags_C=
+ensc_cv_cxx_cxxcompiler=no
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_ext=c
+ ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
- CFLAGS="$__ensc_check_warnflags_old_CFLAGS"
- if test x"${ensc_sys_compilerwarnflags_C}" = x; then
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- else
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- fi
+fi
+echo "$as_me:$LINENO: result: $ensc_cv_cxx_cxxcompiler" >&5
+echo "${ECHO_T}$ensc_cv_cxx_cxxcompiler" >&6
+if test x"$ensc_cv_cxx_cxxcompiler" = xyes; then
+ ENSC_HAVE_CXX_COMPILER_TRUE=
+ ENSC_HAVE_CXX_COMPILER_FALSE='#'
+else
+ ENSC_HAVE_CXX_COMPILER_TRUE='#'
+ ENSC_HAVE_CXX_COMPILER_FALSE=
+fi
-echo 'void f(){}' > conftest.c
- for i in -std=c99 -Wall -pedantic -W -Wno-unused-parameter
- do
- echo "$as_me:$LINENO: checking whether $CC accepts $i" >&5
-echo $ECHO_N "checking whether $CC accepts $i... $ECHO_C" >&6
- if test -z "`${CC} ${ensc_sys_compilerwarnflags_C} $i -c conftest.c 2>&1`"
- then
- CFLAGS="${CFLAGS} $i"
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- fi
- done
- rm -f conftest.c conftest.o
+ if test x"$ensc_cv_cxx_cxxcompiler" = xno; then
+ { echo "$as_me:$LINENO: WARNING: *** some programs will not be built because a C++ compiler is lacking" >&5
+echo "$as_me: WARNING: *** some programs will not be built because a C++ compiler is lacking" >&2;}
+ fi
- warn_flags="-Werror -W"
- echo "$as_me:$LINENO: checking whether the C++-compiler accepts ${warn_flags}" >&5
-echo $ECHO_N "checking whether the C++-compiler accepts ${warn_flags}... $ECHO_C" >&6
- ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
- __ensc_check_warnflags_old_CFLAGS="${CXXFLAGS}"
- CXXFLAGS="$warn_flags"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-inline static void f(){}
-int
-main ()
-{
+ echo "$as_me:$LINENO: checking whether $CC is a C99 compiler" >&5
+echo $ECHO_N "checking whether $CC is a C99 compiler... $ECHO_C" >&6
+if test "${ensc_cv_c99_c99compiler+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
- ;
- return 0;
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat >conftest.$ac_ext <<_ACEOF
+
+int main(int argc, char *argv) {
+ struct { int x; } a = { .x = argc };
+ if (0) return 0;
+ int b;
}
+
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
+ { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ensc_sys_compilerwarnflags_CXX=${warn_flags}
+ ensc_cv_c99_c99compiler=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ensc_sys_compilerwarnflags_CXX=
+ensc_cv_c99_c99compiler=no
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_ext=c
+ ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
- CXXFLAGS="$__ensc_check_warnflags_old_CFLAGS"
- if test x"${ensc_sys_compilerwarnflags_CXX}" = x; then
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- else
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- fi
+fi
+echo "$as_me:$LINENO: result: $ensc_cv_c99_c99compiler" >&5
+echo "${ECHO_T}$ensc_cv_c99_c99compiler" >&6
+if test x"$ensc_cv_c99_c99compiler" = xyes; then
+ ENSC_HAVE_C99_COMPILER_TRUE=
+ ENSC_HAVE_C99_COMPILER_FALSE='#'
+else
+ ENSC_HAVE_C99_COMPILER_TRUE='#'
+ ENSC_HAVE_C99_COMPILER_FALSE=
+fi
- echo 'void f(){}' > conftest.cc
- for i in -ansi -Wall -pedantic -W -fmessage-length=0
- do
- echo "$as_me:$LINENO: checking whether $CXX accepts $i" >&5
-echo $ECHO_N "checking whether $CXX accepts $i... $ECHO_C" >&6
- if test -z "`${CXX} ${ensc_sys_compilerwarnflags_CXX} $i -c conftest.cc 2>&1`"
- then
- CXXFLAGS="${CXXFLAGS} $i"
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- fi
- done
- rm -f conftest.cc conftest.o
+ if test x"$ensc_cv_c99_c99compiler" = xno; then
+ { echo "$as_me:$LINENO: WARNING: *** some programs will not be built because system is lacking a C99 compiler" >&5
+echo "$as_me: WARNING: *** some programs will not be built because system is lacking a C99 compiler" >&2;}
+ fi
+ ensc_searchpath="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
- echo "$as_me:$LINENO: checking for linux kernel dir" >&5
-echo $ECHO_N "checking for linux kernel dir... $ECHO_C" >&6
-if test "${ensc_cv_path_kerneldir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
+ ENSC_PATHPROG_SED=
-# Check whether --with-kerneldir or --without-kerneldir was given.
-if test "${with_kerneldir+set}" = set; then
- withval="$with_kerneldir"
- case "$withval" in
- yes|no) { { echo "$as_me:$LINENO: error: '$withval' is not a valid value for kerneldir" >&5
-echo "$as_me: error: '$withval' is not a valid value for kerneldir" >&2;}
- { (exit 1); exit 1; }; };;
- *) ensc_cv_path_kerneldir=$withval;;
- esac
-else
- ensc_cv_path_kerneldir=
- for i in /lib/modules/$(uname -r)/build /usr/src/linux /usr; do
- test -e $i/include/linux/version.h && { ensc_cv_path_kerneldir=$i; break; }
- done
-fi;
-fi
-echo "$as_me:$LINENO: result: $ensc_cv_path_kerneldir" >&5
-echo "${ECHO_T}$ensc_cv_path_kerneldir" >&6
- test "$ensc_cv_path_kerneldir" -a -e "$ensc_cv_path_kerneldir"/include/linux/version.h || {
- { { echo "$as_me:$LINENO: error: Can not find kernelsources" >&5
-echo "$as_me: error: Can not find kernelsources" >&2;}
- { (exit 1); exit 1; }; }
- }
- echo "$as_me:$LINENO: checking for linux kernel headers" >&5
-echo $ECHO_N "checking for linux kernel headers... $ECHO_C" >&6
-if test "${ensc_cv_path_kernelheaders+set}" = set; then
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in 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_path_AWK+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
+ case $AWK in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_AWK="$AWK" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_AWK="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
- ensc_cv_path_kernelheaders=$ensc_cv_path_kerneldir/include
+ ;;
+esac
+fi
+AWK=$ac_cv_path_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
-echo "$as_me:$LINENO: result: $ensc_cv_path_kernelheaders" >&5
-echo "${ECHO_T}$ensc_cv_path_kernelheaders" >&6
- if test x"kernelincludedir" != x; then
- kernelincludedir=$ensc_cv_path_kernelheaders
+ test -n "$AWK" && break
+done
+test -n "$AWK" || AWK="$ensc_dflt"
- fi
+ if test -z "${AWK}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'awk' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'awk' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'awk' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'awk' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
- echo "$as_me:$LINENO: checking which vserver-rootdir is to use" >&5
-echo $ECHO_N "checking which vserver-rootdir is to use... $ECHO_C" >&6
+ test "${AWK}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'AWK'@!${AWK}!g;"
-# Check whether --with-vrootdir or --without-vrootdir was given.
-if test "${with_vrootdir+set}" = set; then
- withval="$with_vrootdir"
- case "$withval" in
- yes|no) { { echo "$as_me:$LINENO: error: '$withval' is not a valid value for vrootdir" >&5
-echo "$as_me: error: '$withval' is not a valid value for vrootdir" >&2;}
- { (exit 1); exit 1; }; };;
- *) ensc_uv_path_vrootdir=$withval;;
- esac
-else
- ensc_uv_path_vrootdir=/vservers
-fi;
- echo "$as_me:$LINENO: result: $ensc_uv_path_vrootdir" >&5
-echo "${ECHO_T}$ensc_uv_path_vrootdir" >&6
+ test "${AWK}"
- if test x"vserverdir" != x; then
- vserverdir=$ensc_uv_path_vrootdir
- fi
- if test x"SYSCALL_SWITCH" != x; then
- CVS2CL_TAG='-F SYSCALL_SWITCH'
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
fi
- for ac_prog in cvs2cl
+ for ac_prog in cat
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_CVS2CL+set}" = set; then
+if test "${ac_cv_path_CAT+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- if test -n "$CVS2CL"; then
- ac_cv_prog_CVS2CL="$CVS2CL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+ case $CAT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CAT="$CAT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
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_CVS2CL="$ac_prog"
+ ac_cv_path_CAT="$as_dir/$ac_word$ac_exec_ext"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
+ ;;
+esac
fi
-fi
-CVS2CL=$ac_cv_prog_CVS2CL
-if test -n "$CVS2CL"; then
- echo "$as_me:$LINENO: result: $CVS2CL" >&5
-echo "${ECHO_T}$CVS2CL" >&6
+CAT=$ac_cv_path_CAT
+
+if test -n "$CAT"; then
+ echo "$as_me:$LINENO: result: $CAT" >&5
+echo "${ECHO_T}$CAT" >&6
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
- test -n "$CVS2CL" && break
+ test -n "$CAT" && break
done
+test -n "$CAT" || CAT="$ensc_dflt"
+ if test -z "${CAT}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'cat' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'cat' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'cat' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'cat' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
-if test x"$CVS2CL" != x; then
- HAVE_CVS2CL_TRUE=
- HAVE_CVS2CL_FALSE='#'
-else
- HAVE_CVS2CL_TRUE='#'
- HAVE_CVS2CL_FALSE=
-fi
+ test "${CAT}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'CAT'@!${CAT}!g;"
+ test "${CAT}"
- for ac_prog in rcs2log
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in chown
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_RCS2LOG+set}" = set; then
+if test "${ac_cv_path_CHOWN+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- if test -n "$RCS2LOG"; then
- ac_cv_prog_RCS2LOG="$RCS2LOG" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+ case $CHOWN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CHOWN="$CHOWN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
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_RCS2LOG="$ac_prog"
+ ac_cv_path_CHOWN="$as_dir/$ac_word$ac_exec_ext"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
+ ;;
+esac
fi
-fi
-RCS2LOG=$ac_cv_prog_RCS2LOG
-if test -n "$RCS2LOG"; then
- echo "$as_me:$LINENO: result: $RCS2LOG" >&5
-echo "${ECHO_T}$RCS2LOG" >&6
+CHOWN=$ac_cv_path_CHOWN
+
+if test -n "$CHOWN"; then
+ echo "$as_me:$LINENO: result: $CHOWN" >&5
+echo "${ECHO_T}$CHOWN" >&6
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
- test -n "$RCS2LOG" && break
+ test -n "$CHOWN" && break
done
+test -n "$CHOWN" || CHOWN="$ensc_dflt"
+ if test -z "${CHOWN}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'chown' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'chown' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'chown' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'chown' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
-if test x"$RCS2LOG" != x; then
- HAVE_RCS2LOG_TRUE=
- HAVE_RCS2LOG_FALSE='#'
-else
- HAVE_RCS2LOG_TRUE='#'
- HAVE_RCS2LOG_FALSE=
-fi
+ test "${CHOWN}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'CHOWN'@!${CHOWN}!g;"
+ test "${CHOWN}"
-echo "$as_me:$LINENO: checking whether to enable linuxconf modules" >&5
-echo $ECHO_N "checking whether to enable linuxconf modules... $ECHO_C" >&6
-# Check whether --enable-linuxconf or --disable-linuxconf was given.
-if test "${enable_linuxconf+set}" = set; then
- enableval="$enable_linuxconf"
- case "$enableval" in
- yes|no) ;;
- *) { { echo "$as_me:$LINENO: error: '$i' is not a supported value for '--enable-linuxconf'" >&5
-echo "$as_me: error: '$i' is not a supported value for '--enable-linuxconf'" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-else
- enable_linuxconf=no
-fi;
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
-if test x"$enable_linuxconf" = xyes; then
- ENSC_ENABLE_LINUXCONF_TRUE=
- ENSC_ENABLE_LINUXCONF_FALSE='#'
+ for ac_prog in cmp
+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_path_CMP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- ENSC_ENABLE_LINUXCONF_TRUE='#'
- ENSC_ENABLE_LINUXCONF_FALSE=
+ case $CMP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CMP="$CMP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_CMP="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
fi
+CMP=$ac_cv_path_CMP
-echo "$as_me:$LINENO: result: $enable_linuxconf" >&5
-echo "${ECHO_T}$enable_linuxconf" >&6
+if test -n "$CMP"; then
+ echo "$as_me:$LINENO: result: $CMP" >&5
+echo "${ECHO_T}$CMP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+ test -n "$CMP" && break
+done
+test -n "$CMP" || CMP="$ensc_dflt"
-echo "$as_me:$LINENO: checking whether to use internal kernel headers" >&5
-echo $ECHO_N "checking whether to use internal kernel headers... $ECHO_C" >&6
-# Check whether --enable-internal-headers or --disable-internal-headers was given.
-if test "${enable_internal_headers+set}" = set; then
- enableval="$enable_internal_headers"
- case "$enableval" in
- yes|no) ;;
- *) { { echo "$as_me:$LINENO: error: '$i' is not a supported value for '--disable-internal-headers'" >&5
-echo "$as_me: error: '$i' is not a supported value for '--disable-internal-headers'" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-else
- enable_internal_headers=yes
-fi;
+ if test -z "${CMP}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'cmp' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'cmp' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'cmp' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'cmp' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+ test "${CMP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'CMP'@!${CMP}!g;"
-if test x"$enable_internal_headers" = xyes; then
- ENSC_ENABLE_INTERNAL_HEADERS_TRUE=
- ENSC_ENABLE_INTERNAL_HEADERS_FALSE='#'
-else
- ENSC_ENABLE_INTERNAL_HEADERS_TRUE='#'
- ENSC_ENABLE_INTERNAL_HEADERS_FALSE=
-fi
+ test "${CMP}"
-echo "$as_me:$LINENO: result: $enable_internal_headers" >&5
-echo "${ECHO_T}$enable_internal_headers" >&6
-echo "$as_me:$LINENO: checking for supported APIs" >&5
-echo $ECHO_N "checking for supported APIs... $ECHO_C" >&6
-# Check whether --enable-apis or --disable-apis was given.
-if test "${enable_apis+set}" = set; then
- enableval="$enable_apis"
-else
- enable_apis=ALL
-fi;
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
-test x"$enable_apis" != xALL || enable_apis='legacy,compat,v11'
-old_IFS=$IFS
-IFS=,;
-for i in $enable_apis; do
- case "$i" in
- compat)
-cat >>confdefs.h <<\_ACEOF
-#define VC_ENABLE_API_COMPAT 1
-_ACEOF
-;;
- legacy)
-cat >>confdefs.h <<\_ACEOF
-#define VC_ENABLE_API_LEGACY 1
-_ACEOF
-;;
- v11)
-cat >>confdefs.h <<\_ACEOF
-#define VC_ENABLE_API_V11 1
-_ACEOF
-;;
- *) { { echo "$as_me:$LINENO: error: '$i' is not a supported API" >&5
-echo "$as_me: error: '$i' is not a supported API" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-IFS=$old_IFS
-echo "$as_me:$LINENO: result: $enable_apis" >&5
-echo "${ECHO_T}$enable_apis" >&6
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
+ for ac_prog in cp
+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_path_CP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
+ case $CP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CP="$CP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
+ 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_path_CP="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+done
+done
- # Broken: fails on valid input.
-continue
+ ;;
+esac
fi
-rm -f conftest.err conftest.$ac_ext
+CP=$ac_cv_path_CP
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
+if test -n "$CP"; then
+ echo "$as_me:$LINENO: result: $CP" >&5
+echo "${ECHO_T}$CP" >&6
else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
fi
-rm -f conftest.err conftest.$ac_ext
+ test -n "$CP" && break
done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
+test -n "$CP" || CP="$ensc_dflt"
- done
- ac_cv_prog_CPP=$CPP
-fi
- CPP=$ac_cv_prog_CPP
+ if test -z "${CP}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'cp' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'cp' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'cp' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'cp' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${CP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'CP'@!${CP}!g;"
+
+ test "${CP}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in dirname
+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_path_DIRNAME+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
+ case $DIRNAME in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DIRNAME="$DIRNAME" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
+ 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_path_DIRNAME="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
fi
-else
- ac_cpp_err=yes
+done
+done
+
+ ;;
+esac
fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+DIRNAME=$ac_cv_path_DIRNAME
- # Broken: fails on valid input.
-continue
+if test -n "$DIRNAME"; then
+ echo "$as_me:$LINENO: result: $DIRNAME" >&5
+echo "${ECHO_T}$DIRNAME" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
fi
-rm -f conftest.err conftest.$ac_ext
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ test -n "$DIRNAME" && break
+done
+test -n "$DIRNAME" || DIRNAME="$ensc_dflt"
+
+
+ if test -z "${DIRNAME}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'dirname' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'dirname' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'dirname' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'dirname' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${DIRNAME}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'DIRNAME'@!${DIRNAME}!g;"
+
+ test "${DIRNAME}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in egrep
+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_path_EGREP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $EGREP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_EGREP="$EGREP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_EGREP="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+EGREP=$ac_cv_path_EGREP
+
+if test -n "$EGREP"; then
+ echo "$as_me:$LINENO: result: $EGREP" >&5
+echo "${ECHO_T}$EGREP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$EGREP" && break
+done
+test -n "$EGREP" || EGREP="$ensc_dflt"
+
+
+ if test -z "${EGREP}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'egrep' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'egrep' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'egrep' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'egrep' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${EGREP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'EGREP'@!${EGREP}!g;"
+
+ test "${EGREP}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in env
+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_path_ENV+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $ENV in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ENV="$ENV" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_ENV="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+ENV=$ac_cv_path_ENV
+
+if test -n "$ENV"; then
+ echo "$as_me:$LINENO: result: $ENV" >&5
+echo "${ECHO_T}$ENV" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ENV" && break
+done
+test -n "$ENV" || ENV="$ensc_dflt"
+
+
+ if test -z "${ENV}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'env' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'env' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'env' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'env' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${ENV}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'ENV'@!${ENV}!g;"
+
+ test "${ENV}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in grep
+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_path_GREP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $GREP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GREP="$GREP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_GREP="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+GREP=$ac_cv_path_GREP
+
+if test -n "$GREP"; then
+ echo "$as_me:$LINENO: result: $GREP" >&5
+echo "${ECHO_T}$GREP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$GREP" && break
+done
+test -n "$GREP" || GREP="$ensc_dflt"
+
+
+ if test -z "${GREP}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'grep' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'grep' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'grep' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'grep' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${GREP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'GREP'@!${GREP}!g;"
+
+ test "${GREP}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in ln
+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_path_LN+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $LN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_LN="$LN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_LN="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+LN=$ac_cv_path_LN
+
+if test -n "$LN"; then
+ echo "$as_me:$LINENO: result: $LN" >&5
+echo "${ECHO_T}$LN" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$LN" && break
+done
+test -n "$LN" || LN="$ensc_dflt"
+
+
+ if test -z "${LN}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'ln' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'ln' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'ln' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'ln' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${LN}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'LN'@!${LN}!g;"
+
+ test "${LN}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in mkdir
+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_path_MKDIR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MKDIR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MKDIR="$MKDIR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_MKDIR="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+MKDIR=$ac_cv_path_MKDIR
+
+if test -n "$MKDIR"; then
+ echo "$as_me:$LINENO: result: $MKDIR" >&5
+echo "${ECHO_T}$MKDIR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$MKDIR" && break
+done
+test -n "$MKDIR" || MKDIR="$ensc_dflt"
+
+
+ if test -z "${MKDIR}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'mkdir' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'mkdir' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'mkdir' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'mkdir' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${MKDIR}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MKDIR'@!${MKDIR}!g;"
+
+ test "${MKDIR}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in mkfifo
+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_path_MKFIFO+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MKFIFO in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MKFIFO="$MKFIFO" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_MKFIFO="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+MKFIFO=$ac_cv_path_MKFIFO
+
+if test -n "$MKFIFO"; then
+ echo "$as_me:$LINENO: result: $MKFIFO" >&5
+echo "${ECHO_T}$MKFIFO" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$MKFIFO" && break
+done
+test -n "$MKFIFO" || MKFIFO="$ensc_dflt"
+
+
+ if test -z "${MKFIFO}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'mkfifo' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'mkfifo' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'mkfifo' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'mkfifo' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${MKFIFO}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MKFIFO'@!${MKFIFO}!g;"
+
+ test "${MKFIFO}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in mktemp
+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_path_MKTEMP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MKTEMP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MKTEMP="$MKTEMP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_MKTEMP="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+MKTEMP=$ac_cv_path_MKTEMP
+
+if test -n "$MKTEMP"; then
+ echo "$as_me:$LINENO: result: $MKTEMP" >&5
+echo "${ECHO_T}$MKTEMP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$MKTEMP" && break
+done
+test -n "$MKTEMP" || MKTEMP="$ensc_dflt"
+
+
+ if test -z "${MKTEMP}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'mktemp' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'mktemp' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'mktemp' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'mktemp' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${MKTEMP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MKTEMP'@!${MKTEMP}!g;"
+
+ test "${MKTEMP}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in mount
+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_path_MOUNT+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MOUNT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MOUNT="$MOUNT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_MOUNT="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+MOUNT=$ac_cv_path_MOUNT
+
+if test -n "$MOUNT"; then
+ echo "$as_me:$LINENO: result: $MOUNT" >&5
+echo "${ECHO_T}$MOUNT" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$MOUNT" && break
+done
+test -n "$MOUNT" || MOUNT="$ensc_dflt"
+
+
+ if test -z "${MOUNT}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'mount' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'mount' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'mount' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'mount' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${MOUNT}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MOUNT'@!${MOUNT}!g;"
+
+ test "${MOUNT}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in mv
+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_path_MV+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MV in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MV="$MV" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_MV="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+MV=$ac_cv_path_MV
+
+if test -n "$MV"; then
+ echo "$as_me:$LINENO: result: $MV" >&5
+echo "${ECHO_T}$MV" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$MV" && break
+done
+test -n "$MV" || MV="$ensc_dflt"
+
+
+ if test -z "${MV}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'mv' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'mv' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'mv' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'mv' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${MV}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MV'@!${MV}!g;"
+
+ test "${MV}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in nice
+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_path_NICE+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $NICE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_NICE="$NICE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_NICE="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+NICE=$ac_cv_path_NICE
+
+if test -n "$NICE"; then
+ echo "$as_me:$LINENO: result: $NICE" >&5
+echo "${ECHO_T}$NICE" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$NICE" && break
+done
+test -n "$NICE" || NICE="$ensc_dflt"
+
+
+ if test -z "${NICE}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'nice' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'nice' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'nice' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'nice' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${NICE}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'NICE'@!${NICE}!g;"
+
+ test "${NICE}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in ps
+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_path_PS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $PS in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PS="$PS" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_PS="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+PS=$ac_cv_path_PS
+
+if test -n "$PS"; then
+ echo "$as_me:$LINENO: result: $PS" >&5
+echo "${ECHO_T}$PS" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$PS" && break
+done
+test -n "$PS" || PS="$ensc_dflt"
+
+
+ if test -z "${PS}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'ps' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'ps' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'ps' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'ps' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${PS}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'PS'@!${PS}!g;"
+
+ test "${PS}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in rm
+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_path_RM+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $RM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_RM="$RM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_RM="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+RM=$ac_cv_path_RM
+
+if test -n "$RM"; then
+ echo "$as_me:$LINENO: result: $RM" >&5
+echo "${ECHO_T}$RM" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$RM" && break
+done
+test -n "$RM" || RM="$ensc_dflt"
+
+
+ if test -z "${RM}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'rm' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'rm' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'rm' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'rm' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${RM}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'RM'@!${RM}!g;"
+
+ test "${RM}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in rmdir
+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_path_RMDIR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $RMDIR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_RMDIR="$RMDIR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_RMDIR="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+RMDIR=$ac_cv_path_RMDIR
+
+if test -n "$RMDIR"; then
+ echo "$as_me:$LINENO: result: $RMDIR" >&5
+echo "${ECHO_T}$RMDIR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$RMDIR" && break
+done
+test -n "$RMDIR" || RMDIR="$ensc_dflt"
+
+
+ if test -z "${RMDIR}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'rmdir' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'rmdir' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'rmdir' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'rmdir' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${RMDIR}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'RMDIR'@!${RMDIR}!g;"
+
+ test "${RMDIR}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in sed
+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_path_SED+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $SED in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_SED="$SED" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_SED="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+SED=$ac_cv_path_SED
+
+if test -n "$SED"; then
+ echo "$as_me:$LINENO: result: $SED" >&5
+echo "${ECHO_T}$SED" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$SED" && break
+done
+test -n "$SED" || SED="$ensc_dflt"
+
+
+ if test -z "${SED}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'sed' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'sed' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'sed' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'sed' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${SED}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'SED'@!${SED}!g;"
+
+ test "${SED}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in sh
+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_path_SH+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $SH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_SH="$SH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_SH="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+SH=$ac_cv_path_SH
+
+if test -n "$SH"; then
+ echo "$as_me:$LINENO: result: $SH" >&5
+echo "${ECHO_T}$SH" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$SH" && break
+done
+test -n "$SH" || SH="$ensc_dflt"
+
+
+ if test -z "${SH}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'sh' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'sh' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'sh' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'sh' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${SH}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'SH'@!${SH}!g;"
+
+ test "${SH}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in tac
+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_path_TAC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $TAC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAC="$TAC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_TAC="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+TAC=$ac_cv_path_TAC
+
+if test -n "$TAC"; then
+ echo "$as_me:$LINENO: result: $TAC" >&5
+echo "${ECHO_T}$TAC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$TAC" && break
+done
+test -n "$TAC" || TAC="$ensc_dflt"
+
+
+ if test -z "${TAC}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'tac' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'tac' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'tac' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'tac' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${TAC}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'TAC'@!${TAC}!g;"
+
+ test "${TAC}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in tar
+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_path_TAR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $TAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAR="$TAR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_TAR="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+TAR=$ac_cv_path_TAR
+
+if test -n "$TAR"; then
+ echo "$as_me:$LINENO: result: $TAR" >&5
+echo "${ECHO_T}$TAR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$TAR" && break
+done
+test -n "$TAR" || TAR="$ensc_dflt"
+
+
+ if test -z "${TAR}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'tar' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'tar' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'tar' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'tar' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${TAR}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'TAR'@!${TAR}!g;"
+
+ test "${TAR}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in touch
+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_path_TOUCH+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $TOUCH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TOUCH="$TOUCH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_TOUCH="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+TOUCH=$ac_cv_path_TOUCH
+
+if test -n "$TOUCH"; then
+ echo "$as_me:$LINENO: result: $TOUCH" >&5
+echo "${ECHO_T}$TOUCH" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$TOUCH" && break
+done
+test -n "$TOUCH" || TOUCH="$ensc_dflt"
+
+
+ if test -z "${TOUCH}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'touch' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'touch' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'touch' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'touch' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${TOUCH}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'TOUCH'@!${TOUCH}!g;"
+
+ test "${TOUCH}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in tty
+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_path_TTY+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $TTY in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TTY="$TTY" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_TTY="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+TTY=$ac_cv_path_TTY
+
+if test -n "$TTY"; then
+ echo "$as_me:$LINENO: result: $TTY" >&5
+echo "${ECHO_T}$TTY" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$TTY" && break
+done
+test -n "$TTY" || TTY="$ensc_dflt"
+
+
+ if test -z "${TTY}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'tty' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'tty' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'tty' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'tty' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${TTY}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'TTY'@!${TTY}!g;"
+
+ test "${TTY}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in umount
+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_path_UMOUNT+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $UMOUNT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_UMOUNT="$UMOUNT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_UMOUNT="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+UMOUNT=$ac_cv_path_UMOUNT
+
+if test -n "$UMOUNT"; then
+ echo "$as_me:$LINENO: result: $UMOUNT" >&5
+echo "${ECHO_T}$UMOUNT" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$UMOUNT" && break
+done
+test -n "$UMOUNT" || UMOUNT="$ensc_dflt"
+
+
+ if test -z "${UMOUNT}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'umount' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'umount' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'umount' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'umount' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${UMOUNT}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'UMOUNT'@!${UMOUNT}!g;"
+
+ test "${UMOUNT}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in wc
+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_path_WC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $WC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_WC="$WC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_WC="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+WC=$ac_cv_path_WC
+
+if test -n "$WC"; then
+ echo "$as_me:$LINENO: result: $WC" >&5
+echo "${ECHO_T}$WC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$WC" && break
+done
+test -n "$WC" || WC="$ensc_dflt"
+
+
+ if test -z "${WC}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'wc' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'wc' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'wc' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'wc' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${WC}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'WC'@!${WC}!g;"
+
+ test "${WC}"
+
+
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in ip
+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_path_IP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $IP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_IP="$IP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_IP="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+IP=$ac_cv_path_IP
+
+if test -n "$IP"; then
+ echo "$as_me:$LINENO: result: $IP" >&5
+echo "${ECHO_T}$IP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$IP" && break
+done
+test -n "$IP" || IP="$ensc_dflt"
+
+
+ if test -z "${IP}" && $rq; then
+ if test -z "Usually, this tool is shipped in the 'iproute' or 'iproute2' package of your distribution"; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'ip' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'ip' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'ip' tool within '${ensc_searchpath:-$PATH}'.
+Usually, this tool is shipped in the 'iproute' or 'iproute2' package of your distribution" >&5
+echo "$as_me: error:
+Can not find the 'ip' tool within '${ensc_searchpath:-$PATH}'.
+Usually, this tool is shipped in the 'iproute' or 'iproute2' package of your distribution" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${IP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'IP'@!${IP}!g;"
+
+ test "${IP}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in iptables
+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_path_IPTABLES+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $IPTABLES in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_IPTABLES="$IPTABLES" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_IPTABLES="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+IPTABLES=$ac_cv_path_IPTABLES
+
+if test -n "$IPTABLES"; then
+ echo "$as_me:$LINENO: result: $IPTABLES" >&5
+echo "${ECHO_T}$IPTABLES" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$IPTABLES" && break
+done
+test -n "$IPTABLES" || IPTABLES="$ensc_dflt"
+
+
+ if test -z "${IPTABLES}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'iptables' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'iptables' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'iptables' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'iptables' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${IPTABLES}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'IPTABLES'@!${IPTABLES}!g;"
+
+ test "${IPTABLES}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in modprobe
+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_path_MODPROBE+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MODPROBE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MODPROBE="$MODPROBE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_MODPROBE="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+MODPROBE=$ac_cv_path_MODPROBE
+
+if test -n "$MODPROBE"; then
+ echo "$as_me:$LINENO: result: $MODPROBE" >&5
+echo "${ECHO_T}$MODPROBE" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$MODPROBE" && break
+done
+test -n "$MODPROBE" || MODPROBE="$ensc_dflt"
+
+
+ if test -z "${MODPROBE}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'modprobe' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'modprobe' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'modprobe' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'modprobe' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${MODPROBE}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MODPROBE'@!${MODPROBE}!g;"
+
+ test "${MODPROBE}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in nameif
+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_path_NAMEIF+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $NAMEIF in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_NAMEIF="$NAMEIF" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_NAMEIF="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+NAMEIF=$ac_cv_path_NAMEIF
+
+if test -n "$NAMEIF"; then
+ echo "$as_me:$LINENO: result: $NAMEIF" >&5
+echo "${ECHO_T}$NAMEIF" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$NAMEIF" && break
+done
+test -n "$NAMEIF" || NAMEIF="$ensc_dflt"
+
+
+ if test -z "${NAMEIF}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'nameif' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'nameif' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'nameif' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'nameif' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${NAMEIF}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'NAMEIF'@!${NAMEIF}!g;"
+
+ test "${NAMEIF}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in nohup
+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_path_NOHUP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $NOHUP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_NOHUP="$NOHUP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_NOHUP="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+NOHUP=$ac_cv_path_NOHUP
+
+if test -n "$NOHUP"; then
+ echo "$as_me:$LINENO: result: $NOHUP" >&5
+echo "${ECHO_T}$NOHUP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$NOHUP" && break
+done
+test -n "$NOHUP" || NOHUP="$ensc_dflt"
+
+
+ if test -z "${NOHUP}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'nohup' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'nohup' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'nohup' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'nohup' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${NOHUP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'NOHUP'@!${NOHUP}!g;"
+
+ test "${NOHUP}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in rmmod
+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_path_RMMOD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $RMMOD in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_RMMOD="$RMMOD" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_RMMOD="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+RMMOD=$ac_cv_path_RMMOD
+
+if test -n "$RMMOD"; then
+ echo "$as_me:$LINENO: result: $RMMOD" >&5
+echo "${ECHO_T}$RMMOD" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$RMMOD" && break
+done
+test -n "$RMMOD" || RMMOD="$ensc_dflt"
+
+
+ if test -z "${RMMOD}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'rmmod' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'rmmod' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'rmmod' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'rmmod' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${RMMOD}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'RMMOD'@!${RMMOD}!g;"
+
+ test "${RMMOD}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in vconfig
+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_path_VCONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $VCONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_VCONFIG="$VCONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_VCONFIG="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+VCONFIG=$ac_cv_path_VCONFIG
+
+if test -n "$VCONFIG"; then
+ echo "$as_me:$LINENO: result: $VCONFIG" >&5
+echo "${ECHO_T}$VCONFIG" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$VCONFIG" && break
+done
+test -n "$VCONFIG" || VCONFIG="$ensc_dflt"
+
+
+ if test -z "${VCONFIG}" && $rq; then
+ if test -z "See http://www.candelatech.com/~greear/vlan.html; usually this tool is shipped in the 'vconfig' or 'vlan' package of your distribution"; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'vconfig' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'vconfig' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'vconfig' tool within '${ensc_searchpath:-$PATH}'.
+See http://www.candelatech.com/~greear/vlan.html; usually this tool is shipped in the 'vconfig' or 'vlan' package of your distribution" >&5
+echo "$as_me: error:
+Can not find the 'vconfig' tool within '${ensc_searchpath:-$PATH}'.
+See http://www.candelatech.com/~greear/vlan.html; usually this tool is shipped in the 'vconfig' or 'vlan' package of your distribution" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${VCONFIG}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'VCONFIG'@!${VCONFIG}!g;"
+
+ test "${VCONFIG}"
+
+
+
+
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in wget
+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_path_WGET+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $WGET in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_WGET="$WGET" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_WGET="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+WGET=$ac_cv_path_WGET
+
+if test -n "$WGET"; then
+ echo "$as_me:$LINENO: result: $WGET" >&5
+echo "${ECHO_T}$WGET" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$WGET" && break
+done
+test -n "$WGET" || WGET="$ensc_dflt"
+
+
+ if test -z "${WGET}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'wget' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'wget' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'wget' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'wget' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${WGET}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'WGET'@!${WGET}!g;"
+
+ test "${WGET}"
+
+
+
+
+
+ if test -z ":"; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=":"
+ fi
+
+ for ac_prog in doxygen
+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_path_DOXYGEN+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $DOXYGEN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+DOXYGEN=$ac_cv_path_DOXYGEN
+
+if test -n "$DOXYGEN"; then
+ echo "$as_me:$LINENO: result: $DOXYGEN" >&5
+echo "${ECHO_T}$DOXYGEN" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$DOXYGEN" && break
+done
+test -n "$DOXYGEN" || DOXYGEN="$ensc_dflt"
+
+
+ if test -z "${DOXYGEN}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${DOXYGEN}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'DOXYGEN'@!${DOXYGEN}!g;"
+
+ test "${DOXYGEN}"
+
+
+
+
+ if test -z ":"; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=":"
+ fi
+
+ for ac_prog in xsltp
+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_path_XSLTP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $XSLTP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XSLTP="$XSLTP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_XSLTP="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+XSLTP=$ac_cv_path_XSLTP
+
+if test -n "$XSLTP"; then
+ echo "$as_me:$LINENO: result: $XSLTP" >&5
+echo "${ECHO_T}$XSLTP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$XSLTP" && break
+done
+test -n "$XSLTP" || XSLTP="$ensc_dflt"
+
+
+ if test -z "${XSLTP}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${XSLTP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'XSLTP'@!${XSLTP}!g;"
+
+ test "${XSLTP}"
+
+
+
+
+ if test -z ":"; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=":"
+ fi
+
+ for ac_prog in xsltproc
+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_path_XSLTPROC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $XSLTPROC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+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_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+XSLTPROC=$ac_cv_path_XSLTPROC
+
+if test -n "$XSLTPROC"; then
+ echo "$as_me:$LINENO: result: $XSLTPROC" >&5
+echo "${ECHO_T}$XSLTPROC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$XSLTPROC" && break
+done
+test -n "$XSLTPROC" || XSLTPROC="$ensc_dflt"
+
+
+ if test -z "${XSLTPROC}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ test "${XSLTPROC}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'XSLTPROC'@!${XSLTPROC}!g;"
+
+ test "${XSLTPROC}"
+
+
+
+
+if test "$XSLTP" != ':'; then
+ HAVE_XSLTP_TRUE=
+ HAVE_XSLTP_FALSE='#'
+else
+ HAVE_XSLTP_TRUE='#'
+ HAVE_XSLTP_FALSE=
+fi
+
+
+
+if test "$XSLTPROC" != ':'; then
+ HAVE_XSLTPROC_TRUE=
+ HAVE_XSLTPROC_FALSE='#'
+else
+ HAVE_XSLTPROC_TRUE='#'
+ HAVE_XSLTPROC_FALSE=
+fi
+
+
+
+
+
+ warn_flags="-Werror -W"
+ echo "$as_me:$LINENO: checking whether the C-compiler accepts ${warn_flags}" >&5
+echo $ECHO_N "checking whether the C-compiler accepts ${warn_flags}... $ECHO_C" >&6
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ __ensc_check_warnflags_old_CFLAGS="${CFLAGS}"
+ CFLAGS="$warn_flags"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+inline static void f(){}
+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
+ ensc_sys_compilerwarnflags_C=${warn_flags}
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ensc_sys_compilerwarnflags_C=
+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
+
+ CFLAGS="$__ensc_check_warnflags_old_CFLAGS"
+
+ if test x"${ensc_sys_compilerwarnflags_C}" = x; then
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ else
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ fi
+
+
+
+
+
+echo 'void f(){}' > conftest.c
+ for i in -std=c99 -Wall -pedantic -W
+ do
+ echo "$as_me:$LINENO: checking whether $CC accepts $i" >&5
+echo $ECHO_N "checking whether $CC accepts $i... $ECHO_C" >&6
+ if test -z "`${CC} ${ensc_sys_compilerwarnflags_C} $i -c conftest.c 2>&1`"
+ then
+ CFLAGS="${CFLAGS} $i"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ fi
+ done
+ rm -f conftest.c conftest.o
+
+
+
+ warn_flags="-Werror -W"
+ echo "$as_me:$LINENO: checking whether the C++-compiler accepts ${warn_flags}" >&5
+echo $ECHO_N "checking whether the C++-compiler accepts ${warn_flags}... $ECHO_C" >&6
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ __ensc_check_warnflags_old_CFLAGS="${CXXFLAGS}"
+ CXXFLAGS="$warn_flags"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+inline static void f(){}
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ensc_sys_compilerwarnflags_CXX=${warn_flags}
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ensc_sys_compilerwarnflags_CXX=
+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
+
+ CXXFLAGS="$__ensc_check_warnflags_old_CFLAGS"
+
+ if test x"${ensc_sys_compilerwarnflags_CXX}" = x; then
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ else
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ fi
+
+
+
+
+
+ echo 'void f(){}' > conftest.cc
+ for i in -ansi -Wall -pedantic -W -fmessage-length=0
+ do
+ echo "$as_me:$LINENO: checking whether $CXX accepts $i" >&5
+echo $ECHO_N "checking whether $CXX accepts $i... $ECHO_C" >&6
+ if test -z "`${CXX} ${ensc_sys_compilerwarnflags_CXX} $i -c conftest.cc 2>&1`"
+ then
+ CXXFLAGS="${CXXFLAGS} $i"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ fi
+ done
+ rm -f conftest.cc conftest.o
+
+
+echo "$as_me:$LINENO: checking whether to enable extra optimizations" >&5
+echo $ECHO_N "checking whether to enable extra optimizations... $ECHO_C" >&6
+# Check whether --enable-extra-optimizations or --disable-extra-optimizations was given.
+if test "${enable_extra_optimizations+set}" = set; then
+ enableval="$enable_extra_optimizations"
+ case "$enableval" in
+ (yes) use_extra_optimizations=1;;
+ (no) use_extra_optimizations=;;
+ (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for '--disable-extra-optimizations'" >&5
+echo "$as_me: error: '$enableval' is not a valid value for '--disable-extra-optimizations'" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+else
+ use_extra_optimizations=1
+fi;
+
+if test x"$use_extra_optimizations" = x; then
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+else
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+
+
+echo 'void f(){}' > conftest.c
+ for i in -funit-at-a-time
+ do
+ echo "$as_me:$LINENO: checking whether $CC accepts $i" >&5
+echo $ECHO_N "checking whether $CC accepts $i... $ECHO_C" >&6
+ if test -z "`${CC} ${ensc_sys_compilerwarnflags_C} $i -c conftest.c 2>&1`"
+ then
+ CFLAGS="${CFLAGS} $i"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ fi
+ done
+ rm -f conftest.c conftest.o
+
+
+
+
+ echo 'void f(){}' > conftest.cc
+ for i in -funit-at-a-time
+ do
+ echo "$as_me:$LINENO: checking whether $CXX accepts $i" >&5
+echo $ECHO_N "checking whether $CXX accepts $i... $ECHO_C" >&6
+ if test -z "`${CXX} ${ensc_sys_compilerwarnflags_CXX} $i -c conftest.cc 2>&1`"
+ then
+ CXXFLAGS="${CXXFLAGS} $i"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ fi
+ done
+ rm -f conftest.cc conftest.o
+
+fi
+
+echo "$as_me:$LINENO: checking whether to enable debug-code in library" >&5
+echo $ECHO_N "checking whether to enable debug-code in library... $ECHO_C" >&6
+# Check whether --enable-lib-debug or --disable-lib-debug was given.
+if test "${enable_lib_debug+set}" = set; then
+ enableval="$enable_lib_debug"
+ case "$enableval" in
+ (yes) use_lib_debug=1;;
+ (no) use_lib_debug=;;
+ (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for '--enable-lib-debug'" >&5
+echo "$as_me: error: '$enableval' is not a valid value for '--enable-lib-debug'" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+else
+ use_lib_debug=
+fi;
+
+if test x"$use_lib_debug" = x; then
+ LIB_DEBUG_CPPFLAGS=-DNDEBUG
+
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+else
+
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+fi
+
+echo "$as_me:$LINENO: checking whether to enable expensive tests" >&5
+echo $ECHO_N "checking whether to enable expensive tests... $ECHO_C" >&6
+# Check whether --enable-expensive-tests or --disable-expensive-tests was given.
+if test "${enable_expensive_tests+set}" = set; then
+ enableval="$enable_expensive_tests"
+ case "$enableval" in
+ (yes|no) use_expensive_tests=$enableval;;
+ (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for '--disable-expensive-tests'" >&5
+echo "$as_me: error: '$enableval' is not a valid value for '--disable-expensive-tests'" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+else
+ use_expensive_tests=yes
+fi;
+echo "$as_me:$LINENO: result: $use_expensive_tests" >&5
+echo "${ECHO_T}$use_expensive_tests" >&6
+
+ENSC_USE_EXPENSIVE_TESTS="$use_expensive_tests"
+
+
+
+
+ echo "$as_me:$LINENO: checking for declarations in <linux/personality.h>" >&5
+echo $ECHO_N "checking for declarations in <linux/personality.h>... $ECHO_C" >&6
+ echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ echo "$as_me:$LINENO: checking whether MMAP_PAGE_ZERO is declared" >&5
+echo $ECHO_N "checking whether MMAP_PAGE_ZERO is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_MMAP_PAGE_ZERO+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef MMAP_PAGE_ZERO
+ char *p = (char *) MMAP_PAGE_ZERO;
+#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_cv_have_decl_MMAP_PAGE_ZERO=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_MMAP_PAGE_ZERO=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_MMAP_PAGE_ZERO" >&5
+echo "${ECHO_T}$ac_cv_have_decl_MMAP_PAGE_ZERO" >&6
+if test $ac_cv_have_decl_MMAP_PAGE_ZERO = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MMAP_PAGE_ZERO 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MMAP_PAGE_ZERO 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether ADDR_LIMIT_32BIT is declared" >&5
+echo $ECHO_N "checking whether ADDR_LIMIT_32BIT is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_ADDR_LIMIT_32BIT+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef ADDR_LIMIT_32BIT
+ char *p = (char *) ADDR_LIMIT_32BIT;
+#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_cv_have_decl_ADDR_LIMIT_32BIT=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_ADDR_LIMIT_32BIT=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_ADDR_LIMIT_32BIT" >&5
+echo "${ECHO_T}$ac_cv_have_decl_ADDR_LIMIT_32BIT" >&6
+if test $ac_cv_have_decl_ADDR_LIMIT_32BIT = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ADDR_LIMIT_32BIT 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ADDR_LIMIT_32BIT 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether SHORT_INODE is declared" >&5
+echo $ECHO_N "checking whether SHORT_INODE is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_SHORT_INODE+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef SHORT_INODE
+ char *p = (char *) SHORT_INODE;
+#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_cv_have_decl_SHORT_INODE=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_SHORT_INODE=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_SHORT_INODE" >&5
+echo "${ECHO_T}$ac_cv_have_decl_SHORT_INODE" >&6
+if test $ac_cv_have_decl_SHORT_INODE = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SHORT_INODE 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SHORT_INODE 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether WHOLE_SECONDS is declared" >&5
+echo $ECHO_N "checking whether WHOLE_SECONDS is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_WHOLE_SECONDS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef WHOLE_SECONDS
+ char *p = (char *) WHOLE_SECONDS;
+#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_cv_have_decl_WHOLE_SECONDS=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_WHOLE_SECONDS=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_WHOLE_SECONDS" >&5
+echo "${ECHO_T}$ac_cv_have_decl_WHOLE_SECONDS" >&6
+if test $ac_cv_have_decl_WHOLE_SECONDS = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_WHOLE_SECONDS 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_WHOLE_SECONDS 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether STICKY_TIMEOUTS is declared" >&5
+echo $ECHO_N "checking whether STICKY_TIMEOUTS is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_STICKY_TIMEOUTS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef STICKY_TIMEOUTS
+ char *p = (char *) STICKY_TIMEOUTS;
+#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_cv_have_decl_STICKY_TIMEOUTS=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_STICKY_TIMEOUTS=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_STICKY_TIMEOUTS" >&5
+echo "${ECHO_T}$ac_cv_have_decl_STICKY_TIMEOUTS" >&6
+if test $ac_cv_have_decl_STICKY_TIMEOUTS = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STICKY_TIMEOUTS 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STICKY_TIMEOUTS 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether ADDR_LIMIT_3GB is declared" >&5
+echo $ECHO_N "checking whether ADDR_LIMIT_3GB is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_ADDR_LIMIT_3GB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef ADDR_LIMIT_3GB
+ char *p = (char *) ADDR_LIMIT_3GB;
+#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_cv_have_decl_ADDR_LIMIT_3GB=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_ADDR_LIMIT_3GB=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_ADDR_LIMIT_3GB" >&5
+echo "${ECHO_T}$ac_cv_have_decl_ADDR_LIMIT_3GB" >&6
+if test $ac_cv_have_decl_ADDR_LIMIT_3GB = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ADDR_LIMIT_3GB 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ADDR_LIMIT_3GB 0
+_ACEOF
+
+
+fi
+
+
+
+ echo "$as_me:$LINENO: checking whether PER_LINUX is declared" >&5
+echo $ECHO_N "checking whether PER_LINUX is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_LINUX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_LINUX
+ char *p = (char *) PER_LINUX;
+#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_cv_have_decl_PER_LINUX=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_LINUX=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_LINUX" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_LINUX" >&6
+if test $ac_cv_have_decl_PER_LINUX = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_LINUX 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_LINUX 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_LINUX_32BIT is declared" >&5
+echo $ECHO_N "checking whether PER_LINUX_32BIT is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_LINUX_32BIT+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_LINUX_32BIT
+ char *p = (char *) PER_LINUX_32BIT;
+#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_cv_have_decl_PER_LINUX_32BIT=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_LINUX_32BIT=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_LINUX_32BIT" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_LINUX_32BIT" >&6
+if test $ac_cv_have_decl_PER_LINUX_32BIT = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_LINUX_32BIT 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_LINUX_32BIT 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_SVR4 is declared" >&5
+echo $ECHO_N "checking whether PER_SVR4 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_SVR4+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_SVR4
+ char *p = (char *) PER_SVR4;
+#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_cv_have_decl_PER_SVR4=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_SVR4=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_SVR4" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_SVR4" >&6
+if test $ac_cv_have_decl_PER_SVR4 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_SVR4 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_SVR4 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_SVR3 is declared" >&5
+echo $ECHO_N "checking whether PER_SVR3 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_SVR3+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_SVR3
+ char *p = (char *) PER_SVR3;
+#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_cv_have_decl_PER_SVR3=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_SVR3=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_SVR3" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_SVR3" >&6
+if test $ac_cv_have_decl_PER_SVR3 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_SVR3 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_SVR3 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_SCOSVR3 is declared" >&5
+echo $ECHO_N "checking whether PER_SCOSVR3 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_SCOSVR3+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_SCOSVR3
+ char *p = (char *) PER_SCOSVR3;
+#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_cv_have_decl_PER_SCOSVR3=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_SCOSVR3=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_SCOSVR3" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_SCOSVR3" >&6
+if test $ac_cv_have_decl_PER_SCOSVR3 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_SCOSVR3 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_SCOSVR3 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_OSR5 is declared" >&5
+echo $ECHO_N "checking whether PER_OSR5 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_OSR5+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_OSR5
+ char *p = (char *) PER_OSR5;
+#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_cv_have_decl_PER_OSR5=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_OSR5=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_OSR5" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_OSR5" >&6
+if test $ac_cv_have_decl_PER_OSR5 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_OSR5 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_OSR5 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_WYSEV386 is declared" >&5
+echo $ECHO_N "checking whether PER_WYSEV386 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_WYSEV386+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_WYSEV386
+ char *p = (char *) PER_WYSEV386;
+#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_cv_have_decl_PER_WYSEV386=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_WYSEV386=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_WYSEV386" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_WYSEV386" >&6
+if test $ac_cv_have_decl_PER_WYSEV386 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_WYSEV386 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_WYSEV386 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_ISCR4 is declared" >&5
+echo $ECHO_N "checking whether PER_ISCR4 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_ISCR4+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_ISCR4
+ char *p = (char *) PER_ISCR4;
+#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_cv_have_decl_PER_ISCR4=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_ISCR4=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_ISCR4" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_ISCR4" >&6
+if test $ac_cv_have_decl_PER_ISCR4 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_ISCR4 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_ISCR4 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_BSD is declared" >&5
+echo $ECHO_N "checking whether PER_BSD is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_BSD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_BSD
+ char *p = (char *) PER_BSD;
+#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_cv_have_decl_PER_BSD=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_BSD=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_BSD" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_BSD" >&6
+if test $ac_cv_have_decl_PER_BSD = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_BSD 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_BSD 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_SUNOS is declared" >&5
+echo $ECHO_N "checking whether PER_SUNOS is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_SUNOS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_SUNOS
+ char *p = (char *) PER_SUNOS;
+#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_cv_have_decl_PER_SUNOS=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_SUNOS=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_SUNOS" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_SUNOS" >&6
+if test $ac_cv_have_decl_PER_SUNOS = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_SUNOS 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_SUNOS 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_XENIX is declared" >&5
+echo $ECHO_N "checking whether PER_XENIX is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_XENIX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_XENIX
+ char *p = (char *) PER_XENIX;
+#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_cv_have_decl_PER_XENIX=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_XENIX=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_XENIX" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_XENIX" >&6
+if test $ac_cv_have_decl_PER_XENIX = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_XENIX 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_XENIX 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_LINUX32 is declared" >&5
+echo $ECHO_N "checking whether PER_LINUX32 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_LINUX32+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_LINUX32
+ char *p = (char *) PER_LINUX32;
+#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_cv_have_decl_PER_LINUX32=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_LINUX32=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_LINUX32" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_LINUX32" >&6
+if test $ac_cv_have_decl_PER_LINUX32 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_LINUX32 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_LINUX32 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_LINUX32_3GB is declared" >&5
+echo $ECHO_N "checking whether PER_LINUX32_3GB is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_LINUX32_3GB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_LINUX32_3GB
+ char *p = (char *) PER_LINUX32_3GB;
+#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_cv_have_decl_PER_LINUX32_3GB=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_LINUX32_3GB=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_LINUX32_3GB" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_LINUX32_3GB" >&6
+if test $ac_cv_have_decl_PER_LINUX32_3GB = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_LINUX32_3GB 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_LINUX32_3GB 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_IRIX32 is declared" >&5
+echo $ECHO_N "checking whether PER_IRIX32 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_IRIX32+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_IRIX32
+ char *p = (char *) PER_IRIX32;
+#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_cv_have_decl_PER_IRIX32=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_IRIX32=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_IRIX32" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_IRIX32" >&6
+if test $ac_cv_have_decl_PER_IRIX32 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_IRIX32 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_IRIX32 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_IRIXN32 is declared" >&5
+echo $ECHO_N "checking whether PER_IRIXN32 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_IRIXN32+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_IRIXN32
+ char *p = (char *) PER_IRIXN32;
+#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_cv_have_decl_PER_IRIXN32=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_IRIXN32=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_IRIXN32" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_IRIXN32" >&6
+if test $ac_cv_have_decl_PER_IRIXN32 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_IRIXN32 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_IRIXN32 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_IRIX64 is declared" >&5
+echo $ECHO_N "checking whether PER_IRIX64 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_IRIX64+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_IRIX64
+ char *p = (char *) PER_IRIX64;
+#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_cv_have_decl_PER_IRIX64=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_IRIX64=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_IRIX64" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_IRIX64" >&6
+if test $ac_cv_have_decl_PER_IRIX64 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_IRIX64 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_IRIX64 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_RISCOS is declared" >&5
+echo $ECHO_N "checking whether PER_RISCOS is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_RISCOS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_RISCOS
+ char *p = (char *) PER_RISCOS;
+#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_cv_have_decl_PER_RISCOS=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_RISCOS=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_RISCOS" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_RISCOS" >&6
+if test $ac_cv_have_decl_PER_RISCOS = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_RISCOS 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_RISCOS 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_SOLARIS is declared" >&5
+echo $ECHO_N "checking whether PER_SOLARIS is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_SOLARIS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_SOLARIS
+ char *p = (char *) PER_SOLARIS;
+#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_cv_have_decl_PER_SOLARIS=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_SOLARIS=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_SOLARIS" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_SOLARIS" >&6
+if test $ac_cv_have_decl_PER_SOLARIS = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_SOLARIS 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_SOLARIS 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_UW7 is declared" >&5
+echo $ECHO_N "checking whether PER_UW7 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_UW7+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_UW7
+ char *p = (char *) PER_UW7;
+#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_cv_have_decl_PER_UW7=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_UW7=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_UW7" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_UW7" >&6
+if test $ac_cv_have_decl_PER_UW7 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_UW7 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_UW7 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_HPUX is declared" >&5
+echo $ECHO_N "checking whether PER_HPUX is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_HPUX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_HPUX
+ char *p = (char *) PER_HPUX;
+#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_cv_have_decl_PER_HPUX=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_HPUX=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_HPUX" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_HPUX" >&6
+if test $ac_cv_have_decl_PER_HPUX = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_HPUX 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_HPUX 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether PER_OSF4 is declared" >&5
+echo $ECHO_N "checking whether PER_OSF4 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_PER_OSF4+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/personality.h>
+
+
+int
+main ()
+{
+#ifndef PER_OSF4
+ char *p = (char *) PER_OSF4;
+#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_cv_have_decl_PER_OSF4=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_PER_OSF4=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_OSF4" >&5
+echo "${ECHO_T}$ac_cv_have_decl_PER_OSF4" >&6
+if test $ac_cv_have_decl_PER_OSF4 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_OSF4 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PER_OSF4 0
+_ACEOF
+
+
+fi
+
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+ echo "$as_me:$LINENO: checking for initrddir" >&5
+echo $ECHO_N "checking for initrddir... $ECHO_C" >&6
+
+# Check whether --with-initrddir or --without-initrddir was given.
+if test "${with_initrddir+set}" = set; then
+ withval="$with_initrddir"
+ case "$withval" in
+ yes|no) { { echo "$as_me:$LINENO: error: '$withval' is not a valid value for '--with-initrddir'" >&5
+echo "$as_me: error: '$withval' is not a valid value for '--with-initrddir'" >&2;}
+ { (exit 1); exit 1; }; };;
+ *) ensc_initrddir=$withval;;
+ esac
+else
+ ensc_initrddir='$(sysconfdir)/init.d'
+fi;
+
+ if test "initrddir"; then
+ initrddir=$ensc_initrddir
+
+ fi
+
+ echo "$as_me:$LINENO: result: $ensc_initrddir" >&5
+echo "${ECHO_T}$ensc_initrddir" >&6
+
+
+ echo "$as_me:$LINENO: checking whether to enable release-mode" >&5
+echo $ECHO_N "checking whether to enable release-mode... $ECHO_C" >&6
+ # Check whether --enable-release or --disable-release was given.
+if test "${enable_release+set}" = set; then
+ enableval="$enable_release"
+ case "$enableval" in
+ yes) ensc_release_mode=yes;;
+ no) ensc_release_mode=no;;
+ *) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for '--enable-release'" >&5
+echo "$as_me: error: '$enableval' is not a valid value for '--enable-release'" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+else
+ ensc_release_mode=no
+fi;
+
+ if test x"$ensc_release_mode" = xno; then
+ RELEASE_CPPFLAGS=
+ else
+ RELEASE_CPPFLAGS='-DNDEBUG'
+ fi
+
+
+ echo "$as_me:$LINENO: result: $ensc_release_mode" >&5
+echo "${ECHO_T}$ensc_release_mode" >&6
+
+
+
+case $host_cpu in
+ (i*86|athlon) min_diet_ver=0.25;;
+ (ia64|hppa*) min_diet_ver=0.29;;
+ (*) min_diet_ver=0.28;;
+esac
+
+
+ echo "$as_me:$LINENO: checking whether to enable dietlibc" >&5
+echo $ECHO_N "checking whether to enable dietlibc... $ECHO_C" >&6
+
+
+
+
+ : ${DIET:=diet}
+ : ${DIETFLAGS=-Os}
+
+ # Check whether --enable-dietlibc or --disable-dietlibc was given.
+if test "${enable_dietlibc+set}" = set; then
+ enableval="$enable_dietlibc"
+ case "$enableval" in
+ (yes) use_dietlibc=forced;;
+ (no) use_dietlibc=forced_no;;
+ (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for --enable-dietlibc" >&5
+echo "$as_me: error: '$enableval' is not a valid value for --enable-dietlibc" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+else
+ which "$DIET" >/dev/null 2>/dev/null && use_dietlibc=detected || use_dietlibc=detected_no
+fi;
+
+ if test "$use_dietlibc" = detected -a "$min_diet_ver"; then
+ _dietlibc_ver=$($DIET -v 2>&1 | sed '1p;d')
+ _dietlibc_ver=${_dietlibc_ver##*diet version }
+ _dietlibc_ver=${_dietlibc_ver##*dietlibc-}
+ _dietlibc_ver_maj=${_dietlibc_ver%%.*}
+ _dietlibc_ver_min=${_dietlibc_ver##*.}
+ _dietlibc_ver_min=${_dietlibc_ver_min%%[!0-9]*}
+ _dietlibc_cmp="$min_diet_ver"
+ _dietlibc_cmp_maj=${_dietlibc_cmp%%.*}
+ _dietlibc_cmp_min=${_dietlibc_cmp##*.}
+
+ ENSC_VERSION_DIETLIBC=$_dietlibc_ver_maj.$_dietlibc_ver_min
+
+ let _dietlibc_ver=_dietlibc_ver_maj*1000+_dietlibc_ver_min 2>/dev/null || _dietlibc_ver=0
+ let _dietlibc_cmp=_dietlibc_cmp_maj*1000+_dietlibc_cmp_min
+
+ test $_dietlibc_ver -ge $_dietlibc_cmp || use_dietlibc=detected_old
+ else
+ ENSC_VERSION_DIETLIBC=
+ _dietlibc_ver=-1
+ fi
+
+ ENSC_VERSION_DIETLIBC_NUM=$_dietlibc_ver
+ ensc_have_dietlibc=no
+
+ case x"$use_dietlibc" in
+ xdetected)
+
+
+if true; then
+ USE_DIETLIBC_TRUE=
+ USE_DIETLIBC_FALSE='#'
+else
+ USE_DIETLIBC_TRUE='#'
+ USE_DIETLIBC_FALSE=
+fi
+
+ echo "$as_me:$LINENO: result: yes (autodetected, $ENSC_VERSION_DIETLIBC)" >&5
+echo "${ECHO_T}yes (autodetected, $ENSC_VERSION_DIETLIBC)" >&6
+ ensc_have_dietlibc=yes
+ ;;
+ xforced)
+
+
+if true; then
+ USE_DIETLIBC_TRUE=
+ USE_DIETLIBC_FALSE='#'
+else
+ USE_DIETLIBC_TRUE='#'
+ USE_DIETLIBC_FALSE=
+fi
+
+ echo "$as_me:$LINENO: result: yes (forced)" >&5
+echo "${ECHO_T}yes (forced)" >&6
+ ensc_have_dietlibc=yes
+ ;;
+ xdetected_no)
+
+
+if false; then
+ USE_DIETLIBC_TRUE=
+ USE_DIETLIBC_FALSE='#'
+else
+ USE_DIETLIBC_TRUE='#'
+ USE_DIETLIBC_FALSE=
+fi
+
+ echo "$as_me:$LINENO: result: no (detected)" >&5
+echo "${ECHO_T}no (detected)" >&6
+ ;;
+ xdetected_old)
+
+
+if false; then
+ USE_DIETLIBC_TRUE=
+ USE_DIETLIBC_FALSE='#'
+else
+ USE_DIETLIBC_TRUE='#'
+ USE_DIETLIBC_FALSE=
+fi
+
+ echo "$as_me:$LINENO: result: no (too old; $min_diet_ver+ required, $ENSC_VERSION_DIETLIBC found)" >&5
+echo "${ECHO_T}no (too old; $min_diet_ver+ required, $ENSC_VERSION_DIETLIBC found)" >&6
+ ;;
+ xforced_no)
+
+
+if false; then
+ USE_DIETLIBC_TRUE=
+ USE_DIETLIBC_FALSE='#'
+else
+ USE_DIETLIBC_TRUE='#'
+ USE_DIETLIBC_FALSE=
+fi
+
+ echo "$as_me:$LINENO: result: no (forced)" >&5
+echo "${ECHO_T}no (forced)" >&6
+ ;;
+ *)
+ { { echo "$as_me:$LINENO: error: internal error, use_dietlibc was \"$use_dietlibc\"" >&5
+echo "$as_me: error: internal error, use_dietlibc was \"$use_dietlibc\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ if test x"$ensc_have_dietlibc" != xno; then
+
+
+
+
+ echo "$as_me:$LINENO: checking whether dietlibc supports C99" >&5
+echo $ECHO_N "checking whether dietlibc supports C99... $ECHO_C" >&6
+if test "${ensc_cv_c_dietlibc_c99+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ _ensc_dietlibc_c99_old_CFLAGS=$CFLAGS
+ _ensc_dietlibc_c99_old_CC=$CC
+
+ CFLAGS="-std=c99"
+ CC="${DIET:-diet} $CC"
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat >conftest.$ac_ext <<_ACEOF
+/* */
+_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
+
+ cat >conftest.$ac_ext <<_ACEOF
+
+ #include <stdint.h>
+ #include <sys/cdefs.h>
+ #if defined(inline)
+ # error 'inline' badly defined
+ #endif
+ volatile uint64_t a;
+
+_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
+ ensc_cv_c_dietlibc_c99=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ensc_cv_c_dietlibc_c99=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ensc_cv_c_dietlibc_c99='skipped (compiler does not support C99)'
+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
+
+
+ CC=$_ensc_dietlibc_c99_old_CC
+ CFLAGS=$_ensc_dietlibc_c99_old_CFLAGS
+
+fi
+echo "$as_me:$LINENO: result: $ensc_cv_c_dietlibc_c99" >&5
+echo "${ECHO_T}$ensc_cv_c_dietlibc_c99" >&6
+
+ if test x"$ensc_cv_c_dietlibc_c99" = xyes; then
+ cat >>confdefs.h <<\_ACEOF
+#define ENSC_DIETLIBC_C99 1
+_ACEOF
+
+ fi
+
+ fi
+
+
+if test x"$ensc_have_dietlibc" = xno; then
+ { echo "$as_me:$LINENO: WARNING: *** ***" >&5
+echo "$as_me: WARNING: *** ***" >&2;}
+ { echo "$as_me:$LINENO: WARNING: *** it is strongly recommended to link util-vserver against ***" >&5
+echo "$as_me: WARNING: *** it is strongly recommended to link util-vserver against ***" >&2;}
+ { echo "$as_me:$LINENO: WARNING: *** dietlibc; glibc's NSS functions are very unreliable in ***" >&5
+echo "$as_me: WARNING: *** dietlibc; glibc's NSS functions are very unreliable in ***" >&2;}
+ { echo "$as_me:$LINENO: WARNING: *** chroot() environments, so you have to expect problems ***" >&5
+echo "$as_me: WARNING: *** chroot() environments, so you have to expect problems ***" >&2;}
+ { echo "$as_me:$LINENO: WARNING: *** there. ***" >&5
+echo "$as_me: WARNING: *** there. ***" >&2;}
+ { echo "$as_me:$LINENO: WARNING: *** ***" >&5
+echo "$as_me: WARNING: *** ***" >&2;}
+
+
+if false; then
+ USE_DIETLIBC_COMPAT_TRUE=
+ USE_DIETLIBC_COMPAT_FALSE='#'
+else
+ USE_DIETLIBC_COMPAT_TRUE='#'
+ USE_DIETLIBC_COMPAT_FALSE=
+fi
+
+else
+ # HACK: libtool does not have cmdline options to build only
+ # dynamic libraries; this can be done with the
+ # '--disable-static' ./configure option only. As our static
+ # libraries will be build with dietlibc, we have to do set
+ # this option which is evaluated by 'AC_PROG_LIBTOOL'
+ # below. Therefore, this macro must not be called earlier.
+ enable_static=no
+
+
+
+
+
+ if test "$host_cpu" = x86_64 -a $ENSC_VERSION_DIETLIBC_NUM -le 0027; then
+ { echo "$as_me:$LINENO: WARNING: *** ***" >&5
+echo "$as_me: WARNING: *** ***" >&2;}
+ { echo "$as_me:$LINENO: WARNING: *** dietlibc<=0.27 is known to be broken for x86_64 systems ***" >&5
+echo "$as_me: WARNING: *** dietlibc<=0.27 is known to be broken for x86_64 systems ***" >&2;}
+ { echo "$as_me:$LINENO: WARNING: *** please make sure that at least the environ.S fix is applied ***" >&5
+echo "$as_me: WARNING: *** please make sure that at least the environ.S fix is applied ***" >&2;}
+ { echo "$as_me:$LINENO: WARNING: *** and lib/__nice.c added ***" >&5
+echo "$as_me: WARNING: *** and lib/__nice.c added ***" >&2;}
+ { echo "$as_me:$LINENO: WARNING: *** ***" >&5
+echo "$as_me: WARNING: *** ***" >&2;}
+ fi
+
+
+ echo "$as_me:$LINENO: checking whether to use alternative _syscallX macros" >&5
+echo $ECHO_N "checking whether to use alternative _syscallX macros... $ECHO_C" >&6
+ # Check whether --enable-alternative-syscalls or --disable-alternative-syscalls was given.
+if test "${enable_alternative_syscalls+set}" = set; then
+ enableval="$enable_alternative_syscalls"
+ case $enableval in
+ (yes|no) ensc_use_alternative_syscall_macros=$enableval;;
+ (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for '--disable-alternative-syscalls'" >&5
+echo "$as_me: error: '$enableval' is not a valid value for '--disable-alternative-syscalls'" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+else
+ ensc_use_alternative_syscall_macros=yes
+fi;
+
+ case $ensc_use_alternative_syscall_macros in
+ (yes)
+cat >>confdefs.h <<\_ACEOF
+#define ENSC_USE_ALTERNATIVE_SYSCALL_MACROS 1
+_ACEOF
+;;
+ esac
+
+ echo "$as_me:$LINENO: result: $ensc_use_alternative_syscall_macros" >&5
+echo "${ECHO_T}$ensc_use_alternative_syscall_macros" >&6
+
+
+
+
+ echo "$as_me:$LINENO: checking whether dietlibc needs '-lcompat'" >&5
+echo $ECHO_N "checking whether dietlibc needs '-lcompat'... $ECHO_C" >&6
+if test "${ensc_cv_c_dietlibc_compat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ ensc_dietlibc_need_compat_old_CC=$CC
+ CC="${DIET:-diet} $CC"
+ cat >conftest.$ac_ext <<_ACEOF
+
+ /* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include "$srcdir/lib/syscall-wrap.h"
+#include <errno.h>
+
+#define __NR_foo0 42
+#define __NR_foo1 42
+#define __NR_foo2 42
+#define __NR_foo3 42
+#define __NR_foo4 42
+#define __NR_foo5 42
+inline static _syscall0(int, foo0)
+inline static _syscall1(int, foo1, int, a)
+inline static _syscall2(int, foo2, int, a, int, b)
+inline static _syscall3(int, foo3, int, a, int, b, int, c)
+inline static _syscall4(int, foo4, int, a, int, b, int, c, int, d)
+inline static _syscall5(int, foo5, int, a, int, b, int, c, int, d, int, e)
+
+int
+main ()
+{
+foo0(); foo1(0); foo2(0,0); foo3(0,0,0); foo4(0,0,0,0); foo5(0,0,0,0,0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ensc_cv_c_dietlibc_compat=no
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ensc_cv_c_dietlibc_compat=yes
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CC=$ensc_dietlibc_need_compat_old_CC
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+echo "$as_me:$LINENO: result: $ensc_cv_c_dietlibc_compat" >&5
+echo "${ECHO_T}$ensc_cv_c_dietlibc_compat" >&6
+
+ if test x"USE_DIETLIBC_COMPAT" != x; then
+
+
+if test x"$ensc_cv_c_dietlibc_compat" = xyes; then
+ USE_DIETLIBC_COMPAT_TRUE=
+ USE_DIETLIBC_COMPAT_FALSE='#'
+else
+ USE_DIETLIBC_COMPAT_TRUE='#'
+ USE_DIETLIBC_COMPAT_FALSE=
+fi
+
+ fi
+
+fi
+
+
+
+if test x"$ensc_have_dietlibc" = xyes; then
+ ENSC_USE_DIETLIBC_TRUE=
+ ENSC_USE_DIETLIBC_FALSE='#'
+else
+ ENSC_USE_DIETLIBC_TRUE='#'
+ ENSC_USE_DIETLIBC_FALSE=
+fi
+
+
+
+if true; then
+ ENSC_USE_GLIBC_TRUE=
+ ENSC_USE_GLIBC_FALSE='#'
+else
+ ENSC_USE_GLIBC_TRUE='#'
+ ENSC_USE_GLIBC_FALSE=
+fi
+
+
+# HACK: see comments at 'enable_static' above
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+ enableval="$enable_shared"
+ p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_shared=yes
+fi;
+
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+ enableval="$enable_static"
+ p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_static=yes
+fi;
+
+# Check whether --enable-fast-install or --disable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+ enableval="$enable_fast_install"
+ p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi;
+
+echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
+if test "${lt_cv_path_SED+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for lt_ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+ test ! -f $lt_ac_sed && continue
+ cat /dev/null > conftest.in
+ lt_ac_count=0
+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+ # Check for GNU sed and select it if it is found.
+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+ lt_cv_path_SED=$lt_ac_sed
+ break
+ fi
+ while true; do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo >>conftest.nl
+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+ cmp -s conftest.out conftest.nl || break
+ # 10000 chars as input seems more than enough
+ test $lt_ac_count -gt 10 && break
+ lt_ac_count=`expr $lt_ac_count + 1`
+ if test $lt_ac_count -gt $lt_ac_max; then
+ lt_ac_max=$lt_ac_count
+ lt_cv_path_SED=$lt_ac_sed
+ fi
+ done
+done
+
+fi
+
+SED=$lt_cv_path_SED
+echo "$as_me:$LINENO: result: $SED" >&5
+echo "${ECHO_T}$SED" >&6
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+ then ac_cv_prog_egrep='grep -E'
+ else ac_cv_prog_egrep='egrep'
+ fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+ withval="$with_gnu_ld"
+ test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+ echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
+if test "${lt_cv_ld_reload_flag+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
+echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
+if test "${lt_cv_path_NM+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi
+fi
+echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+echo "${ECHO_T}$lt_cv_path_NM" >&6
+NM="$lt_cv_path_NM"
+
+echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
+echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6
+if test "${lt_cv_deplibs_check_method+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump'.
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | kfreebsd*-gnu | dragonfly*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case "$host_cpu" in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+nto-qnx*)
+ lt_cv_deplibs_check_method=unknown
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sco3.2v5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+ enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line 10466 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
+if test "${lt_cv_cc_needs_belf+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ lt_cv_cc_needs_belf=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+lt_cv_cc_needs_belf=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.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_header_stdc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ exit(2);
+ exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+for ac_header in dlfcn.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------------------ ##
+## Report this to enrico.scholz@informatik.tu-chemnitz.de ##
+## ------------------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
+if test -z "$CXXCPP"; then
+ if test "${ac_cv_prog_CXXCPP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # Double quotes because CXXCPP needs to be expanded
+ for CXXCPP in "$CXX -E" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+ CXXCPP=$ac_cv_prog_CXXCPP
+else
+ ac_cv_prog_CXXCPP=$CXXCPP
+fi
+echo "$as_me:$LINENO: result: $CXXCPP" >&5
+echo "${ECHO_T}$CXXCPP" >&6
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+fi
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_F77+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$F77"; then
+ ac_cv_prog_F77="$F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+F77=$ac_cv_prog_F77
+if test -n "$F77"; then
+ echo "$as_me:$LINENO: result: $F77" >&5
+echo "${ECHO_T}$F77" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$F77" && break
+ done
+fi
+if test -z "$F77"; then
+ ac_ct_F77=$F77
+ for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_F77"; then
+ ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_F77="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_F77=$ac_cv_prog_ac_ct_F77
+if test -n "$ac_ct_F77"; then
+ echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
+echo "${ECHO_T}$ac_ct_F77" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_F77" && break
+done
+
+ F77=$ac_ct_F77
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:11580:" \
+ "checking for Fortran 77 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); }
+rm -f a.out
+
+# If we don't use `.F' as extension, the preprocessor is not run on the
+# input file. (Note that this only needs to work for GNU compilers.)
+ac_save_ext=$ac_ext
+ac_ext=F
+echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6
+if test "${ac_cv_f77_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+ program main
+#ifndef __GNUC__
+ choke me
+#endif
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_f77_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6
+ac_ext=$ac_save_ext
+ac_test_FFLAGS=${FFLAGS+set}
+ac_save_FFLAGS=$FFLAGS
+FFLAGS=
+echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
+echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_f77_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ FFLAGS=-g
+cat >conftest.$ac_ext <<_ACEOF
+ program main
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_f77_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_f77_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
+echo "${ECHO_T}$ac_cv_prog_f77_g" >&6
+if test "$ac_test_FFLAGS" = set; then
+ FFLAGS=$ac_save_FFLAGS
+elif test $ac_cv_prog_f77_g = yes; then
+ if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+ FFLAGS="-g -O2"
+ else
+ FFLAGS="-g"
+ fi
+else
+ if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+ FFLAGS="-O2"
+ else
+ FFLAGS=
+ fi
+fi
+
+G77=`test $ac_compiler_gnu = yes && echo yes`
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+
+# find the maximum length of command line arguments
+echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for *BSD
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ *)
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
+ = "XX$teststring") >/dev/null 2>&1 &&
+ new_result=`expr "X$teststring" : ".*" 2>&1` &&
+ lt_cv_sys_max_cmd_len=$new_result &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on massive
+ # amounts of additional arguments before passing them to the linker.
+ # It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ ;;
+ esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+ echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
+else
+ echo "$as_me:$LINENO: result: none" >&5
+echo "${ECHO_T}none" >&6
+fi
+
+
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDEGRST]'
+ fi
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ ;;
+linux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDGIRSTW]'
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris* | sysv5*)
+ symcode='[BDRT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+ 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
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+ (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if grep ' nm_test_var$' "$nlist" >/dev/null; then
+ if grep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+ cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+ cat <<\EOF >> conftest.$ac_ext
+ {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -f conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ echo "$as_me:$LINENO: result: failed" >&5
+echo "${ECHO_T}failed" >&6
+else
+ echo "$as_me:$LINENO: result: ok" >&5
+echo "${ECHO_T}ok" >&6
+fi
+
+echo "$as_me:$LINENO: checking for objdir" >&5
+echo $ECHO_N "checking for objdir... $ECHO_C" >&6
+if test "${lt_cv_objdir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+echo "${ECHO_T}$lt_cv_objdir" >&6
+objdir=$lt_cv_objdir
+
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ echo "$as_me:$LINENO: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false"
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+echo "${ECHO_T}$ac_ct_AR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ AR=$ac_ct_AR
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ RANLIB=$ac_ct_RANLIB
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ STRIP=$ac_ct_STRIP
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+ ;;
+ *)
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ echo "$as_me:$LINENO: checking for file" >&5
+echo $ECHO_N "checking for file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+enable_dlopen=no
+enable_win32_dll=no
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+ enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+
+# Check whether --with-pic or --without-pic was given.
+if test "${with_pic+set}" = set; then
+ withval="$with_pic"
+ pic_mode="$withval"
+else
+ pic_mode=default
+fi;
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+#
+# Check for any special shared library compilation flags.
+#
+lt_prog_cc_shlib=
+if test "$GCC" = no; then
+ case $host_os in
+ sco3.2v5*)
+ lt_prog_cc_shlib='-belf'
+ ;;
+ esac
+fi
+if test -n "$lt_prog_cc_shlib"; then
+ { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5
+echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;}
+ if echo "$old_CC $old_CFLAGS " | grep "[ ]$lt_prog_cc_shlib[ ]" >/dev/null; then :
+ else
+ { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
+echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
+ lt_cv_prog_cc_can_build_shared=no
+ fi
+fi
+
+
+#
+# Check to make sure the static flag actually works.
+#
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6
+if test "${lt_prog_compiler_static_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_prog_compiler_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_prog_compiler_static"
+ printf "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_prog_compiler_static_works=yes
+ fi
+ else
+ lt_prog_compiler_static_works=yes
+ fi
+ fi
+ $rm conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works" >&6
+
+if test x"$lt_prog_compiler_static_works" = xyes; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:12678: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:12682: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic='-qnocommon'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ esac
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ linux*)
+ case $cc_basename in
+ icc* | ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ pgcc* | pgf77* | pgf90*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-static'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ lt_prog_compiler_pic='-Kpic'
+ lt_prog_compiler_static='-dn'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:12940: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:12944: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_prog_compiler_pic_works=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6
+
+if test x"$lt_prog_compiler_pic_works" = xyes; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+case "$host_os" in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:13002: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:13006: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w .
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+ if test "$hard_links" = no; then
+ { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+ runpath_var=
+ allow_undefined_flag=
+ enable_shared_with_static_runtimes=no
+ archive_cmds=
+ archive_expsym_cmds=
+ old_archive_From_new_cmds=
+ old_archive_from_expsyms_cmds=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ thread_safe_flag_spec=
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld=
+ hardcode_libdir_separator=
+ hardcode_direct=no
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ link_all_deplibs=unknown
+ hardcode_automatic=no
+ module_cmds=
+ module_expsym_cmds=
+ always_export_symbols=no
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ ld_shlibs=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec=
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec=
+ tmp_addflag=' -fpic -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' ${wl}-bernotok'
+ allow_undefined_flag=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ always_export_symbols=yes
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec=' '
+ archive_cmds_need_lc=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_From_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ whole_archive_flag_spec=''
+ link_all_deplibs=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ hpux10* | hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ *)
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld='+b $libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ ia64*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ export_dynamic_flag_spec='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ link_all_deplibs=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ openbsd*)
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+
+ sco3.2v5*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='${wl}-Bexport'
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z text'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+ else
+ wlarc=''
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ *)
+ whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ no_undefined_flag='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv5*)
+ no_undefined_flag=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec=
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+echo "${ECHO_T}$ld_shlibs" >&6
+test "$ld_shlibs" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+ $rm conftest*
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc=no
+ else
+ archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+ # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+ if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+ else
+ sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+ fi
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+kfreebsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ *) # from 3.2 on
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case "$host_cpu" in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 14387 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+knetbsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+ test -n "$runpath_var" || \
+ test "X$hardcode_automatic" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action" >&5
+echo "${ECHO_T}$hardcode_action" >&6
+
+if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+ ;;
+ *)
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ ;;
+ esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+ lt_cv_dlopen="shl_load"
+else
+ echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+ echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+ lt_cv_dlopen="dlopen"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_svld_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_dld_link=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 15258 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 15356 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+# Report which librarie types wil actually be built
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix4* | aix5*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler \
+ CC \
+ LD \
+ lt_prog_compiler_wl \
+ lt_prog_compiler_pic \
+ lt_prog_compiler_static \
+ lt_prog_compiler_no_builtin_flag \
+ export_dynamic_flag_spec \
+ thread_safe_flag_spec \
+ whole_archive_flag_spec \
+ enable_shared_with_static_runtimes \
+ old_archive_cmds \
+ old_archive_from_new_cmds \
+ predep_objects \
+ postdep_objects \
+ predeps \
+ postdeps \
+ compiler_lib_search_path \
+ archive_cmds \
+ archive_expsym_cmds \
+ postinstall_cmds \
+ postuninstall_cmds \
+ old_archive_from_expsyms_cmds \
+ allow_undefined_flag \
+ no_undefined_flag \
+ export_symbols_cmds \
+ hardcode_libdir_flag_spec \
+ hardcode_libdir_flag_spec_ld \
+ hardcode_libdir_separator \
+ hardcode_automatic \
+ module_cmds \
+ module_expsym_cmds \
+ lt_cv_prog_compiler_c_o \
+ exclude_expsyms \
+ include_expsyms; do
+
+ case $var in
+ old_archive_cmds | \
+ old_archive_from_new_cmds | \
+ archive_cmds | \
+ archive_expsym_cmds | \
+ module_cmds | \
+ module_expsym_cmds | \
+ old_archive_from_expsyms_cmds | \
+ export_symbols_cmds | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="${ofile}T"
+ trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+ $rm -f "$cfgfile"
+ { echo "$as_me:$LINENO: creating $ofile" >&5
+echo "$as_me: creating $ofile" >&6;}
+
+ cat <<__EOF__ >> "$cfgfile"
+#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+
+ case $host_os in
+ aix3*)
+ cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" || \
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+# Check whether --with-tags or --without-tags was given.
+if test "${with_tags+set}" = set; then
+ withval="$with_tags"
+ tagnames="$withval"
+fi;
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+ if test ! -f "${ofile}"; then
+ { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
+ fi
+
+ if test -z "$LTCC"; then
+ eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+ if test -z "$LTCC"; then
+ { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
+ else
+ { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
+echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
+ fi
+ fi
+
+ # Extract list of available tagged configurations in $ofile.
+ # Note that this assumes the entire list is on one line.
+ available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for tagname in $tagnames; do
+ IFS="$lt_save_ifs"
+ # Check whether tagname contains only valid characters
+ case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
+ "") ;;
+ *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
+echo "$as_me: error: invalid tag name: $tagname" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+ then
+ { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
+echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ # Update the list of available tags.
+ if test -n "$tagname"; then
+ echo appending configuration tag \"$tagname\" to $ofile
+
+ case $tagname in
+ CXX)
+ if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_automatic_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+# Source file extension for C++ test sources.
+ac_ext=cc
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+ unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+ unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+compiler_CXX=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+ lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+else
+ lt_prog_compiler_no_builtin_flag_CXX=
+fi
+
+if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+ withval="$with_gnu_ld"
+ test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+ echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+ grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_CXX=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+ld_shlibs_CXX=yes
+case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_CXX=''
+ hardcode_direct_CXX=yes
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct_CXX=yes
+ else
+ # We have old collect2
+ hardcode_direct_CXX=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_CXX=yes
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ hardcode_libdir_separator_CXX=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols_CXX=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_CXX='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_CXX="-z nodefs"
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_CXX=' ${wl}-bernotok'
+ allow_undefined_flag_CXX=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ always_export_symbols_CXX=yes
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_CXX=' '
+ archive_cmds_need_lc_CXX=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ allow_undefined_flag_CXX=unsupported
+ always_export_symbols_CXX=no
+ enable_shared_with_static_runtimes_CXX=yes
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ archive_cmds_need_lc_CXX=no
+ hardcode_direct_CXX=no
+ hardcode_automatic_CXX=yes
+ hardcode_shlibpath_var_CXX=unsupported
+ whole_archive_flag_spec_CXX=''
+ link_all_deplibs_CXX=yes
+
+ if test "$GXX" = yes ; then
+ lt_int_apple_cc_single_mod=no
+ output_verbose_link_cmd='echo'
+ if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
+ lt_int_apple_cc_single_mod=yes
+ fi
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ else
+ archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ fi
+ module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ freebsd[12]*)
+ # C++ shared libraries reported to be fairly broken before switch to ELF
+ ld_shlibs_CXX=no
+ ;;
+ freebsd-elf*)
+ archive_cmds_need_lc_CXX=no
+ ;;
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ ld_shlibs_CXX=yes
+ ;;
+ gnu*)
+ ;;
+ hpux9*)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ hardcode_direct_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
+ hardcode_libdir_separator_CXX=:
+ ;;
+ ia64*)
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ ;;
+ *)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ ;;
+ esac
+ fi
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ ;;
+ ia64*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ *)
+ hardcode_direct_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case "$host_cpu" in
+ ia64*|hppa*64*)
+ archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+ fi
+ fi
+ link_all_deplibs_CXX=yes
+ ;;
+ esac
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ ;;
+ linux*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc*)
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ archive_cmds_need_lc_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ pgCC*)
+ # Portland Group C++ compiler
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX=''
+ ;;
+ cxx*)
+ # Compaq C++
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ esac
+ ;;
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ m88k*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ ld_shlibs_CXX=no
+ ;;
+ openbsd*)
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd='echo'
+ ;;
+ osf3*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ cxx*)
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ cxx*)
+ allow_undefined_flag_CXX=' -expect_unresolved \*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+ $rm $lib.exp'
+
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ psos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ sco*)
+ archive_cmds_need_lc_CXX=no
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_shlibpath_var_CXX=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The C++ compiler is used as linker so we must use $wl
+ # flag to pass the commands to the underlying system
+ # linker. We must also pass each convience library through
+ # to the system linker between allextract/defaultextract.
+ # The C++ compiler will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ link_all_deplibs_CXX=yes
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+ if $CC --version | grep -v '^2\.7' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+ fi
+ ;;
+ esac
+ ;;
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ archive_cmds_need_lc_CXX=no
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+esac
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+GCC_CXX="$GXX"
+LD_CXX="$LD"
+
+
+cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+EOF
+
+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
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ # The `*' in the case matches for architectures that use `case' in
+ # $output_verbose_cmd can trigger glob expansion during the loop
+ # eval without this substitution.
+ output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+
+ for p in `eval $output_verbose_link_cmd`; do
+ case $p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" \
+ || test $p = "-R"; then
+ prev=$p
+ continue
+ else
+ prev=
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ case $p in
+ -L* | -R*)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$compiler_lib_search_path_CXX"; then
+ compiler_lib_search_path_CXX="${prev}${p}"
+ else
+ compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$postdeps_CXX"; then
+ postdeps_CXX="${prev}${p}"
+ else
+ postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+ fi
+ fi
+ ;;
+
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$predep_objects_CXX"; then
+ predep_objects_CXX="$p"
+ else
+ predep_objects_CXX="$predep_objects_CXX $p"
+ fi
+ else
+ if test -z "$postdep_objects_CXX"; then
+ postdep_objects_CXX="$p"
+ else
+ postdep_objects_CXX="$postdep_objects_CXX $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$rm -f confest.$objext
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+
+lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ fi
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | os2* | pw32*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_CXX='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ lt_prog_compiler_pic_CXX=
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_CXX=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix4* | aix5*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ else
+ lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic_CXX='-qnocommon'
+ lt_prog_compiler_wl_CXX='-Wl,'
+ ;;
+ esac
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+ if test "$host_cpu" != ia64; then
+ lt_prog_compiler_pic_CXX='+Z'
+ fi
+ ;;
+ aCC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux*)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ icpc* | ecpc*)
+ # Intel C++
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ pgCC*)
+ # Portland Group C++ compiler.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fpic'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ lt_prog_compiler_pic_CXX='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd*)
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ lt_prog_compiler_wl_CXX='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ sco*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ lt_prog_compiler_pic_CXX='-pic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ unixware*)
+ ;;
+ vxworks*)
+ ;;
+ *)
+ lt_prog_compiler_can_build_shared_CXX=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_prog_compiler_pic_works_CXX=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:17604: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:17608: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_prog_compiler_pic_works_CXX=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6
+
+if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
+ case $lt_prog_compiler_pic_CXX in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+ esac
+else
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+case "$host_os" in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_CXX=
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:17666: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:17670: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w .
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+ if test "$hard_links" = no; then
+ { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ case $host_os in
+ aix4* | aix5*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ export_symbols_cmds_CXX="$ltdll_cmds"
+ ;;
+ cygwin* | mingw*)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ *)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_CXX=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_CXX in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+ $rm conftest*
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc_CXX=no
+ else
+ archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+ # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+ if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+ else
+ sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+ fi
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+kfreebsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ *) # from 3.2 on
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case "$host_cpu" in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 18181 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+knetbsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" || \
+ test -n "$runpath_var_CXX" || \
+ test "X$hardcode_automatic_CXX" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct_CXX" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+ test "$hardcode_minus_L_CXX" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_CXX=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_CXX=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_CXX=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+echo "${ECHO_T}$hardcode_action_CXX" >&6
+
+if test "$hardcode_action_CXX" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+ ;;
+ *)
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ ;;
+ esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+ lt_cv_dlopen="shl_load"
+else
+ echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+ echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+ lt_cv_dlopen="dlopen"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_svld_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_dld_link=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 19052 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 19150 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_CXX \
+ CC_CXX \
+ LD_CXX \
+ lt_prog_compiler_wl_CXX \
+ lt_prog_compiler_pic_CXX \
+ lt_prog_compiler_static_CXX \
+ lt_prog_compiler_no_builtin_flag_CXX \
+ export_dynamic_flag_spec_CXX \
+ thread_safe_flag_spec_CXX \
+ whole_archive_flag_spec_CXX \
+ enable_shared_with_static_runtimes_CXX \
+ old_archive_cmds_CXX \
+ old_archive_from_new_cmds_CXX \
+ predep_objects_CXX \
+ postdep_objects_CXX \
+ predeps_CXX \
+ postdeps_CXX \
+ compiler_lib_search_path_CXX \
+ archive_cmds_CXX \
+ archive_expsym_cmds_CXX \
+ postinstall_cmds_CXX \
+ postuninstall_cmds_CXX \
+ old_archive_from_expsyms_cmds_CXX \
+ allow_undefined_flag_CXX \
+ no_undefined_flag_CXX \
+ export_symbols_cmds_CXX \
+ hardcode_libdir_flag_spec_CXX \
+ hardcode_libdir_flag_spec_ld_CXX \
+ hardcode_libdir_separator_CXX \
+ hardcode_automatic_CXX \
+ module_cmds_CXX \
+ module_expsym_cmds_CXX \
+ lt_cv_prog_compiler_c_o_CXX \
+ exclude_expsyms_CXX \
+ include_expsyms_CXX; do
+
+ case $var in
+ old_archive_cmds_CXX | \
+ old_archive_from_new_cmds_CXX | \
+ archive_cmds_CXX | \
+ archive_expsym_cmds_CXX | \
+ module_cmds_CXX | \
+ module_expsym_cmds_CXX | \
+ old_archive_from_expsyms_cmds_CXX | \
+ export_symbols_cmds_CXX | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_CXX
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_CXX
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_CXX
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_CXX"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+
+ else
+ tagname=""
+ fi
+ ;;
+
+ F77)
+ if test -n "$F77" && test "X$F77" != "Xno"; then
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+
+
+archive_cmds_need_lc_F77=no
+allow_undefined_flag_F77=
+always_export_symbols_F77=no
+archive_expsym_cmds_F77=
+export_dynamic_flag_spec_F77=
+hardcode_direct_F77=no
+hardcode_libdir_flag_spec_F77=
+hardcode_libdir_flag_spec_ld_F77=
+hardcode_libdir_separator_F77=
+hardcode_minus_L_F77=no
+hardcode_automatic_F77=no
+module_cmds_F77=
+module_expsym_cmds_F77=
+link_all_deplibs_F77=unknown
+old_archive_cmds_F77=$old_archive_cmds
+no_undefined_flag_F77=
+whole_archive_flag_spec_F77=
+enable_shared_with_static_runtimes_F77=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+objext_F77=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code=" subroutine t\n return\n end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code=" program t\n end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+compiler_F77=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+aix4* | aix5*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+GCC_F77="$G77"
+LD_F77="$LD"
+
+lt_prog_compiler_wl_F77=
+lt_prog_compiler_pic_F77=
+lt_prog_compiler_static_F77=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_static_F77='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_F77='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_F77='-fno-common'
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared_F77=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_F77=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_F77='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ lt_prog_compiler_pic_F77='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_F77='-Bstatic'
+ else
+ lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic_F77='-qnocommon'
+ lt_prog_compiler_wl_F77='-Wl,'
+ ;;
+ esac
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_F77='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static_F77='-non_shared'
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ linux*)
+ case $cc_basename in
+ icc* | ecc*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-static'
+ ;;
+ pgcc* | pgf77* | pgf90*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_pic_F77='-fpic'
+ lt_prog_compiler_static_F77='-static'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static_F77='-non_shared'
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static_F77='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ lt_prog_compiler_pic_F77='-Kpic'
+ lt_prog_compiler_static_F77='-dn'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl_F77='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl_F77='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl_F77='-Qoption ld '
+ lt_prog_compiler_pic_F77='-PIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic_F77='-Kconform_pic'
+ lt_prog_compiler_static_F77='-Bstatic'
+ fi
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_can_build_shared_F77=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic_F77='-pic'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared_F77=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_F77"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_prog_compiler_pic_works_F77=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_F77"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:20035: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:20039: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_prog_compiler_pic_works_F77=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6
+
+if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
+ case $lt_prog_compiler_pic_F77 in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
+ esac
+else
+ lt_prog_compiler_pic_F77=
+ lt_prog_compiler_can_build_shared_F77=no
+fi
+
+fi
+case "$host_os" in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_F77=
+ ;;
+ *)
+ lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_c_o_F77=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:20097: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:20101: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_F77=yes
+ fi
+ fi
+ chmod u+w .
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+ if test "$hard_links" = no; then
+ { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+ runpath_var=
+ allow_undefined_flag_F77=
+ enable_shared_with_static_runtimes_F77=no
+ archive_cmds_F77=
+ archive_expsym_cmds_F77=
+ old_archive_From_new_cmds_F77=
+ old_archive_from_expsyms_cmds_F77=
+ export_dynamic_flag_spec_F77=
+ whole_archive_flag_spec_F77=
+ thread_safe_flag_spec_F77=
+ hardcode_libdir_flag_spec_F77=
+ hardcode_libdir_flag_spec_ld_F77=
+ hardcode_libdir_separator_F77=
+ hardcode_direct_F77=no
+ hardcode_minus_L_F77=no
+ hardcode_shlibpath_var_F77=unsupported
+ link_all_deplibs_F77=unknown
+ hardcode_automatic_F77=no
+ module_cmds_F77=
+ module_expsym_cmds_F77=
+ always_export_symbols_F77=no
+ export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms_F77=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs_F77=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_F77='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_F77=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs_F77=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_minus_L_F77=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ ld_shlibs_F77=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_F77=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ allow_undefined_flag_F77=unsupported
+ always_export_symbols_F77=no
+ enable_shared_with_static_runtimes_F77=yes
+ export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec_F77=
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec_F77=
+ tmp_addflag=' -fpic -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs_F77=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs_F77" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec_F77=
+ export_dynamic_flag_spec_F77=
+ whole_archive_flag_spec_F77=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag_F77=unsupported
+ always_export_symbols_F77=yes
+ archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L_F77=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct_F77=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_F77=''
+ hardcode_direct_F77=yes
+ hardcode_libdir_separator_F77=':'
+ link_all_deplibs_F77=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct_F77=yes
+ else
+ # We have old collect2
+ hardcode_direct_F77=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_F77=yes
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_libdir_separator_F77=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols_F77=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_F77='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+ program main
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_F77="-z nodefs"
+ archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+ program main
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_F77=' ${wl}-bernotok'
+ allow_undefined_flag_F77=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ always_export_symbols_F77=yes
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_F77=' '
+ archive_cmds_need_lc_F77=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_minus_L_F77=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs_F77=no
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec_F77=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec_F77=' '
+ allow_undefined_flag_F77=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_From_new_cmds_F77='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes_F77=yes
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag_F77='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ archive_cmds_need_lc_F77=no
+ hardcode_direct_F77=no
+ hardcode_automatic_F77=yes
+ hardcode_shlibpath_var_F77=unsupported
+ whole_archive_flag_spec_F77=''
+ link_all_deplibs_F77=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs_F77=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs_F77=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=yes
+ hardcode_minus_L_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ hardcode_direct_F77=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_F77=yes
+ export_dynamic_flag_spec_F77='${wl}-E'
+ ;;
+
+ hpux10* | hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ *)
+ archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld_F77='+b $libdir'
+ hardcode_libdir_separator_F77=:
+ hardcode_direct_F77=no
+ hardcode_shlibpath_var_F77=no
+ ;;
+ ia64*)
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_direct_F77=no
+ hardcode_shlibpath_var_F77=no
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_F77=yes
+ ;;
+ *)
+ hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ hardcode_direct_F77=yes
+ export_dynamic_flag_spec_F77='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_F77=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
+ fi
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ link_all_deplibs_F77=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ newsos6)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=yes
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ openbsd*)
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_F77='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ ;;
+ *)
+ archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_minus_L_F77=yes
+ allow_undefined_flag_F77=unsupported
+ archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag_F77=' -expect_unresolved \*'
+ archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag_F77=' -expect_unresolved \*'
+ archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec_F77='-rpath $libdir'
+ fi
+ hardcode_libdir_separator_F77=:
+ ;;
+
+ sco3.2v5*)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_F77=no
+ export_dynamic_flag_spec_F77='${wl}-Bexport'
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ;;
+
+ solaris*)
+ no_undefined_flag_F77=' -z text'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+ else
+ wlarc=''
+ archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_shlibpath_var_F77=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
+ *)
+ whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
+ esac
+ link_all_deplibs_F77=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_direct_F77=yes
+ hardcode_minus_L_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds_F77='$CC -r -o $output$reload_objs'
+ hardcode_direct_F77=no
+ ;;
+ motorola)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_F77=no
+ export_dynamic_flag_spec_F77='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_F77=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs_F77=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=yes
+ hardcode_minus_L_F77=no
+ hardcode_shlibpath_var_F77=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ no_undefined_flag_F77='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ sysv5*)
+ no_undefined_flag_F77=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec_F77=
+ hardcode_shlibpath_var_F77=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ *)
+ ld_shlibs_F77=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
+echo "${ECHO_T}$ld_shlibs_F77" >&6
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_F77" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_F77=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_F77 in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+ $rm conftest*
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_F77
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_F77
+ allow_undefined_flag_F77=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc_F77=no
+ else
+ archive_cmds_need_lc_F77=yes
+ fi
+ allow_undefined_flag_F77=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+ # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+ if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+ else
+ sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+ fi
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+kfreebsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ *) # from 3.2 on
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case "$host_cpu" in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 21462 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+knetbsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_F77=
+if test -n "$hardcode_libdir_flag_spec_F77" || \
+ test -n "$runpath_var_F77" || \
+ test "X$hardcode_automatic_F77" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct_F77" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
+ test "$hardcode_minus_L_F77" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_F77=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_F77=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_F77=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
+echo "${ECHO_T}$hardcode_action_F77" >&6
+
+if test "$hardcode_action_F77" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+ ;;
+ *)
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ ;;
+ esac
+fi
+
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_F77 \
+ CC_F77 \
+ LD_F77 \
+ lt_prog_compiler_wl_F77 \
+ lt_prog_compiler_pic_F77 \
+ lt_prog_compiler_static_F77 \
+ lt_prog_compiler_no_builtin_flag_F77 \
+ export_dynamic_flag_spec_F77 \
+ thread_safe_flag_spec_F77 \
+ whole_archive_flag_spec_F77 \
+ enable_shared_with_static_runtimes_F77 \
+ old_archive_cmds_F77 \
+ old_archive_from_new_cmds_F77 \
+ predep_objects_F77 \
+ postdep_objects_F77 \
+ predeps_F77 \
+ postdeps_F77 \
+ compiler_lib_search_path_F77 \
+ archive_cmds_F77 \
+ archive_expsym_cmds_F77 \
+ postinstall_cmds_F77 \
+ postuninstall_cmds_F77 \
+ old_archive_from_expsyms_cmds_F77 \
+ allow_undefined_flag_F77 \
+ no_undefined_flag_F77 \
+ export_symbols_cmds_F77 \
+ hardcode_libdir_flag_spec_F77 \
+ hardcode_libdir_flag_spec_ld_F77 \
+ hardcode_libdir_separator_F77 \
+ hardcode_automatic_F77 \
+ module_cmds_F77 \
+ module_expsym_cmds_F77 \
+ lt_cv_prog_compiler_c_o_F77 \
+ exclude_expsyms_F77 \
+ include_expsyms_F77; do
+
+ case $var in
+ old_archive_cmds_F77 | \
+ old_archive_from_new_cmds_F77 | \
+ archive_cmds_F77 | \
+ archive_expsym_cmds_F77 | \
+ module_cmds_F77 | \
+ module_expsym_cmds_F77 | \
+ old_archive_from_expsyms_cmds_F77 | \
+ export_symbols_cmds_F77 | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_F77
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_F77
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_F77
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_F77
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_F77
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_F77
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_F77
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_F77
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_F77
+archive_expsym_cmds=$lt_archive_expsym_cmds_F77
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_F77
+module_expsym_cmds=$lt_module_expsym_cmds_F77
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_F77
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_F77
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_F77
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_F77
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_F77
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_F77
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_F77
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_F77
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_F77
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_F77
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_F77"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_F77
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_F77
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_F77
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_F77
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+ else
+ tagname=""
+ fi
+ ;;
+
+ GCJ)
+ if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+
+
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+objext_GCJ=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+compiler_GCJ=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+archive_cmds_need_lc_GCJ=no
+
+old_archive_cmds_GCJ=$old_archive_cmds
+
+
+lt_prog_compiler_no_builtin_flag_GCJ=
+
+if test "$GCC" = yes; then
+ lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:22235: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:22239: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+lt_prog_compiler_wl_GCJ=
+lt_prog_compiler_pic_GCJ=
+lt_prog_compiler_static_GCJ=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_static_GCJ='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_GCJ='-fno-common'
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared_GCJ=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_GCJ=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_GCJ='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ lt_prog_compiler_pic_GCJ='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ else
+ lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic_GCJ='-qnocommon'
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ ;;
+ esac
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_GCJ='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static_GCJ='-non_shared'
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ linux*)
+ case $cc_basename in
+ icc* | ecc*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-static'
+ ;;
+ pgcc* | pgf77* | pgf90*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_pic_GCJ='-fpic'
+ lt_prog_compiler_static_GCJ='-static'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static_GCJ='-non_shared'
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static_GCJ='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ lt_prog_compiler_pic_GCJ='-Kpic'
+ lt_prog_compiler_static_GCJ='-dn'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl_GCJ='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl_GCJ='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl_GCJ='-Qoption ld '
+ lt_prog_compiler_pic_GCJ='-PIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic_GCJ='-Kconform_pic'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ fi
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_can_build_shared_GCJ=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic_GCJ='-pic'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared_GCJ=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_GCJ"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_prog_compiler_pic_works_GCJ=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:22497: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:22501: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_prog_compiler_pic_works_GCJ=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6
+
+if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
+ case $lt_prog_compiler_pic_GCJ in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
+ esac
+else
+ lt_prog_compiler_pic_GCJ=
+ lt_prog_compiler_can_build_shared_GCJ=no
+fi
+
+fi
+case "$host_os" in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_GCJ=
+ ;;
+ *)
+ lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_c_o_GCJ=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:22559: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:22563: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_GCJ=yes
+ fi
+ fi
+ chmod u+w .
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+ if test "$hard_links" = no; then
+ { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+ runpath_var=
+ allow_undefined_flag_GCJ=
+ enable_shared_with_static_runtimes_GCJ=no
+ archive_cmds_GCJ=
+ archive_expsym_cmds_GCJ=
+ old_archive_From_new_cmds_GCJ=
+ old_archive_from_expsyms_cmds_GCJ=
+ export_dynamic_flag_spec_GCJ=
+ whole_archive_flag_spec_GCJ=
+ thread_safe_flag_spec_GCJ=
+ hardcode_libdir_flag_spec_GCJ=
+ hardcode_libdir_flag_spec_ld_GCJ=
+ hardcode_libdir_separator_GCJ=
+ hardcode_direct_GCJ=no
+ hardcode_minus_L_GCJ=no
+ hardcode_shlibpath_var_GCJ=unsupported
+ link_all_deplibs_GCJ=unknown
+ hardcode_automatic_GCJ=no
+ module_cmds_GCJ=
+ module_expsym_cmds_GCJ=
+ always_export_symbols_GCJ=no
+ export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms_GCJ=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs_GCJ=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_GCJ=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs_GCJ=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_minus_L_GCJ=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ ld_shlibs_GCJ=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_GCJ=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ allow_undefined_flag_GCJ=unsupported
+ always_export_symbols_GCJ=no
+ enable_shared_with_static_runtimes_GCJ=yes
+ export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec_GCJ=
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec_GCJ=
+ tmp_addflag=' -fpic -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs_GCJ=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs_GCJ" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec_GCJ=
+ export_dynamic_flag_spec_GCJ=
+ whole_archive_flag_spec_GCJ=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag_GCJ=unsupported
+ always_export_symbols_GCJ=yes
+ archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L_GCJ=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct_GCJ=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_GCJ=''
+ hardcode_direct_GCJ=yes
+ hardcode_libdir_separator_GCJ=':'
+ link_all_deplibs_GCJ=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct_GCJ=yes
+ else
+ # We have old collect2
+ hardcode_direct_GCJ=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_GCJ=yes
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_libdir_separator_GCJ=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols_GCJ=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_GCJ='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_GCJ="-z nodefs"
+ archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_GCJ=' ${wl}-bernotok'
+ allow_undefined_flag_GCJ=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ always_export_symbols_GCJ=yes
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_GCJ=' '
+ archive_cmds_need_lc_GCJ=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_minus_L_GCJ=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs_GCJ=no
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec_GCJ=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec_GCJ=' '
+ allow_undefined_flag_GCJ=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_From_new_cmds_GCJ='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes_GCJ=yes
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ archive_cmds_need_lc_GCJ=no
+ hardcode_direct_GCJ=no
+ hardcode_automatic_GCJ=yes
+ hardcode_shlibpath_var_GCJ=unsupported
+ whole_archive_flag_spec_GCJ=''
+ link_all_deplibs_GCJ=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs_GCJ=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs_GCJ=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=yes
+ hardcode_minus_L_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ hardcode_direct_GCJ=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_GCJ=yes
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+ ;;
+
+ hpux10* | hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ *)
+ archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
+ hardcode_libdir_separator_GCJ=:
+ hardcode_direct_GCJ=no
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+ ia64*)
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_direct_GCJ=no
+ hardcode_shlibpath_var_GCJ=no
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_GCJ=yes
+ ;;
+ *)
+ hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ hardcode_direct_GCJ=yes
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_GCJ=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
+ fi
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ link_all_deplibs_GCJ=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ newsos6)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=yes
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ openbsd*)
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ ;;
+ *)
+ archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_minus_L_GCJ=yes
+ allow_undefined_flag_GCJ=unsupported
+ archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag_GCJ=' -expect_unresolved \*'
+ archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag_GCJ=' -expect_unresolved \*'
+ archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
+ fi
+ hardcode_libdir_separator_GCJ=:
+ ;;
+
+ sco3.2v5*)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_GCJ=no
+ export_dynamic_flag_spec_GCJ='${wl}-Bexport'
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ;;
+
+ solaris*)
+ no_undefined_flag_GCJ=' -z text'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+ else
+ wlarc=''
+ archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_shlibpath_var_GCJ=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
+ *)
+ whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
+ esac
+ link_all_deplibs_GCJ=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_minus_L_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds_GCJ='$CC -r -o $output$reload_objs'
+ hardcode_direct_GCJ=no
+ ;;
+ motorola)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_GCJ=no
+ export_dynamic_flag_spec_GCJ='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_GCJ=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs_GCJ=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=yes
+ hardcode_minus_L_GCJ=no
+ hardcode_shlibpath_var_GCJ=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ no_undefined_flag_GCJ='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ sysv5*)
+ no_undefined_flag_GCJ=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec_GCJ=
+ hardcode_shlibpath_var_GCJ=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ *)
+ ld_shlibs_GCJ=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
+echo "${ECHO_T}$ld_shlibs_GCJ" >&6
+test "$ld_shlibs_GCJ" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_GCJ" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_GCJ=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_GCJ in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+ $rm conftest*
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_GCJ
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
+ allow_undefined_flag_GCJ=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc_GCJ=no
+ else
+ archive_cmds_need_lc_GCJ=yes
+ fi
+ allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+ # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+ if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+ else
+ sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+ fi
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+kfreebsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ *) # from 3.2 on
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case "$host_cpu" in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 23944 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+knetbsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_GCJ=
+if test -n "$hardcode_libdir_flag_spec_GCJ" || \
+ test -n "$runpath_var_GCJ" || \
+ test "X$hardcode_automatic_GCJ" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct_GCJ" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
+ test "$hardcode_minus_L_GCJ" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_GCJ=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_GCJ=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_GCJ=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
+echo "${ECHO_T}$hardcode_action_GCJ" >&6
+
+if test "$hardcode_action_GCJ" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+ ;;
+ *)
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ ;;
+ esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+ lt_cv_dlopen="shl_load"
+else
+ echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+ echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+ lt_cv_dlopen="dlopen"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_svld_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_dld_link=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 24815 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 24913 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_GCJ \
+ CC_GCJ \
+ LD_GCJ \
+ lt_prog_compiler_wl_GCJ \
+ lt_prog_compiler_pic_GCJ \
+ lt_prog_compiler_static_GCJ \
+ lt_prog_compiler_no_builtin_flag_GCJ \
+ export_dynamic_flag_spec_GCJ \
+ thread_safe_flag_spec_GCJ \
+ whole_archive_flag_spec_GCJ \
+ enable_shared_with_static_runtimes_GCJ \
+ old_archive_cmds_GCJ \
+ old_archive_from_new_cmds_GCJ \
+ predep_objects_GCJ \
+ postdep_objects_GCJ \
+ predeps_GCJ \
+ postdeps_GCJ \
+ compiler_lib_search_path_GCJ \
+ archive_cmds_GCJ \
+ archive_expsym_cmds_GCJ \
+ postinstall_cmds_GCJ \
+ postuninstall_cmds_GCJ \
+ old_archive_from_expsyms_cmds_GCJ \
+ allow_undefined_flag_GCJ \
+ no_undefined_flag_GCJ \
+ export_symbols_cmds_GCJ \
+ hardcode_libdir_flag_spec_GCJ \
+ hardcode_libdir_flag_spec_ld_GCJ \
+ hardcode_libdir_separator_GCJ \
+ hardcode_automatic_GCJ \
+ module_cmds_GCJ \
+ module_expsym_cmds_GCJ \
+ lt_cv_prog_compiler_c_o_GCJ \
+ exclude_expsyms_GCJ \
+ include_expsyms_GCJ; do
+
+ case $var in
+ old_archive_cmds_GCJ | \
+ old_archive_from_new_cmds_GCJ | \
+ archive_cmds_GCJ | \
+ archive_expsym_cmds_GCJ | \
+ module_cmds_GCJ | \
+ module_expsym_cmds_GCJ | \
+ old_archive_from_expsyms_cmds_GCJ | \
+ export_symbols_cmds_GCJ | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_GCJ
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_GCJ
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_GCJ
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_GCJ
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_GCJ
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_GCJ
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_GCJ
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_GCJ
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_GCJ
+archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_GCJ
+module_expsym_cmds=$lt_module_expsym_cmds_GCJ
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_GCJ
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_GCJ
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_GCJ
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_GCJ
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_GCJ
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_GCJ
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_GCJ
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_GCJ
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_GCJ
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_GCJ"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_GCJ
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_GCJ
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_GCJ
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_GCJ
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+ else
+ tagname=""
+ fi
+ ;;
+
+ RC)
+
+
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+objext_RC=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+compiler_RC=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+lt_cv_prog_compiler_c_o_RC=yes
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_RC \
+ CC_RC \
+ LD_RC \
+ lt_prog_compiler_wl_RC \
+ lt_prog_compiler_pic_RC \
+ lt_prog_compiler_static_RC \
+ lt_prog_compiler_no_builtin_flag_RC \
+ export_dynamic_flag_spec_RC \
+ thread_safe_flag_spec_RC \
+ whole_archive_flag_spec_RC \
+ enable_shared_with_static_runtimes_RC \
+ old_archive_cmds_RC \
+ old_archive_from_new_cmds_RC \
+ predep_objects_RC \
+ postdep_objects_RC \
+ predeps_RC \
+ postdeps_RC \
+ compiler_lib_search_path_RC \
+ archive_cmds_RC \
+ archive_expsym_cmds_RC \
+ postinstall_cmds_RC \
+ postuninstall_cmds_RC \
+ old_archive_from_expsyms_cmds_RC \
+ allow_undefined_flag_RC \
+ no_undefined_flag_RC \
+ export_symbols_cmds_RC \
+ hardcode_libdir_flag_spec_RC \
+ hardcode_libdir_flag_spec_ld_RC \
+ hardcode_libdir_separator_RC \
+ hardcode_automatic_RC \
+ module_cmds_RC \
+ module_expsym_cmds_RC \
+ lt_cv_prog_compiler_c_o_RC \
+ exclude_expsyms_RC \
+ include_expsyms_RC; do
+
+ case $var in
+ old_archive_cmds_RC | \
+ old_archive_from_new_cmds_RC | \
+ archive_cmds_RC | \
+ archive_expsym_cmds_RC | \
+ module_cmds_RC | \
+ module_expsym_cmds_RC | \
+ old_archive_from_expsyms_cmds_RC | \
+ export_symbols_cmds_RC | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_RC
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_RC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_RC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_RC
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_RC
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_RC
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_RC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_RC
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_RC
+archive_expsym_cmds=$lt_archive_expsym_cmds_RC
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_RC
+module_expsym_cmds=$lt_module_expsym_cmds_RC
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_RC
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_RC
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_RC
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_RC
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_RC
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_RC
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_RC
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_RC
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_RC
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_RC
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_RC"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_RC
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_RC
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_RC
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_RC
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+ ;;
+
+ *)
+ { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
+echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ # Append the new tag name to the list of available tags.
+ if test -n "$tagname" ; then
+ available_tags="$available_tags $tagname"
+ fi
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ # Now substitute the updated list of available tags.
+ if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+ mv "${ofile}T" "$ofile"
+ chmod +x "$ofile"
else
- ac_cpp_err=
+ rm -f "${ofile}T"
+ { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
+echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+# Prevent multiple expansion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ echo "$as_me:$LINENO: checking for linux kernel dir" >&5
+echo $ECHO_N "checking for linux kernel dir... $ECHO_C" >&6
+if test "${ensc_cv_path_kerneldir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+# Check whether --with-kerneldir or --without-kerneldir was given.
+if test "${with_kerneldir+set}" = set; then
+ withval="$with_kerneldir"
+ case "$withval" in
+ yes|no) { { echo "$as_me:$LINENO: error: '$withval' is not a valid value for kerneldir" >&5
+echo "$as_me: error: '$withval' is not a valid value for kerneldir" >&2;}
+ { (exit 1); exit 1; }; };;
+ *) ensc_cv_path_kerneldir=$withval;;
+ esac
+else
+ ensc_cv_path_kerneldir=
+ for i in /lib/modules/$(uname -r)/build /usr/src/linux /usr; do
+ test -e $i/include/linux/version.h && { ensc_cv_path_kerneldir=$i; break; }
+ done
+fi;
+
+fi
+echo "$as_me:$LINENO: result: $ensc_cv_path_kerneldir" >&5
+echo "${ECHO_T}$ensc_cv_path_kerneldir" >&6
+
+ test "$ensc_cv_path_kerneldir" -a -e "$ensc_cv_path_kerneldir"/include/linux/version.h || {
+ { { echo "$as_me:$LINENO: error: Can not find kernelsources" >&5
+echo "$as_me: error: Can not find kernelsources" >&2;}
+ { (exit 1); exit 1; }; }
+ }
+
+
+
+
+ echo "$as_me:$LINENO: checking for linux kernel headers" >&5
+echo $ECHO_N "checking for linux kernel headers... $ECHO_C" >&6
+if test "${ensc_cv_path_kernelheaders+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ ensc_cv_path_kernelheaders=$ensc_cv_path_kerneldir/include
+
+fi
+echo "$as_me:$LINENO: result: $ensc_cv_path_kernelheaders" >&5
+echo "${ECHO_T}$ensc_cv_path_kernelheaders" >&6
+
+ if test x"kernelincludedir" != x; then
+ kernelincludedir=$ensc_cv_path_kernelheaders
+
+ fi
+
+
+ echo "$as_me:$LINENO: checking which vserver-rootdir is to use" >&5
+echo $ECHO_N "checking which vserver-rootdir is to use... $ECHO_C" >&6
+
+# Check whether --with-vrootdir or --without-vrootdir was given.
+if test "${with_vrootdir+set}" = set; then
+ withval="$with_vrootdir"
+ case "$withval" in
+ yes|no) { { echo "$as_me:$LINENO: error: '$withval' is not a valid value for vrootdir" >&5
+echo "$as_me: error: '$withval' is not a valid value for vrootdir" >&2;}
+ { (exit 1); exit 1; }; };;
+ *) ensc_uv_path_vrootdir=$withval;;
+ esac
+else
+ ensc_uv_path_vrootdir=/vservers
+fi;
+ echo "$as_me:$LINENO: result: $ensc_uv_path_vrootdir" >&5
+echo "${ECHO_T}$ensc_uv_path_vrootdir" >&6
+
+ if test x"vserverdir" != x; then
+ vserverdir=$ensc_uv_path_vrootdir
+
+ fi
+
+
+ if test x"trunk" != x; then
+ CVS2CL_TAG='-F trunk'
+
+ fi
+
+ for ac_prog in cvs2cl
+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_CVS2CL+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CVS2CL"; then
+ ac_cv_prog_CVS2CL="$CVS2CL" # 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_CVS2CL="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CVS2CL=$ac_cv_prog_CVS2CL
+if test -n "$CVS2CL"; then
+ echo "$as_me:$LINENO: result: $CVS2CL" >&5
+echo "${ECHO_T}$CVS2CL" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$CVS2CL" && break
+done
+
+
+
+if test x"$CVS2CL" != x; then
+ HAVE_CVS2CL_TRUE=
+ HAVE_CVS2CL_FALSE='#'
+else
+ HAVE_CVS2CL_TRUE='#'
+ HAVE_CVS2CL_FALSE=
+fi
+
+
+ for ac_prog in rcs2log
+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_RCS2LOG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$RCS2LOG"; then
+ ac_cv_prog_RCS2LOG="$RCS2LOG" # 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_RCS2LOG="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
fi
+done
+done
+
+fi
+fi
+RCS2LOG=$ac_cv_prog_RCS2LOG
+if test -n "$RCS2LOG"; then
+ echo "$as_me:$LINENO: result: $RCS2LOG" >&5
+echo "${ECHO_T}$RCS2LOG" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$RCS2LOG" && break
+done
+
+
+
+if test x"$RCS2LOG" != x; then
+ HAVE_RCS2LOG_TRUE=
+ HAVE_RCS2LOG_FALSE='#'
+else
+ HAVE_RCS2LOG_TRUE='#'
+ HAVE_RCS2LOG_FALSE=
+fi
+
+
+
+
+echo "$as_me:$LINENO: checking whether to use internal kernel headers" >&5
+echo $ECHO_N "checking whether to use internal kernel headers... $ECHO_C" >&6
+# Check whether --enable-internal-headers or --disable-internal-headers was given.
+if test "${enable_internal_headers+set}" = set; then
+ enableval="$enable_internal_headers"
+ case "$enableval" in
+ (yes|no) ;;
+ (*) { { echo "$as_me:$LINENO: error: '$i' is not a supported value for '--disable-internal-headers'" >&5
+echo "$as_me: error: '$i' is not a supported value for '--disable-internal-headers'" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
else
- ac_cpp_err=yes
+ enable_internal_headers=yes
+fi;
+
+
+
+if test x"$enable_internal_headers" = xyes; then
+ ENSC_ENABLE_INTERNAL_HEADERS_TRUE=
+ ENSC_ENABLE_INTERNAL_HEADERS_FALSE='#'
+else
+ ENSC_ENABLE_INTERNAL_HEADERS_TRUE='#'
+ ENSC_ENABLE_INTERNAL_HEADERS_FALSE=
fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
+
+echo "$as_me:$LINENO: result: $enable_internal_headers" >&5
+echo "${ECHO_T}$enable_internal_headers" >&6
+
+echo "$as_me:$LINENO: checking for supported APIs" >&5
+echo $ECHO_N "checking for supported APIs... $ECHO_C" >&6
+# Check whether --enable-apis or --disable-apis was given.
+if test "${enable_apis+set}" = set; then
+ enableval="$enable_apis"
+
else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ enable_apis=compat,v11,v13,fscompat,net
+fi;
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
+test x"$enable_apis" != xALL || enable_apis='legacy,compat,v11,v13,fscompat,net'
+enable_api_oldproc=
+enable_api_olduts=
+old_IFS=$IFS
+IFS=,;
+for i in $enable_apis; do
+ case "$i" in
+ (compat)
+cat >>confdefs.h <<\_ACEOF
+#define VC_ENABLE_API_COMPAT 1
+_ACEOF
+
+ enable_api_oldproc=1
+ enable_api_olduts=1
+ ;;
+ (legacy)
+cat >>confdefs.h <<\_ACEOF
+#define VC_ENABLE_API_LEGACY 1
+_ACEOF
+
+ enable_api_old_proc=1
+ enable_api_olduts=1
+ ;;
+ (v11)
+cat >>confdefs.h <<\_ACEOF
+#define VC_ENABLE_API_V11 1
+_ACEOF
+ enable_api_oldproc=1
+ enable_api_olduts=1
+ ;;
+ (v13)
+cat >>confdefs.h <<\_ACEOF
+#define VC_ENABLE_API_V13 1
+_ACEOF
+;;
+ (net)
+cat >>confdefs.h <<\_ACEOF
+#define VC_ENABLE_API_NET 1
+_ACEOF
+;;
+ (fscompat)
+cat >>confdefs.h <<\_ACEOF
+#define VC_ENABLE_API_FSCOMPAT 1
+_ACEOF
+;;
+ (*) { { echo "$as_me:$LINENO: error: '$i' is not a supported API" >&5
+echo "$as_me: error: '$i' is not a supported API" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
+IFS=$old_IFS
+if test x"$enable_api_oldproc" != x; then
+
+cat >>confdefs.h <<\_ACEOF
+#define VC_ENABLE_API_OLDPROC 1
+_ACEOF
+
+ enable_apis="$enable_apis,oldproc"
fi
+if test x"$enable_api_olduts" != x; then
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+cat >>confdefs.h <<\_ACEOF
+#define VC_ENABLE_API_OLDUTS 1
+_ACEOF
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi
+ enable_apis="$enable_apis,olduts"
fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
+echo "$as_me:$LINENO: result: $enable_apis" >&5
+echo "${ECHO_T}$enable_apis" >&6
+
+
echo "$as_me:$LINENO: checking for syscall(2) invocation method" >&5
echo $ECHO_N "checking for syscall(2) invocation method... $ECHO_C" >&6
echo "${ECHO_T}$with_syscall" >&6
case x"$with_syscall" in
- xauto)
+ (xauto)
echo "$as_me:$LINENO: checking which syscall(2) invocation works" >&5
echo $ECHO_N "checking which syscall(2) invocation works... $ECHO_C" >&6
if test "${ensc_cv_test_syscall+set}" = set; then
ac_compiler_gnu=$ac_cv_c_compiler_gnu
cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
-#include <asm/unistd.h>
-#include <syscall.h>
+#include "$srcdir/lib/syscall-wrap.h"
#include <errno.h>
+
#define __NR_foo0 300
#define __NR_foo1 301
#define __NR_foo2 302
echo "${ECHO_T}$ensc_cv_test_syscall" >&6
with_syscall=$ensc_cv_test_syscall
;;
- xfast|xtraditional)
+ (xfast|xtraditional)
;;
*)
{ { echo "$as_me:$LINENO: error: '$with_syscall' is not a valid value for '--with-syscall'" >&5
;;
esac
+ if test x"$with_syscall $ensc_use_alternative_syscall_macros" = 'xfast yes'; then
+ with_syscall='alternative'
+ fi
+
if test x"$with_syscall" = xtraditional; then
cat >>confdefs.h <<\_ACEOF
-ac_ext=cc
+
+
+ ac_ext=cc
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
-echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
-if test -z "$CXXCPP"; then
- if test "${ac_cv_prog_CXXCPP+set}" = set; then
+
+ echo "$as_me:$LINENO: checking for ext2fs-headers" >&5
+echo $ECHO_N "checking for ext2fs-headers... $ECHO_C" >&6
+if test "${ensc_cv_test_ext2fs_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- # Double quotes because CXXCPP needs to be expanded
- for CXXCPP in "$CXX -E" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <ac_nonexistent.h>
+#include <ext2fs/ext2_fs.h>
+ int main() { return 0; }
_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+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); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
- CXXCPP=$ac_cv_prog_CXXCPP
-else
- ac_cv_prog_CXXCPP=$CXXCPP
-fi
-echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$CXXCPP" >&6
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
+ (exit $ac_status); }; }; then
+ ensc_cv_test_ext2fs_header=e2fsprogs
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <ac_nonexistent.h>
+#include <linux/ext2_fs.h>
+ int main() { return 0; }
_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+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); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ensc_cv_test_ext2fs_header=kernel
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
+ ensc_cv_test_ext2fs_header=none
fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ensc_cv_test_ext2fs_header" >&5
+echo "${ECHO_T}$ensc_cv_test_ext2fs_header" >&6
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
+ case x"$ensc_cv_test_ext2fs_header" in
+ (xe2fsprogs)
+ if test "${ac_cv_header_ext2fs_ext2_fs_h+set}" = set; then
+ echo "$as_me:$LINENO: checking for ext2fs/ext2_fs.h" >&5
+echo $ECHO_N "checking for ext2fs/ext2_fs.h... $ECHO_C" >&6
+if test "${ac_cv_header_ext2fs_ext2_fs_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_ext2fs_ext2_fs_h" >&5
+echo "${ECHO_T}$ac_cv_header_ext2fs_ext2_fs_h" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking ext2fs/ext2_fs.h usability" >&5
+echo $ECHO_N "checking ext2fs/ext2_fs.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
+$ac_includes_default
+#include <ext2fs/ext2_fs.h>
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_header_stdc=yes
+ ac_header_compiler=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_header_stdc=no
+ac_header_compiler=no
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
+# Is the header present?
+echo "$as_me:$LINENO: checking ext2fs/ext2_fs.h presence" >&5
+echo $ECHO_N "checking ext2fs/ext2_fs.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <string.h>
-
+#include <ext2fs/ext2_fs.h>
_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
else
- ac_cv_header_stdc=no
+ ac_cpp_err=yes
fi
-rm -f conftest*
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+ ac_header_preproc=no
fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: ext2fs/ext2_fs.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: ext2fs/ext2_fs.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: ext2fs/ext2_fs.h: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: ext2fs/ext2_fs.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: ext2fs/ext2_fs.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: ext2fs/ext2_fs.h: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: ext2fs/ext2_fs.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: ext2fs/ext2_fs.h: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------------------ ##
+## Report this to enrico.scholz@informatik.tu-chemnitz.de ##
+## ------------------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for ext2fs/ext2_fs.h" >&5
+echo $ECHO_N "checking for ext2fs/ext2_fs.h... $ECHO_C" >&6
+if test "${ac_cv_header_ext2fs_ext2_fs_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_header_ext2fs_ext2_fs_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_ext2fs_ext2_fs_h" >&5
+echo "${ECHO_T}$ac_cv_header_ext2fs_ext2_fs_h" >&6
+
+fi
+if test $ac_cv_header_ext2fs_ext2_fs_h = yes; then
+cat >>confdefs.h <<\_ACEOF
+#define ENSC_HAVE_EXT2FS_EXT2_FS_H 1
_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
+
else
- ac_cv_header_stdc=no
+ { { echo "$as_me:$LINENO: error: unexpected error while checkin for <ext2fs/ext2_fs.h>
+See \`config.log' for more details." >&5
+echo "$as_me: error: unexpected error while checkin for <ext2fs/ext2_fs.h>
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
fi
-rm -f conftest*
-fi
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
+ ;;
+ (xkernel)
+ if test "${ac_cv_header_linux_ext2_fs_h+set}" = set; then
+ echo "$as_me:$LINENO: checking for linux/ext2_fs.h" >&5
+echo $ECHO_N "checking for linux/ext2_fs.h... $ECHO_C" >&6
+if test "${ac_cv_header_linux_ext2_fs_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_linux_ext2_fs_h" >&5
+echo "${ECHO_T}$ac_cv_header_linux_ext2_fs_h" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking linux/ext2_fs.h usability" >&5
+echo $ECHO_N "checking linux/ext2_fs.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- exit(2);
- exit (0);
-}
+$ac_includes_default
+#include <linux/ext2_fs.h>
_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+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='./conftest$ac_exeext'
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- :
+ ac_header_compiler=yes
else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+ echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-( exit $ac_status )
-ac_cv_header_stdc=no
+ac_header_compiler=no
fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking linux/ext2_fs.h presence" >&5
+echo $ECHO_N "checking linux/ext2_fs.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <linux/ext2_fs.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: linux/ext2_fs.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: linux/ext2_fs.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: linux/ext2_fs.h: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: linux/ext2_fs.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: linux/ext2_fs.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: linux/ext2_fs.h: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: linux/ext2_fs.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: linux/ext2_fs.h: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------------------ ##
+## Report this to enrico.scholz@informatik.tu-chemnitz.de ##
+## ------------------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for linux/ext2_fs.h" >&5
+echo $ECHO_N "checking for linux/ext2_fs.h... $ECHO_C" >&6
+if test "${ac_cv_header_linux_ext2_fs_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_header_linux_ext2_fs_h=$ac_header_preproc
fi
+echo "$as_me:$LINENO: result: $ac_cv_header_linux_ext2_fs_h" >&5
+echo "${ECHO_T}$ac_cv_header_linux_ext2_fs_h" >&6
+
fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
+if test $ac_cv_header_linux_ext2_fs_h = yes; then
cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
+#define ENSC_HAVE_LINUX_EXT2_FS_H 1
_ACEOF
+else
+ { { echo "$as_me:$LINENO: error: unexpected error while checkin for <linux/ext2_fs.h>
+See \`config.log' for more details." >&5
+echo "$as_me: error: unexpected error while checkin for <linux/ext2_fs.h>
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
fi
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+ ;;
+ (*)
+ { { echo "$as_me:$LINENO: error:
+ext2fs headers were not found, or they are not usable. This can have
+the following reasons:
+
+* you have neither the e2fsprogs nor the kernel headers installed
+
+* kernel headers are broken (e.g. these of linux 2.6 are known to be)
+ and you do not have e2fsprogs headers installed; please try to install
+ - e2fsprogs-devel (for Red Hat), or
+ - libext2fs2-devel (for Mandrake), or
+ - e2fslibs-dev (for Debian)
+ in this case.
+
+* kernel headers are broken and your e2fsprogs headers are too old;
+ until version 1.27 (inclusive), they are using reserved C++ keywords
+* kernel headers are broken and your e2fsprogs headers are too new;
+ recent (January 2004) BK snapshots of e2fsprogs are unusable for
+ C++, for details and a solution see
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=112448
+In the latter two cases you have the following options:
+* fix the headers manually, or
+* install a stable version of e2fsprogs (e.g. 1.34), or
+* use good kernel headers (from linux 2.4.x)
+See \`config.log' for more details." >&5
+echo "$as_me: error:
+ext2fs headers were not found, or they are not usable. This can have
+the following reasons:
+* you have neither the e2fsprogs nor the kernel headers installed
+* kernel headers are broken (e.g. these of linux 2.6 are known to be)
+ and you do not have e2fsprogs headers installed; please try to install
+ - e2fsprogs-devel (for Red Hat), or
+ - libext2fs2-devel (for Mandrake), or
+ - e2fslibs-dev (for Debian)
+ in this case.
+* kernel headers are broken and your e2fsprogs headers are too old;
+ until version 1.27 (inclusive), they are using reserved C++ keywords
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
+* kernel headers are broken and your e2fsprogs headers are too new;
+ recent (January 2004) BK snapshots of e2fsprogs are unusable for
+ C++, for details and a solution see
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=112448
+
+
+In the latter two cases you have the following options:
+* fix the headers manually, or
+* install a stable version of e2fsprogs (e.g. 1.34), or
+* use good kernel headers (from linux 2.4.x)
+
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+for ac_func in vserver
do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
-#include <$ac_header>
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
+ { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&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'
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
+ eval "$as_ac_var=yes"
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-eval "$as_ac_Header=no"
+eval "$as_ac_var=no"
fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
fi
-
done
-
-
- ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
- echo "$as_me:$LINENO: checking for ext2fs-headers" >&5
-echo $ECHO_N "checking for ext2fs-headers... $ECHO_C" >&6
-if test "${ensc_cv_test_ext2fs_header+set}" = set; then
+echo "$as_me:$LINENO: checking whether MS_MOVE is declared" >&5
+echo $ECHO_N "checking whether MS_MOVE is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_MS_MOVE+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
-
- cat >conftest.$ac_ext <<_ACEOF
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <ext2fs/ext2_fs.h>
- int main() { return 0; }
+#include <linux/fs.h>
+
+int
+main ()
+{
+#ifndef MS_MOVE
+ char *p = (char *) MS_MOVE;
+#endif
+
+ ;
+ return 0;
+}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
+ { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ensc_cv_test_ext2fs_header=e2fsprogs
+ ac_cv_have_decl_MS_MOVE=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
+ac_cv_have_decl_MS_MOVE=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_MS_MOVE" >&5
+echo "${ECHO_T}$ac_cv_have_decl_MS_MOVE" >&6
+if test $ac_cv_have_decl_MS_MOVE = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MS_MOVE 1
+_ACEOF
+
- cat >conftest.$ac_ext <<_ACEOF
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MS_MOVE 0
+_ACEOF
+
+
+fi
+
+
+echo "$as_me:$LINENO: checking for xid_t" >&5
+echo $ECHO_N "checking for xid_t... $ECHO_C" >&6
+if test "${ac_cv_type_xid_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/ext2_fs.h>
- int main() { return 0; }
+#include <sys/types.h>
+
+int
+main ()
+{
+if ((xid_t *) 0)
+ return 0;
+if (sizeof (xid_t))
+ return 0;
+ ;
+ return 0;
+}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
+ { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ensc_cv_test_ext2fs_header=kernel
+ ac_cv_type_xid_t=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-
- ensc_cv_test_ext2fs_header=none
+ac_cv_type_xid_t=no
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_cv_type_xid_t" >&5
+echo "${ECHO_T}$ac_cv_type_xid_t" >&6
+if test $ac_cv_type_xid_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_XID_T 1
+_ACEOF
+
+
fi
-echo "$as_me:$LINENO: result: $ensc_cv_test_ext2fs_header" >&5
-echo "${ECHO_T}$ensc_cv_test_ext2fs_header" >&6
- case x"$ensc_cv_test_ext2fs_header" in
- (xe2fsprogs)
- if test "${ac_cv_header_ext2fs_ext2_fs_h+set}" = set; then
- echo "$as_me:$LINENO: checking for ext2fs/ext2_fs.h" >&5
-echo $ECHO_N "checking for ext2fs/ext2_fs.h... $ECHO_C" >&6
-if test "${ac_cv_header_ext2fs_ext2_fs_h+set}" = set; then
+echo "$as_me:$LINENO: checking for nid_t" >&5
+echo $ECHO_N "checking for nid_t... $ECHO_C" >&6
+if test "${ac_cv_type_nid_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_ext2fs_ext2_fs_h" >&5
-echo "${ECHO_T}$ac_cv_header_ext2fs_ext2_fs_h" >&6
else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking ext2fs/ext2_fs.h usability" >&5
-echo $ECHO_N "checking ext2fs/ext2_fs.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
-#include <ext2fs/ext2_fs.h>
+#include <sys/types.h>
+
+int
+main ()
+{
+if ((nid_t *) 0)
+ return 0;
+if (sizeof (nid_t))
+ return 0;
+ ;
+ return 0;
+}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
+ { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking ext2fs/ext2_fs.h presence" >&5
-echo $ECHO_N "checking ext2fs/ext2_fs.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ext2fs/ext2_fs.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: ext2fs/ext2_fs.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: ext2fs/ext2_fs.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: ext2fs/ext2_fs.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: ext2fs/ext2_fs.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: ext2fs/ext2_fs.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: ext2fs/ext2_fs.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: ext2fs/ext2_fs.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: ext2fs/ext2_fs.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: ext2fs/ext2_fs.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------------------ ##
-## Report this to enrico.scholz@informatik.tu-chemnitz.de ##
-## ------------------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for ext2fs/ext2_fs.h" >&5
-echo $ECHO_N "checking for ext2fs/ext2_fs.h... $ECHO_C" >&6
-if test "${ac_cv_header_ext2fs_ext2_fs_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_nid_t=yes
else
- ac_cv_header_ext2fs_ext2_fs_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_ext2fs_ext2_fs_h" >&5
-echo "${ECHO_T}$ac_cv_header_ext2fs_ext2_fs_h" >&6
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+ac_cv_type_nid_t=no
fi
-if test $ac_cv_header_ext2fs_ext2_fs_h = yes; then
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_nid_t" >&5
+echo "${ECHO_T}$ac_cv_type_nid_t" >&6
+if test $ac_cv_type_nid_t = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define ENSC_HAVE_EXT2FS_EXT2_FS_H 1
+cat >>confdefs.h <<_ACEOF
+#define HAVE_NID_T 1
_ACEOF
-else
- { { echo "$as_me:$LINENO: error: unexpected error while checkin for <ext2fs/ext2_fs.h>
-See \`config.log' for more details." >&5
-echo "$as_me: error: unexpected error while checkin for <ext2fs/ext2_fs.h>
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
+
fi
- ;;
- (xkernel)
- if test "${ac_cv_header_linux_ext2_fs_h+set}" = set; then
- echo "$as_me:$LINENO: checking for linux/ext2_fs.h" >&5
-echo $ECHO_N "checking for linux/ext2_fs.h... $ECHO_C" >&6
-if test "${ac_cv_header_linux_ext2_fs_h+set}" = set; then
+
+for ac_header in sys/capability.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
fi
-echo "$as_me:$LINENO: result: $ac_cv_header_linux_ext2_fs_h" >&5
-echo "${ECHO_T}$ac_cv_header_linux_ext2_fs_h" >&6
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
else
# Is the header compilable?
-echo "$as_me:$LINENO: checking linux/ext2_fs.h usability" >&5
-echo $ECHO_N "checking linux/ext2_fs.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
$ac_includes_default
-#include <linux/ext2_fs.h>
+#include <$ac_header>
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
+ { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
echo "${ECHO_T}$ac_header_compiler" >&6
# Is the header present?
-echo "$as_me:$LINENO: checking linux/ext2_fs.h presence" >&5
-echo $ECHO_N "checking linux/ext2_fs.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/ext2_fs.h>
+#include <$ac_header>
_ACEOF
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
yes:no: )
- { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: linux/ext2_fs.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: linux/ext2_fs.h: proceeding with the compiler's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
ac_header_preproc=yes
;;
no:yes:* )
- { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: linux/ext2_fs.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: linux/ext2_fs.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: linux/ext2_fs.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: linux/ext2_fs.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: linux/ext2_fs.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/ext2_fs.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: linux/ext2_fs.h: in the future, the compiler will take precedence" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
## ------------------------------------------------------ ##
sed "s/^/$as_me: WARNING: /" >&2
;;
esac
-echo "$as_me:$LINENO: checking for linux/ext2_fs.h" >&5
-echo $ECHO_N "checking for linux/ext2_fs.h... $ECHO_C" >&6
-if test "${ac_cv_header_linux_ext2_fs_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_linux_ext2_fs_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_linux_ext2_fs_h" >&5
-echo "${ECHO_T}$ac_cv_header_linux_ext2_fs_h" >&6
-
-fi
-if test $ac_cv_header_linux_ext2_fs_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define ENSC_HAVE_LINUX_EXT2_FS_H 1
-_ACEOF
-
-else
- { { echo "$as_me:$LINENO: error: unexpected error while checkin for <linux/ext2_fs.h>
-See \`config.log' for more details." >&5
-echo "$as_me: error: unexpected error while checkin for <linux/ext2_fs.h>
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-
- ;;
- (*)
- { { echo "$as_me:$LINENO: error:
-ext2fs headers were not found, or they are not usable. This can have
-the following reasons:
-
-* you have neither the e2fsprogs nor the kernel headers installed
-
-* kernel headers are broken (e.g. these of linux 2.6 are known to be)
- and you do not have e2fsprogs headers installed; please try to install
- - e2fsprogs-devel (for Red Hat), or
- - libext2fs2-devel (for Mandrake), or
- - e2fslibs-dev (for Debian)
- in this case.
-
-* kernel headers are broken and your e2fsprogs headers are too old;
- until version 1.27 (inclusive), they are using reserved C++ keywords
-
-* kernel headers are broken and your e2fsprogs headers are too new;
- recent (January 2004) BK snapshots of e2fsprogs are unusable for
- C++, for details and a solution see
- https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=112448
-
-
-In the latter two cases you have the following options:
-* fix the headers manually, or
-* install a stable version of e2fsprogs (e.g. 1.34), or
-* use good kernel headers (from linux 2.4.x)
-
-See \`config.log' for more details." >&5
-echo "$as_me: error:
-ext2fs headers were not found, or they are not usable. This can have
-the following reasons:
-
-* you have neither the e2fsprogs nor the kernel headers installed
-
-* kernel headers are broken (e.g. these of linux 2.6 are known to be)
- and you do not have e2fsprogs headers installed; please try to install
- - e2fsprogs-devel (for Red Hat), or
- - libext2fs2-devel (for Mandrake), or
- - e2fslibs-dev (for Debian)
- in this case.
-
-* kernel headers are broken and your e2fsprogs headers are too old;
- until version 1.27 (inclusive), they are using reserved C++ keywords
-
-* kernel headers are broken and your e2fsprogs headers are too new;
- recent (January 2004) BK snapshots of e2fsprogs are unusable for
- C++, for details and a solution see
- https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=112448
-
-
-In the latter two cases you have the following options:
-* fix the headers manually, or
-* install a stable version of e2fsprogs (e.g. 1.34), or
-* use good kernel headers (from linux 2.4.x)
-
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-for ac_func in vserver
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
fi
+
done
-echo "$as_me:$LINENO: checking whether MS_MOVE is declared" >&5
-echo $ECHO_N "checking whether MS_MOVE is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_MS_MOVE+set}" = set; then
+
+
+if test x"$ensc_cv_c99_c99compiler" = xyes; then
+ ensc_have_beecrypt=yes
+
+ if test x"$ensc_have_beecrypt" = xyes; then
+ if test "${ac_cv_header_beecrypt_beecrypt_h+set}" = set; then
+ echo "$as_me:$LINENO: checking for beecrypt/beecrypt.h" >&5
+echo $ECHO_N "checking for beecrypt/beecrypt.h... $ECHO_C" >&6
+if test "${ac_cv_header_beecrypt_beecrypt_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_beecrypt_beecrypt_h" >&5
+echo "${ECHO_T}$ac_cv_header_beecrypt_beecrypt_h" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking beecrypt/beecrypt.h usability" >&5
+echo $ECHO_N "checking beecrypt/beecrypt.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
-
-int
-main ()
-{
-#ifndef MS_MOVE
- char *p = (char *) MS_MOVE;
-#endif
-
- ;
- return 0;
-}
+$ac_includes_default
+#include <beecrypt/beecrypt.h>
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_have_decl_MS_MOVE=yes
+ ac_header_compiler=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_have_decl_MS_MOVE=no
+ac_header_compiler=no
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_MS_MOVE" >&5
-echo "${ECHO_T}$ac_cv_have_decl_MS_MOVE" >&6
-if test $ac_cv_have_decl_MS_MOVE = yes; then
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MS_MOVE 1
+# Is the header present?
+echo "$as_me:$LINENO: checking beecrypt/beecrypt.h presence" >&5
+echo $ECHO_N "checking beecrypt/beecrypt.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <beecrypt/beecrypt.h>
_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: beecrypt/beecrypt.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: beecrypt/beecrypt.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: beecrypt/beecrypt.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: beecrypt/beecrypt.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: beecrypt/beecrypt.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: beecrypt/beecrypt.h: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: beecrypt/beecrypt.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: beecrypt/beecrypt.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: beecrypt/beecrypt.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: beecrypt/beecrypt.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: beecrypt/beecrypt.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: beecrypt/beecrypt.h: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: beecrypt/beecrypt.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: beecrypt/beecrypt.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: beecrypt/beecrypt.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: beecrypt/beecrypt.h: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------------------ ##
+## Report this to enrico.scholz@informatik.tu-chemnitz.de ##
+## ------------------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for beecrypt/beecrypt.h" >&5
+echo $ECHO_N "checking for beecrypt/beecrypt.h... $ECHO_C" >&6
+if test "${ac_cv_header_beecrypt_beecrypt_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MS_MOVE 0
-_ACEOF
-
+ ac_cv_header_beecrypt_beecrypt_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_beecrypt_beecrypt_h" >&5
+echo "${ECHO_T}$ac_cv_header_beecrypt_beecrypt_h" >&6
+fi
+if test $ac_cv_header_beecrypt_beecrypt_h = yes; then
+ :
+else
+ ensc_have_beecrypt=no
fi
-echo "$as_me:$LINENO: checking for xid_t" >&5
-echo $ECHO_N "checking for xid_t... $ECHO_C" >&6
-if test "${ac_cv_type_xid_t+set}" = set; then
+ fi
+
+ if test x"$ensc_have_beecrypt" = xyes; then
+ echo "$as_me:$LINENO: checking for hashFunctionContextInit in -lbeecrypt" >&5
+echo $ECHO_N "checking for hashFunctionContextInit in -lbeecrypt... $ECHO_C" >&6
+if test "${ac_cv_lib_beecrypt_hashFunctionContextInit+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbeecrypt $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <sys/types.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char hashFunctionContextInit ();
int
main ()
{
-if ((xid_t *) 0)
- return 0;
-if (sizeof (xid_t))
- return 0;
+hashFunctionContextInit ();
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_type_xid_t=yes
+ ac_cv_lib_beecrypt_hashFunctionContextInit=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_type_xid_t=no
+ac_cv_lib_beecrypt_hashFunctionContextInit=no
fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_beecrypt_hashFunctionContextInit" >&5
+echo "${ECHO_T}$ac_cv_lib_beecrypt_hashFunctionContextInit" >&6
+if test $ac_cv_lib_beecrypt_hashFunctionContextInit = yes; then
+ :
+else
+ ensc_have_beecrypt=no
fi
-echo "$as_me:$LINENO: result: $ac_cv_type_xid_t" >&5
-echo "${ECHO_T}$ac_cv_type_xid_t" >&6
-if test $ac_cv_type_xid_t = yes; then
-cat >>confdefs.h <<_ACEOF
-#define HAVE_XID_T 1
+ fi
+
+ if test x"$ensc_have_beecrypt" != xyes; then
+ { echo "$as_me:$LINENO: WARNING:
+****
+**** 'beecrypt' could not be found;
+**** this will disable the build of 'vhashify'
+****" >&5
+echo "$as_me: WARNING:
+****
+**** 'beecrypt' could not be found;
+**** this will disable the build of 'vhashify'
+****" >&2;}
+ fi
+else
+ ensc_have_beecrypt=no
+fi
+
+
+
+if test x"$ensc_have_beecrypt" = xyes; then
+ ENSC_HAVE_BEECRYPT_TRUE=
+ ENSC_HAVE_BEECRYPT_FALSE='#'
+else
+ ENSC_HAVE_BEECRYPT_TRUE='#'
+ ENSC_HAVE_BEECRYPT_FALSE=
+fi
+
+
+
+if false; then
+ ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE=
+ ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE='#'
+else
+ ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE='#'
+ ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<\_ACEOF
+#define UTMP_GID 22
_ACEOF
+if false; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GROWING_STACK 1
+_ACEOF
+
fi
- ac_config_files="$ac_config_files util-vserver.spec Makefile"
+cat >>confdefs.h <<\_ACEOF
+#define _FILE_OFFSET_BITS 64
+_ACEOF
+
+
+ensc_cxx_affected=" (affected: vbuild, vcheck)"
+ensc_c99_affected=" (affected: vunify, vcopy, vhashify, vdlimit)"
+ensc_diet_msg=" (you have been warned)"
+ensc_diet_version_msg=" ($ensc_version_dietlibc)"
+ensc_diet_compat_msg=" (using -lcompat)"
+test x"$ensc_cv_cxx_cxxcompiler" = xno || ensc_cxx_affected=
+test x"$ensc_cv_c99_c99compiler" = xno || ensc_c99_affected=
+test x"$ensc_have_dietlibc" = xno || ensc_diet_msg=
+test x"$ensc_version_dietlibc" != x || ensc_diet_version_msg=
+test x"$ensc_have_dietlibc$ensc_cv_c_dietlibc_compat" = xyesyes || ensc_diet_compat_msg=
+
+
+
+
+
+ ac_config_files="$ac_config_files util-vserver.spec Makefile distrib/Makefile lib/apidoc/Doxyfile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${ENSC_HAVE_CXX_COMPILER_TRUE}" && test -z "${ENSC_HAVE_CXX_COMPILER_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENSC_HAVE_CXX_COMPILER\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENSC_HAVE_CXX_COMPILER\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${ENSC_HAVE_C99_COMPILER_TRUE}" && test -z "${ENSC_HAVE_C99_COMPILER_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENSC_HAVE_C99_COMPILER\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENSC_HAVE_C99_COMPILER\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${HAVE_XSLTP_TRUE}" && test -z "${HAVE_XSLTP_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"HAVE_XSLTP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"HAVE_XSLTP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${HAVE_XSLTPROC_TRUE}" && test -z "${HAVE_XSLTPROC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"HAVE_XSLTPROC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"HAVE_XSLTPROC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_DIETLIBC_TRUE}" && test -z "${USE_DIETLIBC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_DIETLIBC_TRUE}" && test -z "${USE_DIETLIBC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_DIETLIBC_TRUE}" && test -z "${USE_DIETLIBC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_DIETLIBC_TRUE}" && test -z "${USE_DIETLIBC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_DIETLIBC_TRUE}" && test -z "${USE_DIETLIBC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_DIETLIBC_COMPAT_TRUE}" && test -z "${USE_DIETLIBC_COMPAT_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"USE_DIETLIBC_COMPAT\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_DIETLIBC_COMPAT\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_DIETLIBC_COMPAT_TRUE}" && test -z "${USE_DIETLIBC_COMPAT_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"USE_DIETLIBC_COMPAT\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_DIETLIBC_COMPAT\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${ENSC_USE_DIETLIBC_TRUE}" && test -z "${ENSC_USE_DIETLIBC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENSC_USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENSC_USE_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${ENSC_USE_GLIBC_TRUE}" && test -z "${ENSC_USE_GLIBC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENSC_USE_GLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENSC_USE_GLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${HAVE_CVS2CL_TRUE}" && test -z "${HAVE_CVS2CL_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"HAVE_CVS2CL\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
-if test -z "${ENSC_ENABLE_LINUXCONF_TRUE}" && test -z "${ENSC_ENABLE_LINUXCONF_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"ENSC_ENABLE_LINUXCONF\" was never defined.
+if test -z "${ENSC_ENABLE_INTERNAL_HEADERS_TRUE}" && test -z "${ENSC_ENABLE_INTERNAL_HEADERS_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENSC_ENABLE_INTERNAL_HEADERS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENSC_ENABLE_INTERNAL_HEADERS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${ENSC_HAVE_BEECRYPT_TRUE}" && test -z "${ENSC_HAVE_BEECRYPT_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENSC_HAVE_BEECRYPT\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"ENSC_ENABLE_LINUXCONF\" was never defined.
+echo "$as_me: error: conditional \"ENSC_HAVE_BEECRYPT\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
-if test -z "${ENSC_ENABLE_INTERNAL_HEADERS_TRUE}" && test -z "${ENSC_ENABLE_INTERNAL_HEADERS_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"ENSC_ENABLE_INTERNAL_HEADERS\" was never defined.
+if test -z "${ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE}" && test -z "${ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENSC_CAN_BEECRYPT_WITH_DIETLIBC\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"ENSC_ENABLE_INTERNAL_HEADERS\" was never defined.
+echo "$as_me: error: conditional \"ENSC_CAN_BEECRYPT_WITH_DIETLIBC\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+ FEATURES_TXT="\
+Features:
+ CC: $CC, $($CC --version | sed -e '1p;d')
+ CXX: $CXX, $($CXX --version | sed -e '1p;d')
+ CPPFLAGS: '$CPPFLAGS'
+ CFLAGS: '$CFLAGS'
+ CXXFLAGS: '$CXXFLAGS'
+ build/host: $build/$host
+ Use dietlibc: $ensc_have_dietlibc$ensc_diet_version_msg$ensc_diet_msg$ensc_diet_compat_msg
+ Build C++ programs: $ensc_cv_cxx_cxxcompiler$ensc_cxx_affected
+ Build C99 programs: $ensc_cv_c99_c99compiler$ensc_c99_affected
+ Available APIs: $enable_apis
+ ext2fs Source: $ensc_cv_test_ext2fs_header
+ syscall(2) invocation: $with_syscall
+ vserver(2) syscall#: $ensc_cv_value_syscall_vserver
+
+Paths:
+ prefix: $prefix
+ sysconf-Directory: $sysconfdir
+ cfg-Directory: $sysconfdir/vservers
+ initrd-Directory: $initrddir
+ pkgstate-Directory: $localstatedir/run/vservers
+ Kernelheaders: $kernelincludedir
+ vserver-Rootdir: $vserverdir
+"
+ echo "$FEATURES_TXT" >FEATURES.txt
+
+
: ${CONFIG_STATUS=./config.status}
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
} >&5
cat >&5 <<_CSEOF
-This file was extended by util-vserver $as_me 0.30, which was
+This file was extended by util-vserver $as_me 0.30.208, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-util-vserver config.status 0.30
+util-vserver config.status 0.30.208
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
# Handling of arguments.
"util-vserver.spec" ) CONFIG_FILES="$CONFIG_FILES util-vserver.spec" ;;
"Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "distrib/Makefile" ) CONFIG_FILES="$CONFIG_FILES distrib/Makefile" ;;
+ "lib/apidoc/Doxyfile" ) CONFIG_FILES="$CONFIG_FILES lib/apidoc/Doxyfile" ;;
"depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
*) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
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,@AWK@,$AWK,;t t
s,@SET_MAKE@,$SET_MAKE,;t t
s,@am__leading_dot@,$am__leading_dot,;t t
+s,@AMTAR@,$AMTAR,;t t
+s,@am__tar@,$am__tar,;t t
+s,@am__untar@,$am__untar,;t t
s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
s,@MAINT@,$MAINT,;t t
+s,@build@,$build,;t t
+s,@build_cpu@,$build_cpu,;t t
+s,@build_vendor@,$build_vendor,;t t
+s,@build_os@,$build_os,;t t
+s,@host@,$host,;t t
+s,@host_cpu@,$host_cpu,;t t
+s,@host_vendor@,$host_vendor,;t t
+s,@host_os@,$host_os,;t t
+s,@GPG_KEY@,$GPG_KEY,;t t
s,@CXX@,$CXX,;t t
s,@CXXFLAGS@,$CXXFLAGS,;t t
s,@LDFLAGS@,$LDFLAGS,;t t
s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
s,@LN_S@,$LN_S,;t t
+s,@ENSC_HAVE_CXX_COMPILER_TRUE@,$ENSC_HAVE_CXX_COMPILER_TRUE,;t t
+s,@ENSC_HAVE_CXX_COMPILER_FALSE@,$ENSC_HAVE_CXX_COMPILER_FALSE,;t t
+s,@ENSC_HAVE_C99_COMPILER_TRUE@,$ENSC_HAVE_C99_COMPILER_TRUE,;t t
+s,@ENSC_HAVE_C99_COMPILER_FALSE@,$ENSC_HAVE_C99_COMPILER_FALSE,;t t
+s,@ENSC_PATHPROG_SED@,$ENSC_PATHPROG_SED,;t t
+s,@CAT@,$CAT,;t t
+s,@CHOWN@,$CHOWN,;t t
+s,@CMP@,$CMP,;t t
+s,@CP@,$CP,;t t
+s,@DIRNAME@,$DIRNAME,;t t
+s,@EGREP@,$EGREP,;t t
+s,@ENV@,$ENV,;t t
+s,@GREP@,$GREP,;t t
+s,@LN@,$LN,;t t
+s,@MKDIR@,$MKDIR,;t t
+s,@MKFIFO@,$MKFIFO,;t t
+s,@MKTEMP@,$MKTEMP,;t t
+s,@MOUNT@,$MOUNT,;t t
+s,@MV@,$MV,;t t
+s,@NICE@,$NICE,;t t
+s,@PS@,$PS,;t t
+s,@RM@,$RM,;t t
+s,@RMDIR@,$RMDIR,;t t
+s,@SED@,$SED,;t t
+s,@SH@,$SH,;t t
+s,@TAC@,$TAC,;t t
+s,@TAR@,$TAR,;t t
+s,@TOUCH@,$TOUCH,;t t
+s,@TTY@,$TTY,;t t
+s,@UMOUNT@,$UMOUNT,;t t
+s,@WC@,$WC,;t t
+s,@IP@,$IP,;t t
+s,@IPTABLES@,$IPTABLES,;t t
+s,@MODPROBE@,$MODPROBE,;t t
+s,@NAMEIF@,$NAMEIF,;t t
+s,@NOHUP@,$NOHUP,;t t
+s,@RMMOD@,$RMMOD,;t t
+s,@VCONFIG@,$VCONFIG,;t t
+s,@WGET@,$WGET,;t t
+s,@DOXYGEN@,$DOXYGEN,;t t
+s,@XSLTP@,$XSLTP,;t t
+s,@XSLTPROC@,$XSLTPROC,;t t
+s,@HAVE_XSLTP_TRUE@,$HAVE_XSLTP_TRUE,;t t
+s,@HAVE_XSLTP_FALSE@,$HAVE_XSLTP_FALSE,;t t
+s,@HAVE_XSLTPROC_TRUE@,$HAVE_XSLTPROC_TRUE,;t t
+s,@HAVE_XSLTPROC_FALSE@,$HAVE_XSLTPROC_FALSE,;t t
+s,@LIB_DEBUG_CPPFLAGS@,$LIB_DEBUG_CPPFLAGS,;t t
+s,@ENSC_USE_EXPENSIVE_TESTS@,$ENSC_USE_EXPENSIVE_TESTS,;t t
+s,@initrddir@,$initrddir,;t t
+s,@RELEASE_CPPFLAGS@,$RELEASE_CPPFLAGS,;t t
+s,@DIET@,$DIET,;t t
+s,@DIETFLAGS@,$DIETFLAGS,;t t
+s,@USE_DIETLIBC_TRUE@,$USE_DIETLIBC_TRUE,;t t
+s,@USE_DIETLIBC_FALSE@,$USE_DIETLIBC_FALSE,;t t
+s,@USE_DIETLIBC_COMPAT_TRUE@,$USE_DIETLIBC_COMPAT_TRUE,;t t
+s,@USE_DIETLIBC_COMPAT_FALSE@,$USE_DIETLIBC_COMPAT_FALSE,;t t
+s,@ENSC_USE_DIETLIBC_TRUE@,$ENSC_USE_DIETLIBC_TRUE,;t t
+s,@ENSC_USE_DIETLIBC_FALSE@,$ENSC_USE_DIETLIBC_FALSE,;t t
+s,@ENSC_USE_GLIBC_TRUE@,$ENSC_USE_GLIBC_TRUE,;t t
+s,@ENSC_USE_GLIBC_FALSE@,$ENSC_USE_GLIBC_FALSE,;t t
+s,@ECHO@,$ECHO,;t t
+s,@AR@,$AR,;t t
+s,@ac_ct_AR@,$ac_ct_AR,;t t
s,@RANLIB@,$RANLIB,;t t
s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s,@CPP@,$CPP,;t t
+s,@CXXCPP@,$CXXCPP,;t t
+s,@F77@,$F77,;t t
+s,@FFLAGS@,$FFLAGS,;t t
+s,@ac_ct_F77@,$ac_ct_F77,;t t
+s,@LIBTOOL@,$LIBTOOL,;t t
s,@kernelincludedir@,$kernelincludedir,;t t
s,@vserverdir@,$vserverdir,;t t
s,@CVS2CL_TAG@,$CVS2CL_TAG,;t t
s,@RCS2LOG@,$RCS2LOG,;t t
s,@HAVE_RCS2LOG_TRUE@,$HAVE_RCS2LOG_TRUE,;t t
s,@HAVE_RCS2LOG_FALSE@,$HAVE_RCS2LOG_FALSE,;t t
-s,@ENSC_ENABLE_LINUXCONF_TRUE@,$ENSC_ENABLE_LINUXCONF_TRUE,;t t
-s,@ENSC_ENABLE_LINUXCONF_FALSE@,$ENSC_ENABLE_LINUXCONF_FALSE,;t t
s,@ENSC_ENABLE_INTERNAL_HEADERS_TRUE@,$ENSC_ENABLE_INTERNAL_HEADERS_TRUE,;t t
s,@ENSC_ENABLE_INTERNAL_HEADERS_FALSE@,$ENSC_ENABLE_INTERNAL_HEADERS_FALSE,;t t
-s,@CPP@,$CPP,;t t
-s,@EGREP@,$EGREP,;t t
-s,@CXXCPP@,$CXXCPP,;t t
+s,@ENSC_HAVE_BEECRYPT_TRUE@,$ENSC_HAVE_BEECRYPT_TRUE,;t t
+s,@ENSC_HAVE_BEECRYPT_FALSE@,$ENSC_HAVE_BEECRYPT_FALSE,;t t
+s,@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@,$ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE,;t t
+s,@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@,$ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE,;t t
s,@LIBOBJS@,$LIBOBJS,;t t
s,@LTLIBOBJS@,$LTLIBOBJS,;t t
CEOF
else
continue
fi
- grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
- # Extract the definition of DEP_FILES from the Makefile without
- # running `make'.
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
- 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" | \
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
$ac_cs_success || { (exit 1); exit 1; }
fi
+
+{ echo "$as_me:$LINENO:
+
+$PACKAGE_STRING
+
+$FEATURES_TXT" >&5
+echo "$as_me:
+
+$PACKAGE_STRING
+
+$FEATURES_TXT" >&6;}
-dnl $Id: configure.ac,v 1.1.2.1.2.37 2004/07/02 22:49:54 ensc Exp $
+dnl $Id: configure.ac,v 1.97 2005/07/15 20:25:06 ensc Exp $
-dnl Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+dnl Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl
AC_PREREQ(2.57)
-
-AC_INIT(util-vserver, 0.30, enrico.scholz@informatik.tu-chemnitz.de)
+AC_INIT(util-vserver, 0.30.208, enrico.scholz@informatik.tu-chemnitz.de)
AC_CONFIG_SRCDIR([src/capchroot.c])
AC_CONFIG_HEADER([config.h])
-AM_INIT_AUTOMAKE([gnu dist-bzip2 subdir-objects])
+AM_INIT_AUTOMAKE([1.9 gnits dist-bzip2 subdir-objects])
AM_MAINTAINER_MODE
+AC_CANONICAL_BUILD
+AC_CANONICAL_HOST
+
+AC_SUBST(GPG_KEY, "0xFFD316AC53ACA43A!")
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_LN_S
-AC_PROG_RANLIB
AM_PROG_CC_C_O
+ENSC_CXXCOMPILER
+ENSC_C99COMPILER
+
+ENSC_SET_SEARCHPATH([$PATH:/sbin:/usr/sbin:/usr/local/sbin])
+ENSC_PATHPROG_STANDARD_TOOLS
+
+ENSC_PATHPROG(IP, ip,, [Usually, this tool is shipped in the 'iproute' or 'iproute2' package of your distribution])
+ENSC_PATHPROG(IPTABLES, iptables)
+ENSC_PATHPROG(MODPROBE, modprobe)
+ENSC_PATHPROG(NAMEIF, nameif)
+ENSC_PATHPROG(NOHUP, nohup)
+ENSC_PATHPROG(RMMOD, rmmod)
+ENSC_PATHPROG(VCONFIG, vconfig,, [See http://www.candelatech.com/~greear/vlan.html; usually this tool is shipped in the 'vconfig' or 'vlan' package of your distribution])
+ENSC_PATHPROG(WGET, wget)
+
+ENSC_PATHPROG(DOXYGEN, doxygen, [:])
+ENSC_PATHPROG(XSLTP, xsltp, [:])
+ENSC_PATHPROG(XSLTPROC, xsltproc, [:])
+
-ENSC_CHECK_CC_FLAG([-std=c99 -Wall -pedantic -W -Wno-unused-parameter])
+AM_CONDITIONAL(HAVE_XSLTP, test "$XSLTP" != ':')
+AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != ':')
+
+
+ENSC_CHECK_CC_FLAG([-std=c99 -Wall -pedantic -W])
ENSC_CHECK_CXX_FLAG([-ansi -Wall -pedantic -W -fmessage-length=0])
-AC_ARG_VAR(CC, [The C compiler])
-ENSC_KERNEL_HEADERS(kernelincludedir)
-ENSC_UV_VROOTDIR(vserverdir)
-ENSC_CHANGELOG([SYSCALL_SWITCH])
+AC_MSG_CHECKING([whether to enable extra optimizations])
+AC_ARG_ENABLE([extra-optimizations],
+ [AC_HELP_STRING([--disable-extra-optimizations],
+ [disable certain extra optimizations (default: no)])],
+ [case "$enableval" in
+ (yes) use_extra_optimizations=1;;
+ (no) use_extra_optimizations=;;
+ (*) AC_MSG_ERROR(['$enableval' is not a valid value for '--disable-extra-optimizations']);;
+ esac],
+ [use_extra_optimizations=1])
+
+if test x"$use_extra_optimizations" = x; then
+ AC_MSG_RESULT(no)
+else
+ AC_MSG_RESULT(yes)
+ ENSC_CHECK_CC_FLAG([-funit-at-a-time])
+ ENSC_CHECK_CXX_FLAG([-funit-at-a-time])
+fi
-dnl Check whether to enable linuxconf
-AC_MSG_CHECKING([whether to enable linuxconf modules])
-AC_ARG_ENABLE([linuxconf],
- [AC_HELP_STRING([--enable-linuxconf],
- [enable 'newvserver' linuxconf module (default: no)])],
+AC_MSG_CHECKING([whether to enable debug-code in library])
+AC_ARG_ENABLE([lib-debug],
+ [AC_HELP_STRING([--enable-lib-debug],
+ [enable additional debug code in library (default: no)])],
[case "$enableval" in
- yes|no) ;;
- *) AC_MSG_ERROR(['$i' is not a supported value for '--enable-linuxconf']);;
+ (yes) use_lib_debug=1;;
+ (no) use_lib_debug=;;
+ (*) AC_MSG_ERROR(['$enableval' is not a valid value for '--enable-lib-debug']);;
+ esac],
+ [ use_lib_debug= ])
+
+if test x"$use_lib_debug" = x; then
+ AC_SUBST(LIB_DEBUG_CPPFLAGS, [-DNDEBUG])
+ AC_MSG_RESULT(no)
+else
+ AC_SUBST(LIB_DEBUG_CPPFLAGS, [])
+ AC_MSG_RESULT(yes)
+fi
+
+AC_MSG_CHECKING([whether to enable expensive tests])
+AC_ARG_ENABLE([expensive-tests],
+ [AC_HELP_STRING([--disable-expensive-tests],
+ [disable tests which might be expensive on some systems (default: no)])],
+ [case "$enableval" in
+ (yes|no) use_expensive_tests=$enableval;;
+ (*) AC_MSG_ERROR(['$enableval' is not a valid value for '--disable-expensive-tests']);;
esac],
- [enable_linuxconf=no])
+ [ use_expensive_tests=yes ])
+AC_MSG_RESULT($use_expensive_tests)
+
+AC_SUBST(ENSC_USE_EXPENSIVE_TESTS, "$use_expensive_tests")
+
+
+ENSC_CHECK_PERSONALITY_FLAGS
+
+AC_ARG_VAR(CC, [The C compiler])
+
+ENSC_INITRDDIR(initrddir)
+ENSC_RELEASE(RELEASE_CPPFLAGS)
+
+dnl ###########################
+dnl
+dnl {some dietlibc related tests
+dnl
+
+case $host_cpu in
+ (i*86|athlon) min_diet_ver=0.25;;
+ (ia64|hppa*) min_diet_ver=0.29;;
+ (*) min_diet_ver=0.28;;
+esac
+
+ENSC_ENABLE_DIETLIBC(USE_DIETLIBC, [$min_diet_ver])
+
+if test x"$ensc_have_dietlibc" = xno; then
+ AC_MSG_WARN([*** ***])
+ AC_MSG_WARN([*** it is strongly recommended to link util-vserver against ***])
+ AC_MSG_WARN([*** dietlibc; glibc's NSS functions are very unreliable in ***])
+ AC_MSG_WARN([*** chroot() environments, so you have to expect problems ***])
+ AC_MSG_WARN([*** there. ***])
+ AC_MSG_WARN([*** ***])
+ AM_CONDITIONAL(USE_DIETLIBC_COMPAT, false)
+else
+ # HACK: libtool does not have cmdline options to build only
+ # dynamic libraries; this can be done with the
+ # '--disable-static' ./configure option only. As our static
+ # libraries will be build with dietlibc, we have to do set
+ # this option which is evaluated by 'AC_PROG_LIBTOOL'
+ # below. Therefore, this macro must not be called earlier.
+ enable_static=no
-AM_CONDITIONAL(ENSC_ENABLE_LINUXCONF, [test x"$enable_linuxconf" = xyes])
-AC_MSG_RESULT($enable_linuxconf)
+ ENSC_DIETLIBC_SANITYCHECK
+ ENSC_DIETLIBC_NEED_COMPAT(USE_DIETLIBC_COMPAT)
+fi
+AM_CONDITIONAL(ENSC_USE_DIETLIBC, test x"$ensc_have_dietlibc" = xyes)
+AM_CONDITIONAL(ENSC_USE_GLIBC, true)
-dnl Check whether to use external kernel headers
+# HACK: see comments at 'enable_static' above
+AC_PROG_LIBTOOL
+dnl
+dnl dietlibc stuff ends here}
+dnl
+dnl ##########################
+
+
+ENSC_KERNEL_HEADERS(kernelincludedir)
+ENSC_UV_VROOTDIR(vserverdir)
+ENSC_CHANGELOG([trunk])
+
+
+dnl ##########################
+dnl
+dnl {Check whether to use external kernel headers
+dnl
AC_MSG_CHECKING([whether to use internal kernel headers])
AC_ARG_ENABLE([internal-headers],
[AC_HELP_STRING([--disable-internal-headers],
[use vserver specific headers from the kernel instead of the shipped versions (default: no)])],
[case "$enableval" in
- yes|no) ;;
- *) AC_MSG_ERROR(['$i' is not a supported value for '--disable-internal-headers']);;
+ (yes|no) ;;
+ (*) AC_MSG_ERROR(['$i' is not a supported value for '--disable-internal-headers']);;
esac],
[enable_internal_headers=yes])
AM_CONDITIONAL(ENSC_ENABLE_INTERNAL_HEADERS, [test x"$enable_internal_headers" = xyes])
AC_MSG_RESULT([$enable_internal_headers])
+dnl
+dnl the check regarding external kernel headers ends here}
+dnl
+dnl ##########################
-
-dnl Check for the APIs to be used
+dnl ##########################
+dnl
+dnl {Check for the APIs to be used
+dnl
AC_MSG_CHECKING([for supported APIs])
AC_ARG_ENABLE([apis],
[AC_HELP_STRING([--enable-apis=APIS],
- [enable support for the given apis; possible values are: legacy,compat,v11,ALL (default: ALL)])],
+ [enable support for the given apis; possible values are: legacy,compat,v11,v13,fscompat,net,ALL (default: all except 'legacy')])],
[],
- [enable_apis=ALL])
+ [enable_apis=compat,v11,v13,fscompat,net])
-test x"$enable_apis" != xALL || enable_apis='legacy,compat,v11'
+test x"$enable_apis" != xALL || enable_apis='legacy,compat,v11,v13,fscompat,net'
+enable_api_oldproc=
+enable_api_olduts=
old_IFS=$IFS
IFS=,;
for i in $enable_apis; do
case "$i" in
- compat) AC_DEFINE(VC_ENABLE_API_COMPAT, 1, [Enable support for compatibily syscall API]);;
- legacy) AC_DEFINE(VC_ENABLE_API_LEGACY, 1, [Enable support for old, /proc parsing API]);;
- v11) AC_DEFINE(VC_ENABLE_API_V11, 1, [Enable support for API of vserver 1.1.x]);;
- *) AC_MSG_ERROR(['$i' is not a supported API]);;
+ (compat) AC_DEFINE(VC_ENABLE_API_COMPAT, 1, [Enable support for compatibility syscall API])
+ enable_api_oldproc=1
+ enable_api_olduts=1
+ ;;
+ (legacy) AC_DEFINE(VC_ENABLE_API_LEGACY, 1, [Enable support for old, /proc parsing API])
+ enable_api_old_proc=1
+ enable_api_olduts=1
+ ;;
+ (v11) AC_DEFINE(VC_ENABLE_API_V11, 1, [Enable support for API of vserver 1.1.x])
+ enable_api_oldproc=1
+ enable_api_olduts=1
+ ;;
+ (v13) AC_DEFINE(VC_ENABLE_API_V13, 1, [Enable support for API of vserver 1.3.x]);;
+ (net) AC_DEFINE(VC_ENABLE_API_NET, 1, [Enable support for network context API]);;
+ (fscompat) AC_DEFINE(VC_ENABLE_API_FSCOMPAT, 1, [Enable support for filesystem compatibility API]);;
+ (*) AC_MSG_ERROR(['$i' is not a supported API]);;
esac
done
IFS=$old_IFS
+if test x"$enable_api_oldproc" != x; then
+ AC_DEFINE(VC_ENABLE_API_OLDPROC, 1, [Enable API for a backward compatible /proc parsing])
+ enable_apis="$enable_apis,oldproc"
+fi
+if test x"$enable_api_olduts" != x; then
+ AC_DEFINE(VC_ENABLE_API_OLDUTS, 1, [Enable API for a backward compatible uts handling])
+ enable_apis="$enable_apis,olduts"
+fi
AC_MSG_RESULT([$enable_apis])
+dnl
+dnl the check for used APIs ends here}
+dnl
+dnl ##########################
+
ENSC_SYSCALLNR(vserver,273)
ENSC_SYSCALL
AC_CHECK_FUNCS([vserver])
AC_CHECK_DECLS(MS_MOVE,,,[#include <linux/fs.h>])
AC_CHECK_TYPES(xid_t,,,[#include <sys/types.h>])
+AC_CHECK_TYPES(nid_t,,,[#include <sys/types.h>])
+
+AC_CHECK_HEADERS([sys/capability.h])
+
+
+dnl ########################
+dnl
+dnl {check for beecrypt
+dnl
+if test x"$ensc_cv_c99_c99compiler" = xyes; then
+ ensc_have_beecrypt=yes
+
+ if test x"$ensc_have_beecrypt" = xyes; then
+ AC_CHECK_HEADER([beecrypt/beecrypt.h], [ : ],
+ [ ensc_have_beecrypt=no ])
+ fi
+
+ if test x"$ensc_have_beecrypt" = xyes; then
+ AC_CHECK_LIB(beecrypt, hashFunctionContextInit, [ : ],
+ [ ensc_have_beecrypt=no ])
+ fi
-AC_CONFIG_FILES([util-vserver.spec Makefile])
+ if test x"$ensc_have_beecrypt" != xyes; then
+ AC_MSG_WARN([
+****
+**** 'beecrypt' could not be found;
+**** this will disable the build of 'vhashify'
+****])
+ fi
+else
+ ensc_have_beecrypt=no
+fi
+
+AM_CONDITIONAL(ENSC_HAVE_BEECRYPT, test x"$ensc_have_beecrypt" = xyes)
+AM_CONDITIONAL(ENSC_CAN_BEECRYPT_WITH_DIETLIBC, false)
+dnl
+dnl beecrypt stuff ends here}
+dnl
+dnl ########################
+
+
+dnl BIG HACK! Do some autodetection here!
+AC_DEFINE(UTMP_GID, [22], [The utmp gid-number])
+
+if false; then
+ AC_DEFINE(HAVE_GROWING_STACK, [1], [Define to 1 if the stack is on growing addresses])
+fi
+
+AC_DEFINE(_FILE_OFFSET_BITS, [64], [Use 64bit interface for filesystem operations])
+
+dnl ########################
+dnl
+dnl {The final info-page
+dnl
+ensc_cxx_affected=" (affected: vbuild, vcheck)"
+ensc_c99_affected=" (affected: vunify, vcopy, vhashify, vdlimit)"
+ensc_diet_msg=" (you have been warned)"
+ensc_diet_version_msg=" ($ensc_version_dietlibc)"
+ensc_diet_compat_msg=" (using -lcompat)"
+test x"$ensc_cv_cxx_cxxcompiler" = xno || ensc_cxx_affected=
+test x"$ensc_cv_c99_c99compiler" = xno || ensc_c99_affected=
+test x"$ensc_have_dietlibc" = xno || ensc_diet_msg=
+test x"$ensc_version_dietlibc" != x || ensc_diet_version_msg=
+test x"$ensc_have_dietlibc$ensc_cv_c_dietlibc_compat" = xyesyes || ensc_diet_compat_msg=
+
+AH_BOTTOM([#include "compat.h"
+])
+AC_CONFIG_COMMANDS_PRE([
+ FEATURES_TXT="\
+Features:
+ CC: $CC, $($CC --version | sed -e '1p;d')
+ CXX: $CXX, $($CXX --version | sed -e '1p;d')
+ CPPFLAGS: '$CPPFLAGS'
+ CFLAGS: '$CFLAGS'
+ CXXFLAGS: '$CXXFLAGS'
+ build/host: $build/$host
+ Use dietlibc: $ensc_have_dietlibc$ensc_diet_version_msg$ensc_diet_msg$ensc_diet_compat_msg
+ Build C++ programs: $ensc_cv_cxx_cxxcompiler$ensc_cxx_affected
+ Build C99 programs: $ensc_cv_c99_c99compiler$ensc_c99_affected
+ Available APIs: $enable_apis
+ ext2fs Source: $ensc_cv_test_ext2fs_header
+ syscall(2) invocation: $with_syscall
+ vserver(2) syscall#: $ensc_cv_value_syscall_vserver
+
+Paths:
+ prefix: $prefix
+ sysconf-Directory: $sysconfdir
+ cfg-Directory: $sysconfdir/vservers
+ initrd-Directory: $initrddir
+ pkgstate-Directory: $localstatedir/run/vservers
+ Kernelheaders: $kernelincludedir
+ vserver-Rootdir: $vserverdir
+"
+ echo "$FEATURES_TXT" >FEATURES.txt
+ ])
+dnl
+dnl final info-page ends here}
+dnl
+dnl ########################
+
+AC_CONFIG_FILES([util-vserver.spec Makefile distrib/Makefile lib/apidoc/Doxyfile])
AC_OUTPUT
+
+AC_MSG_NOTICE([
+
+$PACKAGE_STRING
+
+$FEATURES_TXT])
--- /dev/null
+## $Id: Makefile-files,v 1.5 2005/07/15 16:25:39 ensc Exp $ -*- makefile -*-
+
+## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+
+
+contrib_gen_DTA = contrib/manifest.dat
+contrib_subst_SRCS = contrib/manifest.dat.pathsubst
+
+
+noinst_DATA += $(contrib_gen_DTA)
+CLEANFILES += $(contrib_gen_DTA)
+
+EXTRA_DIST += $(contrib_subst_SRCS) \
+ contrib/make-manifest \
+ contrib/yum-2.2.1-chroot.patch \
+ contrib/yum-2.3.2-chroot.patch \
+ contrib/yum-2.3.3-chroot.patch \
+ contrib/yum-2.3.4-chroot.patch
+
+contrib/manifest.dat: contrib/.manifest.dat.pathsubst.stamp
--- /dev/null
+#! /bin/bash
+
+# Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+## Usage: make-manifest <basename> <destdir> <datfile>
+
+name=$1
+dest=$2
+data=$3
+
+for i in $name-{core,devel,base,build,legacy,lib,sysv}.list; do
+ echo '%defattr(-,root,root,-)' >$i
+done
+
+sed -e "s!@CONFIG@!$MANIFEST_CONFIG!g;
+ s!@CONFIG_NOREPLACE@!$MANIFEST_CONFIG_NOREPLACE!g" \
+ $data | \
+while read style file; do
+ test "$file" || continue
+ case "$style" in
+ (\#*) continue;;
+ esac
+ echo "$file" >>$name-$style.list
+done
--- /dev/null
+lib @LIBDIR@/libvserver.so.*
+devel @LIBDIR@/libvserver.a
+devel @LIBDIR@/libvserver.so
+base @PKGLIBDIR@/functions
+build @PKGLIBDIR@/vserver-build.apt-rpm
+build @PKGLIBDIR@/vserver-build.skeleton
+build @PKGLIBDIR@/vserver-build.debootstrap
+build @PKGLIBDIR@/vserver-build.yum
+build @PKGLIBDIR@/vserver-build.rpm
+build @PKGLIBDIR@/vserver-build.functions
+build @PKGLIBDIR@/vserver-build.functions.apt
+build @PKGLIBDIR@/vserver-build.functions.rpm
+build @PKGLIBDIR@/vserver-build.functions.yum
+build @PKGLIBDIR@/vserver-build.functions.pkgmgmt
+build @PKGLIBDIR@/vserver-setup.functions
+base @PKGLIBDIR@/vserver.functions
+base @PKGLIBDIR@/vserver.start
+@ENSC_HAVE_C99_COMPILER_TRUE@base @PKGLIBDIR@/vserver.start.bin
+base @PKGLIBDIR@/vserver.stop
+base @PKGLIBDIR@/vserver.suexec
+core @PKGLIBDIR@/util-vserver-vars
+build @PKGLIBDIR@/rpm-fake.so
+legacy @LEGACYDIR@/save_s_context
+legacy @LEGACYDIR@/vps
+legacy @LEGACYDIR@/vserver
+legacy @LEGACYDIR@/vserverkillall
+legacy @LEGACYDIR@/distrib-info
+legacy @LEGACYDIR@/ifspec
+legacy @LEGACYDIR@/listdevip
+legacy @LEGACYDIR@/parserpmdump
+legacy @LEGACYDIR@/rebootmgr
+legacy @LEGACYDIR@/rootshell
+legacy @LEGACYDIR@/showperm
+legacy @LEGACYDIR@/vreboot
+core @PKGLIBDIR@/FEATURES.txt
+base @PKGLIBDIR@/defaults/mtab
+base @PKGLIBDIR@/defaults/vprocunhide-files
+build @PKGLIBDIR@/defaults/fstab
+build @PKGLIBDIR@/defaults/debootstrap.uri
+@ENSC_HAVE_C99_COMPILER_TRUE@build @PKGLIBDIR@/defaults/vunify-exclude
+base @PKGLIBDIR@/capchroot
+base @PKGLIBDIR@/chain-echo
+core @PKGLIBDIR@/chcontext-compat
+base @PKGLIBDIR@/check-unixfile
+base @PKGLIBDIR@/chroot-sh
+base @PKGLIBDIR@/exec-ulimit
+base @PKGLIBDIR@/fakerunlevel
+base @PKGLIBDIR@/filetime
+base @PKGLIBDIR@/lockfile
+base @PKGLIBDIR@/keep-ctx-alive
+base @PKGLIBDIR@/mask2prefix
+build @PKGLIBDIR@/pkgmgmt
+base @PKGLIBDIR@/readlink
+build @PKGLIBDIR@/rpm-fake-resolver
+base @PKGLIBDIR@/save_ctxinfo
+base @PKGLIBDIR@/secure-mount
+base @PKGLIBDIR@/sigexec
+base @PKGLIBDIR@/start-vservers
+build @PKGLIBDIR@/vapt-get-worker
+build @PKGLIBDIR@/vyum-worker
+build @PKGLIBDIR@/vpkg
+base @PKGLIBDIR@/vprocunhide
+build @PKGLIBDIR@/vrpm-preload
+build @PKGLIBDIR@/vrpm-worker
+build @PKGLIBDIR@/vserver-build
+sysv @PKGLIBDIR@/vserver-wrapper
+base @PKGLIBDIR@/vshelper
+base @PKGLIBDIR@/vshelper-sync
+sysv @PKGLIBDIR@/vsysvwrapper
+@ENSC_HAVE_C99_COMPILER_TRUE@build @PKGLIBDIR@/vcopy
+@ENSC_HAVE_C99_COMPILER_TRUE@build @PKGLIBDIR@/vunify
+@ENSC_HAVE_C99_COMPILER_TRUE@build @PKGLIBDIR@/vhashify
+base @PKGLIBDIR@/vservers.grabinfo.sh
+build @PKGLIBDIR@/distributions
+devel @LIBDIR@/pkgconfig/util-vserver.pc
+core @SBINDIR@/chbind
+core @SBINDIR@/chcontext
+core @SBINDIR@/chxid
+base @SBINDIR@/exec-cd
+core @SBINDIR@/lsxid
+core @SBINDIR@/reducecap
+core @SBINDIR@/setattr
+core @SBINDIR@/showattr
+build @SBINDIR@/vapt-get
+build @SBINDIR@/vyum
+core @SBINDIR@/vattribute
+core @SBINDIR@/vcontext
+core @SBINDIR@/vdlimit
+core @SBINDIR@/vnamespace
+base @SBINDIR@/vdu
+core @SBINDIR@/vkill
+core @SBINDIR@/vlimit
+base @SBINDIR@/vps
+base @SBINDIR@/vpstree
+build @SBINDIR@/vrpm
+core @SBINDIR@/vrsetup
+core @SBINDIR@/vsched
+base @SBINDIR@/vserver
+legacy @SBINDIR@/vserver-copy
+core @SBINDIR@/vserver-info
+base @SBINDIR@/vserver-stat
+base @SBINDIR@/vsomething
+base @SBINDIR@/vtop
+core @SBINDIR@/vuname
+core @SBINDIR@/vwait
+devel @INCLUDEDIR@/vserver.h
+core @MANDIR@/*/chbind*
+core @MANDIR@/*/chcontext*
+core @MANDIR@/*/reducecap*
+legacy @MANDIR@/*/distrib-info*
+build @MANDIR@/*/vserver-copy*
+legacy @MANDIR@/*/rebootmgr*
+legacy @MANDIR@/*/vps.*
+base @MANDIR@/*/vpstree.*
+base @MANDIR@/*/vserver-stat*
+base @MANDIR@/*/vserver.*
+base @MANDIR@/*/vtop*
+legacy @CONFIG@ @INITRDDIR@/v_gated
+legacy @CONFIG@ @INITRDDIR@/v_httpd
+legacy @CONFIG@ @INITRDDIR@/v_named
+legacy @CONFIG@ @INITRDDIR@/v_portmap
+legacy @CONFIG@ @INITRDDIR@/v_sendmail
+legacy @CONFIG@ @INITRDDIR@/v_smb
+legacy @CONFIG@ @INITRDDIR@/v_sshd
+legacy @CONFIG@ @INITRDDIR@/v_xinetd
+sysv @CONFIG@ @INITRDDIR@/vprocunhide
+sysv @CONFIG@ @INITRDDIR@/vservers-default
+legacy @CONFIG@ @INITRDDIR@/rebootmgr
+legacy @CONFIG@ @INITRDDIR@/vservers-legacy
+legacy @CONFIG_NOREPLACE@ @SYSCONFDIR@/vservers.conf
+build @CONFIG_NOREPLACE@ @CONFDIR@/.distributions/*/apt/sources.list
--- /dev/null
+--- yum-2.2.1/docs/yum.conf.5.chroot 2005-02-19 23:30:54.000000000 +0100
++++ yum-2.2.1/docs/yum.conf.5 2005-04-08 19:53:02.000000000 +0200
+@@ -23,8 +23,10 @@
+ following options:
+
+ .IP \fBcachedir\fR
+-Directory where yum should store its cache and db files. The default is
+-`/var/cache/yum'.
++Directory where yum should store its cache and db files. The default
++is `/var/cache/yum'. Unless the prefixes `hostfs://' or `chrootfs://'
++are used, some magic will be applied to determine the real path in
++combination with `--installroot'.
+
+ .IP \fBreposdir\fR
+ Directory where yum should look for .repo files for its configuration
+@@ -33,6 +35,10 @@
+ repository options below. These will be merged with the repositories defined
+ in /etc/yum.conf to form the complete set of repositories that yum will use.
+
++Unless the prefixes `hostfs://' or `chrootfs://' are used, some magic
++will be applied to determine the real path in combination with
++`--installroot'.
++
+ .IP \fBdebuglevel\fR
+ Debug message output level. Practical range is 0\-10. Default is `2'.
+
+@@ -40,7 +46,10 @@
+ Error message output level. Practical range is 0\-10. Default is `2'.
+
+ .IP \fBlogfile\fR
+-Full directory and file name for where yum should write its log file.
++Full directory and file name for where yum should write its log
++file. Unless the prefixes `hostfs://' or `chrootfs://' are used,
++some magic will be applied to determine the real path in combination
++with `--installroot'.
+
+ .IP \fBgpgcheck\fR
+ Either `1' or `0'. This tells yum whether or not it should perform a GPG
+--- yum-2.2.1/yum/__init__.py.chroot 2005-03-15 08:34:03.000000000 +0100
++++ yum-2.2.1/yum/__init__.py 2005-04-08 20:10:36.000000000 +0200
+@@ -298,19 +298,22 @@
+ self.log(3, 'Arch Excluding %s' % po)
+ self.pkgSack.delPackage(po)
+ self.log(2, 'Finished')
++
++ def __getLockfileName(self):
++ lockfile = self.conf.configdata['lockfile']
++ return self.conf.getRootedPath(lockfile,
++ enforce_default = True,
++ defaults_to_host = False)
+
+-
+-
+- def doLock(self, lockfile):
++ def doLock(self):
+ """perform the yum locking, raise yum-based exceptions, not OSErrors"""
+
+ # if we're not root then we don't lock - just return nicely
+ if self.conf.getConfigOption('uid') != 0:
+ return
+
+- root = self.conf.installroot
+- lockfile = root + '/' + lockfile # lock in the chroot
+-
++ lockfile=self.__getLockfileName()
++
+ mypid=str(os.getpid())
+ while not self._lock(lockfile, mypid, 0644):
+ fd = open(lockfile, 'r')
+@@ -333,15 +336,14 @@
+ msg = 'Existing lock %s: another copy is running. Aborting.' % lockfile
+ raise Errors.LockError(0, msg)
+
+- def doUnlock(self, lockfile):
++ def doUnlock(self):
+ """do the unlock for yum"""
+
+ # if we're not root then we don't lock - just return nicely
+ if self.conf.getConfigOption('uid') != 0:
+ return
+
+- root = self.conf.installroot
+- lockfile = root + '/' + lockfile # lock in the chroot
++ lockfile=self.__getLockfileName()
+
+ self._unlock(lockfile)
+
+--- yum-2.2.1/yum/config.py.chroot 2005-03-15 07:09:18.000000000 +0100
++++ yum-2.2.1/yum/config.py 2005-04-08 19:53:02.000000000 +0200
+@@ -194,7 +194,8 @@
+
+ #defaults -either get them or set them
+ optionstrings = [('cachedir', '/var/cache/yum'),
+- ('logfile', '/var/log/yum.log'),
++ ('logfile', '/var/log/yum.log'),
++ ('lockfile', '/var/run/yum.pid'),
+ ('reposdir', '/etc/yum.repos.d'),
+ ('rss-filename', 'yum-rss.xml'),
+ ('pkgpolicy', 'newest'),
+@@ -270,9 +271,7 @@
+
+ # do the dirs - set the root if there is one (grumble)
+ for option in ['cachedir', 'logfile']:
+- path = self.configdata[option]
+- root = self.configdata['installroot']
+- rootedpath = root + path
++ rootedpath = self.getRootedPath(self.configdata[option])
+ self.configdata[option] = rootedpath
+ setattr(self, option, rootedpath)
+
+@@ -314,8 +313,7 @@
+ # read each of them in using confpp, then parse them same as any other repo
+ # section - as above.
+ reposdir = self.getConfigOption('reposdir')
+- if os.path.exists(self.getConfigOption('installroot') + '/' + reposdir):
+- reposdir = self.getConfigOption('installroot') + '/' + reposdir
++ reposdir = self.getRootedPath(reposdir)
+
+ reposglob = reposdir + '/*.repo'
+ if os.path.exists(reposdir) and os.path.isdir(reposdir):
+@@ -334,6 +332,23 @@
+ print e
+
+
++ def getRootedPath(self, path, enforce_default=False, defaults_to_host=False):
++ instroot = self.configdata['installroot']
++ if path.startswith('hostfs://'): res = path[9:]
++ elif path.startswith('chrootfs://'): res = instroot + '/' + path[11:]
++ else:
++ tmp = instroot + '/' +path
++
++ if enforce_default:
++ if defaults_to_host: res = path
++ else: res = tmp
++ else:
++ if os.path.exists(tmp): res = tmp
++ elif defaults_to_host: res = path
++ else: res = tmp
++
++ return res
++
+ def listConfigOptions(self):
+ """return list of options available for global config"""
+ return self.configdata.keys()
+--- yum-2.2.1/cli.py.chroot 2005-03-15 08:19:11.000000000 +0100
++++ yum-2.2.1/cli.py 2005-04-08 19:53:02.000000000 +0200
+@@ -126,7 +126,7 @@
+ sleeptime=0
+ root = '/'
+ installroot = None
+- conffile = '/etc/yum.conf'
++ conffile = None
+
+ try:
+ for o,a in gopts:
+@@ -140,12 +140,14 @@
+
+ # if the conf file is inside the installroot - use that.
+ # otherwise look for it in the normal root
+- if installroot:
+- if os.access(installroot + '/' + conffile, os.R_OK):
++ if conffile==None:
++ conffile = '/etc/yum.conf'
++ if installroot and os.access(installroot + '/' + conffile, os.R_OK):
+ conffile = installroot + '/' + conffile
+-
++
++ if installroot:
+ root = installroot
+-
++
+ try:
+ self.conf = yumconf(configfile = conffile, root = root)
+ except yum.Errors.ConfigError, e:
+--- yum-2.2.1/yummain.py.chroot 2005-01-07 14:45:50.000000000 +0100
++++ yum-2.2.1/yummain.py 2005-04-08 19:53:02.000000000 +0200
+@@ -41,7 +41,7 @@
+ def unlock():
+ try:
+ base.closeRpmDB()
+- base.doUnlock('/var/run/yum.pid')
++ base.doUnlock()
+ except Errors.LockError, e:
+ sys.exit(200)
+
+@@ -58,7 +58,7 @@
+ sys.exit(1)
+
+ try:
+- base.doLock('/var/run/yum.pid')
++ base.doLock()
+ except Errors.LockError, e:
+ base.errorlog(0,'%s' % e.msg)
+ sys.exit(200)
--- /dev/null
+--- yum-2.3.2/docs/yum.conf.5.chroot 2005-03-25 11:12:20.000000000 +0100
++++ yum-2.3.2/docs/yum.conf.5 2005-04-08 18:27:12.000000000 +0200
+@@ -23,8 +23,10 @@
+ following options:
+
+ .IP \fBcachedir\fR
+-Directory where yum should store its cache and db files. The default is
+-`/var/cache/yum'.
++Directory where yum should store its cache and db files. The default
++is `/var/cache/yum'. Unless the prefixes `hostfs://' or `chrootfs://'
++are used, some magic will be applied to determine the real path in
++combination with `--installroot'.
+
+ .IP \fBreposdir\fR
+ A list of directories where yum should look for .repo files which define
+@@ -34,6 +36,10 @@
+ repositories defined in /etc/yum.conf to form the complete set of repositories
+ that yum will use.
+
++Unless the prefixes `hostfs://' or `chrootfs://' are used, some magic
++will be applied to determine the real path in combination with
++`--installroot'.
++
+ .IP \fBdebuglevel\fR
+ Debug message output level. Practical range is 0\-10. Default is `2'.
+
+@@ -41,7 +47,10 @@
+ Error message output level. Practical range is 0\-10. Default is `2'.
+
+ .IP \fBlogfile\fR
+-Full directory and file name for where yum should write its log file.
++Full directory and file name for where yum should write its log
++file. Unless the prefixes `hostfs://' or `chrootfs://' are used,
++some magic will be applied to determine the real path in combination
++with `--installroot'.
+
+ .IP \fBgpgcheck\fR
+ Either `1' or `0'. This tells yum whether or not it should perform a GPG
+--- yum-2.3.2/yum/__init__.py.chroot 2005-04-04 20:14:18.000000000 +0200
++++ yum-2.3.2/yum/__init__.py 2005-04-08 20:11:06.000000000 +0200
+@@ -97,9 +97,8 @@
+ # read each of them in using confpp, then parse them same as any other repo
+ # section - as above.
+ for reposdir in self.conf.reposdir:
+- if os.path.exists(self.conf.installroot + '/' + reposdir):
+- reposdir = self.conf.installroot + '/' + reposdir
+-
++ reposdir = self.conf.getRootedPath(reposdir)
++
+ if os.path.isdir(reposdir):
+ repofn = glob.glob(reposdir+'/*.repo')
+ repofn.sort()
+@@ -405,17 +404,20 @@
+ self.pkgSack.excludeArchs(archlist)
+ self.log(3, 'Finished')
+
++ def __getLockfileName(self):
++ lockfile = self.conf.configdata['lockfile']
++ return self.conf.getRootedPath(lockfile,
++ enforce_default = True,
++ defaults_to_host = False)
+
+-
+- def doLock(self, lockfile):
++ def doLock(self):
+ """perform the yum locking, raise yum-based exceptions, not OSErrors"""
+
+ # if we're not root then we don't lock - just return nicely
+ if self.conf.getConfigOption('uid') != 0:
+ return
+-
+- root = self.conf.installroot
+- lockfile = root + '/' + lockfile # lock in the chroot
++
++ lockfile=self.__getLockfileName()
+
+ mypid=str(os.getpid())
+ while not self._lock(lockfile, mypid, 0644):
+@@ -439,15 +441,14 @@
+ msg = 'Existing lock %s: another copy is running. Aborting.' % lockfile
+ raise Errors.LockError(0, msg)
+
+- def doUnlock(self, lockfile):
++ def doUnlock(self):
+ """do the unlock for yum"""
+
+ # if we're not root then we don't lock - just return nicely
+ if self.conf.getConfigOption('uid') != 0:
+ return
+
+- root = self.conf.installroot
+- lockfile = root + '/' + lockfile # lock in the chroot
++ lockfile=self.__getLockfileName()
+
+ self._unlock(lockfile)
+
+--- yum-2.3.2/yum/config.py.chroot 2005-03-28 00:01:22.000000000 +0200
++++ yum-2.3.2/yum/config.py 2005-04-08 20:09:25.000000000 +0200
+@@ -193,7 +193,8 @@
+
+ #defaults -either get them or set them
+ optionstrings = [('cachedir', '/var/cache/yum'),
+- ('logfile', '/var/log/yum.log'),
++ ('logfile', '/var/log/yum.log'),
++ ('lockfile', '/var/run/yum.pid'),
+ ('reposdir', ['/etc/yum/repos.d', '/etc/yum.repos.d']),
+ ('syslog_ident', None),
+ ('syslog_facility', 'LOG_USER'),
+@@ -304,9 +305,7 @@
+
+ # do the dirs - set the root if there is one (grumble)
+ for option in ['cachedir', 'logfile']:
+- path = self.configdata[option]
+- root = self.configdata['installroot']
+- rootedpath = root + path
++ rootedpath = self.getRootedPath(self.configdata[option])
+ self.configdata[option] = rootedpath
+ setattr(self, option, rootedpath)
+
+@@ -339,6 +338,23 @@
+ "All plugin search paths must be absolute")
+
+
++ def getRootedPath(self, path, enforce_default=False, defaults_to_host=False):
++ instroot = self.configdata['installroot']
++ if path.startswith('hostfs://'): res = path[9:]
++ elif path.startswith('chrootfs://'): res = instroot + '/' + path[11:]
++ else:
++ tmp = instroot + '/' +path
++
++ if enforce_default:
++ if defaults_to_host: res = path
++ else: res = tmp
++ else:
++ if os.path.exists(tmp): res = tmp
++ elif defaults_to_host: res = path
++ else: res = tmp
++
++ return res
++
+ def listConfigOptions(self):
+ """return list of options available for global config"""
+ return self.configdata.keys()
+@@ -717,9 +733,7 @@
+ # read each of them in using confpp, then parse them same as any other repo
+ # section - as above.
+
+- reposdir = conf.reposdir
+- if os.path.exists(conf.installroot + '/' + reposdir):
+- reposdir = conf.installroot + '/' + reposdir
++ reposdir = conf.getRootedPath(conf.reposdir)
+
+ reposglob = reposdir + '/*.repo'
+ if os.path.exists(reposdir) and os.path.isdir(reposdir):
+--- yum-2.3.2/cli.py.chroot 2005-03-28 05:18:03.000000000 +0200
++++ yum-2.3.2/cli.py 2005-04-08 18:27:12.000000000 +0200
+@@ -115,7 +115,7 @@
+ sleeptime=0
+ root = '/'
+ installroot = None
+- conffile = '/etc/yum.conf'
++ conffile = None
+
+ try:
+ for o,a in gopts:
+@@ -129,12 +129,14 @@
+
+ # if the conf file is inside the installroot - use that.
+ # otherwise look for it in the normal root
++ if conffile==None:
++ conffile = '/etc/yum.conf'
++ if installroot and os.access(installroot + '/' + conffile, os.R_OK):
++ conffile = installroot + '/' + conffile
++
+ if installroot:
+- if os.access(installroot + '/' + conffile, os.R_OK):
+- conffile = installroot + '/' + conffile
+-
+- root = installroot
+-
++ root = installroot
++
+ try:
+ self.doConfigSetup(fn = conffile, root = root)
+ except yum.Errors.ConfigError, e:
+--- yum-2.3.2/yummain.py.chroot 2005-03-27 07:39:17.000000000 +0200
++++ yum-2.3.2/yummain.py 2005-04-08 18:27:12.000000000 +0200
+@@ -41,7 +41,7 @@
+ def unlock():
+ try:
+ base.closeRpmDB()
+- base.doUnlock('/var/run/yum.pid')
++ base.doUnlock()
+ except Errors.LockError, e:
+ sys.exit(200)
+
+@@ -58,7 +58,7 @@
+ sys.exit(1)
+
+ try:
+- base.doLock('/var/run/yum.pid')
++ base.doLock()
+ except Errors.LockError, e:
+ base.errorlog(0,'%s' % e.msg)
+ sys.exit(200)
--- /dev/null
+--- yum-2.3.3/docs/yum.conf.5.chroot
++++ yum-2.3.3/docs/yum.conf.5
+@@ -23,8 +23,10 @@
+ following options:
+
+ .IP \fBcachedir\fR
+-Directory where yum should store its cache and db files. The default is
+-`/var/cache/yum'.
++Directory where yum should store its cache and db files. The default
++is `/var/cache/yum'. Unless the prefixes `hostfs://' or `chrootfs://'
++are used, some magic will be applied to determine the real path in
++combination with `--installroot'.
+
+ .IP \fBreposdir\fR
+ A list of directories where yum should look for .repo files which define
+@@ -34,6 +36,10 @@
+ repositories defined in /etc/yum.conf to form the complete set of repositories
+ that yum will use.
+
++Unless the prefixes `hostfs://' or `chrootfs://' are used, some magic
++will be applied to determine the real path in combination with
++`--installroot'.
++
+ .IP \fBdebuglevel\fR
+ Debug message output level. Practical range is 0\-10. Default is `2'.
+
+@@ -41,7 +47,10 @@
+ Error message output level. Practical range is 0\-10. Default is `2'.
+
+ .IP \fBlogfile\fR
+-Full directory and file name for where yum should write its log file.
++Full directory and file name for where yum should write its log
++file. Unless the prefixes `hostfs://' or `chrootfs://' are used,
++some magic will be applied to determine the real path in combination
++with `--installroot'.
+
+ .IP \fBgpgcheck\fR
+ Either `1' or `0'. This tells yum whether or not it should perform a GPG
+--- yum-2.3.3/yum/__init__.py.chroot
++++ yum-2.3.3/yum/__init__.py
+@@ -101,9 +101,8 @@
+ # read each of them in using confpp, then parse them same as any other repo
+ # section - as above.
+ for reposdir in self.conf.reposdir:
+- if os.path.exists(self.conf.installroot + '/' + reposdir):
+- reposdir = self.conf.installroot + '/' + reposdir
+-
++ reposdir = self.conf.getRootedPath(reposdir)
++
+ if os.path.isdir(reposdir):
+ repofn = glob.glob(reposdir+'/*.repo')
+ repofn.sort()
+@@ -425,17 +424,20 @@
+ self.pkgSack.excludeArchs(archlist)
+ self.log(3, 'Finished')
+
++ def __getLockfileName(self):
++ lockfile = self.conf.configdata['lockfile']
++ return self.conf.getRootedPath(lockfile,
++ enforce_default = True,
++ defaults_to_host = False)
+
+-
+- def doLock(self, lockfile):
++ def doLock(self):
+ """perform the yum locking, raise yum-based exceptions, not OSErrors"""
+
+ # if we're not root then we don't lock - just return nicely
+ if self.conf.getConfigOption('uid') != 0:
+ return
+-
+- root = self.conf.installroot
+- lockfile = root + '/' + lockfile # lock in the chroot
++
++ lockfile=self.__getLockfileName()
+
+ mypid=str(os.getpid())
+ while not self._lock(lockfile, mypid, 0644):
+@@ -459,15 +461,14 @@
+ msg = 'Existing lock %s: another copy is running. Aborting.' % lockfile
+ raise Errors.LockError(0, msg)
+
+- def doUnlock(self, lockfile):
++ def doUnlock(self):
+ """do the unlock for yum"""
+
+ # if we're not root then we don't lock - just return nicely
+ if self.conf.getConfigOption('uid') != 0:
+ return
+
+- root = self.conf.installroot
+- lockfile = root + '/' + lockfile # lock in the chroot
++ lockfile=self.__getLockfileName()
+
+ self._unlock(lockfile)
+
+--- yum-2.3.3/yum/config.py.chroot
++++ yum-2.3.3/yum/config.py
+@@ -193,7 +193,8 @@
+
+ #defaults -either get them or set them
+ optionstrings = [('cachedir', '/var/cache/yum'),
+- ('logfile', '/var/log/yum.log'),
++ ('logfile', '/var/log/yum.log'),
++ ('lockfile', '/var/run/yum.pid'),
+ ('reposdir', ['/etc/yum/repos.d', '/etc/yum.repos.d']),
+ ('syslog_ident', None),
+ ('syslog_facility', 'LOG_USER'),
+@@ -305,9 +306,7 @@
+
+ # do the dirs - set the root if there is one (grumble)
+ for option in ['cachedir', 'logfile']:
+- path = self.configdata[option]
+- root = self.configdata['installroot']
+- rootedpath = root + path
++ rootedpath = self.getRootedPath(self.configdata[option])
+ self.configdata[option] = rootedpath
+ setattr(self, option, rootedpath)
+
+@@ -340,6 +339,23 @@
+ "All plugin search paths must be absolute")
+
+
++ def getRootedPath(self, path, enforce_default=False, defaults_to_host=False):
++ instroot = self.configdata['installroot']
++ if path.startswith('hostfs://'): res = path[9:]
++ elif path.startswith('chrootfs://'): res = instroot + '/' + path[11:]
++ else:
++ tmp = instroot + '/' +path
++
++ if enforce_default:
++ if defaults_to_host: res = path
++ else: res = tmp
++ else:
++ if os.path.exists(tmp): res = tmp
++ elif defaults_to_host: res = path
++ else: res = tmp
++
++ return res
++
+ def listConfigOptions(self):
+ """return list of options available for global config"""
+ return self.configdata.keys()
+@@ -719,9 +735,7 @@
+ # read each of them in using confpp, then parse them same as any other repo
+ # section - as above.
+
+- reposdir = conf.reposdir
+- if os.path.exists(conf.installroot + '/' + reposdir):
+- reposdir = conf.installroot + '/' + reposdir
++ reposdir = conf.getRootedPath(conf.reposdir)
+
+ reposglob = reposdir + '/*.repo'
+ if os.path.exists(reposdir) and os.path.isdir(reposdir):
+--- yum-2.3.3/cli.py.chroot
++++ yum-2.3.3/cli.py
+@@ -108,7 +108,7 @@
+ action="store_true", default=False,
+ help="run entirely from cache, don't update cache")
+ self.optparser.add_option("-c", "", dest="conffile", action="store",
+- default='/etc/yum.conf', help="config file location",
++ default=None, help="config file location",
+ metavar=' [config file]')
+ self.optparser.add_option("-R", "", dest="sleeptime", action="store",
+ type='int', default=None, help="maximum command wait time",
+@@ -161,9 +161,12 @@
+ try:
+ # If the conf file is inside the installroot - use that.
+ # otherwise look for it in the normal root
+- if opts.installroot:
+- if os.access(opts.installroot+'/'+opts.conffile, os.R_OK):
++ if opts.conffile==None:
++ opts.conffile = '/etc/yum.conf'
++ if opts.installroot and os.access(opts.installroot+'/'+opts.conffile, os.R_OK):
+ opts.conffile = opts.installroot+'/'+opts.conffile
++
++ if opts.installroot:
+ root=opts.installroot
+ else:
+ root = '/'
+--- yum-2.3.3/yummain.py.chroot
++++ yum-2.3.3/yummain.py
+@@ -60,7 +60,7 @@
+ def unlock():
+ try:
+ base.closeRpmDB()
+- base.doUnlock(YUM_PID_FILE)
++ base.doUnlock()
+ except Errors.LockError, e:
+ sys.exit(200)
+
+@@ -78,7 +78,7 @@
+ except Errors.YumBaseError, e:
+ exFatal(e)
+ try:
+- base.doLock(YUM_PID_FILE)
++ base.doLock()
+ except Errors.LockError, e:
+ base.errorlog(0,'%s' % e.msg)
+ sys.exit(200)
--- /dev/null
+--- yum-2.3.4/docs/yum.conf.5.chroot
++++ yum-2.3.4/docs/yum.conf.5
+@@ -23,8 +23,10 @@
+ following options:
+
+ .IP \fBcachedir\fR
+-Directory where yum should store its cache and db files. The default is
+-`/var/cache/yum'.
++Directory where yum should store its cache and db files. The default
++is `/var/cache/yum'. Unless the prefixes `hostfs://' or `chrootfs://'
++are used, some magic will be applied to determine the real path in
++combination with `--installroot'.
+
+ .IP \fBreposdir\fR
+ A list of directories where yum should look for .repo files which define
+@@ -34,6 +36,10 @@
+ repositories defined in /etc/yum.conf to form the complete set of repositories
+ that yum will use.
+
++Unless the prefixes `hostfs://' or `chrootfs://' are used, some magic
++will be applied to determine the real path in combination with
++`--installroot'.
++
+ .IP \fBdebuglevel\fR
+ Debug message output level. Practical range is 0\-10. Default is `2'.
+
+@@ -41,7 +47,10 @@
+ Error message output level. Practical range is 0\-10. Default is `2'.
+
+ .IP \fBlogfile\fR
+-Full directory and file name for where yum should write its log file.
++Full directory and file name for where yum should write its log
++file. Unless the prefixes `hostfs://' or `chrootfs://' are used,
++some magic will be applied to determine the real path in combination
++with `--installroot'.
+
+ .IP \fBgpgcheck\fR
+ Either `1' or `0'. This tells yum whether or not it should perform a GPG
+--- yum-2.3.4/yum/__init__.py.chroot
++++ yum-2.3.4/yum/__init__.py
+@@ -102,9 +102,8 @@
+ # read each of them in using confpp, then parse them same as any other repo
+ # section - as above.
+ for reposdir in self.conf.reposdir:
+- if os.path.exists(self.conf.installroot + '/' + reposdir):
+- reposdir = self.conf.installroot + '/' + reposdir
+-
++ reposdir = self.conf.getRootedPath(reposdir)
++
+ if os.path.isdir(reposdir):
+ repofn = glob.glob(reposdir+'/*.repo')
+ repofn.sort()
+@@ -426,18 +425,20 @@
+ self.pkgSack.excludeArchs(archlist)
+ self.log(3, 'Finished')
+
++ def __getLockfileName(self):
++ lockfile = self.conf.configdata['lockfile']
++ return self.conf.getRootedPath(lockfile,
++ enforce_default = True,
++ defaults_to_host = False)
+
+-
+- def doLock(self, lockfile):
++ def doLock(self):
+ """perform the yum locking, raise yum-based exceptions, not OSErrors"""
+
+ # if we're not root then we don't lock - just return nicely
+ if self.conf.getConfigOption('uid') != 0:
+ return
+
+- root = self.conf.installroot
+- lockfile = root + '/' + lockfile # lock in the chroot
+- lockfile = os.path.normpath(lockfile) # get rid of silly preceding extra /
++ lockfile = self.__getLockfileName()
+
+ mypid=str(os.getpid())
+ while not self._lock(lockfile, mypid, 0644):
+@@ -461,15 +462,14 @@
+ msg = 'Existing lock %s: another copy is running. Aborting.' % lockfile
+ raise Errors.LockError(0, msg)
+
+- def doUnlock(self, lockfile):
++ def doUnlock(self):
+ """do the unlock for yum"""
+
+ # if we're not root then we don't lock - just return nicely
+ if self.conf.getConfigOption('uid') != 0:
+ return
+
+- root = self.conf.installroot
+- lockfile = root + '/' + lockfile # lock in the chroot
++ lockfile=self.__getLockfileName()
+
+ self._unlock(lockfile)
+
+--- yum-2.3.4/yum/config.py.chroot
++++ yum-2.3.4/yum/config.py
+@@ -205,7 +205,8 @@
+
+ #defaults -either get them or set them
+ optionstrings = [('cachedir', '/var/cache/yum'),
+- ('logfile', '/var/log/yum.log'),
++ ('logfile', '/var/log/yum.log'),
++ ('lockfile', '/var/run/yum.pid'),
+ ('reposdir', ['/etc/yum/repos.d', '/etc/yum.repos.d']),
+ ('syslog_ident', None),
+ ('syslog_facility', 'LOG_USER'),
+@@ -318,9 +319,7 @@
+
+ # do the dirs - set the root if there is one (grumble)
+ for option in ['cachedir', 'logfile']:
+- path = self.configdata[option]
+- root = self.configdata['installroot']
+- rootedpath = root + path
++ rootedpath = self.getRootedPath(self.configdata[option])
+ self.configdata[option] = rootedpath
+ setattr(self, option, rootedpath)
+
+@@ -358,6 +357,23 @@
+ "All plugin search paths must be absolute")
+
+
++ def getRootedPath(self, path, enforce_default=False, defaults_to_host=False):
++ instroot = self.configdata['installroot']
++ if path.startswith('hostfs://'): res = path[9:]
++ elif path.startswith('chrootfs://'): res = instroot + '/' + path[11:]
++ else:
++ tmp = instroot + '/' +path
++
++ if enforce_default:
++ if defaults_to_host: res = path
++ else: res = tmp
++ else:
++ if os.path.exists(tmp): res = tmp
++ elif defaults_to_host: res = path
++ else: res = tmp
++
++ return res
++
+ def listConfigOptions(self):
+ """return list of options available for global config"""
+ return self.configdata.keys()
+@@ -749,8 +765,7 @@
+
+ reposdirs = []
+ for dir in conf.reposdir:
+- if os.path.exists(conf.installroot + '/' + dir):
+- reposdirs.append(conf.installroot + '/' + dir)
++ reposdirs.append(conf.getRootedPath(dir))
+
+ repofn = []
+ for reposdir in reposdirs:
+--- yum-2.3.4/cli.py.chroot
++++ yum-2.3.4/cli.py
+@@ -105,7 +105,7 @@
+ action="store_true", default=False,
+ help="run entirely from cache, don't update cache")
+ self.optparser.add_option("-c", "", dest="conffile", action="store",
+- default='/etc/yum.conf', help="config file location",
++ default=None, help="config file location",
+ metavar=' [config file]')
+ self.optparser.add_option("-R", "", dest="sleeptime", action="store",
+ type='int', default=None, help="maximum command wait time",
+@@ -158,9 +158,12 @@
+ try:
+ # If the conf file is inside the installroot - use that.
+ # otherwise look for it in the normal root
+- if opts.installroot:
+- if os.access(opts.installroot+'/'+opts.conffile, os.R_OK):
++ if opts.conffile==None:
++ opts.conffile = '/etc/yum.conf'
++ if opts.installroot and os.access(opts.installroot+'/'+opts.conffile, os.R_OK):
+ opts.conffile = opts.installroot+'/'+opts.conffile
++
++ if opts.installroot:
+ root=opts.installroot
+ else:
+ root = '/'
+--- yum-2.3.4/yummain.py.chroot
++++ yum-2.3.4/yummain.py
+@@ -60,7 +60,7 @@
+ def unlock():
+ try:
+ base.closeRpmDB()
+- base.doUnlock(YUM_PID_FILE)
++ base.doUnlock()
+ except Errors.LockError, e:
+ sys.exit(200)
+
+@@ -78,7 +78,7 @@
+ except Errors.YumBaseError, e:
+ exFatal(e)
+ try:
+- base.doLock(YUM_PID_FILE)
++ base.doLock()
+ except Errors.LockError, e:
+ base.errorlog(0,'%s' % e.msg)
+ sys.exit(200)
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2004-04-25.13
+scriptversion=2005-02-09.22
-# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
- exit 0
+ exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
- exit 0
+ exit $?
;;
esac
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
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
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"
+ # With Tru64 cc, shared objects can also be used to make a
+ # static library. This mecanism is used in libtool 1.4 series to
+ # handle both shared and static libraries in a single compilation.
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+ #
+ # With libtool 1.5 this exception was removed, and libtool now
+ # generates 2 separate objects for the 2 libraries. These two
+ # compilations output dependencies in in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
- tmpdepfile1="$dir$base.o.d"
- tmpdepfile2="$dir$base.d"
- tmpdepfile3="$dir$base.d"
+ tmpdepfile1=$dir$base.o.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
- if test -f "$tmpdepfile1"; then
- tmpdepfile="$tmpdepfile1"
- elif test -f "$tmpdepfile2"; then
- tmpdepfile="$tmpdepfile2"
- else
- tmpdepfile="$tmpdepfile3"
- fi
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ do
+ test -f "$tmpdepfile" && break
+ done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
--- /dev/null
+## $Id: Makefile.am,v 1.26 2005/07/03 22:40:43 ensc Exp $
+
+## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+
+confdir = $(sysconfdir)/vservers
+defaultsdir = $(pkglibdir)/defaults
+distribdir = $(pkglibdir)/distributions
+confdistribdir = $(confdir)/.distributions
+confdefaultsdir = $(confdir)/.defaults
+
+defaults_DATA = misc/debootstrap.uri \
+ misc/fstab \
+ misc/mtab \
+ misc/vprocunhide-files \
+ misc/vunify-exclude
+
+nobase_distrib_SCRIPTS = redhat/initpost \
+ redhat/initpre \
+ redhat/rc.sysinit
+
+nobase_distrib_DATA = defaults/devs \
+ defaults/apt.conf \
+ defaults/rpm/macros \
+ defaults/apt/apt.conf \
+ template/initpost template/initpre \
+ rh9/apt/rpmpriorities rh9/pkgs/01 rh9/pkgs/02 \
+ fc1/apt/rpmpriorities fc1/pkgs/01 fc1/pkgs/02 \
+ fc2/apt/rpmpriorities fc2/pkgs/01 fc2/pkgs/02 \
+ fc3/apt/rpmpriorities fc3/pkgs/01 fc3/pkgs/02 fc3/pkgs/03 \
+ fc3/yum/yum.conf $(wildcard fc3/yum.repos.d/fedora*.repo) \
+ $(wildcard fc3/rpmlist.d/*.lst) $(wildcard fc3/rpmlist.d/*.opt) \
+ fc4/apt/rpmpriorities fc4/pkgs/01 fc4/pkgs/02 fc4/pkgs/03 \
+ fc4/yum/yum.conf $(wildcard fc4/yum.repos.d/fedora*.repo) \
+ $(wildcard fc4/rpmlist.d/*.lst) $(wildcard fc4/rpmlist.d/*.opt) \
+ suse91/apt/rpmpriorities suse91/pkgs/01 suse91/pkgs/02 \
+ suse91/rpm/macros
+
+nobase_confdistrib_DATA = rh9/apt/sources.list \
+ fc1/apt/sources.list \
+ fc2/apt/sources.list \
+ fc3/apt/sources.list \
+ fc4/apt/sources.list \
+ suse91/apt/sources.list
+
+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT \
+ = $(nobase_distrib_SCRIPTS)
+
+EXTRA_DIST = $(nobase_distrib_DATA) \
+ $(nobase_distrib_SCRIPTS) \
+ $(nobase_confdistrib_DATA) \
+ $(defaults_DATA)
+
+redhat_style = rh9 fc1 fc2 fc3 fc4
+
+install-exec-hook: install-notify-xtra
+install-data-hook: install-data-xtras
+
+install-data-xtras:
+ l="$(redhat_style)"; for i in $$l; do \
+ ln -sf ../redhat/initpost $(DESTDIR)$(distribdir)/$$i/ && \
+ ln -sf ../redhat/initpre $(DESTDIR)$(distribdir)/$$i/; \
+ done
+ $(mkinstalldirs) $(DESTDIR)$(confdir) \
+ $(DESTDIR)$(confdistribdir)/.common/pubkeys \
+ $(DESTDIR)$(confdefaultsdir) \
+ $(DESTDIR)$(confdefaultsdir)/apps/vunify/hash \
+ $(DESTDIR)$(confdefaultsdir)/files
+
+
+include $(top_srcdir)/m4/install-notify.am
--- /dev/null
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/m4/install-notify.am
+subdir = distrib
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ensc_cflags.m4 \
+ $(top_srcdir)/m4/ensc_changelog.m4 \
+ $(top_srcdir)/m4/ensc_cxxcompiler.m4 \
+ $(top_srcdir)/m4/ensc_dietlibc.m4 \
+ $(top_srcdir)/m4/ensc_dietlibc_compat.m4 \
+ $(top_srcdir)/m4/ensc_e2fscheck.m4 \
+ $(top_srcdir)/m4/ensc_initrddir.m4 \
+ $(top_srcdir)/m4/ensc_kerneldir.m4 \
+ $(top_srcdir)/m4/ensc_pathprog.m4 \
+ $(top_srcdir)/m4/ensc_personality.m4 \
+ $(top_srcdir)/m4/ensc_release.m4 \
+ $(top_srcdir)/m4/ensc_syscall.m4 \
+ $(top_srcdir)/m4/ensc_syscallnr.m4 \
+ $(top_srcdir)/m4/ensc_uv_vrootdir.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(distribdir)" "$(DESTDIR)$(defaultsdir)" \
+ "$(DESTDIR)$(confdistribdir)" "$(DESTDIR)$(distribdir)"
+nobase_distribSCRIPT_INSTALL = $(install_sh_SCRIPT)
+SCRIPTS = $(nobase_distrib_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+defaultsDATA_INSTALL = $(INSTALL_DATA)
+nobase_confdistribDATA_INSTALL = $(install_sh_DATA)
+nobase_distribDATA_INSTALL = $(install_sh_DATA)
+DATA = $(defaults_DATA) $(nobase_confdistrib_DATA) \
+ $(nobase_distrib_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAT = @CAT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHOWN = @CHOWN@
+CMP = @CMP@
+CP = @CP@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVS2CL = @CVS2CL@
+CVS2CL_TAG = @CVS2CL_TAG@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIET = @DIET@
+DIETFLAGS = @DIETFLAGS@
+DIRNAME = @DIRNAME@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE = @ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@
+ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE = @ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@
+ENSC_ENABLE_INTERNAL_HEADERS_FALSE = @ENSC_ENABLE_INTERNAL_HEADERS_FALSE@
+ENSC_ENABLE_INTERNAL_HEADERS_TRUE = @ENSC_ENABLE_INTERNAL_HEADERS_TRUE@
+ENSC_HAVE_BEECRYPT_FALSE = @ENSC_HAVE_BEECRYPT_FALSE@
+ENSC_HAVE_BEECRYPT_TRUE = @ENSC_HAVE_BEECRYPT_TRUE@
+ENSC_HAVE_C99_COMPILER_FALSE = @ENSC_HAVE_C99_COMPILER_FALSE@
+ENSC_HAVE_C99_COMPILER_TRUE = @ENSC_HAVE_C99_COMPILER_TRUE@
+ENSC_HAVE_CXX_COMPILER_FALSE = @ENSC_HAVE_CXX_COMPILER_FALSE@
+ENSC_HAVE_CXX_COMPILER_TRUE = @ENSC_HAVE_CXX_COMPILER_TRUE@
+ENSC_PATHPROG_SED = @ENSC_PATHPROG_SED@
+ENSC_USE_DIETLIBC_FALSE = @ENSC_USE_DIETLIBC_FALSE@
+ENSC_USE_DIETLIBC_TRUE = @ENSC_USE_DIETLIBC_TRUE@
+ENSC_USE_EXPENSIVE_TESTS = @ENSC_USE_EXPENSIVE_TESTS@
+ENSC_USE_GLIBC_FALSE = @ENSC_USE_GLIBC_FALSE@
+ENSC_USE_GLIBC_TRUE = @ENSC_USE_GLIBC_TRUE@
+ENV = @ENV@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GPG_KEY = @GPG_KEY@
+GREP = @GREP@
+HAVE_CVS2CL_FALSE = @HAVE_CVS2CL_FALSE@
+HAVE_CVS2CL_TRUE = @HAVE_CVS2CL_TRUE@
+HAVE_RCS2LOG_FALSE = @HAVE_RCS2LOG_FALSE@
+HAVE_RCS2LOG_TRUE = @HAVE_RCS2LOG_TRUE@
+HAVE_XSLTPROC_FALSE = @HAVE_XSLTPROC_FALSE@
+HAVE_XSLTPROC_TRUE = @HAVE_XSLTPROC_TRUE@
+HAVE_XSLTP_FALSE = @HAVE_XSLTP_FALSE@
+HAVE_XSLTP_TRUE = @HAVE_XSLTP_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IP = @IP@
+IPTABLES = @IPTABLES@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIB_DEBUG_CPPFLAGS = @LIB_DEBUG_CPPFLAGS@
+LN = @LN@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MKDIR = @MKDIR@
+MKFIFO = @MKFIFO@
+MKTEMP = @MKTEMP@
+MODPROBE = @MODPROBE@
+MOUNT = @MOUNT@
+MV = @MV@
+NAMEIF = @NAMEIF@
+NICE = @NICE@
+NOHUP = @NOHUP@
+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@
+PS = @PS@
+RANLIB = @RANLIB@
+RCS2LOG = @RCS2LOG@
+RELEASE_CPPFLAGS = @RELEASE_CPPFLAGS@
+RM = @RM@
+RMDIR = @RMDIR@
+RMMOD = @RMMOD@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SH = @SH@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAC = @TAC@
+TAR = @TAR@
+TOUCH = @TOUCH@
+TTY = @TTY@
+UMOUNT = @UMOUNT@
+USE_DIETLIBC_COMPAT_FALSE = @USE_DIETLIBC_COMPAT_FALSE@
+USE_DIETLIBC_COMPAT_TRUE = @USE_DIETLIBC_COMPAT_TRUE@
+USE_DIETLIBC_FALSE = @USE_DIETLIBC_FALSE@
+USE_DIETLIBC_TRUE = @USE_DIETLIBC_TRUE@
+VCONFIG = @VCONFIG@
+VERSION = @VERSION@
+WC = @WC@
+WGET = @WGET@
+XSLTP = @XSLTP@
+XSLTPROC = @XSLTPROC@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+initrddir = @initrddir@
+install_sh = @install_sh@
+kernelincludedir = @kernelincludedir@
+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@
+vserverdir = @vserverdir@
+confdir = $(sysconfdir)/vservers
+defaultsdir = $(pkglibdir)/defaults
+distribdir = $(pkglibdir)/distributions
+confdistribdir = $(confdir)/.distributions
+confdefaultsdir = $(confdir)/.defaults
+defaults_DATA = misc/debootstrap.uri \
+ misc/fstab \
+ misc/mtab \
+ misc/vprocunhide-files \
+ misc/vunify-exclude
+
+nobase_distrib_SCRIPTS = redhat/initpost \
+ redhat/initpre \
+ redhat/rc.sysinit
+
+nobase_distrib_DATA = defaults/devs \
+ defaults/apt.conf \
+ defaults/rpm/macros \
+ defaults/apt/apt.conf \
+ template/initpost template/initpre \
+ rh9/apt/rpmpriorities rh9/pkgs/01 rh9/pkgs/02 \
+ fc1/apt/rpmpriorities fc1/pkgs/01 fc1/pkgs/02 \
+ fc2/apt/rpmpriorities fc2/pkgs/01 fc2/pkgs/02 \
+ fc3/apt/rpmpriorities fc3/pkgs/01 fc3/pkgs/02 fc3/pkgs/03 \
+ fc3/yum/yum.conf $(wildcard fc3/yum.repos.d/fedora*.repo) \
+ $(wildcard fc3/rpmlist.d/*.lst) $(wildcard fc3/rpmlist.d/*.opt) \
+ fc4/apt/rpmpriorities fc4/pkgs/01 fc4/pkgs/02 fc4/pkgs/03 \
+ fc4/yum/yum.conf $(wildcard fc4/yum.repos.d/fedora*.repo) \
+ $(wildcard fc4/rpmlist.d/*.lst) $(wildcard fc4/rpmlist.d/*.opt) \
+ suse91/apt/rpmpriorities suse91/pkgs/01 suse91/pkgs/02 \
+ suse91/rpm/macros
+
+nobase_confdistrib_DATA = rh9/apt/sources.list \
+ fc1/apt/sources.list \
+ fc2/apt/sources.list \
+ fc3/apt/sources.list \
+ fc4/apt/sources.list \
+ suse91/apt/sources.list
+
+EXTRA_DIST = $(nobase_distrib_DATA) \
+ $(nobase_distrib_SCRIPTS) \
+ $(nobase_confdistrib_DATA) \
+ $(defaults_DATA)
+
+redhat_style = rh9 fc1 fc2 fc3 fc4
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/m4/install-notify.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits distrib/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnits distrib/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-nobase_distribSCRIPTS: $(nobase_distrib_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ test -z "$(distribdir)" || $(mkdir_p) "$(DESTDIR)$(distribdir)"
+ @$(am__vpath_adj_setup) \
+ list='$(nobase_distrib_SCRIPTS)'; for p in $$list; do \
+ $(am__vpath_adj) p=$$f; \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f $$d$$p; then \
+ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+ f=`echo "$$p" | sed 's|[^/]*$$||'`"$$f"; \
+ echo " $(nobase_distribSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(distribdir)/$$f'"; \
+ $(nobase_distribSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(distribdir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-nobase_distribSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @$(am__vpath_adj_setup) \
+ list='$(nobase_distrib_SCRIPTS)'; for p in $$list; do \
+ $(am__vpath_adj) p=$$f; \
+ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+ f=`echo "$$p" | sed 's|[^/]*$$||'`"$$f"; \
+ echo " rm -f '$(DESTDIR)$(distribdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(distribdir)/$$f"; \
+ done
+
+installcheck-nobase_distribSCRIPTS: $(nobase_distrib_SCRIPTS)
+ bad=0; pid=$$$$; list="$(nobase_distrib_SCRIPTS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | sed 's,^.*/,,;$(transform)'`; \
+ f=`echo "$$p" | sed 's|[^/]*$$||'`"$$f"; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(distribdir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-defaultsDATA: $(defaults_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(defaultsdir)" || $(mkdir_p) "$(DESTDIR)$(defaultsdir)"
+ @list='$(defaults_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(defaultsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(defaultsdir)/$$f'"; \
+ $(defaultsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(defaultsdir)/$$f"; \
+ done
+
+uninstall-defaultsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(defaults_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(defaultsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(defaultsdir)/$$f"; \
+ done
+install-nobase_confdistribDATA: $(nobase_confdistrib_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(confdistribdir)" || $(mkdir_p) "$(DESTDIR)$(confdistribdir)"
+ @$(am__vpath_adj_setup) \
+ list='$(nobase_confdistrib_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ $(am__vpath_adj) \
+ echo " $(nobase_confdistribDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(confdistribdir)/$$f'"; \
+ $(nobase_confdistribDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(confdistribdir)/$$f"; \
+ done
+
+uninstall-nobase_confdistribDATA:
+ @$(NORMAL_UNINSTALL)
+ @$(am__vpath_adj_setup) \
+ list='$(nobase_confdistrib_DATA)'; for p in $$list; do \
+ $(am__vpath_adj) \
+ echo " rm -f '$(DESTDIR)$(confdistribdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(confdistribdir)/$$f"; \
+ done
+install-nobase_distribDATA: $(nobase_distrib_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(distribdir)" || $(mkdir_p) "$(DESTDIR)$(distribdir)"
+ @$(am__vpath_adj_setup) \
+ list='$(nobase_distrib_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ $(am__vpath_adj) \
+ echo " $(nobase_distribDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(distribdir)/$$f'"; \
+ $(nobase_distribDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(distribdir)/$$f"; \
+ done
+
+uninstall-nobase_distribDATA:
+ @$(NORMAL_UNINSTALL)
+ @$(am__vpath_adj_setup) \
+ list='$(nobase_distrib_DATA)'; for p in $$list; do \
+ $(am__vpath_adj) \
+ echo " rm -f '$(DESTDIR)$(distribdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(distribdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../m4 $(distdir)/defaults $(distdir)/defaults/apt $(distdir)/defaults/rpm $(distdir)/fc1/apt $(distdir)/fc1/pkgs $(distdir)/fc2/apt $(distdir)/fc2/pkgs $(distdir)/fc3/apt $(distdir)/fc3/pkgs $(distdir)/fc3/rpmlist.d $(distdir)/fc3/yum $(distdir)/fc3/yum.repos.d $(distdir)/fc4/apt $(distdir)/fc4/pkgs $(distdir)/fc4/rpmlist.d $(distdir)/fc4/yum $(distdir)/fc4/yum.repos.d $(distdir)/misc $(distdir)/redhat $(distdir)/rh9/apt $(distdir)/rh9/pkgs $(distdir)/suse91/apt $(distdir)/suse91/pkgs $(distdir)/suse91/rpm $(distdir)/template
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(distribdir)" "$(DESTDIR)$(defaultsdir)" "$(DESTDIR)$(confdistribdir)" "$(DESTDIR)$(distribdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-defaultsDATA install-nobase_confdistribDATA \
+ install-nobase_distribDATA install-nobase_distribSCRIPTS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+
+install-exec-am:
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am: installcheck-nobase_distribSCRIPTS
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-defaultsDATA uninstall-info-am \
+ uninstall-nobase_confdistribDATA uninstall-nobase_distribDATA \
+ uninstall-nobase_distribSCRIPTS
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-hook \
+ install-defaultsDATA install-exec install-exec-am \
+ install-exec-hook install-info install-info-am install-man \
+ install-nobase_confdistribDATA install-nobase_distribDATA \
+ install-nobase_distribSCRIPTS install-strip installcheck \
+ installcheck-am installcheck-nobase_distribSCRIPTS installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-defaultsDATA \
+ uninstall-info-am uninstall-nobase_confdistribDATA \
+ uninstall-nobase_distribDATA uninstall-nobase_distribSCRIPTS
+
+
+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT \
+ = $(nobase_distrib_SCRIPTS)
+
+install-exec-hook: install-notify-xtra
+install-data-hook: install-data-xtras
+
+install-data-xtras:
+ l="$(redhat_style)"; for i in $$l; do \
+ ln -sf ../redhat/initpost $(DESTDIR)$(distribdir)/$$i/ && \
+ ln -sf ../redhat/initpre $(DESTDIR)$(distribdir)/$$i/; \
+ done
+ $(mkinstalldirs) $(DESTDIR)$(confdir) \
+ $(DESTDIR)$(confdistribdir)/.common/pubkeys \
+ $(DESTDIR)$(confdefaultsdir) \
+ $(DESTDIR)$(confdefaultsdir)/apps/vunify/hash \
+ $(DESTDIR)$(confdefaultsdir)/files
+
+install-exec-hook install-data-hook: install-notify-xtra
+
+install-notify-xtra:
+ @echo
+ @echo
+ @echo '***************************'
+ @echo '*'
+ @echo '* NOTE: a plain "make install" installs only the files under $$(prefix)'
+ @echo '* which might be insufficient. To complete the installation,'
+ @echo '* "make install-distribution" should be executed. See README,'
+ @echo '* "Notes for distributors" for details.'
+ @echo '*'
+ @echo '***************************'
+ @echo
+ @echo
+
+.PHONY: install-notify-xtra
+# 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:
--- /dev/null
+RPM {
+ Ignore { "gpg-pubkey"; };
+}
--- /dev/null
+// Do not remove 'autogenerated' tags and keep them on an own line
+// which can be commented out
+
+Dir {
+ Etc "@APTETCDIR@"; // @autogenerated@: APTETCDIR
+}
--- /dev/null
+null c 1 3 666
+zero c 1 5 666
+full c 1 7 666
+random c 1 8 644
+urandom c 1 9 644
+tty c 5 0 666
+ptmx c 5 2 666
--- /dev/null
+# Because of https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=52725
+# you have to use at least one language beside 'C'
+%_install_langs C:de:en:es:fr
+%_netsharedpath /dev:/etc/rc.d/init.d/halt:/sbin/new-kernel-pkg:/usr/bin/rhgb-client
--- /dev/null
+Essential:
+ basesystem
+ coreutils
+ filesystem
+ glibc
+ setup
+ fedora-release
--- /dev/null
+# rpm http://ftp.ultra.csn.tu-chemnitz.de/pub/mirror/fedora/core/.apt 1/i386 os patches updates
+# rpm-src http://ftp.ultra.csn.tu-chemnitz.de/pub/mirror/fedora/core/.apt 1/i386 os patches updates
+
+# rpm ftp://ftp.ussg.iu.edu/pub/linux/fedora/fedora/fedora 1/i386 os updates
+# rpm ftp://ftp.tu-chemnitz.de/pub/linux/fedora/fedora 1/i386 os updates
+# rpm http://mirrors.usc.edu/pub/linux/fedora/fedora 1/i386 os updates
+# rpm http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/fedora/fedora 1/i386 os updates
+# rpm http://download.fedora.us/fedora/fedora 1/i386 os updates
--- /dev/null
+--reinstall
+
+filesystem
--- /dev/null
+Essential:
+ basesystem
+ coreutils
+ filesystem
+ glibc
+ setup
+ fedora-release
--- /dev/null
+# rpm http://ftp.ultra.csn.tu-chemnitz.de/pub/mirror/fedora/core/.apt 2/i386 os patches updates
+# rpm-src http://ftp.ultra.csn.tu-chemnitz.de/pub/mirror/fedora/core/.apt 2/i386 os patches updates
+
+# rpm ftp://ftp.ussg.iu.edu/pub/linux/fedora/fedora/fedora 2/i386 os updates
+# rpm ftp://ftp.tu-chemnitz.de/pub/linux/fedora/fedora 2/i386 os updates
+# rpm http://mirrors.usc.edu/pub/linux/fedora/fedora/fedora 2/i386 os updates
+# rpm http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/fedora/fedora 2/i386 os updates
+# rpm http://download.fedora.us/fedora/fedora 2/i386 os updates
--- /dev/null
+--reinstall
+
+filesystem
--- /dev/null
+Essential:
+ basesystem
+ coreutils
+ filesystem
+ glibc
+ setup
+ fedora-release
--- /dev/null
+# rpm http://ftp.ultra.csn.tu-chemnitz.de/pub/mirror/fedora/core/.apt 3/i386 os patches updates
+
+# rpm ftp://ftp.ussg.iu.edu/pub/linux/fedora/fedora/fedora 3/i386 os updates
+# rpm ftp://ftp.tu-chemnitz.de/pub/linux/fedora/fedora 3/i386 os updates
+# rpm http://mirrors.usc.edu/pub/linux/fedora/fedora/fedora 3/i386 os updates
+# rpm http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/fedora/fedora 3/i386 os updates
+# rpm http://download.fedora.us/fedora/fedora 3/i386 os updates
--- /dev/null
+--reinstall
+
+filesystem
--- /dev/null
+coreutils
+setup
--- /dev/null
+basesystem-*.rpm
+filesystem-*.rpm
+glibc-common-*.rpm
+glibc-[0-9]*.rpm
+libgcc-[0-9]*.rpm
+setup-*.rpm
+tzdata-*.rpm
--- /dev/null
+[development]
+name=Fedora Core 3 - Development Tree
+#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/
+mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-rawhide
+enabled=0
--- /dev/null
+[updates-testing]
+name=Fedora Core 3 - $basearch - Test Updates
+#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/3/$basearch/
+mirrorlist=http://fedora.redhat.com/download/mirrors/updates-testing-fc3
+enabled=0
+gpgcheck=1
--- /dev/null
+[updates-released]
+name=Fedora Core 3 - $basearch - Released Updates
+#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/3/$basearch/
+mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc3
+enabled=1
+gpgcheck=1
--- /dev/null
+[base]
+name=Fedora Core 3 - $basearch - Base
+#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/3/$basearch/os/
+mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-3
+enabled=1
+gpgcheck=1
--- /dev/null
+[main]
+cachedir=@YUMCACHEDIR@
+reposdir=@YUMETCDIR@/yum.repos.d
+debuglevel=1
+logfile=@YUMLOGDIR@/log
+lockfile=@YUMLOCKDIR@/yum.pid
+pkgpolicy=newest
+distroverpkg=fedora-release
--- /dev/null
+Essential:
+ basesystem
+ coreutils
+ filesystem
+ glibc
+ setup
+ fedora-release
--- /dev/null
+# rpm http://ftp.ultra.csn.tu-chemnitz.de/pub/mirror/fedora/core/.apt 3/i386 os patches updates
+
+# rpm ftp://ftp.ussg.iu.edu/pub/linux/fedora/fedora/fedora 3/i386 os updates
+# rpm ftp://ftp.tu-chemnitz.de/pub/linux/fedora/fedora 3/i386 os updates
+# rpm http://mirrors.usc.edu/pub/linux/fedora/fedora/fedora 3/i386 os updates
+# rpm http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/fedora/fedora 3/i386 os updates
+# rpm http://download.fedora.us/fedora/fedora 3/i386 os updates
--- /dev/null
+--reinstall
+
+filesystem
--- /dev/null
+coreutils
+setup
--- /dev/null
+basesystem-*.rpm
+filesystem-*.rpm
+glibc-common-*.rpm
+glibc-[0-9]*.rpm
+libgcc-[0-9]*.rpm
+setup-*.rpm
+tzdata-*.rpm
--- /dev/null
+[development]
+name=Fedora Core 4 - Development Tree
+#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/
+mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-rawhide
+enabled=0
--- /dev/null
+[updates-testing]
+name=Fedora Core 4 - $basearch - Test Updates
+#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/4/$basearch/
+mirrorlist=http://fedora.redhat.com/download/mirrors/updates-testing-fc4
+enabled=0
+gpgcheck=1
--- /dev/null
+[updates-released]
+name=Fedora Core 4 - $basearch - Released Updates
+#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/4/$basearch/
+mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc4
+enabled=1
+gpgcheck=1
--- /dev/null
+[base]
+name=Fedora Core 4 - $basearch - Base
+#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/4/$basearch/os/
+mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-4
+enabled=1
+gpgcheck=1
--- /dev/null
+[main]
+cachedir=@YUMCACHEDIR@
+reposdir=@YUMETCDIR@/yum.repos.d
+debuglevel=1
+logfile=@YUMLOGDIR@/log
+lockfile=@YUMLOCKDIR@/yum.pid
+pkgpolicy=newest
+distroverpkg=fedora-release
--- /dev/null
+http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.3.1.4_all.deb
--- /dev/null
+none /proc proc defaults 0 0
+none /tmp tmpfs size=16m,mode=1777 0 0
+none /dev/pts devpts gid=5,mode=620 0 0
--- /dev/null
+/dev/hdv1 / ufs defaults 0 0
--- /dev/null
+/proc/net/
+-/proc/net/rpc/
+/proc/sys/
+-/proc/sys/debug/
+-/proc/sys/dev/
+/proc/sysvipc/
+/proc/tty/
+/proc/cmdline
+/proc/cpuinfo
+/proc/crypto
+/proc/devices
+/proc/execdomains
+/proc/filesystems
+/proc/interrupts
+/proc/iomem
+/proc/ioports
+/proc/kcore
+/proc/kmsg
+/proc/ksyms
+/proc/loadavg
+/proc/locks
+/proc/meminfo
+/proc/misc
+/proc/modules
+/proc/pci
+/proc/slabinfo
+/proc/stat
+/proc/swaps
+/proc/uptime
+/proc/version
--- /dev/null
+/.rpmdb
+/dev
+~/etc/shadow
+~/etc/passwd
+~/etc/group
++/etc/termcap
++/etc/gconf
++/etc/gconf/schemas
+/etc/gconf/*
+/etc/*
+/home
+/proc
+/mnt
++/root/.ssh
+~/root/.ssh/id*
+-/root/.ssh/*
++/root/.gnupg
+~/root/.gnupg/secring*
+-/root/.gnupg/*
+-/root/*
+/selinux
+/sys
+~/tmp/*
+/tmp
+~/var/tmp/*
+/var
--- /dev/null
+#! /bin/bash
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+## HACK: this script is full of races...
+
+vdir=$1/vdir
+. "$2"
+
+function relink
+{
+ test ! -e "$2" -o -L "$2" || mv -f "$2"{,.orig}
+ ln -sf "$1" "$2"
+}
+
+## Usage: subst <file> <regexp>
+function subst
+{
+ tmp=$(mktemp /tmp/initpost-subst.XXXXXX)
+
+ case "$1" in
+ (/*|./*) cat "$1";;
+ (*) $_CHROOT_SH cat "$1";;
+ esac | sed -e "$2" >$tmp
+ cmp -s $tmp "$1" || $_CHROOT_SH truncate "$1" <$tmp
+
+ rm -f $tmp
+}
+
+pushd "$vdir"/etc/init.d &>/dev/null ||
+ pushd "$vdir"/etc/rc.d/init.d &>/dev/null || exit 1
+
+ for i in *; do
+ test -e "$i" || continue
+ case "$i" in
+ functions|halt|killall|single) ;;
+ syslog) ;;
+ *)
+ $_VSERVER ----insecure "$1" chkconfig "$i" off
+ ;;
+ esac
+ done
+
+ relink /bin/true halt
+popd >/dev/null
+
+pushd "$vdir"/sbin &>/dev/null
+ relink /bin/true new-kernel-pkg
+popd >/dev/null
+
+pushd "$vdir"/usr/bin &>/dev/null
+ relink /bin/true rhgb-client
+popd >/dev/null
+
+pushd "$vdir" &>/dev/null
+ echo 'NETWORKING=yes' | $_CHROOT_SH append /etc/sysconfig/network
+popd >/dev/null
+
+pushd "$vdir" &>/dev/null
+ : | $_CHROOT_SH truncate /etc/sysctl.conf
+ echo "none / none defaults" | $_CHROOT_SH truncate /etc/fstab
+ cat "$__DISTRIBDIR"/redhat/rc.sysinit | $_CHROOT_SH truncate /etc/rc.d/rc.sysinit.vserver
+ # TODO: remove race/symlink-attack
+ chmod +x etc/rc.d/rc.sysinit.vserver
+ subst etc/inittab 's!^\([^#].*:respawn:.* tty\)!#\1!;
+ s!si::sysinit:/etc/rc.d/rc.sysinit!si::sysinit:/etc/rc.d/rc.sysinit.vserver!'
+popd >/dev/null
--- /dev/null
+#! /bin/bash
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+vdir=$1/vdir
+. "$2"
+
+## Fix/workaround the misclassification of %_netsharedpath's parent directories
+mkdir -p "$vdir"/{etc/rc.d/init.d,/sbin,/usr/bin}
+
+## Workaround broken kernel %post scripts
+ln -s ../bin/true "$vdir"/sbin/new-kernel-pkg
--- /dev/null
+#! /bin/sh
+
+rm -f /var/lock/subsys/* /var/run/* /var/run/*/* 2>/dev/null
+true
--- /dev/null
+Essential:
+ basesystem
+ coreutils
+ filesystem
+ glibc
+ setup
+ redhat-release
--- /dev/null
+# rpm http://ftp.ultra.csn.tu-chemnitz.de/pub/mirror/RedHat/.apt redhat/9 os errata
+# rpm-src http://ftp.ultra.csn.tu-chemnitz.de/pub/mirror/RedHat/.apt redhat/9 os errata
+
+# rpm ftp://ftp.tu-chemnitz.de/pub/linux/fedora/redhat 9/i386 os updates
+# rpm ftp://ftp.ussg.iu.edu/pub/linux/fedora/fedora/redhat 9/i386 os updates
+# rpm http://mirrors.usc.edu/pub/linux/fedora/redhat 9/i386 os updates
+# rpm http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/fedora/redhat 9/i386 os updates
--- /dev/null
+--reinstall
+
+filesystem
--- /dev/null
+Essential:
+ aaa_base
--- /dev/null
+# rpm http://ftp.tu-chemnitz.de/pub/linux/suse/apt/SuSE 9.1-i386 base
--- /dev/null
+--reinstall
+filesystem
+pam
--- /dev/null
+# Because of https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=52725
+# you have to use at least one language beside 'C'
+%_install_langs C:de:en:es:fr
+%_netsharedpath /dev
--- /dev/null
+#! /bin/bash
+
+# Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+## Called as: initpost <cfgdir> <path of util-vserver-vars>
+
+. "$2"
+
+true
--- /dev/null
+#! /bin/bash
+
+# Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+## Called as: initpre <cfgdir> <path of util-vserver-vars>
+
+. "$2"
+
+true
-## $Id: Makefile-files,v 1.1.4.1 2004/03/18 18:29:22 ensc Exp $ -*- makefile -*-
+## $Id: Makefile-files,v 1.12 2005/03/19 01:59:47 ensc Exp $ -*- makefile -*-
## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
-doc_DAT = doc/intro.txt
+doc_old_doc = doc/intro.txt
+
+XSLT_AMFLAGS = --stringparam confdir '$(sysconfdir)/vservers'
+XSLTP_AMFLAGS = -param confdir '$(sysconfdir)/vservers'
+
+doc_gen_DOCS = doc/configuration.html \
+ doc/compatibility.html
+
+doc_configuration_SRCS = doc/configuration.xml \
+ doc/configuration.xsd \
+ doc/configuration.dtd \
+ doc/configuration.css \
+ doc/configuration-xhtml.xsl
+
+doc_compatibility_SRCS = doc/compatibility.xml \
+ doc/compatibility.dtd \
+ doc/compatibility-xhtml.xsl
+
+EXTRA_DIST += $(doc_compatibility_SRCS) \
+ $(doc_configuration_SRCS) \
+ $(doc_old_doc) \
+ $(doc_gen_DOCS)
+
+CLEANFILES += doc/*.raw.html* doc/*.html.tmp
+
+doc/configuration.html: STYLESHEET=$(srcdir)/doc/configuration-xhtml.xsl
+doc/configuration.html: $(srcdir)/doc/configuration-xhtml.xsl
+
+doc/compatibility.html: STYLESHEET=$(srcdir)/doc/compatibility-xhtml.xsl
+doc/compatibility.html: $(srcdir)/doc/compatibility-xhtml.xsl
+
+doc: doc_doc
+doc_doc: $(doc_gen_DOCS)
+
+if HAVE_XSLTP
+CLEANFILES += $(doc_gen_DOCS)
+%.html: %.xml $(STYLESHEET)
+ @-rm -f '$@.tmp' '$@'
+ LANG=C $(XSLTP) $(XSLTP_AMFLAGS) -in '$<' -xsl $(STYLESHEET) -out '$@.tmp'
+ @mv -f '$@.tmp' '$@'
+else !HAVE_XSLTP
+if HAVE_XSLTPROC
+CLEANFILES += $(doc_gen_DOCS)
+%.html: %.xml $(STYLESHEET)
+ @-rm -f '$@.tmp' '$@'
+ $(XSLTPROC) $(XSLT_FLAGS) $(XSLT_AMFLAGS) -o '$@.tmp' "$(STYLESHEET)" "$<"
+ @mv -f '$@.tmp' '$@'
+endif HAVE_XSLTPROC
+endif !HAVE_XSLTP
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml"
+ version="1.0">
+
+ <xsl:output method="xml"
+ indent="yes"
+ doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <title><xsl:apply-templates select="compatibility/title"/></title>
+ <link rel="stylesheet" type="text/css" href="compatibility.css" />
+ </head>
+ <body>
+ <h1><xsl:apply-templates select="compatibility/title"/></h1>
+ <xsl:apply-templates select="compatibility/program">
+ <xsl:sort select="compatibility/program/location"/>
+ <xsl:sort select="compatibility/program[name]"/>
+ </xsl:apply-templates>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template name="compat">
+ <xsl:variable name="name" select="name()"/>
+ <xsl:variable name="descr">
+ <xsl:choose>
+ <xsl:when test="$name = 'clicompat'">
+ <xsl:text>Command line interface compatibility</xsl:text>
+ </xsl:when>
+ <xsl:when test="$name = 'funccompat'">
+ <xsl:text>Functional compatibility</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <div class="{$name}">
+ <xsl:value-of select="$descr"/>: <xsl:value-of select="@status"/>
+ <xsl:if test="text">
+ <div class="text">
+ <xsl:apply-templates select="text"/>
+ </div>
+ </xsl:if>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="clicompat|funccompat">
+ <xsl:call-template name="compat" />
+ </xsl:template>
+
+ <xsl:template match="program">
+ <div class="program">
+ <div class="name">
+ <xsl:value-of select="location"/>/<xsl:value-of select="@name"/>
+ <xsl:if test="@status">
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="@status"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </div>
+ <xsl:apply-templates select="clicompat|funccompat"/>
+ </div>
+ </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+<!ELEMENT compatibility (title,program*)>
+
+<!ELEMENT program (location,clicompat?,funccompat?)>
+<!ATTLIST program
+ name CDATA #REQUIRED
+ status (removed|rewritten|renamed|broken|new) #IMPLIED>
+
+<!ELEMENT location (#PCDATA)>
+
+<!ELEMENT clicompat (text?)>
+<!ATTLIST clicompat
+ status (yes|no|limited) #REQUIRED>
+
+<!ELEMENT funccompat (text?)>
+<!ATTLIST funccompat
+ status (yes|no|limited) #REQUIRED>
+
+<!ELEMENT text ANY>
+<!ELEMENT pref (#PCDATA)>
+
+<!ELEMENT title (#PCDATA)>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>compatibility of util-vserver alpha branch</title>
+ <link rel="stylesheet" type="text/css" href="compatibility.css" />
+ </head>
+ <body>
+ <h1>compatibility of util-vserver alpha branch</h1>
+ <div class="program">
+ <div class="name">LIBDIR/capchroot</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/distrib-info (removed)</div>
+ <div class="clicompat">Command line interface compatibility: no<div class="text">replaced by vpkg</div></div>
+ <div class="funccompat">Functional compatibility: no</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/fakerunlevel</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/filetime</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/ifspec</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/install-* (removed)</div>
+ <div class="clicompat">Command line interface compatibility: no<div class="text">Replaced by more general build-methods which are building vservers from apt-repositories.</div></div>
+ <div class="funccompat">Functional compatibility: no</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/listdevip</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/parserpmdump</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/readlink</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/rootshell</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/sample.sh (removed)</div>
+ <div class="clicompat">Command line interface compatibility: no<div class="text">incompatible with recent configuration style.</div></div>
+ <div class="funccompat">Functional compatibility: no</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/save_s_context (removed)</div>
+ <div class="clicompat">Command line interface compatibility: no<div class="text">incompatible with recent configuration style; partially replaced by save_ctxinfo.</div></div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/setattr</div>
+ <div class="clicompat">Command line interface compatibility: no<div class="text">Has been moved into SBINDIR. Lots of new option were added to support new functionality.</div></div>
+ <div class="funccompat">Functional compatibility: no<div class="text">It is possible to recurse directories and it supports
+ all vserver related attributes (admin, hide, watch, barrier,
+ iunlink).</div></div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/showattr</div>
+ <div class="clicompat">Command line interface compatibility: no<div class="text">Has been moved into SBINDIR. Lots of new option were added to support new functionality.</div></div>
+ <div class="funccompat">Functional compatibility: no<div class="text">It is possible to recurse directories and it supports all
+ vserver related attributes (admin, hide, watch, barrier,
+ iunlink). The output has been changed: the flags are now in the
+ first column and they are displayed in a symbolic manner.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/showperm</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vbuild (broken)</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: no<div class="text">will be removed/rewritten soon.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vcheck (broken)</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: no<div class="text">will be removed/rewritten soon.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vprofile (removed)</div>
+ <div class="clicompat">Command line interface compatibility: no<div class="text">incompatible with recent configuration style.</div></div>
+ <div class="funccompat">Functional compatibility: no</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vreboot</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vserverkillall (removed)</div>
+ <div class="clicompat">Command line interface compatibility: no<div class="text">vkill contains the needed functionality
+ already.</div></div>
+ <div class="funccompat">Functional compatibility: no</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vservers.grabinfo.sh</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vunify (rewritten)</div>
+ <div class="clicompat">Command line interface compatibility: no<div class="text">CLI has been changed to reflect new functionality. Now, it
+ accepts either a single vserver, or (directory,excludelist)
+ pairs as arguments. The old "refserver vserver1 vserver2 ..."
+ syntax is gone.</div></div>
+ <div class="funccompat">Functional compatibility: limited<div class="text">vunify allows to unify generic paths, or vservers with
+ preconfigured reference vservers. The filelist is not taken from
+ packagemanagement anymore, but every file which has a counterpart
+ in the reference-path(s)/vserver(s) and is not in an excludelist
+ will be unified. A part of the excludelist will be generated
+ dynamically with information from the packagemanagement about
+ configfiles.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/chbind</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/chcontext</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">Return code in '--disconnect' case is now more correctly.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/rebootmgr</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/reducecap</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vdu</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vfiles (broken)</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: no<div class="text">will be removed/rewritten soon.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vkill (rewritten)</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: limited<div class="text">It uses native kernel interface now and is secure (in
+ opposite to the old perl implementation).</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vps (rewritten)</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: limited<div class="text">It has been rewritten into C and output might have been changed slightly.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vpstree</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vrpm (rewritten)</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: limited<div class="text">It has been rewritten into a secure, native C
+ implementation. Unpacking of files happens in host-ctx, but
+ scriptlets are executed in vserver context. The rpm database
+ will/can be hold outside of the vserver and there will never be
+ access on it from the inside (neither direct, nor by
+ scriptlets). This is implemented through an LD_PRELOAD wrapper
+ which provides own, secure NSS functions too.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vserver (rewritten)</div>
+ <div class="clicompat">Command line interface compatibility: limited<div class="text">It accepts all the old arguments, but adds lots of new
+ ones. This program is intended as the basic vserver management
+ tool; e.g. to unify a vserver you can execute "vserver XX unify",
+ to install a package "vserver XX install PKG" and so on.</div></div>
+ <div class="funccompat">Functional compatibility: limited<div class="text">This tool is rewritten to completely and is now resistant
+ against symlink attacks. It uses the new configuration scheme
+ and the iproute2 tools instead of ifconfig for network
+ setup. Old-style vserver can be still started through this tool,
+ but modifications/building of them is not possible
+ anymore.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vserver-copy (broken)</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: no<div class="text">will be removed/rewritten soon.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vserver-stat (rewritten)</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">It has been rewritten to use the new libvserver API. The
+ output has been changed slightly.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vtop</div>
+ <div class="clicompat">Command line interface compatibility: yes</div>
+ <div class="funccompat">Functional compatibility: yes</div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/exec-cd (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">changes into a directory in a secure manner and executes a
+ program there.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/rpm-fake-resolver (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">NSS resolver; used by vrpm and executed in
+ vserver-ctx.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/rpm-fake.so (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">LD_PRELOAD wrapper; used by vrpm.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vapt-get-worker (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">Helper script for vapt-get.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vpkg (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">Generic interface for package management; it allows
+ to install, remove or query packages in a distribution
+ independent manner. It can be seen as the successor of
+ distrib-info.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vrpm-preload (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">Helper script for vrpm.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vrpm-worker (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">Helper script for vrpm.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">LIBDIR/vserver-build (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">Builds a vserver from scratch and allows to select the
+ used method. It will be called by the "vserver XY build"
+ command.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vapt-get (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">Wrapper for apt-get; currently only the apt-rpm port
+ is supported. Metadata will/can be stored outside of the
+ vserver. This program call vrpm.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/chxid (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">This program assigns the associated context of an inode. It
+ replaces parts of the vserver-quota tools.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/lsxid (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">This program shows the associated context of an inode. It
+ replaces parts of the vserver-quota tools.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/new-namespace (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">This program starts a program within a new namespace which is
+ created with CLONE_NEWNS. It is used e.g. by vrpm to
+ map the rpm-database into the vserver in a secure manner.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vlimit (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">This is an interface to the rlimit syscalls which allow to
+ limit resource-usage of contexts.</div></div>
+ </div>
+ <div class="program">
+ <div class="name">SBINDIR/vrsetup (new)</div>
+ <div class="funccompat">Functional compatibility: yes<div class="text">This program allows to setup vroot devices. It replaces
+ vrsetup from the vr-tools</div></div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE compatibility SYSTEM "compatibility.dtd" []>
+
+<compatibility>
+ <title>compatibility of util-vserver alpha branch</title>
+
+ <program name="capchroot">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="distrib-info" status="removed">
+ <location>LIBDIR</location>
+ <clicompat status="no">
+ <text>replaced by <pref>vpkg</pref></text>
+ </clicompat>
+ <funccompat status="no"/>
+ </program>
+
+ <program name="fakerunlevel">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="filetime">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="ifspec">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="install-*" status="removed">
+ <location>LIBDIR</location>
+ <clicompat status="no">
+ <text>Replaced by more general build-methods which are building vservers from apt-repositories.</text>
+ </clicompat>
+ <funccompat status="no"/>
+ </program>
+
+ <program name="listdevip">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="parserpmdump">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="readlink">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="rootshell">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="sample.sh" status="removed">
+ <location>LIBDIR</location>
+ <clicompat status="no">
+ <text>incompatible with recent configuration style.</text>
+ </clicompat>
+ <funccompat status="no"/>
+ </program>
+
+ <program name="save_s_context" status="removed">
+ <location>LIBDIR</location>
+ <clicompat status="no">
+ <text>incompatible with recent configuration style; partially replaced by <pref>save_ctxinfo</pref>.</text>
+ </clicompat>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="setattr">
+ <location>LIBDIR</location>
+ <clicompat status="no">
+ <text>Has been moved into SBINDIR. Lots of new option were added to support new functionality.</text>
+ </clicompat>
+ <funccompat status="no">
+ <text>It is possible to recurse directories and it supports
+ all vserver related attributes (admin, hide, watch, barrier,
+ iunlink).</text>
+ </funccompat>
+ </program>
+
+ <program name="showattr">
+ <location>LIBDIR</location>
+ <clicompat status="no">
+ <text>Has been moved into SBINDIR. Lots of new option were added to support new functionality.</text>
+ </clicompat>
+ <funccompat status="no">
+ <text>It is possible to recurse directories and it supports all
+ vserver related attributes (admin, hide, watch, barrier,
+ iunlink). The output has been changed: the flags are now in the
+ first column and they are displayed in a symbolic manner.</text>
+ </funccompat>
+ </program>
+
+ <program name="showperm">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="vbuild" status="broken">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="no">
+ <text>will be removed/rewritten soon.</text>
+ </funccompat>
+ </program>
+
+ <program name="vcheck" status="broken">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="no">
+ <text>will be removed/rewritten soon.</text>
+ </funccompat>
+ </program>
+
+ <program name="vprofile" status="removed">
+ <location>LIBDIR</location>
+ <clicompat status="no">
+ <text>incompatible with recent configuration style.</text>
+ </clicompat>
+ <funccompat status="no"/>
+ </program>
+
+ <program name="vreboot">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="vserverkillall" status="removed">
+ <location>LIBDIR</location>
+ <clicompat status="no">
+ <text><pref>vkill</pref> contains the needed functionality
+ already.</text>
+ </clicompat>
+ <funccompat status="no"/>
+ </program>
+
+ <program name="vservers.grabinfo.sh">
+ <location>LIBDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="vunify" status="rewritten">
+ <location>LIBDIR</location>
+ <clicompat status="no">
+ <text>CLI has been changed to reflect new functionality. Now, it
+ accepts either a single vserver, or (directory,excludelist)
+ pairs as arguments. The old "refserver vserver1 vserver2 ..."
+ syntax is gone.</text>
+ </clicompat>
+ <funccompat status="limited">
+ <text>vunify allows to unify generic paths, or vservers with
+ preconfigured reference vservers. The filelist is not taken from
+ packagemanagement anymore, but every file which has a counterpart
+ in the reference-path(s)/vserver(s) and is not in an excludelist
+ will be unified. A part of the excludelist will be generated
+ dynamically with information from the packagemanagement about
+ configfiles.</text>
+ </funccompat>
+ </program>
+
+ <program name="chbind">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="chcontext">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes">
+ <text>Return code in '--disconnect' case is now more correctly.</text>
+ </funccompat>
+ </program>
+
+ <program name="rebootmgr">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="reducecap">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="vdu">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="vfiles" status="broken">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="no">
+ <text>will be removed/rewritten soon.</text>
+ </funccompat>
+ </program>
+
+ <program name="vkill" status="rewritten">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="limited">
+ <text>It uses native kernel interface now and is secure (in
+ opposite to the old perl implementation).</text>
+ </funccompat>
+ </program>
+
+ <program name="vps" status="rewritten">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="limited">
+ <text>It has been rewritten into C and output might have been changed slightly.</text>
+ </funccompat>
+ </program>
+
+ <program name="vpstree">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="vrpm" status="rewritten">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="limited">
+ <text>It has been rewritten into a secure, native C
+ implementation. Unpacking of files happens in host-ctx, but
+ scriptlets are executed in vserver context. The rpm database
+ will/can be hold outside of the vserver and there will never be
+ access on it from the inside (neither direct, nor by
+ scriptlets). This is implemented through an LD_PRELOAD wrapper
+ which provides own, secure NSS functions too.</text>
+ </funccompat>
+ </program>
+
+ <program name="vserver" status="rewritten">
+ <location>SBINDIR</location>
+ <clicompat status="limited">
+ <text>It accepts all the old arguments, but adds lots of new
+ ones. This program is intended as the basic vserver management
+ tool; e.g. to unify a vserver you can execute "vserver XX unify",
+ to install a package "vserver XX install PKG" and so on.</text>
+ </clicompat>
+ <funccompat status="limited">
+ <text>This tool is rewritten to completely and is now resistant
+ against symlink attacks. It uses the new configuration scheme
+ and the iproute2 tools instead of ifconfig for network
+ setup. Old-style vserver can be still started through this tool,
+ but modifications/building of them is not possible
+ anymore.</text>
+ </funccompat>
+ </program>
+
+ <program name="vserver-copy" status="broken">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="no">
+ <text>will be removed/rewritten soon.</text>
+ </funccompat>
+ </program>
+
+ <program name="vserver-stat" status="rewritten">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes">
+ <text>It has been rewritten to use the new libvserver API. The
+ output has been changed slightly.</text>
+ </funccompat>
+ </program>
+
+ <program name="vtop">
+ <location>SBINDIR</location>
+ <clicompat status="yes"/>
+ <funccompat status="yes"/>
+ </program>
+
+ <program name="exec-cd" status="new">
+ <location>SBINDIR</location>
+ <funccompat status="yes">
+ <text>changes into a directory in a secure manner and executes a
+ program there.</text>
+ </funccompat>
+ </program>
+
+ <program name="rpm-fake-resolver" status="new">
+ <location>LIBDIR</location>
+ <funccompat status="yes">
+ <text>NSS resolver; used by <pref>vrpm</pref> and executed in
+ vserver-ctx.</text>
+ </funccompat>
+ </program>
+
+ <program name="rpm-fake.so" status="new">
+ <location>LIBDIR</location>
+ <funccompat status="yes">
+ <text>LD_PRELOAD wrapper; used by <pref>vrpm</pref>.</text>
+ </funccompat>
+ </program>
+
+ <program name="vapt-get-worker" status="new">
+ <location>LIBDIR</location>
+ <funccompat status="yes">
+ <text>Helper script for <pref>vapt-get</pref>.</text>
+ </funccompat>
+ </program>
+
+ <program name="vpkg" status="new">
+ <location>LIBDIR</location>
+ <funccompat status="yes">
+ <text>Generic interface for package management; it allows
+ to install, remove or query packages in a distribution
+ independent manner. It can be seen as the successor of
+ <pref>distrib-info</pref>.</text>
+ </funccompat>
+ </program>
+
+ <program name="vrpm-preload" status="new">
+ <location>LIBDIR</location>
+ <funccompat status="yes">
+ <text>Helper script for <pref>vrpm</pref>.</text>
+ </funccompat>
+ </program>
+
+ <program name="vrpm-worker" status="new">
+ <location>LIBDIR</location>
+ <funccompat status="yes">
+ <text>Helper script for <pref>vrpm</pref>.</text>
+ </funccompat>
+ </program>
+
+ <program name="vserver-build" status="new">
+ <location>LIBDIR</location>
+ <funccompat status="yes">
+ <text>Builds a vserver from scratch and allows to select the
+ used method. It will be called by the "vserver XY build"
+ command.</text>
+ </funccompat>
+ </program>
+
+ <program name="vapt-get" status="new">
+ <location>SBINDIR</location>
+ <funccompat status="yes">
+ <text>Wrapper for apt-get; currently only the apt-rpm port
+ is supported. Metadata will/can be stored outside of the
+ vserver. This program call <pref>vrpm</pref>.</text>
+ </funccompat>
+ </program>
+
+
+ <program name="chxid" status="new">
+ <location>SBINDIR</location>
+ <funccompat status="yes">
+ <text>This program assigns the associated context of an inode. It
+ replaces parts of the vserver-quota tools.</text>
+ </funccompat>
+ </program>
+
+ <program name="lsxid" status="new">
+ <location>SBINDIR</location>
+ <funccompat status="yes">
+ <text>This program shows the associated context of an inode. It
+ replaces parts of the vserver-quota tools.</text>
+ </funccompat>
+ </program>
+
+ <program name="new-namespace" status="new">
+ <location>SBINDIR</location>
+ <funccompat status="yes">
+ <text>This program starts a program within a new namespace which is
+ created with CLONE_NEWNS. It is used e.g. by <pref>vrpm</pref> to
+ map the rpm-database into the vserver in a secure manner.</text>
+ </funccompat>
+ </program>
+
+ <program name="vlimit" status="new">
+ <location>SBINDIR</location>
+ <funccompat status="yes">
+ <text>This is an interface to the rlimit syscalls which allow to
+ limit resource-usage of contexts.</text>
+ </funccompat>
+ </program>
+
+ <program name="vrsetup" status="new">
+ <location>SBINDIR</location>
+ <funccompat status="yes">
+ <text>This program allows to setup vroot devices. It replaces
+ vrsetup from the vr-tools</text>
+ </funccompat>
+ </program>
+</compatibility>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml"
+ version="1.0">
+
+ <xsl:output method="xml"
+ indent="yes"
+ doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
+
+ <xsl:param name="confdir"/>
+
+ <xsl:template match="/">
+ <html>
+ <xsl:apply-templates/>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="database">
+ <head>
+ <title>The <xsl:value-of select="$confdir"/> directory</title>
+ <link rel="stylesheet" title="gras" type="text/css" href="css/configuration-lsd.css" />
+ <link rel="alternate stylesheet" title="gras1" type="text/css" href="css/configuration-lsd1.css" />
+ <link rel="alternate stylesheet" title="flower" type="text/css" href="css/configuration-flower.css" />
+ <link rel="alternate stylesheet" title="boring" type="text/css" href="configuration.css" />
+ <link rel="alternate stylesheet" title="weedpage" type="text/css" href="css/WeedPageStyle.css" />
+ </head>
+ <body>
+ <h1>The content of the <xsl:value-of select="$confdir"/> directory</h1>
+
+ <xsl:call-template name="collection">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$confdir"/></xsl:with-param>
+ </xsl:call-template>
+ </body>
+ </xsl:template>
+
+ <xsl:template name="collection">
+ <xsl:param name="thisdir"/>
+ <xsl:if test="count(scalar) + count(link) + count(program) + count(data) + count(hash) + count(list) + count(boolean) + count(collection)>0">
+ <ul>
+ <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id" /></xsl:attribute></xsl:if>
+ <xsl:call-template name="dir-iterate">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+ </xsl:call-template>
+ </ul>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="dir-iterate">
+ <xsl:param name="thisdir"/>
+ <xsl:apply-templates select="scalar|link|program|data|hash|list|boolean">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+ <xsl:sort select="@name"/>
+ </xsl:apply-templates>
+
+ <xsl:apply-templates select="collection">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+ <xsl:sort select="@name"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="program">
+ <xsl:param name="thisdir"/>
+ <li>
+ <xsl:call-template name="printname">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+ <xsl:with-param name="style">script</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="printcontent"/>
+ </li>
+ </xsl:template>
+
+ <xsl:template match="hash">
+ <xsl:param name="thisdir"/>
+ <li>
+ <xsl:call-template name="printname">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+ <xsl:with-param name="style">hash</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="printcontent"/>
+ </li>
+ </xsl:template>
+
+ <xsl:template match="scalar">
+ <xsl:param name="thisdir"/>
+ <li>
+ <xsl:call-template name="printname">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+ <xsl:with-param name="style">file</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="printcontent"/>
+ </li>
+ </xsl:template>
+
+ <xsl:template match="data">
+ <xsl:param name="thisdir"/>
+ <li>
+ <xsl:call-template name="printname">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+ <xsl:with-param name="style">data</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="printcontent"/>
+ </li>
+ </xsl:template>
+
+ <xsl:template match="list">
+ <xsl:param name="thisdir"/>
+ <li>
+ <xsl:call-template name="printname">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+ <xsl:with-param name="style">list</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="printcontent"/>
+ </li>
+ </xsl:template>
+
+ <xsl:template match="link">
+ <xsl:param name="thisdir"/>
+ <li>
+ <xsl:call-template name="printname">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+ <xsl:with-param name="style">symlink</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="printcontent"/>
+ </li>
+ </xsl:template>
+
+ <xsl:template match="boolean">
+ <xsl:param name="thisdir"/>
+ <li>
+ <xsl:call-template name="printname">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+ <xsl:with-param name="style">boolean</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="printcontent"/>
+ </li>
+ </xsl:template>
+
+ <xsl:template match="collection">
+ <xsl:param name="thisdir"/>
+ <li>
+ <xsl:call-template name="printfullname">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+ <xsl:with-param name="style">directory</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="printcontent"/>
+
+ <xsl:call-template name="collection">
+ <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/>/<xsl:call-template name="printdirname"/></xsl:with-param>
+ </xsl:call-template>
+ </li>
+ </xsl:template>
+
+ <xsl:template match="collection" mode="printrpath">
+ <xsl:text>/</xsl:text>
+ <span class="{@type}">
+ <xsl:value-of select="@name"/>
+ </span>
+ </xsl:template>
+
+ <xsl:template match="elements">
+ <div class="elements">
+ <dl>
+ <xsl:apply-templates select="element">
+ <xsl:sort select="@name"/>
+ </xsl:apply-templates>
+ </dl>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="elements/element">
+ <dt class="elements">
+ <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id" /></xsl:attribute></xsl:if>
+ <xsl:value-of select="@name"/>
+ </dt>
+ <dd class="elements"><xsl:apply-templates select="description"/></dd>
+ </xsl:template>
+
+ <xsl:template name="printfullname">
+ <xsl:param name="thisdir"/>
+ <xsl:param name="style"/>
+ <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id" /></xsl:attribute></xsl:if>
+ <span class="{$style}">
+ <xsl:value-of select="$confdir"/>
+ <xsl:apply-templates select="ancestor-or-self::collection" mode="printrpath"/>
+ </span>
+ </xsl:template>
+
+ <xsl:template name="printname">
+ <xsl:param name="thisdir"/>
+ <xsl:param name="style"/>
+ <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id" /></xsl:attribute></xsl:if>
+ <span class="{$style}">
+ <xsl:attribute name="title">
+ <xsl:value-of select="$thisdir"/>/<xsl:call-template name="printdirname"/>
+ </xsl:attribute>
+ <xsl:value-of select="@name"/>
+ </span>
+ </xsl:template>
+
+ <xsl:template name="printcontent">
+ <br/>
+ <xsl:apply-templates select="description"/>
+ <xsl:apply-templates select="elements"/>
+ </xsl:template>
+
+ <xsl:template name="printdirname">
+ <xsl:if test="@type='symbolic'">$</xsl:if>
+ <xsl:value-of select="@name"/>
+ </xsl:template>
+
+ <xsl:template match="description">
+ <div class="description">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="ulink">
+ <a href="{@url}"><xsl:apply-templates/></a>
+ </xsl:template>
+
+ <xsl:template match="br">
+ <br />
+ </xsl:template>
+
+ <xsl:template match="p">
+ <div><xsl:apply-templates/></div>
+ </xsl:template>
+
+ <xsl:template match="tool">
+ <code class="tool"><xsl:apply-templates/></code>
+ </xsl:template>
+
+ <xsl:template match="command">
+ <code class="command"><xsl:apply-templates/></code>
+ </xsl:template>
+
+ <xsl:template match="directory">
+ <span class="directoryname"><xsl:apply-templates/></span>
+ </xsl:template>
+
+ <xsl:template match="filename">
+ <a class="filename">
+ <xsl:attribute name="href">file://<xsl:value-of select="text()"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+ </xsl:template>
+
+ <xsl:template match="optionref">
+ <a class="optionref">
+ <xsl:attribute name="href">
+ <xsl:choose>
+ <xsl:when test="@ref">#<xsl:value-of select="@ref"/></xsl:when>
+ <xsl:otherwise>#<xsl:value-of select="text()"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute><xsl:apply-templates/>
+ </a>
+ </xsl:template>
+</xsl:stylesheet>
--- /dev/null
+body {
+ font-size: 12pt;
+ background-color: white;
+ margin: 10px;
+}
+
+span.directory {
+ //text-decoration: underline;
+}
+
+
+span.symlink:after {
+ content: " [symlink]";
+ font-size: 8pt;
+ font-style: normal;
+}
+
+span.symlink {
+ text-decoration: none;
+ font-style: italic;
+}
+
+span.script:after {
+ content: " [script]";
+ font-size: 8pt;
+ font-style: normal;
+}
+
+span.script {
+ color: gray;
+}
+
+span.symbolic:before { content: "<"; }
+span.symbolic:after { content: ">"; }
+
+span.symbolic {
+ font-style: italic;
+ text-decoration: none;
+}
+
+div.description {
+ background-color: #ffffdd;
+}
+
+
+div.elements {
+ padding-left: 1em;
+}
+
+dd.elements {
+}
+
+dt.elements {
+}
--- /dev/null
+<!ELEMENT database (collection*)>
+
+<!ELEMENT collection (collection?,data?,link?,scalar?,program?,boolean?,list?,description?,hash?)*>
+<!ATTLIST collection
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #IMPLIED
+ use CDATA #IMPLIED
+ since CDATA #IMPLIED>
+
+<!ELEMENT data (description?)>
+<!ATTLIST data
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED>
+
+
+<!ELEMENT link (default?,description?)>
+<!ATTLIST link
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #IMPLIED
+ since CDATA #IMPLIED>
+<!ELEMENT default (#PCDATA)>
+
+
+<!ELEMENT scalar (default?,description?,restriction?)>
+<!ATTLIST scalar
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #IMPLIED
+ since CDATA #IMPLIED>
+
+
+<!ELEMENT description ANY>
+
+<!ELEMENT program (description?,parameterList?)>
+<!ATTLIST program
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #IMPLIED
+ since CDATA #IMPLIED>
+
+<!ELEMENT boolean (description?)>
+<!ATTLIST boolean
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ default (on|off) #IMPLIED
+ since CDATA #IMPLIED>
+
+<!ELEMENT list (description?,elements?)>
+<!ATTLIST list
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+
+<!ELEMENT parameterList (parameter*)>
+<!ELEMENT parameter (description?)>
+<!ATTLIST parameter
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+
+<!ELEMENT ulink (#PCDATA)>
+<!ATTLIST ulink
+ url CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+<!ELEMENT hash (description?,keys*)>
+<!ATTLIST hash
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+<!ELEMENT keys (key*)>
+<!ELEMENT key (description?)>
+<!ATTLIST key
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+
+<!ELEMENT elements (element*)>
+<!ELEMENT element (description?)>
+<!ATTLIST element
+ name CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+<!ELEMENT restriction (enumeration*)>
+<!ELEMENT enumeration EMPTY>
+<!ATTLIST enumeration
+ value CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+<!ELEMENT directory (#PCDATA)>
+<!ELEMENT filename (#PCDATA)>
+
+<!ELEMENT optionref (#PCDATA)>
+<!ATTLIST optionref
+ ref CDATA #IMPLIED>
+
+<!ELEMENT br EMPTY>
+<!ELEMENT p ANY>
+<!ELEMENT tool (#PCDATA)>
+<!ELEMENT command (#PCDATA)>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>The /etc/vservers directory</title>
+ <link rel="stylesheet" title="gras" type="text/css" href="css/configuration-lsd.css" />
+ <link rel="alternate stylesheet" title="gras1" type="text/css" href="css/configuration-lsd1.css" />
+ <link rel="alternate stylesheet" title="flower" type="text/css" href="css/configuration-flower.css" />
+ <link rel="alternate stylesheet" title="boring" type="text/css" href="configuration.css" />
+ <link rel="alternate stylesheet" title="weedpage" type="text/css" href="css/WeedPageStyle.css" />
+ </head>
+ <body>
+ <h1>The content of the /etc/vservers directory</h1>
+ <ul>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.defaults</span></span>
+ <br />
+ <ul>
+ <li id="global-nonamespace">
+ <span class="boolean" title="/etc/vservers/.defaults/nonamespace">nonamespace</span>
+ <br />
+ <div class="description">
+Disable namespace usage globally. It can be overridden for a single vserver
+by setting the <a class="optionref" href="#global-namespace">namespace</a> flag
+there.
+
+In this mode the <span class="directoryname">/vservers</span> directory must have
+the 'barrier' attribute. Else, common chroot(2) exploits are possible.
+ </div>
+ </li>
+ <li>
+ <span class="symlink" title="/etc/vservers/.defaults/run.rev">run.rev</span>
+ <br />
+ <div class="description">
+Path of the vserver run reverse directory. This directory contains
+symlinks named with XID numbers which point back to the configuration
+directory of vservers. Under kernel 2.4 this is required for the XID
+to VSERVER mapping; Under kernel 2.6 it is unused.
+
+NOTE: this link exists in 0.30.202+ only; in previous versions it was
+a vserver specific setting.
+ </div>
+ </li>
+ <li>
+ <span class="symlink" title="/etc/vservers/.defaults/vdirbase">vdirbase</span>
+ <br />
+ <div class="description">A link to the default vserver rootdirectory.</div>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.defaults</span>/<span class="">apps</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.defaults</span>/<span class="">apps</span>/<span class="">debootstrap</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="file" title="/etc/vservers/.defaults/apps/debootstrap/mirror">mirror</span>
+ <br />
+ <div class="description">
+The Debian mirror to use with the <code class="tool">debootstrap</code> program
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/.defaults/apps/debootstrap/uri">uri</span>
+ <br />
+ <div class="description">
+When the <code class="tool">debootstrap</code> package is not installed; fetch it
+from this uri and install it at a temporary place.
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.defaults</span>/<span class="">apps</span>/<span class="">init</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="symlink" title="/etc/vservers/.defaults/apps/init/tty">tty</span>
+ <br />
+ <div class="description">
+A symlink to the TTY device where input/output will be redirected from/to
+at startup via initscript.
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.defaults</span>/<span class="">apps</span>/<span class="">pkgmgmt</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="data" title="/etc/vservers/.defaults/apps/pkgmgmt/apt.conf">apt.conf</span>
+ <br />
+ <div class="description">The default apt.conf which is going to be used. It is overridden by
+distribution specific configuration file.
+ </div>
+ </li>
+ <li>
+ <span class="symlink" title="/etc/vservers/.defaults/apps/pkgmgmt/base">base</span>
+ <br />
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.defaults</span>/<span class="">apps</span>/<span class="">vprocunhide</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="list" title="/etc/vservers/.defaults/apps/vprocunhide/files">files</span>
+ <br />
+ <div class="description">
+A list of files which will be made visibly by vprocunhide. Wildcards are
+allowed and anything ending in '/' will be processed recursively. When this file exists,
+it overrides the defaults in SYSDEFAULTDIR/vprocunhide-files. The entries there must be
+absolute filenames inclusive the leading '/proc'.
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.defaults</span>/<span class="">apps</span>/<span class="">vshelper</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="boolean" title="/etc/vservers/.defaults/apps/vshelper/debug">debug</span>
+ <br />
+ <div class="description">
+When existing, the vshelper execution will be traced.
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/.defaults/apps/vshelper/disabled">disabled</span>
+ <br />
+ <div class="description">
+When existing, the vshelper functionality will be disabled for all
+vservers.
+ </div>
+ </li>
+ <li>
+ <span class="symlink" title="/etc/vservers/.defaults/apps/vshelper/logfile">logfile</span>
+ <br />
+ <div class="description">
+The file where output will be logged to when <code class="tool">vshelper</code>
+is invoked from the kernel. This should point somewhere e.g. into
+<span class="directoryname">/var/log</span>.
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/.defaults/apps/vshelper/warning-disabled">warning-disabled</span>
+ <br />
+ <div class="description">
+When existing, sanity checks for the vshelper functionality will be
+skipped.
+ </div>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.defaults</span>/<span class="">apps</span>/<span class="">vshelper</span>/<span class="">vshelper-methods</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="script" title="/etc/vservers/.defaults/apps/vshelper/vshelper-methods/$handler">handler</span>
+ <br />
+ <div class="description">
+See vshelper/action.
+ </div>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.defaults</span>/<span class="">apps</span>/<span class="">vunify</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="list" title="/etc/vservers/.defaults/apps/vunify/exclude">exclude</span>
+ <br />
+ <div class="description">Static list of excluded files.</div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/.defaults/apps/vunify/pgkmgmt-force">pgkmgmt-force</span>
+ <br />
+ <div class="description">
+When existing, information from packagemanagement will be used to
+create dynamic exclude-lists. This option requires that (a known)
+packagemanagement is configured for the vserver; else the requested
+operation will fail. Most tools assume 'on' as the default value.
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/.defaults/apps/vunify/pkgmgmt-ignore">pkgmgmt-ignore</span>
+ <br />
+ <div class="description">
+When existing, information from packagemanagement will not be used to
+create dynamic exclude-lists.
+ </div>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.defaults</span>/<span class="">apps</span>/<span class="">vunify</span>/<span class="">hash</span></span>
+ <br />
+ <div class="description">
+A directory which will be used as the storage place for the
+<code class="tool">vhashify</code> command.
+ </div>
+ <ul>
+ <li>
+ <span class="symlink" title="/etc/vservers/.defaults/apps/vunify/hash/$id">id</span>
+ <br />
+ <div class="description">
+Points to a directory within the filesystems which are used for the
+vservers. There must be not more than one of such a directory per
+filesystem.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/.defaults/apps/vunify/hash/method">method</span>
+ <br />
+ <div class="description">The used hash method.</div>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.defaults</span>/<span class="fixed">init</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="data" title="/etc/vservers/.defaults/init/mtab">mtab</span>
+ <br />
+ <div class="description">Default mtab file</div>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.distributions</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.distributions</span>/<span class="symbolic">dist</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="data" title="/etc/vservers/.distributions/$dist/apt.conf">apt.conf</span>
+ <br />
+ <div class="description">
+The default apt.conf which is going to be used. It overrides the
+apt.conf from CONFDIR/.defaults/apps/pkgmgmt.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/.distributions/$dist/dev">dev</span>
+ <br />
+ <div class="description"></div>
+ </li>
+ <li>
+ <span class="symlink" title="/etc/vservers/.distributions/$dist/execdir">execdir</span>
+ <br />
+ <div class="description">
+Directory with all executables and libraries which are required for
+this distribution.
+ </div>
+ </li>
+ <li>
+ <span class="script" title="/etc/vservers/.distributions/$dist/initpost">initpost</span>
+ <br />
+ <div class="description">
+Script which will be executed after packages are installed.
+ </div>
+ </li>
+ <li>
+ <span class="script" title="/etc/vservers/.distributions/$dist/initpre">initpre</span>
+ <br />
+ <div class="description">
+Script which will be executed before packages will be installed.
+ </div>
+ </li>
+ <li>
+ <span class="symlink" title="/etc/vservers/.distributions/$dist/rpmlib">rpmlib</span>
+ <br />
+ <div class="description">
+Directory which overrides <span class="directoryname">/usr/lib/rpm</span>.
+ </div>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.distributions</span>/<span class="symbolic">dist</span>/<span class="">apt</span></span>
+ <br />
+ <div class="description">
+Default content of the <span class="directoryname">/etc/apt/</span> directory.
+ </div>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.distributions</span>/<span class="symbolic">dist</span>/<span class="">pkgs</span></span>
+ <br />
+ <div class="description">
+Contains files with packagenames.
+ </div>
+ <ul>
+ <li>
+ <span class="list" title="/etc/vservers/.distributions/$dist/pkgs/list">list</span>
+ <br />
+ <div class="description">
+File which contains the name of packages. On top of file the special
+keywords '--reinstall' and '--can-fail' are possible.
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.distributions</span>/<span class="symbolic">dist</span>/<span class="">pubkeys</span></span>
+ <br />
+ <div class="description">
+Directory with GPG pubkeys which are used to sign the packages of this
+distribution.
+ </div>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.distributions</span>/<span class="symbolic">dist</span>/<span class="">rpm</span></span>
+ <br />
+ <div class="description">
+Default content of the <span class="directoryname">/etc/rpm</span> directory.
+ </div>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.distributions</span>/<span class="symbolic">dist</span>/<span class="">yum</span></span>
+ <br />
+ <div class="description">
+The default, yum-related content of the <span class="directoryname">/etc</span>
+directory.
+ </div>
+ <ul>
+ <li>
+ <span class="file" title="/etc/vservers/.distributions/$dist/yum/yum.conf">yum.conf</span>
+ <br />
+ <div class="description">
+The master yum configuration file. It supports the @YUMETCDIR@,
+@YUMCACHEDIR@ and @YUMLOGDIR@ placeholder which will be replaced at
+<code class="command">vserver ... build</code> time.
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="">.distributions</span>/<span class="symbolic">dist</span>/<span class="">yum.repos.d</span></span>
+ <br />
+ <div class="description">A directory with yum repositories.</div>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span></span>
+ <br />
+ <div class="description">
+The configuration directory for the vserver vserver-name.
+ </div>
+ <ul>
+ <li id="bcapabilities">
+ <span class="list" title="/etc/vservers/$vserver-name/bcapabilities">bcapabilities</span>
+ <br />
+ <div class="description">
+[experimental; name is subject of possible change] Contains the system capabilities. See
+<a href="http://savannah.nongnu.org/cgi-bin/viewcvs/util-vserver/util-vserver/lib/bcaps-v13.c?rev=HEAD">lib/bcaps-v13.c</a>
+for possible values.
+ </div>
+ </li>
+ <li>
+ <span class="list" title="/etc/vservers/$vserver-name/capabilities">capabilities</span>
+ <br />
+ <div class="description">
+Contains per line a capability. This file is used for the 2.4 kernel
+only; for 2.6 use <a class="optionref" href="#bcapabilities">bcapabilities</a>.
+ </div>
+ </li>
+ <li>
+ <span class="list" title="/etc/vservers/$vserver-name/ccapabilities">ccapabilities</span>
+ <br />
+ <div class="description">
+[experimental; name is subject of possible change] Contains the
+context capabilities. See <a href="http://savannah.nongnu.org/cgi-bin/viewcvs/util-vserver/util-vserver/lib/ccaps-v13.c?rev=HEAD">lib/ccaps-v13.c</a>
+for possible values.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/context">context</span>
+ <br />
+ <div class="description">
+Contains the context which shall be used for the vserver.
+ </div>
+ </li>
+ <li>
+ <span class="list" title="/etc/vservers/$vserver-name/flags">flags</span>
+ <br />
+ <div class="description">
+Contains per line a flag. See <a href="http://savannah.nongnu.org/cgi-bin/viewcvs/util-vserver/util-vserver/lib/cflags-v13.c?rev=HEAD">lib/cflags-v13.c</a>
+for possible values.
+ </div>
+ <div class="elements">
+ <dl>
+ <dt class="elements">fakeinit</dt>
+ <dd class="elements">
+ <div class="description">
+The new process will believe it is process number 1. Useful to run a
+real /sbin/init in a vserver. Warning: this flag should not be used
+unless you know what you are doing. Often, it is better to use the
+'plain' initstyle.
+ </div>
+ </dd>
+ <dt class="elements">lock</dt>
+ <dd class="elements">
+ <div class="description">
+The new process is trapped and can't use chcontext anymore.
+ </div>
+ </dd>
+ <dt class="elements">nproc</dt>
+ <dd class="elements">
+ <div class="description">
+Limit the number of process in the vserver according to
+ulimit setting. Normally, ulimit is a per user thing.
+With this flag, it becomes a per vserver thing.
+ </div>
+ </dd>
+ <dt class="elements">private</dt>
+ <dd class="elements">
+ <div class="description">
+No one can join this security context once created.
+ </div>
+ </dd>
+ <dt class="elements">sched</dt>
+ <dd class="elements">
+ <div class="description">
+The new process and its children will share a common
+ </div>
+ </dd>
+ <dt class="elements">ulimit</dt>
+ <dd class="elements">
+ <div class="description">
+Apply the current ulimit to the whole context
+ </div>
+ </dd>
+ </dl>
+ </div>
+ </li>
+ <li id="fstab">
+ <span class="data" title="/etc/vservers/$vserver-name/fstab">fstab</span>
+ <br />
+ <div class="description">
+The fstab file for the vserver. Entries in this file will be mounted
+within the network context of the host. Use the
+<a class="optionref" href="#fstab.remote">fstab.remote</a> file when you want that the
+mounting happens in the network context of the vserver. In most cases
+the 'fstab' file should be used.
+ </div>
+ </li>
+ <li id="fstab.remote">
+ <span class="data" title="/etc/vservers/$vserver-name/fstab.remote">fstab.remote</span>
+ <br />
+ <div class="description">
+The fstab file for the vserver. Entries in this file will be mounted
+within the network context of the host; this means that mount will be
+called as <code class="command">chbind <options> mount ...</code>. See
+<a class="optionref" href="#fstab">fstab</a> also.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/name">name</span>
+ <br />
+ <div class="description">
+Contains the name of the vserver. When not given, the basename of the directory
+will be assumed as this name.
+ </div>
+ </li>
+ <li id="global-namespace">
+ <span class="boolean" title="/etc/vservers/$vserver-name/namespace">namespace</span>
+ <br />
+ <div class="description">
+Overrides the global <a class="optionref" href="#global-nonamespace">nonamespace</a> flag and enables
+namespace usage for the current vserver.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/nice">nice</span>
+ <br />
+ <div class="description">
+The nice-level on which the vserver will be started.
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/nonamespace">nonamespace</span>
+ <br />
+ <div class="description">
+Disables namespace usage for the current vserver.
+
+In this mode the <span class="directoryname">/vservers</span> directory must have
+the 'barrier' attribute. Else, common chroot(2) exploits are possible.
+ </div>
+ </li>
+ <li>
+ <span class="list" title="/etc/vservers/$vserver-name/personality">personality</span>
+ <br />
+ <div class="description">
+Used to set the personality of the vserver. First line in the file
+is the personality-type followed by flags (one item per line). See
+<a class="filename" href="file:///usr/include/linux/personality.h">/usr/include/linux/personality.h</a> for possible
+values.
+ </div>
+ </li>
+ <li>
+ <span class="symlink" title="/etc/vservers/$vserver-name/run">run</span>
+ <br />
+ <div class="description">
+Points to a file which will contain the XID of the running vserver. When
+the vserver is stopped, this can be a dangling symlink.
+ </div>
+ </li>
+ <li>
+ <span class="hash" title="/etc/vservers/$vserver-name/schedule">schedule</span>
+ <br />
+ <div class="description">
+[experimental; name is subject of possible change] Contains the
+scheduler parameters, one per line.
+
+The Hard CPU limit uses a mechanism called a Token Bucket. the
+concept is simple: you have a bucket of a certain size which is
+filled with a specified amount R of tokens each interval T until the
+maximum is reached (excess tokens are spilled). At each timer tick,
+a running process consumes one token from the bucket, unless the
+bucket is empty. If the bucket is empty the process is put in the
+hold queue. When the bucket has been refilled to at least M tokens,
+all on hold processes are rescheduled.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/shell">shell</span>
+ <br />
+ <div class="description">
+Contains the pathname of the shell which will be used by the "vserver
+... enter" command.
+ </div>
+ </li>
+ <li>
+ <span class="symlink" title="/etc/vservers/$vserver-name/vdir">vdir</span>
+ <br />
+ <div class="description">
+Path of the vserver root directory
+ </div>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">apps</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">apps</span>/<span class="">init</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="list" title="/etc/vservers/$vserver-name/apps/init/cmd.prepare">cmd.prepare</span>
+ <br />
+ <div class="description">
+The command which is used to setup the init-system (e.g. to set the
+runlevel in the utmp-file). Each option must be on a separate line.
+ </div>
+ </li>
+ <li>
+ <span class="list" title="/etc/vservers/$vserver-name/apps/init/cmd.start">cmd.start</span>
+ <br />
+ <div class="description">
+The command which is used to start the vserver. Each option must be on
+a separate line.
+ </div>
+ </li>
+ <li>
+ <span class="list" title="/etc/vservers/$vserver-name/apps/init/cmd.start-sync">cmd.start-sync</span>
+ <br />
+ <div class="description">
+The command which is used to wait on the vserver after it has been
+started. Each option must be on a separate line. This file will be
+ignored when the <a class="optionref" href="#sync">sync</a> flag does not exist and the
+'--sync' option was not used.
+ </div>
+ </li>
+ <li>
+ <span class="list" title="/etc/vservers/$vserver-name/apps/init/cmd.stop">cmd.stop</span>
+ <br />
+ <div class="description">
+The command which is used to stop the vserver. Each option must be on
+a separate line.
+ </div>
+ </li>
+ <li>
+ <span class="list" title="/etc/vservers/$vserver-name/apps/init/cmd.stop-sync">cmd.stop-sync</span>
+ <br />
+ <div class="description">
+The command which is used to wait on the vserver after it has been
+stopped. Each option must be on a separate line. This file will be
+ignored when the <a class="optionref" href="#sync">sync</a> flag does not exist and the
+'--sync' option was not used.
+ </div>
+ </li>
+ <li>
+ <span class="list" title="/etc/vservers/$vserver-name/apps/init/depends">depends</span>
+ <br />
+ <div class="description">
+This file is used to configure vservers which must be running before
+the current vserver can be started. At shutdown, the current vserver
+will be stopped before its dependencies. Content of this file are
+vserver ids (one name per line).
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/apps/init/killseq">killseq</span>
+ <br />
+ <div class="description">
+Contains the 'signal [wait signal]*' sequence which is used to stop
+the vserver.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/apps/init/mark">mark</span>
+ <br />
+ <div class="description">
+This file is used to mark group of vservers which shall be started/stopped
+together by the initscript. Content is a simple string like 'default'.
+ </div>
+ </li>
+ <li>
+ <span class="data" title="/etc/vservers/$vserver-name/apps/init/mtab">mtab</span>
+ <br />
+ <div class="description">
+The initial-mtab which will be used for the vserver.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/apps/init/runlevel">runlevel</span>
+ <br />
+ <div class="description">The start runlevel.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/apps/init/runlevel.start">runlevel.start</span>
+ <br />
+ <div class="description">The start runlevel.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/apps/init/runlevel.stop">runlevel.stop</span>
+ <br />
+ <div class="description">The stop runlevel.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/apps/init/style">style</span>
+ <br />
+ <div class="description">
+Contains the init-style.
+ </div>
+ </li>
+ <li id="sync">
+ <span class="boolean" title="/etc/vservers/$vserver-name/apps/init/sync">sync</span>
+ <br />
+ <div class="description">
+If this file is not present, all 'cmd.*-sync files will be ignored.
+ </div>
+ </li>
+ <li>
+ <span class="symlink" title="/etc/vservers/$vserver-name/apps/init/tty">tty</span>
+ <br />
+ <div class="description">
+A symlink to the TTY device where input/output will be redirected
+from/to at startup via initscript.
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">apps</span>/<span class="">vshelper</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/apps/vshelper/action">action</span>
+ <br />
+ <div class="description">
+The action which is going to be executed when a vshelper event
+occurs. The default value is 'restart', but there can be defined own
+methods by placing scripts into the
+<a class="optionref" href="#vshelper-methods">vshelper-methods</a> directories. These scripts are
+fed with the same arguments as the <code class="tool">vshelper</code> script.
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/apps/vshelper/debug">debug</span>
+ <br />
+ <div class="description">
+When existing, the vshelper execution will be traced for this vserver.
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/apps/vshelper/disabled">disabled</span>
+ <br />
+ <div class="description">
+When existing, the vshelper functionality will be disabled for this
+vserver.
+ </div>
+ </li>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/apps/vshelper/$event">event</span>
+ <br />
+ <div class="description">
+When existing, these scripts will be executed *instead* of the default
+handler defined in 'action'. Their name must match the event which caused
+the execution of <code class="tool">vshelper</code>; e.g. 'restart' or 'poweroff'. See
+the vs_reboot() function in the kernel for more details.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/apps/vshelper/sync-timeout">sync-timeout</span>
+ <br />
+ <div class="description">
+The timeout in seconds which is used when synchronising vserver
+startup/shutdown with the vshelper. When no set, 30 seconds will be
+assumed.
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/apps/vshelper/warning-disabled">warning-disabled</span>
+ <br />
+ <div class="description">
+When existing, sanity checks for the vshelper functionality will be
+skipped.
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li id="vshelper-methods">
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">apps</span>/<span class="">vshelper-methods</span></span>
+ <br />
+ <ul id="vshelper-methods">
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/apps/vshelper-methods/$handler">handler</span>
+ <br />
+ <div class="description">
+See vshelper/action.
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">apps</span>/<span class="">vunify</span></span>
+ <br />
+ <div class="description">
+This directory contains configuration data required for vserver
+unification.
+ </div>
+ <ul>
+ <li>
+ <span class="list" title="/etc/vservers/$vserver-name/apps/vunify/exclude">exclude</span>
+ <br />
+ <div class="description">
+<div>Static list of files which are excluded for unification. This list
+supports an rsync-like syntax: when a file is prefixed by '+', it is a
+candidate for unification; when there is no prefix or a '-' or a '~' it
+will be excluded. Shell-wildcards are allowed for the filenames.</div>
+<div>When used with <code class="tool">vcopy</code>, the '~' prefix prevents copying
+of the file entirely (e.g. for keyfiles). With this tool, the file will
+be copied instead of hardlinked when the '-' prefix is used.</div>
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/apps/vunify/pgkmgmt-force">pgkmgmt-force</span>
+ <br />
+ <div class="description">
+When existing, information from packagemanagement will be used to
+create dynamic exclude-lists. This option requires that (a known)
+packagemanagement is configured for the vserver; else the requested
+operation will fail. Most tools assume 'on' as the default value.
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/apps/vunify/pkgmgmt-ignore">pkgmgmt-ignore</span>
+ <br />
+ <div class="description">
+When existing, information from packagemanagement will not be used to
+create dynamic exclude-lists.
+ </div>
+ </li>
+ <li>
+ <span class="symlink" title="/etc/vservers/$vserver-name/apps/vunify/$refserver.X">refserver.X</span>
+ <br />
+ <div class="description">
+These are symlinks to the configuration directory
+(e.g. CONFDIR/vservers/<id>) of a refserver. There may be
+multiple such symlinks but they must be prefixed by 'refserver.' and
+will be processed in alphanumerical order.
+ </div>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">apps</span>/<span class="">vunify</span>/<span class="">hash</span></span>
+ <br />
+ <div class="description">
+A directory which will be used as the storage place for the
+<code class="tool">vhashify</code> command.
+ </div>
+ <ul>
+ <li>
+ <span class="symlink" title="/etc/vservers/$vserver-name/apps/vunify/hash/$id">id</span>
+ <br />
+ <div class="description">
+Points to a directory within the filesystems which are used for the
+vservers. There must be not more than one of such a directory per
+filesystem.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/apps/vunify/hash/method">method</span>
+ <br />
+ <div class="description">The used hash method.</div>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">interfaces</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/bcast">bcast</span>
+ <br />
+ <div class="description">The default broadcast address.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/dev">dev</span>
+ <br />
+ <div class="description">The default network device.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/mask">mask</span>
+ <br />
+ <div class="description">The default network mask.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/prefix">prefix</span>
+ <br />
+ <div class="description">The default network prefix-length.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/scope">scope</span>
+ <br />
+ <div class="description">The default scope of the network interfaces.</div>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">interfaces</span>/<span class="symbolic">iface</span></span>
+ <br />
+ <div class="description">
+'iface' is an arbitrary name for the interface; the value itself is
+not important but may be interesting regarding interface-creation and
+usage with <code class="tool">chbind</code>. Both happens in alphabetical order and
+numbers like '00' are good names for these directories.
+ </div>
+ <ul>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/bcast">bcast</span>
+ <br />
+ <div class="description">The broadcast address.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/dev">dev</span>
+ <br />
+ <div class="description">The network device.</div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/interfaces/$iface/disabled">disabled</span>
+ <br />
+ <div class="description">When this file exists, this interface will be ignored.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/ip">ip</span>
+ <br />
+ <div class="description">The ip which will be assigned to this interface.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/mask">mask</span>
+ <br />
+ <div class="description">The network mask.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/name">name</span>
+ <br />
+ <div class="description">
+When this file exists, the interface will be named with the text in
+this file. Without such an entry, the IP will not be shown by
+<code class="tool">ifconfig</code> but by <code class="command">ip addr ls</code> only. Such
+a labeled interface is known as an "alias" also (e.g. 'eth0:foo').
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/interfaces/$iface/nodev">nodev</span>
+ <br />
+ <div class="description">
+When this file exists, the interface will be assumed to exist
+already. This can be used to assign primary interfaces which are
+created by the host or another vserver.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/prefix">prefix</span>
+ <br />
+ <div class="description">The network prefix-length.</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/scope">scope</span>
+ <br />
+ <div class="description">The scope of the network interface.</div>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">rlimits</span></span>
+ <br />
+ <div class="description">
+A directory with resource limits. Possible resources are cpu, fsize,
+data, stack, core, rss, nproc, nofile, memlock, as and locks. This
+configuration will be honored for kernel 2.6 only.
+ </div>
+ <ul>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/rlimits/$resource">resource</span>
+ <br />
+ <div class="description">
+A file which contains the hard- and soft-limit of the given resource
+in the first line. The special keyword 'inf' is recognized.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/rlimits/$resource.hard">resource.hard</span>
+ <br />
+ <div class="description">
+A file which contains the hard- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/rlimits/$resource.min">resource.min</span>
+ <br />
+ <div class="description">
+A file which contains the guaranted minimum of the given resource in
+the first line. The special keyword 'inf' is recognized.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/rlimits/$resource.soft">resource.soft</span>
+ <br />
+ <div class="description">
+A file which contains the soft- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">scripts</span></span>
+ <br />
+ <div class="description">
+A directory for scripts. By default, when one of these scripts will be
+executed, the execution of defaultscripts (within .../.defaults/scripts)
+will be skipped. To execute them nevertheless, the $DONT_SKIP_DEFAULTS
+environment variable must be set by one of the in-shellcontext scripts
+(the non-executable ones).
+ </div>
+ <ul>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/post-start">post-start</span>
+ <br />
+ <div class="description">
+The scriptlet which will be executed after the vserver has been
+started. Before executing the script, the vserver root directory
+will be made the working directory.
+ </div>
+ </li>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/post-stop">post-stop</span>
+ <br />
+ <div class="description">
+The scriptlet which will be executed after the vserver has been
+stopped, but before the directories will be umounted and the the
+interfaces disabled. Before executing the script, the vserver root
+directory will be made the working directory.
+ </div>
+ </li>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/postpost-stop">postpost-stop</span>
+ <br />
+ <div class="description">
+The scriptlet which will be executed after the vserver has been stopped
+completely. Before executing the script, the vserver root directory
+will be made the working directory.
+ </div>
+ </li>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/pre-start">pre-start</span>
+ <br />
+ <div class="description">
+The scriptlet which will be executed after network-interfaces were
+enabled and the directories mounted, but before the vserver itself has
+been started. Before executing the script, the vserver root directory
+will be made the working directory.
+ </div>
+ </li>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/pre-stop">pre-stop</span>
+ <br />
+ <div class="description">
+The scriptlet which will be executed before the vserver will be
+stopped. Before executing the script, the vserver root directory
+will be made the working directory.
+ </div>
+ </li>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/prepre-start">prepre-start</span>
+ <br />
+ <div class="description">
+The scriptlet which will be executed before the network-interfaces are
+enabled and the directories are mounted. Before executing the script,
+the configuration directory will be made the working directory.
+ </div>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">scripts</span>/<span class="">post-start.d</span></span>
+ <br />
+ <div class="description">
+Repository of post-start like scripts. Before executing these scripts,
+the vserver root directory will be made the working directory.
+ </div>
+ <ul>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/post-start.d/$script">script</span>
+ <br />
+ <div class="description">See post-start.</div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">scripts</span>/<span class="">post-stop.d</span></span>
+ <br />
+ <div class="description">
+Repository of post-stop like scripts. Before executing the script, the
+vserver root directory will be made the working directory.
+ </div>
+ <ul>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/post-stop.d/$script">script</span>
+ <br />
+ <div class="description">See post-stop.</div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">scripts</span>/<span class="">postpost-stop.d</span></span>
+ <br />
+ <div class="description">
+Repository of postpost-stop like scripts. Before executing the script,
+the vserver root directory will be made the working directory.
+ </div>
+ <ul>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/postpost-stop.d/$script">script</span>
+ <br />
+ <div class="description">See postpost-stop.</div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">scripts</span>/<span class="">pre-start.d</span></span>
+ <br />
+ <div class="description">
+Repository of pre-start like scripts. Before executing these scripts,
+the vserver root directory will be made the working directory.
+ </div>
+ <ul>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/pre-start.d/$script">script</span>
+ <br />
+ <div class="description">See pre-start.</div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">scripts</span>/<span class="">pre-stop.d</span></span>
+ <br />
+ <div class="description">
+Repository of pre-stop like scripts. Before executing the script, the
+vserver root directory will be made the working directory.
+ </div>
+ <ul>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/pre-stop.d/$script">script</span>
+ <br />
+ <div class="description">See pre-stop.</div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">scripts</span>/<span class="">prepre-start.d</span></span>
+ <br />
+ <div class="description">
+Repository of prepre-start like scripts. Before executing the script,
+the configuration directory will be made the working directory.
+ </div>
+ <ul>
+ <li>
+ <span class="script" title="/etc/vservers/$vserver-name/scripts/prepre-start.d/$script">script</span>
+ <br />
+ <div class="description">See prepre-start.</div>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">ulimits</span></span>
+ <br />
+ <div class="description">
+A directory with ulimits. Possible resources are cpu, data, fsize,
+locks, memlock, nofile, nproc, rss and/or stack. This configuration
+will be honored for kernel 2.4 only.
+ </div>
+ <ul>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/ulimits/$resource">resource</span>
+ <br />
+ <div class="description">
+A file which contains the hard- and soft-limit of the given resource
+in the first line. The special keyword 'inf' is recognized.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/ulimits/$resource.hard">resource.hard</span>
+ <br />
+ <div class="description">
+A file which contains the hard- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/ulimits/$resource.soft">resource.soft</span>
+ <br />
+ <div class="description">
+A file which contains the soft- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">uts</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/uts/context">context</span>
+ <br />
+ <div class="description">
+The context-name of the vserver. This file is listed for completeness
+only; the 'context' name is used and set internally by the util-vserver
+tools and can *not* be modified.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/uts/domainname">domainname</span>
+ <br />
+ <div class="description">The NIS domainname of the vserver</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/uts/machine">machine</span>
+ <br />
+ <div class="description">The machine-type of the vserver</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/uts/nodename">nodename</span>
+ <br />
+ <div class="description">The node-/hostname of the vserver</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/uts/release">release</span>
+ <br />
+ <div class="description">The OS-release of the vserver</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/uts/sysname">sysname</span>
+ <br />
+ <div class="description">The sysname of the vserver</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/uts/version">version</span>
+ <br />
+ <div class="description">The OS-version of the vserver</div>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE database SYSTEM "configuration.dtd" []>
+<!-- $Id: configuration.xml,v 1.36 2005/07/03 14:03:42 ensc Exp $ -->
+
+<database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="file:configuration.xsd">
+
+ <!-- Global configuration -->
+ <collection name=".defaults" use="optional">
+ <collection name="init" type="fixed">
+ <data name="mtab">
+ <description>Default mtab file</description>
+ </data>
+ </collection>
+
+ <link name="vdirbase">
+ <default>/vservers</default>
+ <description>A link to the default vserver rootdirectory.</description>
+ </link>
+
+
+ <boolean id="global-nonamespace" name="nonamespace">
+ <description>
+Disable namespace usage globally. It can be overridden for a single vserver
+by setting the <optionref ref="global-namespace">namespace</optionref> flag
+there.
+
+In this mode the <directory>/vservers</directory> directory must have
+the 'barrier' attribute. Else, common chroot(2) exploits are possible.
+ </description>
+ </boolean>
+
+ <link name="run.rev">
+ <description>
+Path of the vserver run reverse directory. This directory contains
+symlinks named with XID numbers which point back to the configuration
+directory of vservers. Under kernel 2.4 this is required for the XID
+to VSERVER mapping; Under kernel 2.6 it is unused.
+
+NOTE: this link exists in 0.30.202+ only; in previous versions it was
+a vserver specific setting.
+ </description>
+ </link>
+
+ <collection name="apps">
+ <collection name="pkgmgmt">
+ <link name="base">
+ <default>/vservers/.pkg</default>
+ </link>
+ <data name="apt.conf">
+ <description>The default apt.conf which is going to be used. It is overridden by
+distribution specific configuration file.
+ </description>
+ </data>
+ </collection>
+
+ <collection name="debootstrap">
+ <scalar name="mirror">
+ <description>
+The Debian mirror to use with the <tool>debootstrap</tool> program
+ </description>
+ </scalar>
+ <scalar name="uri">
+ <description>
+When the <tool>debootstrap</tool> package is not installed; fetch it
+from this uri and install it at a temporary place.
+ </description>
+ </scalar>
+ </collection>
+
+ <collection name="vshelper">
+ <link name="logfile">
+ <description>
+The file where output will be logged to when <tool>vshelper</tool>
+is invoked from the kernel. This should point somewhere e.g. into
+<directory>/var/log</directory>.
+ </description>
+ </link>
+
+ <collection name="vshelper-methods">
+ <program name="handler" type="symbolic">
+ <description>
+See vshelper/action.
+ </description>
+ </program>
+ </collection>
+
+ <boolean name="disabled">
+ <description>
+When existing, the vshelper functionality will be disabled for all
+vservers.
+ </description>
+ </boolean>
+
+ <boolean name="debug">
+ <description>
+When existing, the vshelper execution will be traced.
+ </description>
+ </boolean>
+
+ <boolean name="warning-disabled">
+ <description>
+When existing, sanity checks for the vshelper functionality will be
+skipped.
+ </description>
+ </boolean>
+
+ </collection>
+
+ <collection name="vprocunhide">
+ <list name="files">
+ <description>
+A list of files which will be made visibly by vprocunhide. Wildcards are
+allowed and anything ending in '/' will be processed recursively. When this file exists,
+it overrides the defaults in SYSDEFAULTDIR/vprocunhide-files. The entries there must be
+absolute filenames inclusive the leading '/proc'.
+ </description>
+ </list>
+ </collection>
+
+ <collection name="init">
+ <link name="tty">
+ <description>
+A symlink to the TTY device where input/output will be redirected from/to
+at startup via initscript.
+ </description>
+ </link>
+ </collection>
+
+ <collection name="vunify">
+ <list name="exclude">
+ <description>Static list of excluded files.</description>
+ </list>
+
+ <collection name="hash" since="0.30.205">
+ <description>
+A directory which will be used as the storage place for the
+<tool>vhashify</tool> command.
+ </description>
+ <link name="id" type="symbolic">
+ <description>
+Points to a directory within the filesystems which are used for the
+vservers. There must be not more than one of such a directory per
+filesystem.
+ </description>
+ </link>
+
+ <scalar name="method" since="0.30.299">
+ <default>SHA1</default>
+ <description>The used hash method.</description>
+ </scalar>
+ </collection>
+
+ <boolean name="pkgmgmt-ignore" default="off" since="0.30.205">
+ <description>
+When existing, information from packagemanagement will not be used to
+create dynamic exclude-lists.
+ </description>
+ </boolean>
+
+ <boolean name="pgkmgmt-force" default="off" since="0.30.205">
+ <description>
+When existing, information from packagemanagement will be used to
+create dynamic exclude-lists. This option requires that (a known)
+packagemanagement is configured for the vserver; else the requested
+operation will fail. Most tools assume 'on' as the default value.
+ </description>
+ </boolean>
+
+ </collection>
+ </collection>
+ </collection>
+
+ <collection name=".distributions" use="optional">
+ <collection name="dist" type="symbolic">
+ <scalar name="dev">
+ <description></description>
+ </scalar>
+ <collection name="yum">
+ <description>
+The default, yum-related content of the <directory>/etc</directory>
+directory.
+ </description>
+ <scalar name="yum.conf">
+ <description>
+The master yum configuration file. It supports the @YUMETCDIR@,
+@YUMCACHEDIR@ and @YUMLOGDIR@ placeholder which will be replaced at
+<command>vserver ... build</command> time.
+ </description>
+ </scalar>
+ </collection>
+ <collection name="yum.repos.d">
+ <description>A directory with yum repositories.</description>
+ </collection>
+ <data name="apt.conf">
+ <description>
+The default apt.conf which is going to be used. It overrides the
+apt.conf from CONFDIR/.defaults/apps/pkgmgmt.
+ </description>
+ </data>
+ <program name="initpre">
+ <description>
+Script which will be executed before packages will be installed.
+ </description>
+ <parameterList>
+ <parameter name="confdir">
+ <description>
+The configuration directory of the vserver which is going to be set up.
+ </description>
+ </parameter>
+ <parameter name="vserver">
+ <description>
+The pathname of the vserver binary.
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ <program name="initpost">
+ <description>
+Script which will be executed after packages are installed.
+ </description>
+ <parameterList>
+ <parameter name="confdir">
+ <description>
+The configuration directory of the vserver which is going to be set up.
+ </description>
+ </parameter>
+ <parameter name="vserver">
+ <description>
+The pathname of the vserver binary.
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+
+ <collection name="pkgs">
+ <description>
+Contains files with packagenames.
+ </description>
+ <list name="list">
+ <description>
+File which contains the name of packages. On top of file the special
+keywords '--reinstall' and '--can-fail' are possible.
+ </description>
+ </list>
+ </collection>
+
+ <collection name="pubkeys">
+ <description>
+Directory with GPG pubkeys which are used to sign the packages of this
+distribution.
+ </description>
+ </collection>
+
+ <collection name="apt">
+ <description>
+Default content of the <directory>/etc/apt/</directory> directory.
+ </description>
+ </collection>
+
+ <collection name="rpm">
+ <description>
+Default content of the <directory>/etc/rpm</directory> directory.
+ </description>
+ </collection>
+
+ <link name="rpmlib">
+ <description>
+Directory which overrides <directory>/usr/lib/rpm</directory>.
+ </description>
+ </link>
+ <link name="execdir">
+ <description>
+Directory with all executables and libraries which are required for
+this distribution.
+ </description>
+ </link>
+ </collection>
+ </collection>
+
+ <!-- Vserver configuration -->
+ <collection name="vserver-name" type="symbolic">
+ <description>
+The configuration directory for the vserver vserver-name.
+ </description>
+
+ <link name="vdir">
+ <description>
+Path of the vserver root directory
+ </description>
+ </link>
+
+ <link name="run">
+ <description>
+Points to a file which will contain the XID of the running vserver. When
+the vserver is stopped, this can be a dangling symlink.
+ </description>
+ </link>
+
+ <list id="bcapabilities" name="bcapabilities">
+ <description>
+[experimental; name is subject of possible change] Contains the system capabilities. See
+<ulink url="http://savannah.nongnu.org/cgi-bin/viewcvs/util-vserver/util-vserver/lib/bcaps-v13.c?rev=HEAD">lib/bcaps-v13.c</ulink>
+for possible values.
+ </description>
+ </list>
+ <list name="ccapabilities">
+ <description>
+[experimental; name is subject of possible change] Contains the
+context capabilities. See <ulink
+url="http://savannah.nongnu.org/cgi-bin/viewcvs/util-vserver/util-vserver/lib/ccaps-v13.c?rev=HEAD">lib/ccaps-v13.c</ulink>
+for possible values.
+ </description>
+ </list>
+
+ <boolean id="global-namespace" name="namespace">
+ <description>
+Overrides the global <optionref ref="global-nonamespace">nonamespace</optionref> flag and enables
+namespace usage for the current vserver.
+ </description>
+ </boolean>
+
+ <boolean name="nonamespace">
+ <description>
+Disables namespace usage for the current vserver.
+
+In this mode the <directory>/vservers</directory> directory must have
+the 'barrier' attribute. Else, common chroot(2) exploits are possible.
+ </description>
+ </boolean>
+
+ <hash name="schedule">
+ <description>
+[experimental; name is subject of possible change] Contains the
+scheduler parameters, one per line.
+
+The Hard CPU limit uses a mechanism called a Token Bucket. the
+concept is simple: you have a bucket of a certain size which is
+filled with a specified amount R of tokens each interval T until the
+maximum is reached (excess tokens are spilled). At each timer tick,
+a running process consumes one token from the bucket, unless the
+bucket is empty. If the bucket is empty the process is put in the
+hold queue. When the bucket has been refilled to at least M tokens,
+all on hold processes are rescheduled.
+ </description>
+ <keys>
+ <key id="fill_rate" name="fill-rate">
+ <description>
+Amount of tokens append to the bucket each interval.
+ </description>
+ </key>
+ <key name="interval">
+ <description>
+The intervall between refills of amount <optionref>fill_rate</optionref>. This
+value is express in ticks.
+ </description>
+ </key>
+ <key name="tokens">
+ <description>
+Initial bucket contents.
+ </description>
+ </key>
+ <key name="tokens-min">
+ <description>
+The minimum amount of tokens required to unhold processes
+ </description>
+ </key>
+ <key name="tokens-max">
+ <description>
+The bucket size.
+ </description>
+ </key>
+ <key name="priority-bias">
+ <description>
+???
+ </description>
+ </key>
+ </keys>
+ </hash>
+ <scalar name="name">
+ <description>
+Contains the name of the vserver. When not given, the basename of the directory
+will be assumed as this name.
+ </description>
+ </scalar>
+ <scalar name="nice">
+ <description>
+The nice-level on which the vserver will be started.
+ </description>
+ </scalar>
+ <list name="capabilities">
+ <description>
+Contains per line a capability. This file is used for the 2.4 kernel
+only; for 2.6 use <optionref>bcapabilities</optionref>.
+ </description>
+ </list>
+ <scalar name="shell">
+ <description>
+Contains the pathname of the shell which will be used by the "vserver
+... enter" command.
+ </description>
+ </scalar>
+ <list name="personality">
+ <description>
+Used to set the personality of the vserver. First line in the file
+is the personality-type followed by flags (one item per line). See
+<filename>/usr/include/linux/personality.h</filename> for possible
+values.
+ </description>
+ </list>
+ <list name="flags">
+ <description>
+Contains per line a flag. See <ulink
+url="http://savannah.nongnu.org/cgi-bin/viewcvs/util-vserver/util-vserver/lib/cflags-v13.c?rev=HEAD">lib/cflags-v13.c</ulink>
+for possible values.
+ </description>
+ <elements>
+ <element name="fakeinit">
+ <description>
+The new process will believe it is process number 1. Useful to run a
+real /sbin/init in a vserver. Warning: this flag should not be used
+unless you know what you are doing. Often, it is better to use the
+'plain' initstyle.
+ </description>
+ </element>
+ <element name="lock">
+ <description>
+The new process is trapped and can't use chcontext anymore.
+ </description>
+ </element>
+ <element name="sched">
+ <description>
+The new process and its children will share a common
+ </description>
+ </element>
+ <element name="nproc">
+ <description>
+Limit the number of process in the vserver according to
+ulimit setting. Normally, ulimit is a per user thing.
+With this flag, it becomes a per vserver thing.
+ </description>
+ </element>
+ <element name="private">
+ <description>
+No one can join this security context once created.
+ </description>
+ </element>
+ <element name="ulimit">
+ <description>
+Apply the current ulimit to the whole context
+ </description>
+ </element>
+ </elements>
+ </list>
+ <scalar name="context">
+ <description>
+Contains the context which shall be used for the vserver.
+ </description>
+ </scalar>
+ <data id="fstab" name="fstab">
+ <description>
+The fstab file for the vserver. Entries in this file will be mounted
+within the network context of the host. Use the
+<optionref>fstab.remote</optionref> file when you want that the
+mounting happens in the network context of the vserver. In most cases
+the 'fstab' file should be used.
+ </description>
+ </data>
+ <data id="fstab.remote" name="fstab.remote">
+ <description>
+The fstab file for the vserver. Entries in this file will be mounted
+within the network context of the host; this means that mount will be
+called as <command>chbind <options> mount ...</command>. See
+<optionref>fstab</optionref> also.
+ </description>
+ </data>
+
+ <collection name="apps">
+ <collection name="init">
+ <data name="mtab">
+ <description>
+The initial-mtab which will be used for the vserver.
+ </description>
+ </data>
+
+ <scalar name="style">
+ <description>
+Contains the init-style.
+ </description>
+ <restriction>
+ <enumeration value="sysv"/>
+ <enumeration value="plain"/>
+ <enumeration value="minit"/>
+ <enumeration value="gento"/>
+ </restriction>
+ </scalar>
+
+ <scalar name="runlevel">
+ <description>The start runlevel.</description>
+ </scalar>
+
+ <scalar name="runlevel.start">
+ <description>The start runlevel.</description>
+ </scalar>
+
+ <scalar name="runlevel.stop">
+ <description>The stop runlevel.</description>
+ </scalar>
+
+ <scalar name="killseq">
+ <description>
+Contains the 'signal [wait signal]*' sequence which is used to stop
+the vserver.
+ </description>
+ </scalar>
+
+ <list name="cmd.start">
+ <description>
+The command which is used to start the vserver. Each option must be on
+a separate line.
+ </description>
+ </list>
+
+ <list name="cmd.start-sync">
+ <description>
+The command which is used to wait on the vserver after it has been
+started. Each option must be on a separate line. This file will be
+ignored when the <optionref>sync</optionref> flag does not exist and the
+'--sync' option was not used.
+ </description>
+ </list>
+
+ <list name="cmd.stop">
+ <description>
+The command which is used to stop the vserver. Each option must be on
+a separate line.
+ </description>
+ </list>
+
+ <list name="cmd.stop-sync">
+ <description>
+The command which is used to wait on the vserver after it has been
+stopped. Each option must be on a separate line. This file will be
+ignored when the <optionref>sync</optionref> flag does not exist and the
+'--sync' option was not used.
+ </description>
+ </list>
+
+ <list name="cmd.prepare">
+ <description>
+The command which is used to setup the init-system (e.g. to set the
+runlevel in the utmp-file). Each option must be on a separate line.
+ </description>
+ </list>
+
+ <boolean id="sync" name="sync">
+ <description>
+If this file is not present, all 'cmd.*-sync files will be ignored.
+ </description>
+ </boolean>
+
+ <link name="tty">
+ <description>
+A symlink to the TTY device where input/output will be redirected
+from/to at startup via initscript.
+ </description>
+ </link>
+
+ <scalar name="mark">
+ <description>
+This file is used to mark group of vservers which shall be started/stopped
+together by the initscript. Content is a simple string like 'default'.
+ </description>
+ </scalar>
+
+ <list name="depends">
+ <description>
+This file is used to configure vservers which must be running before
+the current vserver can be started. At shutdown, the current vserver
+will be stopped before its dependencies. Content of this file are
+vserver ids (one name per line).
+ </description>
+ </list>
+ </collection>
+
+ <collection name="vshelper">
+ <scalar name="sync-timeout">
+ <default>30</default>
+ <description>
+The timeout in seconds which is used when synchronising vserver
+startup/shutdown with the vshelper. When no set, 30 seconds will be
+assumed.
+ </description>
+ </scalar>
+
+ <scalar name="action">
+ <default>restart</default>
+ <description>
+The action which is going to be executed when a vshelper event
+occurs. The default value is 'restart', but there can be defined own
+methods by placing scripts into the
+<optionref>vshelper-methods</optionref> directories. These scripts are
+fed with the same arguments as the <tool>vshelper</tool> script.
+ </description>
+ </scalar>
+
+ <program name="event" type="symbolic">
+ <description>
+When existing, these scripts will be executed *instead* of the default
+handler defined in 'action'. Their name must match the event which caused
+the execution of <tool>vshelper</tool>; e.g. 'restart' or 'poweroff'. See
+the vs_reboot() function in the kernel for more details.
+ </description>
+ <parameterList>
+ <parameter name="xid">
+ <description>
+The xid of the context calling the vshelper
+ </description>
+ </parameter>
+ <parameter name="event">
+ <description>
+The reboot-event.
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+
+ <boolean name="disabled">
+ <description>
+When existing, the vshelper functionality will be disabled for this
+vserver.
+ </description>
+ </boolean>
+
+ <boolean name="debug">
+ <description>
+When existing, the vshelper execution will be traced for this vserver.
+ </description>
+ </boolean>
+
+ <boolean name="warning-disabled">
+ <description>
+When existing, sanity checks for the vshelper functionality will be
+skipped.
+ </description>
+ </boolean>
+
+ </collection>
+
+ <collection id="vshelper-methods" name="vshelper-methods">
+ <program name="handler" type="symbolic">
+ <description>
+See vshelper/action.
+ </description>
+ </program>
+ </collection>
+
+ <collection name="vunify">
+ <description>
+This directory contains configuration data required for vserver
+unification.
+ </description>
+
+ <list name="exclude">
+ <description>
+<p>Static list of files which are excluded for unification. This list
+supports an rsync-like syntax: when a file is prefixed by '+', it is a
+candidate for unification; when there is no prefix or a '-' or a '~' it
+will be excluded. Shell-wildcards are allowed for the filenames.</p>
+<p>When used with <tool>vcopy</tool>, the '~' prefix prevents copying
+of the file entirely (e.g. for keyfiles). With this tool, the file will
+be copied instead of hardlinked when the '-' prefix is used.</p>
+ </description>
+ </list>
+
+ <link name="refserver.X" type="symbolic">
+ <description>
+These are symlinks to the configuration directory
+(e.g. CONFDIR/vservers/<id>) of a refserver. There may be
+multiple such symlinks but they must be prefixed by 'refserver.' and
+will be processed in alphanumerical order.
+ </description>
+ </link>
+
+ <collection name="hash" since="0.30.205">
+ <description>
+A directory which will be used as the storage place for the
+<tool>vhashify</tool> command.
+ </description>
+ <link name="id" type="symbolic">
+ <description>
+Points to a directory within the filesystems which are used for the
+vservers. There must be not more than one of such a directory per
+filesystem.
+ </description>
+ </link>
+
+ <scalar name="method" since="0.30.299">
+ <default>SHA1</default>
+ <description>The used hash method.</description>
+ </scalar>
+ </collection>
+
+ <boolean name="pkgmgmt-ignore" default="off" since="0.30.205">
+ <description>
+When existing, information from packagemanagement will not be used to
+create dynamic exclude-lists.
+ </description>
+ </boolean>
+
+ <boolean name="pgkmgmt-force" default="off" since="0.30.205">
+ <description>
+When existing, information from packagemanagement will be used to
+create dynamic exclude-lists. This option requires that (a known)
+packagemanagement is configured for the vserver; else the requested
+operation will fail. Most tools assume 'on' as the default value.
+ </description>
+ </boolean>
+
+ </collection>
+ </collection>
+
+ <collection name="scripts">
+ <description>
+A directory for scripts. By default, when one of these scripts will be
+executed, the execution of defaultscripts (within .../.defaults/scripts)
+will be skipped. To execute them nevertheless, the $DONT_SKIP_DEFAULTS
+environment variable must be set by one of the in-shellcontext scripts
+(the non-executable ones).
+ </description>
+
+ <program name="prepre-start">
+ <description>
+The scriptlet which will be executed before the network-interfaces are
+enabled and the directories are mounted. Before executing the script,
+the configuration directory will be made the working directory.
+ </description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>
+The configuration directory of the current vserver.
+ </description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>
+The name of the current vserver.
+ </description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ <collection name="prepre-start.d">
+ <description>
+Repository of prepre-start like scripts. Before executing the script,
+the configuration directory will be made the working directory.
+ </description>
+ <program name="script" type="symbolic">
+ <description>See prepre-start.</description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>
+The configuration directory of the current vserver.
+ </description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>
+The name of the current vserver.
+ </description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ </collection>
+
+ <program name="pre-start">
+ <description>
+The scriptlet which will be executed after network-interfaces were
+enabled and the directories mounted, but before the vserver itself has
+been started. Before executing the script, the vserver root directory
+will be made the working directory.
+ </description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>
+The configuration directory of the current vserver.
+ </description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>
+The name of the current vserver.
+ </description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ <collection name="pre-start.d">
+ <description>
+Repository of pre-start like scripts. Before executing these scripts,
+the vserver root directory will be made the working directory.
+ </description>
+ <program name="script" type="symbolic">
+ <description>See pre-start.</description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>
+The configuration directory of the current vserver.
+ </description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>The name of the current vserver.</description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ </collection>
+
+
+ <program name="post-start">
+ <description>
+The scriptlet which will be executed after the vserver has been
+started. Before executing the script, the vserver root directory
+will be made the working directory.
+ </description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>The configuration directory of the current vserver.</description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>The name of the current vserver.</description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ <collection name="post-start.d">
+ <description>
+Repository of post-start like scripts. Before executing these scripts,
+the vserver root directory will be made the working directory.
+ </description>
+ <program name="script" type="symbolic">
+ <description>See post-start.</description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>The configuration directory of the current vserver.</description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>The name of the current vserver.</description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ </collection>
+
+
+ <program name="pre-stop">
+ <description>
+The scriptlet which will be executed before the vserver will be
+stopped. Before executing the script, the vserver root directory
+will be made the working directory.
+ </description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>The configuration directory of the current vserver.</description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>The name of the current vserver.</description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ <collection name="pre-stop.d">
+ <description>
+Repository of pre-stop like scripts. Before executing the script, the
+vserver root directory will be made the working directory.
+ </description>
+ <program name="script" type="symbolic">
+ <description>See pre-stop.</description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>The configuration directory of the current vserver.</description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>The name of the current vserver.</description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ </collection>
+
+ <program name="post-stop">
+ <description>
+The scriptlet which will be executed after the vserver has been
+stopped, but before the directories will be umounted and the the
+interfaces disabled. Before executing the script, the vserver root
+directory will be made the working directory.
+ </description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>The configuration directory of the current vserver.</description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>The name of the current vserver.</description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ <collection name="post-stop.d">
+ <description>
+Repository of post-stop like scripts. Before executing the script, the
+vserver root directory will be made the working directory.
+ </description>
+ <program name="script" type="symbolic">
+ <description>See post-stop.</description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>The configuration directory of the current vserver.</description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>The name of the current vserver.</description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ </collection>
+
+ <program name="postpost-stop">
+ <description>
+The scriptlet which will be executed after the vserver has been stopped
+completely. Before executing the script, the vserver root directory
+will be made the working directory.
+ </description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>The configuration directory of the current vserver.</description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>The name of the current vserver.</description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ <collection name="postpost-stop.d">
+ <description>
+Repository of postpost-stop like scripts. Before executing the script,
+the vserver root directory will be made the working directory.
+ </description>
+ <program name="script" type="symbolic">
+ <description>See postpost-stop.</description>
+ <parameterList>
+ <parameter name="vserver-dir">
+ <description>The configuration directory of the current vserver.</description>
+ </parameter>
+ <parameter name="vserver-name">
+ <description>The name of the current vserver.</description>
+ </parameter>
+ <parameter name="action">
+ <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+ </description>
+ </parameter>
+ </parameterList>
+ </program>
+ </collection>
+ </collection>
+
+ <collection name="interfaces">
+ <scalar name="bcast">
+ <description>The default broadcast address.</description>
+ </scalar>
+ <scalar name="dev">
+ <description>The default network device.</description>
+ </scalar>
+ <scalar name="prefix">
+ <description>The default network prefix-length.</description>
+ </scalar>
+ <scalar name="mask">
+ <description>The default network mask.</description>
+ </scalar>
+ <scalar name="scope">
+ <description>The default scope of the network interfaces.</description>
+ </scalar>
+
+ <collection name="iface" type="symbolic">
+ <description>
+'iface' is an arbitrary name for the interface; the value itself is
+not important but may be interesting regarding interface-creation and
+usage with <tool>chbind</tool>. Both happens in alphabetical order and
+numbers like '00' are good names for these directories.
+ </description>
+
+ <boolean name="disabled">
+ <description>When this file exists, this interface will be ignored.</description>
+ </boolean>
+
+ <scalar name="ip">
+ <description>The ip which will be assigned to this interface.</description>
+ </scalar>
+ <scalar name="bcast">
+ <description>The broadcast address.</description>
+ </scalar>
+ <scalar name="dev">
+ <description>The network device.</description>
+ </scalar>
+ <scalar name="prefix">
+ <description>The network prefix-length.</description>
+ </scalar>
+ <scalar name="mask">
+ <description>The network mask.</description>
+ </scalar>
+ <scalar name="scope">
+ <description>The scope of the network interface.</description>
+ </scalar>
+ <scalar name="name">
+ <description>
+When this file exists, the interface will be named with the text in
+this file. Without such an entry, the IP will not be shown by
+<tool>ifconfig</tool> but by <command>ip addr ls</command> only. Such
+a labeled interface is known as an "alias" also (e.g. 'eth0:foo').
+ </description>
+ </scalar>
+ <boolean name="nodev">
+ <description>
+When this file exists, the interface will be assumed to exist
+already. This can be used to assign primary interfaces which are
+created by the host or another vserver.
+ </description>
+ </boolean>
+ </collection>
+ </collection>
+
+ <collection name="ulimits">
+ <description>
+A directory with ulimits. Possible resources are cpu, data, fsize,
+locks, memlock, nofile, nproc, rss and/or stack. This configuration
+will be honored for kernel 2.4 only.
+ </description>
+ <scalar name="resource" type="symbolic">
+ <description>
+A file which contains the hard- and soft-limit of the given resource
+in the first line. The special keyword 'inf' is recognized.
+ </description>
+ </scalar>
+ <scalar name="resource.hard" type="symbolic">
+ <description>
+A file which contains the hard- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+ </description>
+ </scalar>
+ <scalar name="resource.soft" type="symbolic">
+ <description>
+A file which contains the soft- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+ </description>
+ </scalar>
+ </collection>
+
+ <collection name="rlimits">
+ <description>
+A directory with resource limits. Possible resources are cpu, fsize,
+data, stack, core, rss, nproc, nofile, memlock, as and locks. This
+configuration will be honored for kernel 2.6 only.
+ </description>
+ <scalar name="resource" type="symbolic">
+ <description>
+A file which contains the hard- and soft-limit of the given resource
+in the first line. The special keyword 'inf' is recognized.
+ </description>
+ </scalar>
+ <scalar name="resource.hard" type="symbolic">
+ <description>
+A file which contains the hard- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+ </description>
+ </scalar>
+ <scalar name="resource.soft" type="symbolic">
+ <description>
+A file which contains the soft- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+ </description>
+ </scalar>
+ <scalar name="resource.min" type="symbolic">
+ <description>
+A file which contains the guaranted minimum of the given resource in
+the first line. The special keyword 'inf' is recognized.
+ </description>
+ </scalar>
+ </collection>
+
+ <collection name="uts">
+ <scalar name="context">
+ <description>
+The context-name of the vserver. This file is listed for completeness
+only; the 'context' name is used and set internally by the util-vserver
+tools and can *not* be modified.
+ </description>
+ </scalar>
+ <scalar name="sysname">
+ <description>The sysname of the vserver</description>
+ </scalar>
+ <scalar name="nodename">
+ <description>The node-/hostname of the vserver</description>
+ </scalar>
+ <scalar name="release">
+ <description>The OS-release of the vserver</description>
+ </scalar>
+ <scalar name="version">
+ <description>The OS-version of the vserver</description>
+ </scalar>
+ <scalar name="machine">
+ <description>The machine-type of the vserver</description>
+ </scalar>
+ <scalar name="domainname">
+ <description>The NIS domainname of the vserver</description>
+ </scalar>
+ </collection>
+ </collection>
+ </database>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+<xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Filesystem Database schema writen by Olivier Poitrey on 4/20/2004
+ Version $Id: configuration.xsd,v 1.1 2004/04/22 19:24:05 ensc Exp $
+ </xsd:documentation>
+</xsd:annotation>
+
+<xsd:group name="commonElements">
+ <xsd:sequence>
+ <xsd:element name="description" type="xsd:normalizedString" minOccurs="0"/>
+ </xsd:sequence>
+</xsd:group>
+
+<xsd:attributeGroup name="commonAttributes">
+ <xsd:attribute name="name" type="xsd:token" use="required"/>
+ <xsd:attribute name="type" default="fixed">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="fixed"/>
+ <xsd:enumeration value="symbolic"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="use" default="required">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="optional"/>
+ <xsd:enumeration value="required"/>
+ <xsd:enumeration value="prohibited"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+</xsd:attributeGroup>
+
+<xsd:simpleType name="quantityType">
+ <xsd:union memberTypes="xsd:unsignedInt">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="unbounded"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:union>
+</xsd:simpleType>
+
+<xsd:complexType name="baseItem" abstract="true">
+ <xsd:sequence>
+ <xsd:group ref="commonElements"/>
+ </xsd:sequence>
+ <xsd:attributeGroup ref="commonAttributes"/>
+</xsd:complexType>
+
+<xsd:complexType name="baseNode" abstract="true">
+ <xsd:sequence>
+ <xsd:group ref="commonElements"/>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="collection" type="collectionType">
+ <xsd:unique name="collection">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Avoid duplicate element with same name attribute on the same level tree
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:selector xpath="*"/>
+ <xsd:field xpath="@name"/>
+ </xsd:unique>
+ </xsd:element>
+ <xsd:element name="scalar" type="scalarType"/>
+ <xsd:element name="list" type="listType"/>
+ <xsd:element name="hash" type="hashType"/>
+ <xsd:element name="boolean" type="booleanType"/>
+ <xsd:element name="data" type="dataType"/>
+ <xsd:element name="link" type="linkType"/>
+ <xsd:element name="program" type="programType"/>
+ </xsd:choice>
+ </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="collectionType">
+ <xsd:complexContent>
+ <xsd:extension base="baseNode">
+ <xsd:attributeGroup ref="commonAttributes"/>
+ </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="scalarType">
+ <xsd:complexContent>
+ <xsd:extension base="baseItem">
+ <xsd:sequence>
+ <xsd:element name="default" type="xsd:normalizedString" minOccurs="0"/>
+ <xsd:element name="restriction" minOccurs="0">
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element name="enumeration" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:attribute name="value" type="xsd:normalizedString"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="listType">
+ <xsd:complexContent>
+ <xsd:extension base="baseItem">
+ <xsd:sequence>
+ <xsd:element name="minElements" type="quantityType" minOccurs="0" default="0"/>
+ <xsd:element name="maxElements" type="quantityType" minOccurs="0" default="unbounded"/>
+ <xsd:element name="elements" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="element" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:group ref="commonElements"/>
+ <xsd:element name="default" type="xsd:boolean" minOccurs="0" default="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="hashType">
+ <xsd:complexContent>
+ <xsd:extension base="baseItem">
+ <xsd:sequence>
+ <xsd:element name="keys" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="key" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:group ref="commonElements"/>
+ <xsd:element name="default" type="xsd:normalizedString" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="booleanType">
+ <xsd:complexContent>
+ <xsd:extension base="baseItem">
+ <xsd:sequence>
+ <xsd:element name="default" type="xsd:boolean" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="dataType">
+ <xsd:complexContent>
+ <xsd:extension base="baseItem">
+ <xsd:sequence>
+ <xsd:element name="default" type="xsd:string" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="linkType">
+ <xsd:complexContent>
+ <xsd:extension base="baseItem">
+ <xsd:sequence>
+ <xsd:element name="default" type="xsd:token" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="programType">
+ <xsd:complexContent>
+ <xsd:extension base="baseItem">
+ <xsd:sequence>
+ <xsd:element name="parameterList" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="parameter" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:group ref="commonElements"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<!-- root element -->
+<xsd:element name="database">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="baseNode"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:unique name="database">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Avoid duplicate element with same name attribute on the same level tree
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:selector xpath="*"/>
+ <xsd:field xpath="@name"/>
+ </xsd:unique>
+</xsd:element>
+
+</xsd:schema>
--- /dev/null
+## $Id: Makefile-files,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- makefile -*--
+
+## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+
+ensc_fmt_SRCS = \
+ ensc_fmt/fmt-32.c \
+ ensc_fmt/fmt-64.c \
+ ensc_fmt/fmtx-32.c \
+ ensc_fmt/fmtx-64.c \
+ ensc_fmt/fmt-tai64n.c \
+ ensc_fmt/fmt.h \
+ ensc_fmt/fmt.hc \
+ ensc_fmt/fmtx.hc \
+ ensc_fmt/fmt-internal.h
--- /dev/null
+// $Id: fmt-32.c,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#define FMT_BITSIZE 32
+#include "fmt.hc"
+
+#if __WORDSIZE==FMT_BITSIZE
+size_t FMT_P(ulong_base)(char *ptr, unsigned long val, char base) ALIASFUNC(uint32_base);
+size_t FMT_P( long_base)(char *ptr, long val, char base) ALIASFUNC( int32_base);
+#endif
+
+size_t FMT_P(uint_base)(char *ptr, unsigned int val, char base) ALIASFUNC(uint32_base);
+size_t FMT_P( int_base)(char *ptr, int val, char base) ALIASFUNC( int32_base);
--- /dev/null
+// $Id: fmt-64.c,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#define FMT_BITSIZE 64
+#include "fmt.hc"
+
+#if __WORDSIZE==64
+size_t FMT_P(ulong_base)(char *ptr, unsigned long val, char base) ALIASFUNC(uint64_base);
+size_t FMT_P( long_base)(char *ptr, long val, char base) ALIASFUNC( int64_base);
+#endif
--- /dev/null
+// $Id: fmt-internal.h,v 1.2 2004/08/19 13:53:54 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_FMT_COMMON_H
+#define H_UTIL_VSERVER_LIB_FMT_COMMON_H
+
+#define DIGITS "0123456789abcdefghijklmnopqrstuvwxyz"
+
+#define FMT_P__(X,Y) X ## Y
+#define FMT_P_(X,Y) FMT_P__(X,Y)
+#define FMT_P(X) FMT_P_(FMT_PREFIX, X)
+
+#define CONCAT__(x,y,z) x ## y ## z
+#define CONCAT_(x,y,z) CONCAT__(x,y,z)
+#define CONCAT(x,z) CONCAT_(x, FMT_BITSIZE, z)
+
+#define FMT_FN(BASE,SZ) \
+ do { \
+ register __typeof__(val) v = val; \
+ register size_t l = 0; \
+ \
+ if (ptr==0) { \
+ do { \
+ ++l; \
+ v /= BASE; \
+ } while (v!=0); \
+ } \
+ else { \
+ char buf[sizeof(val)*SZ]; \
+ \
+ do { \
+ register unsigned int d = v%BASE; \
+ v /= BASE; \
+ ++l; \
+ buf[sizeof(buf)-l] = DIGITS[d]; \
+ } while (v!=0); \
+ \
+ memcpy(ptr, buf+sizeof(buf)-l, l); \
+ } \
+ \
+ return l; \
+ } while (0)
+
+
+#endif // H_UTIL_VSERVER_LIB_FMT_COMMON_H
--- /dev/null
+// $Id: fmt-tai64n.c,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "fmt.h"
+#include "fmt-internal.h"
+
+#include <sys/time.h>
+#include <string.h>
+#include <assert.h>
+
+size_t
+FMT_P(tai64n)(char *buf, struct timeval const *now)
+{
+ uint64_t tai_secs = 1ll << 62;
+ char * ptr = buf;
+ size_t l;
+
+ tai_secs += now->tv_sec;
+ *ptr++ = '@';
+
+ l = FMT_P(xuint64)(ptr, tai_secs); // always 16 bytes
+ assert(l==16);
+ ptr += 16;
+
+ memset(ptr, '0', 8);
+ l = FMT_P(xuint32)(0, now->tv_usec*1000);
+ FMT_P(xuint32)(ptr+8-l, now->tv_usec*1000);
+
+ ptr += 8;
+
+ return ptr-buf;
+}
--- /dev/null
+// $Id: fmt.h,v 1.3 2005/03/17 14:46:19 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+/** \file fmt.h
+ * \brief Declarations for some fmt_* functions
+ */
+
+#ifndef H_ENSC_FMT_FMT_H
+#define H_ENSC_FMT_FMT_H
+
+#include <stdlib.h>
+#include <stdint.h>
+
+#ifndef FMT_PREFIX
+# define FMT_PREFIX fmt_
+#endif
+
+#define FMT_P__(X,Y) X ## Y
+#define FMT_P_(X,Y) FMT_P__(X,Y)
+#define FMT_P(X) FMT_P_(FMT_PREFIX, X)
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+size_t FMT_P(xuint64)(char *ptr, uint_least64_t val);
+size_t FMT_P( xint64)(char *ptr, int_least64_t val);
+
+size_t FMT_P(xuint32)(char *ptr, uint_least32_t val);
+size_t FMT_P( xint32)(char *ptr, int_least32_t val);
+
+size_t FMT_P(uint64_base)(char *ptr, uint_least64_t val, char base);
+size_t FMT_P( int64_base)(char *ptr, int_least64_t val, char base);
+
+size_t FMT_P(uint32_base)(char *ptr, uint_least32_t val, char base);
+size_t FMT_P( int32_base)(char *ptr, int_least32_t val, char base);
+
+size_t FMT_P(ulong_base)(char *ptr, unsigned long val, char base);
+size_t FMT_P( long_base)(char *ptr, long val, char base);
+size_t FMT_P(xulong) (char *ptr, unsigned long val);
+size_t FMT_P( xlong) (char *ptr, long val);
+
+size_t FMT_P(uint_base)(char *ptr, unsigned int val, char base);
+size_t FMT_P( int_base)(char *ptr, int val, char base);
+size_t FMT_P(xuint) (char *ptr, unsigned int val);
+size_t FMT_P( xint) (char *ptr, int val);
+
+struct timeval;
+size_t FMT_P(tai64n)(char *ptr, struct timeval const *now);
+
+inline static size_t
+FMT_P(uint64)(char *ptr, uint_least64_t val)
+{
+ return FMT_P(uint64_base)(ptr, val, 10);
+}
+
+inline static size_t
+FMT_P(int64)(char *ptr, uint_least64_t val)
+{
+ return FMT_P(int64_base)(ptr, val, 10);
+}
+
+inline static size_t
+FMT_P(uint32)(char *ptr, uint_least32_t val)
+{
+ return FMT_P(uint32_base)(ptr, val, 10);
+}
+
+inline static size_t
+FMT_P(int32)(char *ptr, uint_least32_t val)
+{
+ return FMT_P(int32_base)(ptr, val, 10);
+}
+
+inline static size_t
+FMT_P(ulong)(char *ptr, unsigned long val)
+{
+ return FMT_P(ulong_base)(ptr, val, 10);
+}
+
+inline static size_t
+FMT_P(long)(char *ptr, long val)
+{
+ return FMT_P(long_base)(ptr, val, 10);
+}
+
+
+inline static size_t
+FMT_P(uint)(char *ptr, unsigned int val)
+{
+ return FMT_P(uint_base)(ptr, val, 10);
+}
+
+inline static size_t
+FMT_P(int)(char *ptr, int val)
+{
+ return FMT_P(int_base)(ptr, val, 10);
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#undef FMT_P
+#undef FMT_P_
+#undef FMT_P__
+
+#endif // H_ENSC_FMT_FMT_H
--- /dev/null
+// $Id: fmt.hc,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "fmt.h"
+#include "fmt-internal.h"
+#include <string.h>
+
+#define STRINGIFY_(X) #X
+#define STRINGIFY(X) STRINGIFY_(X)
+#define ALIASFUNC(X) __attribute__((__alias__(STRINGIFY(FMT_P(X)))))
+
+size_t
+CONCAT(FMT_P(uint),_base)(char *ptr, CONCAT(uint_least,_t) val, char base)
+{
+ if (base==16) return CONCAT(FMT_P(xuint),)(ptr,val);
+ FMT_FN(base,8);
+}
+
+size_t
+CONCAT(FMT_P(int),_base)(char *ptr,
+ CONCAT(int_least,_t) val, char base)
+{
+ size_t offset=0;
+ if (val<0) {
+ val = -val;
+ offset = 1;
+
+ if (ptr!=0)
+ *ptr++ = '-';
+ }
+
+ return CONCAT(FMT_P(uint),_base)(ptr, val, base) + offset;
+}
--- /dev/null
+// $Id: fmtx-32.c,v 1.2 2005/03/17 14:46:19 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#define FMT_BITSIZE 32
+#include "fmtx.hc"
+
+#if __WORDSIZE==FMT_BITSIZE
+size_t FMT_P(xulong)(char *ptr, unsigned long val) ALIASFUNC(xuint32);
+size_t FMT_P( xlong)(char *ptr, long val) ALIASFUNC( xint32);
+#endif
+
+size_t FMT_P(xuint) (char *ptr, unsigned int val) ALIASFUNC(xuint32);
+size_t FMT_P( xint) (char *ptr, int val) ALIASFUNC( xint32);
--- /dev/null
+// $Id: fmtx-64.c,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#define FMT_BITSIZE 64
+#include "fmtx.hc"
+
+#if __WORDSIZE==FMT_BITSIZE
+size_t FMT_P(xulong)(char *ptr, unsigned long val) ALIASFUNC(xuint64);
+size_t FMT_P( xlong)(char *ptr, long val) ALIASFUNC( xint64);
+#endif
--- /dev/null
+// $Id: fmtx.hc,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "fmt.h"
+#include "fmt-internal.h"
+#include <string.h>
+
+#define STRINGIFY_(X) #X
+#define STRINGIFY(X) STRINGIFY_(X)
+#define ALIASFUNC(X) __attribute__((__alias__(STRINGIFY(FMT_P(X)))))
+
+
+size_t
+CONCAT(FMT_P(xuint),)(char *ptr, CONCAT(uint_least,_t) val)
+{
+ FMT_FN(16,8);
+}
+
+size_t
+CONCAT(FMT_P(xint),)(char *ptr,
+ CONCAT(int_least,_t) val)
+{
+ size_t offset=0;
+ if (val<0) {
+ val = -val;
+ offset = 1;
+
+ if (ptr!=0)
+ *ptr++ = '-';
+ }
+
+ return CONCAT(FMT_P(xuint),)(ptr, val) + offset;
+}
--- /dev/null
+## $Id: Makefile-files,v 1.9 2005/07/03 09:12:31 ensc Exp $ --*- makefile -*--
+
+## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+
+ENSC_VECTOR_SRCS = ensc_vector/vector-clear.c \
+ ensc_vector/vector-foreach.c \
+ ensc_vector/vector-free.c \
+ ensc_vector/vector-init.c \
+ ensc_vector/vector-insert.c \
+ ensc_vector/vector-internal.h \
+ ensc_vector/vector-popback.c \
+ ensc_vector/vector-pushback.c \
+ ensc_vector/vector-resize.c \
+ ensc_vector/vector-resizeinternal.hc \
+ ensc_vector/vector-search.c \
+ ensc_vector/vector-searchselforg.c \
+ ensc_vector/vector-sort.c \
+ ensc_vector/vector-unique.c \
+ ensc_vector/vector-zeroend.c \
+ ensc_vector/list-at.c \
+ ensc_vector/list-add.c \
+ ensc_vector/list-free.c \
+ ensc_vector/list-init.c \
+ ensc_vector/list-insertinternal.c \
+ ensc_vector/list-internal.h \
+ ensc_vector/list-search.c \
+ ensc_vector/list-searchselforg.c
+
+ENSC_VECTOR_HDRS = ensc_vector/vector.h \
+ ensc_vector/vector.hc \
+ ensc_vector/list.h \
+ ensc_vector/list.hc
+
+
+libensc_vector_glibc_a_SOURCES = $(ENSC_VECTOR_SRCS)
+libensc_vector_glibc_a_CPPFLAGS = $(AM_CPPFLAGS)
+
+libensc_vector_diet_a_SOURCES = $(ENSC_VECTOR_SRCS)
+libensc_vector_diet_a_CPPFLAGS = $(AM_CPPFLAGS)
+
+ENSC_VECTOR_LIBS =
+
+if ENSC_USE_GLIBC
+LIBENSCVECTOR_GLIBC = libensc_vector-glibc.a
+ENSC_VECTOR_LIBS += $(LIBENSCVECTOR_GLIBC)
+else
+LIBENSCVECTOR_GLIBC = lib-glibc-not-enabled-error.a
+endif
+
+if ENSC_USE_DIETLIBC
+LIBENSCVECTOR_DIET = libensc_vector-diet.a
+ENSC_VECTOR_LIBS += $(LIBENSCVECTOR_DIET)
+else
+LIBENSCVECTOR_DIET = lib-dietlibc-not-enabled-error.a
+endif
+
+
+if ENSC_USE_DIETLIBC
+LIBENSCVECTOR = $(LIBENSCVECTOR_DIET)
+else !ENSC_USE_DIETLIBC
+if ENSC_USE_GLIBC
+LIBENSCVECTOR = $(LIBENSCVECTOR_GLIBC)
+else !ENSC_USE_GLIBC
+LIBENSCVECTOR = lib-nolib-enabled-error.a
+endif !ENSC_USE_GLIBC
+endif !ENSC_USE_DIETLIBC
+
+CLEANFILES += libensc_vector-diet.a \
+ libensc_vector-glibc.a
+
+include $(srcdir)/ensc_vector/testsuite/Makefile-files
--- /dev/null
+// $Id: list-add.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "list.h"
+#include "list-internal.h"
+
+
+void *
+List_add(struct List *list, void const *data)
+{
+ return List_insertInternal(list, data, &list->root, 0)->data;
+}
--- /dev/null
+// $Id: list-at.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "list.h"
+#include "list-internal.h"
+
+void const *
+List_at_const(struct List const *l, size_t idx)
+{
+ struct ListItem const *itm = l->root;
+
+ for (; itm!=0 && idx>0; --idx)
+ itm = itm->next;
+
+ if (itm!=0) return itm->data;
+ else return 0;
+}
--- /dev/null
+// $Id: list-free.c,v 1.2 2005/03/19 02:03:30 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "list.h"
+#include "list-internal.h"
+
+void
+List_free(struct List *list)
+{
+ struct ListItem *itm;
+
+ for (itm = list->root; itm!=0; /* noop */)
+ {
+ struct ListItem *next = itm->next;
+
+ free(itm->data);
+#ifndef NDEBUG
+ itm->data = (void *)(0xdeadbeaf);
+#endif
+ free(itm);
+
+ itm = next;
+ }
+}
--- /dev/null
+// $Id: list-init.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "list.h"
+
+void
+List_init(struct List *list, size_t elem_size)
+{
+ list->root = 0;
+ list->count = 0;
+ list->elem_size = elem_size;
+}
--- /dev/null
+// $Id: list-insertinternal.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "list.h"
+#include "list-internal.h"
+
+#include <assert.h>
+#include <string.h>
+
+#define ENSC_WRAPPERS_STDLIB 1
+#include <wrappers.h>
+
+struct ListItem *
+List_insertInternal(struct List *list, void const *data,
+ struct ListItem **before_pos,
+ struct ListItem *after_pos)
+{
+ struct ListItem *item = Emalloc(sizeof(struct ListItem));
+
+ assert((before_pos!=0 || after_pos!=0) &&
+ (before_pos==0 || after_pos==0));
+
+ item->data = Emalloc(list->elem_size);
+ memcpy(item->data, data, list->elem_size);
+
+ if (before_pos!=0) {
+ item->next = *before_pos;
+ *before_pos = item;
+ }
+ else {
+ item->next = after_pos->next;
+ after_pos->next = item;
+ }
+
+ ++list->count;
+
+ return item;
+}
--- /dev/null
+// $Id: list-internal.h,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifndef H_UTILVSERVER_VECTOR_LIST_INTERNAL_H
+#define H_UTILVSERVER_VECTOR_LIST_INTERNAL_H
+
+struct ListItem
+{
+ void *data;
+ struct ListItem *next;
+};
+
+struct ListItem * List_insertInternal(struct List *list,
+ void const *data,
+ struct ListItem **before_pos,
+ struct ListItem *after_pos);
+
+#endif // H_UTILVSERVER_VECTOR_LIST_INTERNAL_H
--- /dev/null
+// $Id: list-search.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "list.h"
+#include "list-internal.h"
+
+void const *
+List_search(struct List const *list, void const *key,
+ int (*compare)(const void *, const void *))
+{
+ struct ListItem const *itm = list->root;
+
+ while (itm!=0 && compare(itm->data, key)!=0)
+ itm = itm->next;
+
+ if (itm!=0) return itm->data;
+ else return 0;
+}
--- /dev/null
+// $Id: list-searchselforg.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "list.h"
+#include "list-internal.h"
+
+#include <assert.h>
+#include <stdbool.h>
+
+void const *
+List_searchSelfOrg(struct List const *list, void const *key,
+ int (*compare)(const void *, const void *),
+ ListSelfOrgMethod method)
+{
+ struct List *list_v = (struct List *)(list);
+ struct ListItem **itm = &list_v->root;
+
+ switch (method) {
+ case listMOVE_FRONT :
+ while (*itm!=0 && compare((*itm)->data, key)!=0)
+ itm = &(*itm)->next;
+
+ if (*itm && *itm!=list->root) {
+ struct ListItem *res = *itm;
+
+ *itm = res->next;
+ res->next = list->root;
+ list_v->root = res;
+
+ itm = &list_v->root;
+ }
+ break;
+
+ case listSHIFT_ONCE :
+ if (*itm!=0 && compare((*itm)->data, key)!=0) {
+ while ((*itm)->next!=0 &&
+ compare((*itm)->next->data, key)!=0)
+ itm = &(*itm)->next;
+
+ if ((*itm)->next==0)
+ itm = &(*itm)->next;
+ else {
+ struct ListItem *res = (*itm)->next;
+
+ (*itm)->next = res->next;
+ res->next = *itm;
+ *itm = res;
+ }
+ }
+ break;
+
+ default : assert(false); return 0;
+ }
+
+ if (*itm!=0) return (*itm)->data;
+ else return 0;
+}
--- /dev/null
+// $Id: list.h,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifndef H_UTILVSERVER_VECTOR_LIST_H
+#define H_UTILVSERVER_VECTOR_LIST_H
+
+#include <stdlib.h>
+
+struct ListItem;
+struct List
+{
+ struct ListItem *root;
+ size_t count;
+ size_t elem_size;
+};
+
+typedef enum { listMOVE_FRONT, listSHIFT_ONCE } ListSelfOrgMethod;
+
+void List_init(struct List *, size_t elem_size);
+void List_free(struct List *);
+void * List_add(struct List *, void const *key);
+void * List_at(struct List *, size_t idx);
+void const * List_at_const(struct List const *, size_t idx);
+
+void const * List_search(struct List const *, void const *key,
+ int (*compare)(const void *, const void *));
+
+void const * List_searchSelfOrg(struct List const *, void const *key,
+ int (*compare)(const void *, const void *),
+ ListSelfOrgMethod method);
+
+#endif // H_UTILVSERVER_VECTOR_LIST_H
--- /dev/null
+// $Id: list.hc,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+static inline UNUSED void *
+List_at(struct List *list, size_t idx)
+{
+ return (void *)(List_at_const(list, idx));
+}
--- /dev/null
+## $Id: Makefile-files,v 1.4 2005/03/18 00:13:50 ensc Exp $ --*- makefile -*--
+
+## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+
+check_PROGRAMS += ensc_vector/testsuite/test1 \
+ ensc_vector/testsuite/test2
+
+TESTS += ensc_vector/testsuite/test1 \
+ ensc_vector/testsuite/test2
+
+ensc_vector_testsuite_test1_SOURCES = ensc_vector/testsuite/test1.c
+ensc_vector_testsuite_test1_LDADD = $(LIBENSCVECTOR)
+
+ensc_vector_testsuite_test2_SOURCES = ensc_vector/testsuite/test2.c
+ensc_vector_testsuite_test2_LDADD = $(LIBENSCVECTOR)
--- /dev/null
+// $Id: test1.c,v 1.4 2005/03/17 14:49:01 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+#undef NDEBUG
+
+#include "ensc_vector/vector.h"
+#include <assert.h>
+#include <stdbool.h>
+
+int wrapper_exit_code = 2;
+
+static int
+cmp(void const *lhs_v, void const *rhs_v)
+{
+ int const * const lhs = lhs_v;
+ int const * const rhs = rhs_v;
+
+ return *lhs - *rhs;
+}
+
+struct Vector v;
+
+static void I(int val)
+{
+ *(int *)Vector_insert(&v, &val, cmp) = val;
+}
+
+static void P(int val)
+{
+ *(int *)Vector_pushback(&v) = val;
+}
+
+static int E(size_t idx)
+{
+ return ((int const *)Vector_begin_const(&v))[idx];
+}
+
+static int const * S(int val)
+{
+ return Vector_search_const(&v, &val, cmp);
+}
+
+static int const * S_F(int val)
+{
+ return Vector_searchSelfOrg(&v, &val, cmp, vecMOVE_FRONT);
+}
+
+static int const * S_S(int val)
+{
+ return Vector_searchSelfOrg(&v, &val, cmp, vecSHIFT_ONCE);
+}
+
+static bool CMP(int const *lhs, int val)
+{
+ return (lhs!=0 && val==*lhs) || (lhs==0 && val==-1);
+}
+
+int main()
+{
+ Vector_init(&v, sizeof(int));
+
+ I(0); I(1); I(2); I(3);
+ assert(Vector_count(&v)==4);
+ assert(E(0)==0 && E(1)==1 && E(2)==2 && E(3)==3);
+
+ // clear-test
+ Vector_clear(&v);
+ assert(Vector_count(&v)==0);
+ I(1);
+ assert(Vector_count(&v)==1);
+ assert(E(0)==1);
+
+
+ Vector_clear(&v);
+ I(3); I(0); I(2); I(1); I(5); I(4); I(7); I(6);
+ assert(Vector_count(&v)==8);
+ assert((E(0)==0 && E(1)==1 && E(2)==2 && E(3)==3 &&
+ E(4)==4 && E(5)==5 && E(6)==6 && E(7)==7));
+
+ assert(S(0) && *S(0)==0);
+
+
+ Vector_clear(&v);
+ assert(Vector_count(&v)==0);
+
+ P(3); P(0); P(2); P(1); P(5); P(4); P(7); P(6);
+ assert(Vector_count(&v)==8);
+ assert((E(0)==3 && E(1)==0 && E(2)==2 && E(3)==1 &&
+ E(4)==5 && E(5)==4 && E(6)==7 && E(7)==6));
+
+ Vector_sort(&v, cmp);
+ assert(Vector_count(&v)==8);
+ assert((E(0)==0 && E(1)==1 && E(2)==2 && E(3)==3 &&
+ E(4)==4 && E(5)==5 && E(6)==6 && E(7)==7));
+
+ Vector_popback(&v);
+ assert(Vector_count(&v)==7);
+ assert((E(0)==0 && E(1)==1 && E(2)==2 && E(3)==3 &&
+ E(4)==4 && E(5)==5 && E(6)==6));
+
+ Vector_unique(&v, cmp);
+ assert(Vector_count(&v)==7);
+ assert((E(0)==0 && E(1)==1 && E(2)==2 && E(3)==3 &&
+ E(4)==4 && E(5)==5 && E(6)==6));
+
+ Vector_clear(&v);
+ assert(Vector_count(&v)==0);
+
+ Vector_clear(&v);
+ P(3); P(7); P(0); P(2); P(1); P(2); P(5); P(4); P(5); P(7); P(6);
+ assert(Vector_count(&v)==11);
+ Vector_sort(&v, cmp);
+ assert(Vector_count(&v)==11);
+ assert((E(0)==0 && E(1)==1 && E(2)==2 && E(3)==2 &&
+ E(4)==3 && E(5)==4 && E(6)==5 && E(7)==5 &&
+ E(8)==6 && E(9)==7 && E(10)==7));
+
+ Vector_unique(&v, cmp);
+ assert(Vector_count(&v)==8);
+ assert((E(0)==0 && E(1)==1 && E(2)==2 && E(3)==3 &&
+ E(4)==4 && E(5)==5 && E(6)==6 && E(7)==7));
+
+ assert(CMP(S_F(0),0));
+ assert((E(0)==0 && E(1)==1 && E(2)==2 && E(3)==3 && E(4)==4 && E(5)==5 && E(6)==6 && E(7)==7));
+
+ assert(CMP(S_F(1),1));
+ assert((E(0)==1 && E(1)==0 && E(2)==2 && E(3)==3 && E(4)==4 && E(5)==5 && E(6)==6 && E(7)==7));
+
+ assert(CMP(S_F(7),7));
+ assert((E(0)==7 && E(1)==1 && E(2)==0 && E(3)==2 && E(4)==3 && E(5)==4 && E(6)==5 && E(7)==6));
+
+ assert(CMP(S_F(3),3));
+ assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==2 && E(5)==4 && E(6)==5 && E(7)==6));
+
+ assert(CMP(S_F(3),3));
+ assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==2 && E(5)==4 && E(6)==5 && E(7)==6));
+
+ assert(CMP(S_F(42), -1));
+ assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==2 && E(5)==4 && E(6)==5 && E(7)==6));
+
+
+ assert(CMP(S_S(6), 6));
+ assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==2 && E(5)==4 && E(6)==6 && E(7)==5));
+
+ assert(CMP(S_S(6), 6));
+ assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==2 && E(5)==6 && E(6)==4 && E(7)==5));
+
+ assert(CMP(S_S(6), 6));
+ assert((E(0)==3 && E(1)==7 && E(2)==1 && E(3)==0 && E(4)==6 && E(5)==2 && E(6)==4 && E(7)==5));
+
+ assert(CMP(S_S(7), 7));
+ assert((E(0)==7 && E(1)==3 && E(2)==1 && E(3)==0 && E(4)==6 && E(5)==2 && E(6)==4 && E(7)==5));
+
+ assert(CMP(S_S(7), 7));
+ assert((E(0)==7 && E(1)==3 && E(2)==1 && E(3)==0 && E(4)==6 && E(5)==2 && E(6)==4 && E(7)==5));
+
+ assert(CMP(S_S(42), -1));
+ assert((E(0)==7 && E(1)==3 && E(2)==1 && E(3)==0 && E(4)==6 && E(5)==2 && E(6)==4 && E(7)==5));
+
+
+ Vector_free(&v);
+
+ return 0;
+}
--- /dev/null
+// $Id: test2.c,v 1.2 2005/03/24 12:41:27 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#undef NDEBUG
+
+#include "ensc_vector/list.h"
+#include "ensc_vector/list-internal.h"
+
+#include <assert.h>
+#include <stdlib.h>
+#include <stdbool.h>
+
+int wrapper_exit_code = 2;
+
+static int
+cmp(void const *lhs_v, void const *rhs_v)
+{
+ int const * const lhs = lhs_v;
+ int const * const rhs = rhs_v;
+
+ return *lhs - *rhs;
+}
+
+struct List l;
+
+
+static void A(int val)
+{
+ int * res = List_add(&l, &val);
+
+ assert(*res == val);
+}
+
+static int const * S(int val)
+{
+ return List_search(&l, &val, cmp);
+}
+
+static int const * SSO_F(int val)
+{
+ return List_searchSelfOrg(&l, &val, cmp, listMOVE_FRONT);
+}
+
+static int const * SSO_S(int val)
+{
+ return List_searchSelfOrg(&l, &val, cmp, listSHIFT_ONCE);
+}
+
+static int P(size_t idx)
+{
+ int const *res = List_at_const(&l, idx);
+
+ assert(res!=0);
+ return *res;
+}
+
+static bool P0(size_t idx)
+{
+ return List_at_const(&l, idx) == 0;
+}
+
+static bool CMP(int const *lhs, int rhs)
+{
+ return (lhs!=0 && *lhs==rhs) || (lhs==0 && rhs==-1);
+}
+
+
+int main()
+{
+ List_init(&l, sizeof(int));
+
+ A(5); A(4); A(3); A(2); A(1); A(0);
+ assert(P(0)==0 && P(1)==1 && P(2)==2 && P(3)==3 && P(4)==4 && P(5)==5 && P0(6));
+
+ assert(CMP(S(5), 5) && CMP(S(2), 2) && CMP(S(0), 0));
+ assert(CMP(S(42),-1));
+
+ assert(CMP(SSO_F(5), 5));
+ assert(P(0)==5 && P(1)==0 && P(2)==1 && P(3)==2 && P(4)==3 && P(5)==4 && P0(6));
+
+ assert(CMP(SSO_F(5), 5));
+ assert(P(0)==5 && P(1)==0 && P(2)==1 && P(3)==2 && P(4)==3 && P(5)==4 && P0(6));
+
+ assert(CMP(SSO_F(0), 0));
+ assert(P(0)==0 && P(1)==5 && P(2)==1 && P(3)==2 && P(4)==3 && P(5)==4 && P0(6));
+
+ assert(CMP(SSO_F(4), 4));
+ assert(P(0)==4 && P(1)==0 && P(2)==5 && P(3)==1 && P(4)==2 && P(5)==3 && P0(6));
+
+ assert(CMP(SSO_F(5), 5));
+ assert(P(0)==5 && P(1)==4 && P(2)==0 && P(3)==1 && P(4)==2 && P(5)==3 && P0(6));
+
+ assert(CMP(SSO_F(42),-1));
+ assert(P(0)==5 && P(1)==4 && P(2)==0 && P(3)==1 && P(4)==2 && P(5)==3 && P0(6));
+
+
+
+ assert(CMP(SSO_S(3), 3));
+ assert(P(0)==5 && P(1)==4 && P(2)==0 && P(3)==1 && P(4)==3 && P(5)==2 && P0(6));
+
+ assert(CMP(SSO_S(3), 3));
+ assert(P(0)==5 && P(1)==4 && P(2)==0 && P(3)==3 && P(4)==1 && P(5)==2 && P0(6));
+
+ assert(CMP(SSO_S(5), 5));
+ assert(P(0)==5 && P(1)==4 && P(2)==0 && P(3)==3 && P(4)==1 && P(5)==2 && P0(6));
+
+ assert(CMP(SSO_S(4), 4));
+ assert(P(0)==4 && P(1)==5 && P(2)==0 && P(3)==3 && P(4)==1 && P(5)==2 && P0(6));
+
+ assert(CMP(SSO_S(0), 0));
+ assert(P(0)==4 && P(1)==0 && P(2)==5 && P(3)==3 && P(4)==1 && P(5)==2 && P0(6));
+
+ assert(CMP(SSO_S(0), 0));
+ assert(P(0)==0 && P(1)==4 && P(2)==5 && P(3)==3 && P(4)==1 && P(5)==2 && P0(6));
+
+ assert(CMP(SSO_S(0), 0));
+ assert(P(0)==0 && P(1)==4 && P(2)==5 && P(3)==3 && P(4)==1 && P(5)==2 && P0(6));
+
+ assert(CMP(SSO_S(42), -1));
+ assert(P(0)==0 && P(1)==4 && P(2)==5 && P(3)==3 && P(4)==1 && P(5)==2 && P0(6));
+
+ List_free(&l);
+
+ return EXIT_SUCCESS;
+}
--- /dev/null
+// $Id: vector-clear.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+#include <assert.h>
+
+void
+Vector_clear(struct Vector *vec)
+{
+ assert(vec!=0);
+ vec->count = 0;
+}
--- /dev/null
+// $Id: vector-foreach.c,v 1.1 2005/07/03 09:12:31 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+
+void
+Vector_foreach(struct Vector *vec, void (*func)(void *, void *), void *data)
+{
+ char * ptr = Vector_begin(vec);
+ char * const end = Vector_end(vec);
+ size_t const step = vec->elem_size;
+
+ for (; ptr<end; ptr += step)
+ func(ptr, data);
+}
--- /dev/null
+// $Id: vector-free.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+#include <assert.h>
+
+void
+Vector_free(struct Vector *vec)
+{
+ assert(vec!=0);
+ free(vec->data);
+
+#ifndef NDEBUG
+ vec->count = 0xdeadbeef;
+ vec->allocated = 0xdeadbeef;
+ vec->elem_size = 0xdeadbeef;
+ vec->data = (void *)(0xdeadbeef);
+#endif
+}
--- /dev/null
+// $Id: vector-init.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+#include <assert.h>
+
+void
+Vector_init(struct Vector *vec, size_t elem_size)
+{
+ assert(vec!=0);
+ assert(elem_size!=0);
+
+ vec->elem_size = elem_size;
+ vec->data = 0;
+ vec->count = 0;
+ vec->allocated = 0;
+}
--- /dev/null
+// $Id: vector-insert.c,v 1.2 2004/02/06 16:42:56 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+#include <string.h>
+
+void *
+Vector_insert(struct Vector *vec, void const *key,
+ int (*compare)(const void *, const void *))
+{
+ char * data;
+ char * end_ptr = Vector_pushback(vec);
+
+ for (data=vec->data; data<end_ptr; data += vec->elem_size) {
+ if (compare(key, data)<0) {
+ memmove(data+vec->elem_size, data,
+ (char *)(end_ptr) - (char *)(data));
+ return data;
+ }
+ }
+
+ return end_ptr;
+}
--- /dev/null
+// $Id: vector-internal.h,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_SRC_VECTOR_VECTOR_INTERNAL_H
+#define H_UTIL_VSERVER_SRC_VECTOR_VECTOR_INTERNAL_H
+
+#ifndef VECTOR_SET_THRESHOLD
+# define VECTOR_SET_THRESHOLD 20/16
+#endif
+
+#ifndef VECTOR_DEC_THRESHOLD
+# define VECTOR_DEC_THRESHOLD 24/16
+#endif
+
+
+
+#endif // H_UTIL_VSERVER_SRC_VECTOR_VECTOR_INTERNAL_H
--- /dev/null
+// $Id: vector-popback.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+#include <assert.h>
+
+void
+Vector_popback(struct Vector *vec)
+{
+ assert(vec->count>0);
+
+ if (vec->count>0) --vec->count;
+}
--- /dev/null
+// $Id: vector-pushback.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+#include "vector-resizeinternal.hc"
+
+void *
+Vector_pushback(struct Vector *vec)
+{
+ ++vec->count;
+ if (vec->allocated<vec->count)
+ Vector_resizeInternal(vec);
+
+ return (char *)(vec->data) + ((vec->count-1) * vec->elem_size);
+}
--- /dev/null
+// $Id: vector-resize.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+#include "vector-resizeinternal.hc"
+
+void
+Vector_resize(struct Vector *vec)
+{
+ if (vec->allocated * VECTOR_DEC_THRESHOLD > vec->count+1)
+ Vector_resizeInternal(vec);
+}
--- /dev/null
+// $Id: vector-resizeinternal.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector-internal.h"
+#include <assert.h>
+
+#define ENSC_WRAPPERS_STDLIB 1
+#include <wrappers.h>
+
+static void
+Vector_resizeInternal(struct Vector *vec)
+{
+ vec->allocated = vec->count * VECTOR_SET_THRESHOLD;
+ ++vec->allocated;
+
+ assert(vec->allocated >= vec->count);
+
+ vec->data = Erealloc(vec->data, vec->allocated * vec->elem_size);
+ assert(vec->data!=0);
+}
--- /dev/null
+// $Id: vector-search.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+
+#include <stdlib.h>
+#include <assert.h>
+
+
+void *
+Vector_search(struct Vector *vec, void const *key,
+ int (*compare)(const void *, const void *))
+{
+ if (vec->count==0) return 0;
+ assert(vec->data!=0);
+
+ return bsearch(key, vec->data, vec->count, vec->elem_size, compare);
+}
--- /dev/null
+// $Id: vector-searchselforg.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+#include "vector-internal.h"
+
+#include <string.h>
+#include <assert.h>
+#include <stdbool.h>
+
+void *
+Vector_searchSelfOrg(struct Vector *vec, void const *key,
+ int (*compare)(const void *, const void *),
+ VectorSelfOrgMethod method)
+{
+ char * const start_ptr = vec->data;
+ char * const end_ptr = start_ptr + vec->count*vec->elem_size;
+ char *ptr = start_ptr;
+
+ for (; ptr<end_ptr && compare(ptr, key)!=0; )
+ ptr += vec->elem_size;
+
+ if (end_ptr <= ptr) ptr = 0;
+ else if (start_ptr < ptr) {
+ char tmp[vec->elem_size];
+ memcpy(tmp, ptr, vec->elem_size);
+
+ assert(ptr >= start_ptr+vec->elem_size);
+
+ switch (method) {
+ case vecMOVE_FRONT :
+ memmove(start_ptr+vec->elem_size, start_ptr, ptr - start_ptr);
+
+ ptr = start_ptr;
+ break;
+
+ case vecSHIFT_ONCE :
+ memmove(ptr, ptr - vec->elem_size, vec->elem_size);
+ ptr -= vec->elem_size;
+ break;
+
+ default :
+ assert(false);
+ ptr = 0;
+ }
+
+ memcpy (ptr, tmp, vec->elem_size);
+ }
+
+ return ptr;
+}
+
--- /dev/null
+// $Id: vector-sort.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+
+#include <stdlib.h>
+#include <assert.h>
+
+void
+Vector_sort(struct Vector *vec, int (*compare)(const void *, const void *))
+{
+ if (vec->count==0) return;
+
+ qsort(vec->data, vec->count, vec->elem_size, compare);
+}
--- /dev/null
+// $Id: vector-unique.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+
+#include <assert.h>
+#include <string.h>
+
+ // TODO: do not iterate from begin to end but in the reverse direction. This should be more
+ // effective.
+void
+Vector_unique(struct Vector *vec, int (*compare)(const void *, const void *))
+{
+ size_t idx;
+
+ if (vec->count<2) return;
+
+ for (idx=0; idx+1<vec->count; ++idx) {
+ char *ptr = (char *)(vec->data) + idx*vec->elem_size;
+ char *next_ptr = ptr + vec->elem_size;
+ size_t next_idx = idx + 1;
+
+ while (next_idx<vec->count &&
+ compare(ptr, next_ptr)==0) {
+ ++next_idx;
+ next_ptr += vec->elem_size;
+ }
+
+ if (next_idx==vec->count)
+ vec->count = idx+1;
+ else if (next_idx-idx > 1) {
+ memmove(ptr + vec->elem_size,
+ next_ptr, (vec->count - next_idx)*vec->elem_size);
+ vec->count -= (next_idx-idx-1);
+ }
+ }
+}
+
--- /dev/null
+// $Id: vector-zeroend.c,v 1.1 2004/06/16 10:10:55 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vector.h"
+#include <string.h>
+
+
+void
+Vector_zeroEnd(struct Vector *vec)
+{
+ void * tmp;
+
+ if (vec->allocated <= vec->count) {
+ tmp = Vector_pushback(vec);
+ Vector_popback(vec);
+ }
+ else
+ tmp = Vector_end(vec);
+
+ memset(tmp, 0, vec->elem_size);
+}
--- /dev/null
+// $Id: vector.h,v 1.4 2005/07/03 09:12:31 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2002,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifndef H_UTILVSERVER_VECTOR_VECTOR_H
+#define H_UTILVSERVER_VECTOR_VECTOR_H
+
+#include <stdlib.h>
+
+struct Vector
+{
+ void *data;
+ size_t count;
+ size_t allocated;
+
+ size_t elem_size;
+};
+
+typedef enum { vecMOVE_FRONT, vecSHIFT_ONCE } VectorSelfOrgMethod;
+
+void Vector_init(struct Vector *, size_t elem_size);
+void Vector_free(struct Vector *);
+void * Vector_search(struct Vector *, void const *key, int (*compar)(const void *, const void *));
+void * Vector_searchSelfOrg(struct Vector *, void const *key,
+ int (*compar)(const void *, const void *),
+ VectorSelfOrgMethod method);
+void Vector_sort(struct Vector *, int (*compar)(const void *, const void *));
+void Vector_unique(struct Vector *, int (*compar)(const void *, const void *));
+void * Vector_pushback(struct Vector *);
+void * Vector_insert(struct Vector *, void const *key, int (*compar)(const void *, const void *));
+void Vector_popback(struct Vector *);
+void Vector_resize(struct Vector *vec);
+void Vector_clear(struct Vector *vec);
+void Vector_zeroEnd(struct Vector *vec);
+void Vector_foreach(struct Vector *vec, void (*func)(void *, void *), void *);
+
+static void Vector_foreach_const(struct Vector const *vec,
+ void (*func)(void const *, void *),
+ void *);
+static void const * Vector_searchSelfOrg_const(struct Vector const *, void const *key,
+ int (*compar)(const void *, const void *),
+ VectorSelfOrgMethod method);
+static void const * Vector_search_const(struct Vector const *, void const *key, int (*compar)(const void *, const void *));
+static void * Vector_begin(struct Vector *);
+static void * Vector_end(struct Vector *);
+static void const * Vector_begin_const(struct Vector const *);
+static void const * Vector_end_const(struct Vector const *);
+static size_t Vector_count(struct Vector const *vec);
+
+#include "vector.hc"
+
+#endif // H_UTILVSERVER_VECTOR_VECTOR_H
--- /dev/null
+// $Id: vector.hc,v 1.3 2005/07/03 09:12:31 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2002,2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+static inline UNUSED void *
+Vector_begin(struct Vector *vec)
+{
+ return vec->data;
+}
+
+static inline UNUSED void *
+Vector_end(struct Vector *vec)
+{
+ return (char *)(vec->data) + (vec->count * vec->elem_size);
+}
+
+static inline UNUSED void const *
+Vector_begin_const(struct Vector const *vec)
+{
+ return vec->data;
+}
+
+static inline UNUSED void const *
+Vector_end_const(struct Vector const *vec)
+{
+ return (char *)(vec->data) + (vec->count * vec->elem_size);
+}
+
+static inline UNUSED size_t
+Vector_count(struct Vector const *vec)
+{
+ return vec->count;
+}
+
+static inline UNUSED void const *
+Vector_search_const(struct Vector const *vec, void const *key, int (*compar)(const void *, const void *))
+{
+ return Vector_search((struct Vector *)(vec), key, compar);
+}
+
+static inline UNUSED void const *
+Vector_searchSelfOrg_const(struct Vector const *vec, void const *key,
+ int (*compare)(const void *, const void *),
+ VectorSelfOrgMethod method)
+{
+ return Vector_searchSelfOrg((struct Vector *)(vec), key, compare, method);
+}
+
+static inline UNUSED void
+Vector_foreach_const(struct Vector const *vec, void (*func)(void const *, void *),
+ void *data)
+{
+ Vector_foreach((struct Vector *)(vec),
+ (void (*)(void *, void *))(func),
+ data);
+}
--- /dev/null
+## $Id: Makefile-files,v 1.4 2005/02/25 23:31:19 ensc Exp $ --*- makefile -*--
+
+## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+
+noinst_HEADERS += ensc_wrappers/wrappers-clone.hc \
+ ensc_wrappers/wrappers-dirent.hc \
+ ensc_wrappers/wrappers-fcntl.hc \
+ ensc_wrappers/wrappers-io.hc \
+ ensc_wrappers/wrappers-ioctl.hc \
+ ensc_wrappers/wrappers-iosock.hc \
+ ensc_wrappers/wrappers-mount.hc \
+ ensc_wrappers/wrappers-pivot.hc \
+ ensc_wrappers/wrappers-resource.hc \
+ ensc_wrappers/wrappers-socket.hc \
+ ensc_wrappers/wrappers-stdlib.hc \
+ ensc_wrappers/wrappers-string.hc \
+ ensc_wrappers/wrappers-unistd.hc \
+ ensc_wrappers/wrappers-vserver.hc \
+ ensc_wrappers/wrappers-wait.hc \
+ ensc_wrappers/wrappers.h \
+ ensc_wrappers/wrappers_handler.hc
--- /dev/null
+// $Id: wrappers-clone.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL pid_t
+Eclone(int (*fn)(void *), void *child_stack, int flags, void *arg)
+{
+ pid_t res;
+#ifndef __dietlibc__
+ res = clone(fn, child_stack, flags, arg);
+#else
+ res = clone((void*(*)(void*))(fn), child_stack, flags, arg);
+#endif
+ FatalErrnoError(res==-1, "clone()");
+ return res;
+}
--- /dev/null
+// $Id: wrappers-dirent.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL DIR *
+Eopendir(const char *name)
+{
+ DIR * res = opendir(name);
+
+ FatalErrnoError(res==0, "opendir()");
+ return res;
+}
+
+inline static WRAPPER_DECL struct dirent *
+Ereaddir(DIR *dir)
+{
+ struct dirent *res;
+
+ errno = 0;
+ res = readdir(dir);
+
+ FatalErrnoError(res==0 && errno!=0, "readdir()");
+ return res;
+}
+
+#ifndef __dietlibc__
+inline static WRAPPER_DECL void
+Ereaddir_r(DIR *dir, struct dirent *entry, struct dirent **result)
+{
+ errno = 0;
+ FatalErrnoError(readdir_r(dir, entry, result)==0 && errno!=0, "readdir_r()");
+}
+#endif
+
+inline static WRAPPER_DECL void
+Eclosedir(DIR *dir)
+{
+ FatalErrnoError(closedir(dir)==-1, "closedir()");
+}
--- /dev/null
+// $Id: wrappers-fcntl.hc,v 1.3 2004/04/20 17:57:12 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL int
+Eopen(char const *fname, int flags, mode_t mode)
+{
+ int res = open(fname, flags, mode);
+ FatalErrnoError(res==-1, "open()");
+
+ return res;
+}
+
+inline static WRAPPER_DECL int
+EopenD(char const *fname, int flags, mode_t mode)
+{
+ ENSC_DETAIL1(msg, "open", fname, 1);
+
+ {
+ int res = open(fname, flags, mode);
+ FatalErrnoError(res==-1, msg);
+ return res;
+ }
+}
+
+
+inline static WRAPPER_DECL void
+Emkdir(const char *pathname, mode_t mode)
+{
+ FatalErrnoError(mkdir(pathname,mode)==-1, "mkdir()");
+}
+
+inline static WRAPPER_DECL void
+EmkdirD(const char *pathname, mode_t mode)
+{
+ ENSC_DETAIL1(msg, "mkdir", pathname, 1);
+ FatalErrnoError(mkdir(pathname,mode)==-1, msg);
+}
+
+inline static WRAPPER_DECL int
+Efcntl(int fd, int cmd, long arg)
+{
+ register int res = fcntl(fd, cmd, arg);
+ FatalErrnoError(res==-1, "fcntl()");
+
+ return res;
+}
--- /dev/null
+// $Id: wrappers-io.hc,v 1.3 2005/07/03 12:33:44 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+#include <stdbool.h>
+
+inline static UNUSED bool
+WwriteAll(int fd, void const *ptr_v, size_t len, int *err)
+{
+ register char const *ptr = ptr_v;
+
+ if (err) *err = 0;
+
+ while (len>0) {
+ ssize_t res = TEMP_FAILURE_RETRY(write(fd, ptr, len));
+ if (res<=0) {
+ if (err) *err = errno;
+ return false;
+ }
+
+ ptr += res;
+ len -= res;
+ }
+ return true;
+}
+
+inline static UNUSED void
+EwriteAll(int fd, void const *ptr_v, size_t len)
+{
+ register char const *ptr = ptr_v;
+
+ while (len>0) {
+ ssize_t res = TEMP_FAILURE_RETRY(write(fd, ptr, len));
+ FatalErrnoError(res==-1, "write()");
+
+ ptr += res;
+ len -= res;
+ }
+}
+
+
+inline static UNUSED bool
+WreadAll(int fd, void *ptr_v, size_t len, int *err)
+{
+ register char *ptr = ptr_v;
+
+ if (err) *err = 0;
+
+ while (len>0) {
+ ssize_t res = TEMP_FAILURE_RETRY(read(fd, ptr, len));
+ if (res==-1) {
+ if (err) *err = errno;
+ return false;
+ }
+
+ if (res==0) return false;
+
+ ptr += res;
+ len -= res;
+ }
+ return true;
+}
+
+inline static UNUSED bool
+EreadAll(int fd, void *ptr_v, size_t len)
+{
+ register char *ptr = ptr_v;
+
+ while (len>0) {
+ ssize_t res = TEMP_FAILURE_RETRY(read(fd, ptr, len));
+ FatalErrnoError(res==-1, "read()");
+
+ if (res==0) return false;
+
+ ptr += res;
+ len -= res;
+ }
+
+ return true;
+}
--- /dev/null
+// $Id: wrappers-ioctl.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL void
+Eioctl(int fd, int request, void *p)
+{
+ int res = ioctl(fd, request, p);
+ FatalErrnoError(res<0, "ioctl()");
+}
+
--- /dev/null
+// $Id: wrappers-iosock.hc,v 1.3 2005/07/03 12:33:44 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+#include <stdbool.h>
+
+inline static WRAPPER_DECL bool
+WsendAll(int fd, void const *ptr_v, size_t len, int *err)
+{
+ register char const *ptr = ptr_v;
+ if (err) *err = 0;
+
+ while (len>0) {
+ ssize_t res = TEMP_FAILURE_RETRY(send(fd, ptr, len, MSG_NOSIGNAL));
+ if (res==-1) {
+ if (err) *err = errno;
+ return false;
+ }
+
+ if (res==0) return false;
+
+ ptr += res;
+ len -= res;
+ }
+ return true;
+}
+
+inline static WRAPPER_DECL void
+EsendAll(int fd, void const *ptr_v, size_t len)
+{
+ register char const *ptr = ptr_v;
+
+ while (len>0) {
+ ssize_t res = TEMP_FAILURE_RETRY(send(fd, ptr, len, MSG_NOSIGNAL));
+ FatalErrnoError(res==-1, "send()");
+
+ ptr += res;
+ len -= res;
+ }
+}
+
+
+inline static WRAPPER_DECL bool
+WrecvAll(int fd, void *ptr_v, size_t len, int *err)
+{
+ register char *ptr = ptr_v;
+ if (err) *err = 0;
+
+ while (len>0) {
+ ssize_t res = TEMP_FAILURE_RETRY(recv(fd, ptr, len, MSG_NOSIGNAL));
+ if (res==-1) {
+ if (err) *err = errno;
+ return false;
+ }
+
+ if (res==0) return false;
+
+ ptr += res;
+ len -= res;
+ }
+ return true;
+}
+
+inline static WRAPPER_DECL bool
+ErecvAll(int fd, void *ptr_v, size_t len)
+{
+ register char *ptr = ptr_v;
+
+ while (len>0) {
+ ssize_t res = TEMP_FAILURE_RETRY(recv(fd, ptr, len, MSG_NOSIGNAL));
+ FatalErrnoError(res==-1, "recv()");
+
+ if (res==0) return false;
+
+ ptr += res;
+ len -= res;
+ }
+
+ return true;
+}
--- /dev/null
+// $Id: wrappers-mount.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL void
+Eumount2(char const *path, int flag)
+{
+ FatalErrnoError(umount2(path,flag)==-1, "umount2()");
+}
+
+inline static WRAPPER_DECL void
+Emount(const char *source, const char *target,
+ const char *filesystemtype, unsigned long mountflags,
+ const void *data)
+{
+ FatalErrnoError(mount(source, target, filesystemtype,
+ mountflags, data)==-1, "mount()");
+}
--- /dev/null
+// $Id: wrappers-pivot.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL void
+Epivot_root(const char *new_root, const char *put_old)
+{
+ FatalErrnoError(pivot_root(new_root, put_old)==-1, "pivot_root()");
+}
--- /dev/null
+// $Id: wrappers-resource.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL void
+Egetrlimit(int resource, struct rlimit *rlim)
+{
+ FatalErrnoError(getrlimit(resource, rlim)==-1, "getrlimit()");
+}
+
+inline static WRAPPER_DECL void
+Esetrlimit(int resource, struct rlimit const *rlim)
+{
+ FatalErrnoError(setrlimit(resource, rlim)==-1, "setrlimit()");
+}
--- /dev/null
+// $Id: wrappers-socket.hc,v 1.2 2004/08/19 13:54:27 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers-socket.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL int
+Esocket(int domain, int type, int protocol)
+{
+ register int res = socket(domain, type, protocol);
+ FatalErrnoError(res==-1, "socket()");
+ return res;
+}
+
+inline static WRAPPER_DECL void
+Econnect(int sockfd, void const *serv_addr, socklen_t addrlen)
+{
+ FatalErrnoError(connect(sockfd, serv_addr, addrlen)==-1, "connect()");
+}
+
+inline static WRAPPER_DECL void
+Ebind(int sockfd, void *my_addr, socklen_t addrlen)
+{
+ FatalErrnoError(bind(sockfd, my_addr, addrlen)==-1, "bind()");
+}
+
+inline static WRAPPER_DECL int
+Eaccept(int s, void *addr, socklen_t *addrlen)
+{
+ register int res = accept(s,addr,addrlen);
+ FatalErrnoError(res==-1, "accept()");
+ return res;
+}
+
+inline static WRAPPER_DECL void
+Elisten(int sock, int backlog)
+{
+ FatalErrnoError(listen(sock, backlog)==-1, "bind()");
+}
+
+inline static WRAPPER_DECL void
+Eshutdown(int s, int how)
+{
+ FatalErrnoError(shutdown(s,how)==-1, "shutdown()");
+}
+
+inline static WRAPPER_DECL ssize_t
+Erecv(int s, void *buf, size_t len, int flags)
+{
+ register ssize_t res = recv(s,buf,len,flags);
+ FatalErrnoError(res==-1, "recv()");
+ return res;
+}
+
+inline static WRAPPER_DECL ssize_t
+Esend(int s, void const *buf, size_t len, int flags)
+{
+ register ssize_t res = send(s,buf,len,flags);
+ FatalErrnoError(res==-1, "send()");
+ return res;
+}
+
+inline static WRAPPER_DECL int
+Eselect(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
+ struct timeval *timeout)
+{
+ register int res = select(n, readfds,writefds,exceptfds, timeout);
+ FatalErrnoError(res==-1, "select()");
+ return res;
+}
+
+inline static WRAPPER_DECL void
+Esocketpair(int d, int type, int protocol, int sv[2])
+{
+ FatalErrnoError(socketpair(d,type,protocol,sv)==-1, "socketpair()");
+}
--- /dev/null
+// $Id: wrappers-stdlib.hc,v 1.2 2004/08/19 13:54:45 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL void *
+Emalloc(size_t size)
+{
+ register void *res = malloc(size);
+ FatalErrnoError(res==0 && size!=0, "malloc()");
+ return res;
+}
+
+/*@unused@*/
+inline static WRAPPER_DECL /*@null@*//*@only@*/ void *
+Erealloc(/*@only@*//*@out@*//*@null@*/ void *ptr,
+ size_t new_size)
+ /*@ensures maxSet(result) == new_size@*/
+ /*@modifies *ptr@*/
+{
+ register void *res = realloc(ptr, new_size);
+ FatalErrnoError(res==0 && new_size!=0, "realloc()");
+
+ return res;
+}
+
+inline static WRAPPER_DECL void
+Esetenv(char const *key, char const *val, int override)
+{
+ FatalErrnoError(setenv(key,val,override)==-1, "setenv()");
+}
--- /dev/null
+// $Id: wrappers-string.hc,v 1.1 2005/02/25 23:31:19 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+/*@unused@*/
+inline static WRAPPER_DECL char *
+Estrdup(char const *s)
+{
+ register char *res = strdup(s);
+ FatalErrnoError(res==0, "strdup()");
+ return res;
+}
--- /dev/null
+// $Id: wrappers-unistd.hc,v 1.9 2005/07/03 12:33:44 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL void
+Eclose(int s)
+{
+ FatalErrnoError(close(s)==-1, "close()");
+}
+
+inline static WRAPPER_DECL void
+Echdir(char const path[])
+{
+ FatalErrnoError(chdir(path)==-1, "chdir()");
+}
+
+inline static WRAPPER_DECL void
+Efchdir(int fd)
+{
+ FatalErrnoError(fchdir(fd)==-1, "fchdir()");
+}
+
+inline static WRAPPER_DECL void
+Echroot(char const path[])
+{
+ FatalErrnoError(chroot(path)==-1, "chroot()");
+}
+
+inline static WRAPPER_DECL NORETURN void
+Eexecv(char const *path, char *argv[])
+{
+ execv(path,argv);
+ FatalErrnoErrorFail("execv()");
+}
+
+inline static WRAPPER_DECL NORETURN void
+Eexecvp(char const *path, char *argv[])
+{
+ execvp(path,argv);
+ FatalErrnoErrorFail("execvp()");
+}
+
+inline static WRAPPER_DECL NORETURN void
+EexecvpD(char const *path, char *argv[])
+{
+ execvp(path,argv);
+ {
+ ENSC_DETAIL1(msg, "execvp", path, 1);
+ FatalErrnoErrorFail(msg);
+ }
+}
+
+inline static WRAPPER_DECL void
+Epipe(int filedes[2])
+{
+ FatalErrnoError(pipe(filedes)==-1, "pipe()");
+}
+
+inline static WRAPPER_DECL pid_t
+Efork()
+{
+ pid_t res;
+ res = fork();
+ FatalErrnoError(res==-1, "fork()");
+ return res;
+}
+
+inline static WRAPPER_DECL size_t
+Eread(int fd, void *ptr, size_t len)
+{
+ ssize_t res = read(fd, ptr, len);
+ FatalErrnoError(res==-1, "read()");
+
+ return res;
+}
+
+inline static WRAPPER_DECL size_t
+Ewrite(int fd, void const *ptr, size_t len)
+{
+ ssize_t res = write(fd, ptr, len);
+ FatalErrnoError(res==-1, "write()");
+
+ return res;
+}
+
+inline static WRAPPER_DECL size_t
+Ereadlink(const char *path, char *buf, size_t bufsiz)
+{
+ ssize_t res = readlink(path, buf, bufsiz);
+ FatalErrnoError(res==-1, "readlink()");
+
+ return res;
+}
+
+inline static WRAPPER_DECL size_t
+EreadlinkD(const char *path, char *buf, size_t bufsiz)
+{
+ ssize_t res = readlink(path, buf, bufsiz);
+ ENSC_DETAIL1(msg, "readlink", path, 1);
+ FatalErrnoError((ssize_t)(res)==-1, msg);
+
+ return res;
+}
+
+inline static WRAPPER_DECL void
+Esymlink(const char *oldpath, const char *newpath)
+{
+ FatalErrnoError(symlink(oldpath, newpath)==-1, "symlink()");
+}
+
+inline static WRAPPER_DECL void
+EsymlinkD(const char *oldpath, const char *newpath)
+{
+ ENSC_DETAIL2(msg, "symlink", oldpath, newpath, 1, 1);
+ FatalErrnoError(symlink(oldpath, newpath)==-1, msg);
+}
+
+inline static WRAPPER_DECL void
+Eunlink(char const *pathname)
+{
+ FatalErrnoError(unlink(pathname)==-1, "unlink()");
+}
+
+inline static void
+Esetuid(uid_t uid)
+{
+ FatalErrnoError(setuid(uid)==-1, "setuid()");
+}
+
+inline static void
+Esetgid(gid_t gid)
+{
+ FatalErrnoError(setgid(gid)==-1, "setgid()");
+}
+
+#if defined(_GRP_H) && (defined(__USE_BSD) || defined(__dietlibc__))
+inline static void
+Esetgroups(size_t size, const gid_t *list)
+{
+ FatalErrnoError(setgroups(size, list)==-1, "setgroups()");
+}
+#endif
+
+inline static WRAPPER_DECL int
+Edup2(int oldfd, int newfd)
+{
+ register int res = dup2(oldfd, newfd);
+ FatalErrnoError(res==-1, "dup2()");
+
+ return res;
+}
+
+inline static WRAPPER_DECL int
+Edup(int fd)
+{
+ register int res = dup(fd);
+ FatalErrnoError(res==-1, "dup()");
+
+ return res;
+}
+
+inline static WRAPPER_DECL pid_t
+Esetsid()
+{
+ register pid_t const res = setsid();
+ FatalErrnoError(res==-1, "setsid()");
+
+ return res;
+}
+
+inline static WRAPPER_DECL int
+Emkstemp(char *template)
+{
+ int res = mkstemp(template);
+ FatalErrnoError(res==-1, "mkstemp()");
+ return res;
+}
+
+inline static WRAPPER_DECL off_t
+Elseek(int fildes, off_t offset, int whence)
+{
+ off_t res = lseek(fildes, offset, whence);
+ FatalErrnoError(res==(off_t)-1, "lseek()");
+ return res;
+}
+
+inline static WRAPPER_DECL void
+Enice(int n)
+{
+ FatalErrnoError(nice(n)==-1, "nice()");
+}
+
+inline static WRAPPER_DECL void
+Etruncate(const char *path, off_t length)
+{
+ FatalErrnoError(truncate(path,length)==-1, "truncate()");
+}
+
+inline static WRAPPER_DECL void
+Eftruncate(int fd, off_t length)
+{
+ FatalErrnoError(ftruncate(fd,length)==-1, "ftruncate()");
+}
--- /dev/null
+// $Id: wrappers-vserver.hc,v 1.11 2004/10/19 23:11:23 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL xid_t
+Evc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags)
+{
+ register xid_t res = vc_new_s_context(ctx,remove_cap,flags);
+ FatalErrnoError(res==VC_NOCTX, "vc_new_s_context()");
+ return res;
+}
+
+inline static WRAPPER_DECL xid_t
+Evc_get_task_xid(pid_t pid)
+{
+ register xid_t res = vc_get_task_xid(pid);
+ FatalErrnoError(res==VC_NOCTX, "vc_get_task_xid()");
+ return res;
+}
+
+inline static WRAPPER_DECL xid_t
+Evc_ctx_create(xid_t xid)
+{
+ register xid_t res = vc_ctx_create(xid);
+ FatalErrnoError(res==VC_NOCTX, "vc_ctx_create()");
+ return res;
+}
+
+inline static WRAPPER_DECL void
+Evc_ctx_migrate(xid_t xid)
+{
+ FatalErrnoError(vc_ctx_migrate(xid)==-1, "vc_ctx_migrate()");
+}
+
+inline static WRAPPER_DECL void
+Evc_get_cflags(xid_t xid, struct vc_ctx_flags *flags)
+{
+ FatalErrnoError(vc_get_cflags(xid, flags)==-1, "vc_get_cflags()");
+}
+
+inline static WRAPPER_DECL void
+Evc_set_cflags(xid_t xid, struct vc_ctx_flags const *flags)
+{
+ FatalErrnoError(vc_set_cflags(xid, flags)==-1, "vc_set_cflags()");
+}
+
+inline static WRAPPER_DECL void
+Evc_set_vhi_name(xid_t xid, vc_uts_type type,
+ char const *val, size_t len)
+{
+ FatalErrnoError(vc_set_vhi_name(xid,type,val,len)==-1, "vc_set_vhi_name()");
+}
+
+inline static WRAPPER_DECL void
+Evc_get_ccaps(xid_t xid, struct vc_ctx_caps *caps)
+{
+ FatalErrnoError(vc_get_ccaps(xid, caps)==-1, "vc_get_ccaps()");
+}
+
+inline static WRAPPER_DECL void
+Evc_set_ccaps(xid_t xid, struct vc_ctx_caps const *caps)
+{
+ FatalErrnoError(vc_set_ccaps(xid, caps)==-1, "vc_set_ccaps()");
+}
+
+inline static WRAPPER_DECL void
+Evc_set_namespace()
+{
+ FatalErrnoError(vc_set_namespace()==-1, "vc_set_namespace()");
+}
+
+inline static WRAPPER_DECL void
+Evc_enter_namespace(xid_t xid)
+{
+ FatalErrnoError(vc_enter_namespace(xid)==-1, "vc_enter_namespace()");
+}
+
+inline static WRAPPER_DECL xid_t
+Evc_xidopt2xid(char const *id, bool honor_static)
+{
+ char const * err;
+ xid_t rc = vc_xidopt2xid(id, honor_static, &err);
+ if (__builtin_expect(rc==VC_NOCTX,0)) {
+ ENSC_DETAIL1(msg, "vc_xidopt2xid", id, 1);
+#if 1
+ FatalErrnoErrorFail(msg);
+#else
+ {
+ size_t l1 = strlen(msg);
+ size_t l2 = strlen(err);
+ char buf[l1 + l2 + sizeof(": ")];
+ memcpy(buf, msg, l1);
+ memcpy(buf+l1, ": ", 2);
+ memcpy(buf+l1+2, err, l2+1);
+
+ FatalErrnoErrorFail(buf);
+ }
+#endif
+ }
+
+ return rc;
+}
--- /dev/null
+// $Id: wrappers-wait.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+inline static WRAPPER_DECL pid_t
+Ewait4(pid_t pid, int *status, int options,
+ struct rusage *rusage)
+{
+ pid_t res;
+ res = wait4(pid, status, options, rusage);
+ FatalErrnoError(res==-1, "wait4()");
+ return res;
+}
--- /dev/null
+// $Id: wrappers.h,v 1.5 2005/02/25 23:31:19 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_SRC_WRAPPERS_H
+#define H_UTIL_VSERVER_SRC_WRAPPERS_H
+
+#define WRAPPER_DECL UNUSED ALWAYSINLINE
+#define H_ENSC_IN_WRAPPERS_H 1
+
+#include "wrappers_handler.hc"
+
+#define ENSC_DOQUOTE_COND(PTR, VAL, LEN, DO_QUOTE) \
+ if (DO_QUOTE) *PTR++ = '"'; \
+ memcpy(PTR, VAL, LEN); PTR += LEN; \
+ if (DO_QUOTE) *PTR++ = '"' \
+
+#define ENSC_DETAIL1(RES,FUNC,VAL,DO_QUOTE) \
+ size_t l_ = strlen(VAL); \
+ char RES[l_ + sizeof(FUNC "(\"\")")]; \
+ char * ptr_ = RES; \
+ memcpy(ptr_, FUNC "(", sizeof(FUNC)); ptr_ += sizeof(FUNC); \
+ ENSC_DOQUOTE_COND(ptr_, VAL, l_, DO_QUOTE); \
+ *ptr_++ = ')'; \
+ *ptr_ = '\0';
+
+#define ENSC_DETAIL2(RES,FUNC, VAL0,VAL1, DO_QUOTE0,DO_QUOTE1) \
+ size_t l0_ = strlen(VAL0); \
+ size_t l1_ = strlen(VAL1); \
+ char RES[l0_ + l1_ + sizeof(FUNC "('','')")]; \
+ char * ptr_ = RES; \
+ memcpy(ptr_, FUNC "(", sizeof(FUNC)); ptr_ += sizeof(FUNC); \
+ ENSC_DOQUOTE_COND(ptr_, VAL0, l0_, DO_QUOTE0); \
+ *ptr_++ = ','; \
+ ENSC_DOQUOTE_COND(ptr_, VAL1, l1_, DO_QUOTE1); \
+ *ptr_++ = ')'; \
+ *ptr_ = '\0';
+
+
+#ifdef ENSC_WRAPPERS_UNISTD
+# include "wrappers-unistd.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_FCNTL
+# include "wrappers-fcntl.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_MOUNT
+# include "wrappers-mount.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_RESOURCE
+# include "wrappers-resource.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_IOCTL
+# include "wrappers-ioctl.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_WAIT
+# include "wrappers-wait.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_VSERVER
+# include "wrappers-vserver.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_IO
+# include "wrappers-io.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_IOSOCK
+# include "wrappers-iosock.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_DIRENT
+# include "wrappers-dirent.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_CLONE
+# include "wrappers-clone.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_STDLIB
+# include "wrappers-stdlib.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_STRING
+# include "wrappers-string.hc"
+#endif
+
+#ifdef ENSC_WRAPPERS_SOCKET
+# include "wrappers-socket.hc"
+#endif
+
+#undef ENSC_DETAIL2
+#undef ENSC_DETAIL1
+#undef ENSC_DOQUOTE_COND
+#undef H_ENSC_IN_WRAPPERS_H
+#undef WRAPPER_DECL
+
+#endif // H_UTIL_VSERVER_SRC_WRAPPERS_H
--- /dev/null
+// $Id: wrappers_handler.hc,v 1.4 2004/03/18 05:27:10 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_ENSC_IN_WRAPPERS_H
+# error wrappers_handler.hc can not be used in this way
+#endif
+
+#include <stdlib.h>
+#include <stdbool.h>
+#include <stdio.h>
+
+static inline ALWAYSINLINE NORETURN void
+FatalErrnoErrorFail(char const msg[])
+{
+ extern int wrapper_exit_code;
+
+#ifdef ENSC_WRAPPERS_PREFIX
+ {
+ int old_errno = errno;
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX);
+ errno = old_errno;
+ }
+#endif
+ perror(msg);
+
+ exit(wrapper_exit_code);
+}
+
+static UNUSED void
+FatalErrnoError(bool condition, char const msg[]) /*@*/
+{
+ if (__builtin_expect(!condition,true)) return;
+ FatalErrnoErrorFail(msg);
+}
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2004-04-01.17
+scriptversion=2005-02-02.21
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
-transformbasename=
-transform_arg=
-instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=
chgrpcmd=
src=
dst=
dir_arg=
+dstarg=
+no_target_directory=
-usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
+usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
- or: $0 -d DIRECTORIES...
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
-In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
-In the second, create the directory path DIR.
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
Options:
--b=TRANSFORMBASENAME
--c copy source (using $cpprog) instead of moving (using $mvprog).
+-c (ignored)
-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
+-g GROUP $chgrpprog installed files to GROUP.
+-m MODE $chmodprog installed files to MODE.
+-o USER $chownprog installed files to USER.
+-s $stripprog installed files.
+-t DIRECTORY install into DIRECTORY.
+-T report an error if DSTFILE is a directory.
--help display this help and exit.
--version display version info and exit.
while test -n "$1"; do
case $1 in
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- -c) instcmd=$cpprog
- shift
+ -c) shift
continue;;
-d) dir_arg=true
shift
continue;;
- --help) echo "$usage"; exit 0;;
+ --help) echo "$usage"; exit $?;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
+ -t) dstarg=$2
+ shift
+ shift
+ continue;;
- --version) echo "$0 $scriptversion"; exit 0;;
+ -T) no_target_directory=true
+ shift
+ continue;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
*) # When -d is used, all remaining arguments are directories to create.
- test -n "$dir_arg" && break
+ # When -t is used, the destination is already specified.
+ test -n "$dir_arg$dstarg" && break
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
src=
if test -d "$dst"; then
- instcmd=:
+ mkdircmd=:
chmodcmd=
else
- instcmd=$mkdirprog
+ mkdircmd=$mkdirprog
fi
else
- # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dstarg: Is a directory" >&2
+ exit 1
+ fi
dst=$dst/`basename "$src"`
fi
fi
# This sed command emulates the dirname command.
- dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+ dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
# Make sure that the destination directory exists.
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
- set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+ set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+ shift
IFS=$oIFS
pathcomp=
pathcomp=$pathcomp$1
shift
if test ! -d "$pathcomp"; then
- $mkdirprog "$pathcomp" || lasterr=$?
+ $mkdirprog "$pathcomp"
# mkdir can fail with a `File exist' error in case several
# install-sh are creating the directory concurrently. This
# is OK.
- test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; }
+ test -d "$pathcomp" || exit
fi
pathcomp=$pathcomp/
done
fi
if test -n "$dir_arg"; then
- $doit $instcmd "$dst" \
+ $doit $mkdircmd "$dst" \
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
else
- # 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"`
+ 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 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
trap '(exit $?); exit' 1 2 13 15
- # Move or copy the file name to the temp name
- $doit $instcmd "$src" "$dsttmp" &&
+ # Copy the file name to the temp name.
+ $doit $cpprog "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
- # errors from the above "$doit $instcmd $src $dsttmp" command.
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|| {
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
- (exit 1); exit
+ (exit 1); exit 1
}
else
:
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
}
}
- fi || { (exit 1); exit; }
+ fi || { (exit 1); exit 1; }
done
# The final little trick to "correctly" pass the exit status to the exit trap.
{
- (exit 0); exit
+ (exit 0); exit 0
}
# Local variables:
--- /dev/null
+#ifndef _VX_CONTEXT_H
+#define _VX_CONTEXT_H
+
+#include <linux/types.h>
+
+
+#define MAX_S_CONTEXT 65535 /* Arbitrary limit */
+#define MIN_D_CONTEXT 49152 /* dynamic contexts start here */
+
+#define VX_DYNAMIC_ID ((uint32_t)-1) /* id for dynamic context */
+
+/* context flags */
+
+#define VXF_INFO_LOCK 0x00000001
+#define VXF_INFO_SCHED 0x00000002
+#define VXF_INFO_NPROC 0x00000004
+#define VXF_INFO_PRIVATE 0x00000008
+
+#define VXF_INFO_INIT 0x00000010
+#define VXF_INFO_HIDE 0x00000020
+#define VXF_INFO_ULIMIT 0x00000040
+#define VXF_INFO_NSPACE 0x00000080
+
+#define VXF_SCHED_HARD 0x00000100
+#define VXF_SCHED_PRIO 0x00000200
+#define VXF_SCHED_PAUSE 0x00000400
+
+#define VXF_VIRT_MEM 0x00010000
+#define VXF_VIRT_UPTIME 0x00020000
+#define VXF_VIRT_CPU 0x00040000
+#define VXF_VIRT_LOAD 0x00080000
+
+#define VXF_HIDE_MOUNT 0x01000000
+#define VXF_HIDE_NETIF 0x02000000
+
+#define VXF_STATE_SETUP (1ULL<<32)
+#define VXF_STATE_INIT (1ULL<<33)
+
+#define VXF_STATE_HELPER (1ULL<<36)
+
+#define VXF_FORK_RSS (1ULL<<48)
+#define VXF_PROLIFIC (1ULL<<49)
+
+#define VXF_IGNEG_NICE (1ULL<<52)
+
+#define VXF_ONE_TIME (0x0003ULL<<32)
+
+#define VXF_INIT_SET (VXF_STATE_SETUP|VXF_STATE_INIT)
+
+
+/* context caps */
+
+#define VXC_CAP_MASK 0x00000000
+
+#define VXC_SET_UTSNAME 0x00000001
+#define VXC_SET_RLIMIT 0x00000002
+
+#define VXC_RAW_ICMP 0x00000100
+#define VXC_SYSLOG 0x00001000
+
+#define VXC_SECURE_MOUNT 0x00010000
+#define VXC_SECURE_REMOUNT 0x00020000
+#define VXC_BINARY_MOUNT 0x00040000
+
+#define VXC_QUOTA_CTL 0x00100000
+
+
+/* context state changes */
+
+enum {
+ VSC_STARTUP = 1,
+ VSC_SHUTDOWN,
+
+ VSC_NETUP,
+ VSC_NETDOWN,
+};
+
+
+#ifdef __KERNEL__
+
+#include <linux/list.h>
+#include <linux/spinlock.h>
+#include <linux/rcupdate.h>
+
+#include "limit_def.h"
+#include "sched_def.h"
+#include "cvirt_def.h"
+
+struct vx_info {
+ struct hlist_node vx_hlist; /* linked list of contexts */
+ xid_t vx_id; /* context id */
+ atomic_t vx_usecnt; /* usage count */
+ atomic_t vx_tasks; /* tasks count */
+ struct vx_info *vx_parent; /* parent context */
+ int vx_state; /* context state */
+
+ struct namespace *vx_namespace; /* private namespace */
+ struct fs_struct *vx_fs; /* private namespace fs */
+ uint64_t vx_flags; /* context flags */
+ uint64_t vx_bcaps; /* bounding caps (system) */
+ uint64_t vx_ccaps; /* context caps (vserver) */
+
+ pid_t vx_initpid; /* PID of fake init process */
+
+ wait_queue_head_t vx_wait; /* context exit waitqueue */
+
+ struct _vx_limit limit; /* vserver limits */
+ struct _vx_sched sched; /* vserver scheduler */
+ struct _vx_cvirt cvirt; /* virtual/bias stuff */
+ struct _vx_cacct cacct; /* context accounting */
+
+ char vx_name[65]; /* vserver name */
+};
+
+
+/* status flags */
+
+#define VXS_HASHED 0x0001
+#define VXS_PAUSED 0x0010
+#define VXS_ONHOLD 0x0020
+#define VXS_SHUTDOWN 0x0100
+#define VXS_RELEASED 0x8000
+
+/* check conditions */
+
+#define VX_ADMIN 0x0001
+#define VX_WATCH 0x0002
+#define VX_HIDE 0x0004
+#define VX_HOSTID 0x0008
+
+#define VX_IDENT 0x0010
+#define VX_EQUIV 0x0020
+#define VX_PARENT 0x0040
+#define VX_CHILD 0x0080
+
+#define VX_ARG_MASK 0x00F0
+
+#define VX_DYNAMIC 0x0100
+#define VX_STATIC 0x0200
+
+#define VX_ATR_MASK 0x0F00
+
+
+extern void claim_vx_info(struct vx_info *, struct task_struct *);
+extern void release_vx_info(struct vx_info *, struct task_struct *);
+
+extern struct vx_info *locate_vx_info(int);
+extern struct vx_info *locate_or_create_vx_info(int);
+
+extern int get_xid_list(int, unsigned int *, int);
+extern int xid_is_hashed(xid_t);
+
+extern int vx_migrate_task(struct task_struct *, struct vx_info *);
+
+extern long vs_state_change(struct vx_info *, unsigned int);
+
+
+#endif /* __KERNEL__ */
+#else /* _VX_CONTEXT_H */
+#warning duplicate inclusion
+#endif /* _VX_CONTEXT_H */
--- /dev/null
+#ifndef _VX_CONTEXT_CMD_H
+#define _VX_CONTEXT_CMD_H
+
+
+/* vinfo commands */
+
+#define VCMD_task_xid VC_CMD(VINFO, 1, 0)
+
+#ifdef __KERNEL__
+extern int vc_task_xid(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+
+#define VCMD_vx_info VC_CMD(VINFO, 5, 0)
+
+struct vcmd_vx_info_v0 {
+ uint32_t xid;
+ uint32_t initpid;
+ /* more to come */
+};
+
+#ifdef __KERNEL__
+extern int vc_vx_info(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+
+
+/* context commands */
+
+#define VCMD_ctx_create_v0 VC_CMD(VPROC, 1, 0)
+#define VCMD_ctx_create VC_CMD(VPROC, 1, 1)
+
+struct vcmd_ctx_create {
+ uint64_t flagword;
+};
+
+#define VCMD_ctx_migrate VC_CMD(PROCMIG, 1, 0)
+
+#ifdef __KERNEL__
+extern int vc_ctx_create(uint32_t, void __user *);
+extern int vc_ctx_migrate(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+
+
+/* flag commands */
+
+#define VCMD_get_cflags VC_CMD(FLAGS, 1, 0)
+#define VCMD_set_cflags VC_CMD(FLAGS, 2, 0)
+
+struct vcmd_ctx_flags_v0 {
+ uint64_t flagword;
+ uint64_t mask;
+};
+
+#ifdef __KERNEL__
+extern int vc_get_cflags(uint32_t, void __user *);
+extern int vc_set_cflags(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+
+
+/* context caps commands */
+
+#define VCMD_get_ccaps VC_CMD(FLAGS, 3, 0)
+#define VCMD_set_ccaps VC_CMD(FLAGS, 4, 0)
+
+struct vcmd_ctx_caps_v0 {
+ uint64_t bcaps;
+ uint64_t ccaps;
+ uint64_t cmask;
+};
+
+#ifdef __KERNEL__
+extern int vc_get_ccaps(uint32_t, void __user *);
+extern int vc_set_ccaps(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CONTEXT_CMD_H */
--- /dev/null
+#ifndef _VX_CVIRT_H
+#define _VX_CVIRT_H
+
+#ifdef __KERNEL__
+
+struct timespec;
+
+void vx_vsi_uptime(struct timespec *, struct timespec *);
+
+
+struct vx_info;
+
+void vx_update_load(struct vx_info *);
+
+
+int vx_uts_virt_handler(struct ctl_table *ctl, int write, xid_t xid,
+ void **datap, size_t *lenp);
+
+
+int vx_do_syslog(int, char __user *, int);
+
+#endif /* __KERNEL__ */
+#else /* _VX_CVIRT_H */
+#warning duplicate inclusion
+#endif /* _VX_CVIRT_H */
--- /dev/null
+#ifndef _VX_CVIRT_CMD_H
+#define _VX_CVIRT_CMD_H
+
+/* virtual host info name commands */
+
+#define VCMD_set_vhi_name VC_CMD(VHOST, 1, 0)
+#define VCMD_get_vhi_name VC_CMD(VHOST, 2, 0)
+
+struct vcmd_vhi_name_v0 {
+ uint32_t field;
+ char name[65];
+};
+
+
+enum vhi_name_field {
+ VHIN_CONTEXT=0,
+ VHIN_SYSNAME,
+ VHIN_NODENAME,
+ VHIN_RELEASE,
+ VHIN_VERSION,
+ VHIN_MACHINE,
+ VHIN_DOMAINNAME,
+};
+
+
+#ifdef __KERNEL__
+
+#include <linux/compiler.h>
+
+extern int vc_set_vhi_name(uint32_t, void __user *);
+extern int vc_get_vhi_name(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CVIRT_CMD_H */
--- /dev/null
+#ifndef _VX_CVIRT_DEF_H
+#define _VX_CVIRT_DEF_H
+
+#include <linux/jiffies.h>
+#include <linux/utsname.h>
+#include <linux/spinlock.h>
+#include <linux/wait.h>
+#include <linux/time.h>
+#include <asm/atomic.h>
+
+
+struct _vx_usage_stat {
+ uint64_t user;
+ uint64_t nice;
+ uint64_t system;
+ uint64_t softirq;
+ uint64_t irq;
+ uint64_t idle;
+ uint64_t iowait;
+};
+
+struct _vx_syslog {
+ wait_queue_head_t log_wait;
+ spinlock_t logbuf_lock; /* lock for the log buffer */
+
+ unsigned long log_start; /* next char to be read by syslog() */
+ unsigned long con_start; /* next char to be sent to consoles */
+ unsigned long log_end; /* most-recently-written-char + 1 */
+ unsigned long logged_chars; /* #chars since last read+clear operation */
+
+ char log_buf[1024];
+};
+
+
+/* context sub struct */
+
+struct _vx_cvirt {
+ int max_threads; /* maximum allowed threads */
+ atomic_t nr_threads; /* number of current threads */
+ atomic_t nr_running; /* number of running threads */
+ atomic_t nr_uninterruptible; /* number of uninterruptible threads */
+
+ atomic_t nr_onhold; /* processes on hold */
+ uint32_t onhold_last; /* jiffies when put on hold */
+
+ struct timespec bias_idle;
+ struct timespec bias_uptime; /* context creation point */
+ uint64_t bias_clock; /* offset in clock_t */
+
+ struct new_utsname utsname;
+
+ spinlock_t load_lock; /* lock for the load averages */
+ atomic_t load_updates; /* nr of load updates done so far */
+ uint32_t load_last; /* last time load was cacled */
+ uint32_t load[3]; /* load averages 1,5,15 */
+
+ atomic_t total_forks; /* number of forks so far */
+
+ struct _vx_usage_stat cpustat[NR_CPUS];
+
+ struct _vx_syslog syslog;
+};
+
+struct _vx_sock_acc {
+ atomic_t count;
+ atomic_t total;
+};
+
+/* context sub struct */
+
+struct _vx_cacct {
+ unsigned long total_forks;
+
+ struct _vx_sock_acc sock[5][3];
+};
+
+#endif /* _VX_CVIRT_DEF_H */
--- /dev/null
+#ifndef _VX_DEBUG_H
+#define _VX_DEBUG_H
+
+#ifndef CONFIG_VSERVER
+#warning config options missing
+#endif
+
+#define VXD_CBIT(n,m) (vx_debug_ ## n & (1 << (m)))
+#define VXD_CMIN(n,m) (vx_debug_ ## n > (m))
+#define VXD_MASK(n,m) (vx_debug_ ## n & (m))
+
+#define VXD_QPOS(v,p) (((uint32_t)(v) >> ((p)*8)) & 0xFF)
+#define VXD_QUAD(v) VXD_QPOS(v,0), VXD_QPOS(v,1), \
+ VXD_QPOS(v,2), VXD_QPOS(v,3)
+
+#define __FUNC__ __func__
+
+
+#ifdef CONFIG_VSERVER_DEBUG
+
+extern unsigned int vx_debug_switch;
+extern unsigned int vx_debug_xid;
+extern unsigned int vx_debug_nid;
+extern unsigned int vx_debug_net;
+extern unsigned int vx_debug_limit;
+extern unsigned int vx_debug_dlim;
+extern unsigned int vx_debug_cvirt;
+
+
+#define VX_LOGLEVEL "vxD: "
+#define VX_WARNLEVEL KERN_WARNING "vxW: "
+
+#define vxdprintk(c,f,x...) \
+ do { \
+ if (c) \
+ printk(VX_LOGLEVEL f "\n" , ##x); \
+ } while (0)
+
+#define vxlprintk(c,f,x...) \
+ do { \
+ if (c) \
+ printk(VX_LOGLEVEL f " @%s:%d\n", x); \
+ } while (0)
+
+#define vxfprintk(c,f,x...) \
+ do { \
+ if (c) \
+ printk(VX_LOGLEVEL f " %s@%s:%d\n", x); \
+ } while (0)
+
+
+#define vxwprintk(c,f,x...) \
+ do { \
+ if (c) \
+ printk(VX_WARNLEVEL f "\n" , ##x); \
+ } while (0)
+
+
+#define vxd_path(d,m) \
+ ({ static char _buffer[PATH_MAX]; \
+ d_path((d), (m), _buffer, sizeof(_buffer)); })
+
+#else /* CONFIG_VSERVER_DEBUG */
+
+#define vx_debug_switch 0
+#define vx_debug_xid 0
+#define vx_debug_nid 0
+#define vx_debug_net 0
+#define vx_debug_limit 0
+#define vx_debug_dlim 0
+#define vx_debug_cvirt 0
+
+#define vxdprintk(x...) do { } while (0)
+#define vxlprintk(x...) do { } while (0)
+#define vxfprintk(x...) do { } while (0)
+#define vxwprintk(x...) do { } while (0)
+
+#define vxd_path "<none>"
+
+#endif /* CONFIG_VSERVER_DEBUG */
+
+
+/* history stuff */
+
+#ifdef CONFIG_VSERVER_HISTORY
+
+
+extern unsigned volatile int vxh_active;
+
+struct _vxhe_vxi {
+ struct vx_info *ptr;
+ unsigned xid;
+ unsigned usecnt;
+ unsigned tasks;
+};
+
+struct _vxhe_set_clr {
+ void *data;
+};
+
+struct _vxhe_loc_lookup {
+ unsigned arg;
+};
+
+enum {
+ VXH_UNUSED=0,
+ VXH_THROW_OOPS=1,
+
+ VXH_GET_VX_INFO,
+ VXH_PUT_VX_INFO,
+ VXH_INIT_VX_INFO,
+ VXH_SET_VX_INFO,
+ VXH_CLR_VX_INFO,
+ VXH_CLAIM_VX_INFO,
+ VXH_RELEASE_VX_INFO,
+ VXH_ALLOC_VX_INFO,
+ VXH_DEALLOC_VX_INFO,
+ VXH_HASH_VX_INFO,
+ VXH_UNHASH_VX_INFO,
+ VXH_LOC_VX_INFO,
+ VXH_LOOKUP_VX_INFO,
+ VXH_CREATE_VX_INFO,
+};
+
+struct _vx_hist_entry {
+ void *loc;
+ unsigned short seq;
+ unsigned short type;
+ struct _vxhe_vxi vxi;
+ union {
+ struct _vxhe_set_clr sc;
+ struct _vxhe_loc_lookup ll;
+ };
+};
+
+struct _vx_hist_entry *vxh_advance(void *loc);
+
+#define VXH_HERE() \
+ ({ __label__ here; \
+ here:; \
+ &&here; })
+
+
+
+static inline void __vxh_copy_vxi(struct _vx_hist_entry *entry, struct vx_info *vxi)
+{
+ entry->vxi.ptr = vxi;
+ if (vxi) {
+ entry->vxi.usecnt = atomic_read(&vxi->vx_usecnt);
+ entry->vxi.tasks = atomic_read(&vxi->vx_tasks);
+ entry->vxi.xid = vxi->vx_id;
+ }
+}
+
+
+#define __VXH_BODY(__type, __data) \
+ struct _vx_hist_entry *entry; \
+ \
+ preempt_disable(); \
+ entry = vxh_advance(VXH_HERE()); \
+ __data; \
+ entry->type = __type; \
+ preempt_enable();
+
+
+ /* pass vxi only */
+#define __VXH_SIMPLE \
+ __vxh_copy_vxi(entry, vxi)
+
+#define VXH_SIMPLE(__name, __type) \
+static inline void __name(struct vx_info *vxi) \
+{ \
+ __VXH_BODY(__type, __VXH_SIMPLE) \
+}
+
+ /* pass vxi and data (void *) */
+#define __VXH_DATA \
+ __vxh_copy_vxi(entry, vxi); \
+ entry->sc.data = data
+
+#define VXH_DATA(__name, __type) \
+static inline \
+void __name(struct vx_info *vxi, void *data) \
+{ \
+ __VXH_BODY(__type, __VXH_DATA) \
+}
+
+ /* pass vxi and arg (long) */
+#define __VXH_LARG \
+ __vxh_copy_vxi(entry, vxi); \
+ entry->ll.arg = arg
+
+#define VXH_LARG(__name, __type) \
+static inline \
+void __name(struct vx_info *vxi, long arg) \
+{ \
+ __VXH_BODY(__type, __VXH_LARG) \
+}
+
+
+static inline void vxh_throw_oops(void)
+{
+ __VXH_BODY(VXH_THROW_OOPS, {});
+ /* prevent further acquisition */
+ vxh_active = 0;
+}
+
+VXH_SIMPLE(vxh_get_vx_info, VXH_GET_VX_INFO);
+VXH_SIMPLE(vxh_put_vx_info, VXH_PUT_VX_INFO);
+
+VXH_DATA(vxh_init_vx_info, VXH_INIT_VX_INFO);
+VXH_DATA(vxh_set_vx_info, VXH_SET_VX_INFO);
+VXH_DATA(vxh_clr_vx_info, VXH_CLR_VX_INFO);
+
+VXH_DATA(vxh_claim_vx_info, VXH_CLAIM_VX_INFO);
+VXH_DATA(vxh_release_vx_info, VXH_RELEASE_VX_INFO);
+
+VXH_SIMPLE(vxh_alloc_vx_info, VXH_ALLOC_VX_INFO);
+VXH_SIMPLE(vxh_dealloc_vx_info, VXH_DEALLOC_VX_INFO);
+
+VXH_SIMPLE(vxh_hash_vx_info, VXH_HASH_VX_INFO);
+VXH_SIMPLE(vxh_unhash_vx_info, VXH_UNHASH_VX_INFO);
+
+VXH_LARG(vxh_loc_vx_info, VXH_LOC_VX_INFO);
+VXH_LARG(vxh_lookup_vx_info, VXH_LOOKUP_VX_INFO);
+VXH_LARG(vxh_create_vx_info, VXH_CREATE_VX_INFO);
+
+extern void vxh_dump_history(void);
+
+
+#else /* CONFIG_VSERVER_HISTORY */
+
+
+#define vxh_throw_oops() do { } while (0)
+
+#define vxh_get_vx_info(v) do { } while (0)
+#define vxh_put_vx_info(v) do { } while (0)
+
+#define vxh_init_vx_info(v,d) do { } while (0)
+#define vxh_set_vx_info(v,d) do { } while (0)
+#define vxh_clr_vx_info(v,d) do { } while (0)
+
+#define vxh_claim_vx_info(v,d) do { } while (0)
+#define vxh_release_vx_info(v,d) do { } while (0)
+
+#define vxh_alloc_vx_info(v) do { } while (0)
+#define vxh_dealloc_vx_info(v) do { } while (0)
+
+#define vxh_hash_vx_info(v) do { } while (0)
+#define vxh_unhash_vx_info(v) do { } while (0)
+
+#define vxh_loc_vx_info(a,v) do { } while (0)
+#define vxh_lookup_vx_info(a,v) do { } while (0)
+#define vxh_create_vx_info(a,v) do { } while (0)
+
+#define vxh_dump_history() do { } while (0)
+
+
+#endif /* CONFIG_VSERVER_HISTORY */
+
+
+#ifdef CONFIG_VSERVER_DEBUG
+#define vxd_assert_lock(l) assert_spin_locked(l)
+#else
+#define vxd_assert_lock(l) do { } while (0)
+#endif
+
+
+#endif /* _VX_DEBUG_H */
--- /dev/null
+#ifndef _VX_DEBUG_CMD_H
+#define _VX_DEBUG_CMD_H
+
+
+/* debug commands */
+
+#define VCMD_dump_history VC_CMD(DEBUG, 1, 0)
+
+#ifdef __KERNEL__
+
+extern int vc_dump_history(uint32_t);
+
+#endif /* __KERNEL__ */
+#endif /* _VX_DEBUG_CMD_H */
--- /dev/null
+#ifndef _VX_DLIMIT_H
+#define _VX_DLIMIT_H
+
+#include "switch.h"
+
+#define CDLIM_UNSET (0ULL)
+#define CDLIM_INFINITY (~0ULL)
+#define CDLIM_KEEP (~1ULL)
+
+
+#ifdef __KERNEL__
+
+#include <linux/spinlock.h>
+
+struct super_block;
+
+struct dl_info {
+ struct hlist_node dl_hlist; /* linked list of contexts */
+ struct rcu_head dl_rcu; /* the rcu head */
+ xid_t dl_xid; /* context id */
+ atomic_t dl_usecnt; /* usage count */
+ atomic_t dl_refcnt; /* reference count */
+
+ struct super_block *dl_sb; /* associated superblock */
+
+ spinlock_t dl_lock; /* protect the values */
+
+ uint64_t dl_space_used; /* used space in bytes */
+ uint64_t dl_space_total; /* maximum space in bytes */
+ uint32_t dl_inodes_used; /* used inodes */
+ uint32_t dl_inodes_total; /* maximum inodes */
+
+ unsigned int dl_nrlmult; /* non root limit mult */
+};
+
+struct rcu_head;
+
+extern void rcu_free_dl_info(struct rcu_head *);
+extern void unhash_dl_info(struct dl_info *);
+
+extern struct dl_info *locate_dl_info(struct super_block *, xid_t);
+
+
+struct kstatfs;
+
+extern void vx_vsi_statfs(struct super_block *, struct kstatfs *);
+
+typedef uint64_t dlsize_t;
+
+#endif /* __KERNEL__ */
+#else /* _VX_DLIMIT_H */
+#warning duplicate inclusion
+#endif /* _VX_DLIMIT_H */
--- /dev/null
+#ifndef _VX_DLIMIT_CMD_H
+#define _VX_DLIMIT_CMD_H
+
+/* dlimit vserver commands */
+
+#define VCMD_add_dlimit VC_CMD(DLIMIT, 1, 0)
+#define VCMD_rem_dlimit VC_CMD(DLIMIT, 2, 0)
+
+#define VCMD_set_dlimit VC_CMD(DLIMIT, 5, 0)
+#define VCMD_get_dlimit VC_CMD(DLIMIT, 6, 0)
+
+struct vcmd_ctx_dlimit_base_v0 {
+ const char __user *name;
+ uint32_t flags;
+};
+
+struct vcmd_ctx_dlimit_v0 {
+ const char __user *name;
+ uint32_t space_used; /* used space in kbytes */
+ uint32_t space_total; /* maximum space in kbytes */
+ uint32_t inodes_used; /* used inodes */
+ uint32_t inodes_total; /* maximum inodes */
+ uint32_t reserved; /* reserved for root in % */
+ uint32_t flags;
+};
+
+
+#ifdef __KERNEL__
+
+#ifdef CONFIG_COMPAT
+
+struct vcmd_ctx_dlimit_base_v0_x32 {
+ compat_uptr_t name_ptr;
+ uint32_t flags;
+};
+
+struct vcmd_ctx_dlimit_v0_x32 {
+ compat_uptr_t name_ptr;
+ uint32_t space_used; /* used space in kbytes */
+ uint32_t space_total; /* maximum space in kbytes */
+ uint32_t inodes_used; /* used inodes */
+ uint32_t inodes_total; /* maximum inodes */
+ uint32_t reserved; /* reserved for root in % */
+ uint32_t flags;
+};
+
+#endif /* CONFIG_COMPAT */
+
+#include <linux/compiler.h>
+
+extern int vc_add_dlimit(uint32_t, void __user *);
+extern int vc_rem_dlimit(uint32_t, void __user *);
+
+extern int vc_set_dlimit(uint32_t, void __user *);
+extern int vc_get_dlimit(uint32_t, void __user *);
+
+#ifdef CONFIG_COMPAT
+
+extern int vc_add_dlimit_x32(uint32_t, void __user *);
+extern int vc_rem_dlimit_x32(uint32_t, void __user *);
+
+extern int vc_set_dlimit_x32(uint32_t, void __user *);
+extern int vc_get_dlimit_x32(uint32_t, void __user *);
+
+#endif /* CONFIG_COMPAT */
+
+#endif /* __KERNEL__ */
+#endif /* _VX_DLIMIT_CMD_H */
--- /dev/null
+#ifndef _VX_INODE_H
+#define _VX_INODE_H
+
+
+#define IATTR_XID 0x01000000
+
+#define IATTR_ADMIN 0x00000001
+#define IATTR_WATCH 0x00000002
+#define IATTR_HIDE 0x00000004
+#define IATTR_FLAGS 0x00000007
+
+#define IATTR_BARRIER 0x00010000
+#define IATTR_IUNLINK 0x00020000
+#define IATTR_IMMUTABLE 0x00040000
+
+#ifdef __KERNEL__
+
+#ifndef CONFIG_VSERVER
+#warning config options missing
+#endif
+
+#ifdef CONFIG_VSERVER_PROC_SECURE
+#define IATTR_PROC_DEFAULT ( IATTR_ADMIN | IATTR_HIDE )
+#define IATTR_PROC_SYMLINK ( IATTR_ADMIN )
+#else
+#define IATTR_PROC_DEFAULT ( IATTR_ADMIN )
+#define IATTR_PROC_SYMLINK ( IATTR_ADMIN )
+#endif
+
+#define vx_hide_check(c,m) (((m) & IATTR_HIDE) ? vx_check(c,m) : 1)
+
+#endif /* __KERNEL__ */
+
+/* inode ioctls */
+
+#define FIOC_GETXFLG _IOR('x', 5, long)
+#define FIOC_SETXFLG _IOW('x', 6, long)
+
+#else /* _VX_INODE_H */
+#warning duplicate inclusion
+#endif /* _VX_INODE_H */
--- /dev/null
+#ifndef _VX_INODE_CMD_H
+#define _VX_INODE_CMD_H
+
+/* inode vserver commands */
+
+#define VCMD_get_iattr_v0 VC_CMD(INODE, 1, 0)
+#define VCMD_set_iattr_v0 VC_CMD(INODE, 2, 0)
+
+#define VCMD_get_iattr VC_CMD(INODE, 1, 1)
+#define VCMD_set_iattr VC_CMD(INODE, 2, 1)
+
+struct vcmd_ctx_iattr_v0 {
+ /* device handle in id */
+ uint64_t ino;
+ uint32_t xid;
+ uint32_t flags;
+ uint32_t mask;
+};
+
+struct vcmd_ctx_iattr_v1 {
+ const char __user *name;
+ uint32_t xid;
+ uint32_t flags;
+ uint32_t mask;
+};
+
+
+#ifdef __KERNEL__
+
+#ifdef CONFIG_COMPAT
+
+struct vcmd_ctx_iattr_v1_x32 {
+ compat_uptr_t name_ptr;
+ uint32_t xid;
+ uint32_t flags;
+ uint32_t mask;
+};
+
+#endif /* CONFIG_COMPAT */
+
+#include <linux/compiler.h>
+
+extern int vc_get_iattr_v0(uint32_t, void __user *);
+extern int vc_set_iattr_v0(uint32_t, void __user *);
+
+extern int vc_get_iattr(uint32_t, void __user *);
+extern int vc_set_iattr(uint32_t, void __user *);
+
+#ifdef CONFIG_COMPAT
+
+extern int vc_get_iattr_x32(uint32_t, void __user *);
+extern int vc_set_iattr_x32(uint32_t, void __user *);
+
+#endif /* CONFIG_COMPAT */
+
+#endif /* __KERNEL__ */
+#endif /* _VX_INODE_CMD_H */
--- /dev/null
+#ifndef _VX_LEGACY_H
+#define _VX_LEGACY_H
+
+#include "switch.h"
+
+/* compatibiliy vserver commands */
+
+#define VCMD_new_s_context VC_CMD(COMPAT, 1, 1)
+#define VCMD_set_ipv4root VC_CMD(COMPAT, 2, 3)
+
+#define VCMD_create_context VC_CMD(VSETUP, 1, 0)
+
+/* compatibiliy vserver arguments */
+
+struct vcmd_new_s_context_v1 {
+ uint32_t remove_cap;
+ uint32_t flags;
+};
+
+struct vcmd_set_ipv4root_v3 {
+ /* number of pairs in id */
+ uint32_t broadcast;
+ struct {
+ uint32_t ip;
+ uint32_t mask;
+ } nx_mask_pair[NB_IPV4ROOT];
+};
+
+
+#define VX_INFO_LOCK 1 /* Can't request a new vx_id */
+#define VX_INFO_NPROC 4 /* Limit number of processes in a context */
+#define VX_INFO_PRIVATE 8 /* Noone can join this security context */
+#define VX_INFO_INIT 16 /* This process wants to become the */
+ /* logical process 1 of the security */
+ /* context */
+#define VX_INFO_HIDEINFO 32 /* Hide some information in /proc */
+#define VX_INFO_ULIMIT 64 /* Use ulimit of the current process */
+ /* to become the global limits */
+ /* of the context */
+#define VX_INFO_NAMESPACE 128 /* save private namespace */
+
+
+#ifdef __KERNEL__
+extern int vc_new_s_context(uint32_t, void __user *);
+extern int vc_set_ipv4root(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+#endif /* _VX_LEGACY_H */
--- /dev/null
+#ifndef _VX_LIMIT_H
+#define _VX_LIMIT_H
+
+#ifdef __KERNEL__
+
+struct sysinfo;
+
+void vx_vsi_meminfo(struct sysinfo *);
+void vx_vsi_swapinfo(struct sysinfo *);
+
+#define VXD_RLIMIT(r,l) (VXD_CBIT(limit, (l)) && ((r) == (l)))
+
+#define NUM_LIMITS 24
+
+#define VLIMIT_NSOCK 16
+#define VLIMIT_OPENFD 17
+#define VLIMIT_ANON 18
+#define VLIMIT_SHMEM 19
+
+extern const char *vlimit_name[NUM_LIMITS];
+
+#endif /* __KERNEL__ */
+#endif /* _VX_LIMIT_H */
--- /dev/null
+#ifndef _VX_LIMIT_CMD_H
+#define _VX_LIMIT_CMD_H
+
+/* rlimit vserver commands */
+
+#define VCMD_get_rlimit VC_CMD(RLIMIT, 1, 0)
+#define VCMD_set_rlimit VC_CMD(RLIMIT, 2, 0)
+#define VCMD_get_rlimit_mask VC_CMD(RLIMIT, 3, 0)
+
+struct vcmd_ctx_rlimit_v0 {
+ uint32_t id;
+ uint64_t minimum;
+ uint64_t softlimit;
+ uint64_t maximum;
+};
+
+struct vcmd_ctx_rlimit_mask_v0 {
+ uint32_t minimum;
+ uint32_t softlimit;
+ uint32_t maximum;
+};
+
+#define CRLIM_UNSET (0ULL)
+#define CRLIM_INFINITY (~0ULL)
+#define CRLIM_KEEP (~1ULL)
+
+#ifdef __KERNEL__
+
+#include <linux/compiler.h>
+
+extern int vc_get_rlimit(uint32_t, void __user *);
+extern int vc_set_rlimit(uint32_t, void __user *);
+extern int vc_get_rlimit_mask(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+#endif /* _VX_LIMIT_CMD_H */
--- /dev/null
+#ifndef _VX_LIMIT_DEF_H
+#define _VX_LIMIT_DEF_H
+
+#include <asm/atomic.h>
+#include <asm/resource.h>
+
+#include "limit.h"
+
+/* context sub struct */
+
+struct _vx_limit {
+ atomic_t ticks;
+
+ unsigned long rlim[NUM_LIMITS]; /* Context limit */
+ unsigned long rmax[NUM_LIMITS]; /* Context maximum */
+ atomic_t rcur[NUM_LIMITS]; /* Current value */
+ atomic_t lhit[NUM_LIMITS]; /* Limit hits */
+};
+
+
+#endif /* _VX_LIMIT_DEF_H */
--- /dev/null
+#ifndef _VX_NAMESPACE_H
+#define _VX_NAMESPACE_H
+
+#include <linux/types.h>
+
+struct vx_info;
+struct namespace;
+struct fs_struct;
+
+extern int vx_set_namespace(struct vx_info *, struct namespace *, struct fs_struct *);
+
+#else /* _VX_NAMESPACE_H */
+#warning duplicate inclusion
+#endif /* _VX_NAMESPACE_H */
--- /dev/null
+#ifndef _VX_NAMESPACE_CMD_H
+#define _VX_NAMESPACE_CMD_H
+
+#define VCMD_enter_namespace VC_CMD(PROCALT, 1, 0)
+#define VCMD_cleanup_namespace VC_CMD(PROCALT, 2, 0)
+#define VCMD_set_namespace VC_CMD(PROCALT, 3, 0)
+
+
+#ifdef __KERNEL__
+
+extern int vc_enter_namespace(uint32_t, void __user *);
+extern int vc_cleanup_namespace(uint32_t, void __user *);
+extern int vc_set_namespace(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+#endif /* _VX_NAMESPACE_CMD_H */
--- /dev/null
+#ifndef _VX_NETWORK_H
+#define _VX_NETWORK_H
+
+#include <linux/types.h>
+
+
+#define MAX_N_CONTEXT 65535 /* Arbitrary limit */
+
+#define NX_DYNAMIC_ID ((uint32_t)-1) /* id for dynamic context */
+
+#define NB_IPV4ROOT 16
+
+
+/* network flags */
+
+#define NXF_STATE_SETUP (1ULL<<32)
+
+#define NXF_STATE_HELPER (1ULL<<36)
+
+#define NXF_ONE_TIME (0x0001ULL<<32)
+
+#define NXF_INIT_SET (0)
+
+
+/* address types */
+
+#define NXA_TYPE_IPV4 1
+#define NXA_TYPE_IPV6 2
+
+#define NXA_MOD_BCAST (1<<8)
+
+#define NXA_TYPE_ANY (~0)
+
+
+#ifdef __KERNEL__
+
+#include <linux/list.h>
+#include <linux/spinlock.h>
+#include <linux/rcupdate.h>
+#include <asm/atomic.h>
+
+
+struct nx_info {
+ struct hlist_node nx_hlist; /* linked list of nxinfos */
+ nid_t nx_id; /* vnet id */
+ atomic_t nx_usecnt; /* usage count */
+ atomic_t nx_tasks; /* tasks count */
+ int nx_state; /* context state */
+
+ uint64_t nx_flags; /* network flag word */
+ uint64_t nx_ncaps; /* network capabilities */
+
+ int nbipv4;
+ __u32 ipv4[NB_IPV4ROOT]; /* Process can only bind to these IPs */
+ /* The first one is used to connect */
+ /* and for bind any service */
+ /* The other must be used explicity */
+ __u32 mask[NB_IPV4ROOT]; /* Netmask for each ipv4 */
+ /* Used to select the proper source */
+ /* address for sockets */
+ __u32 v4_bcast; /* Broadcast address to receive UDP */
+
+ char nx_name[65]; /* network context name */
+};
+
+
+/* status flags */
+
+#define NXS_HASHED 0x0001
+#define NXS_SHUTDOWN 0x0100
+#define NXS_RELEASED 0x8000
+
+extern struct nx_info *locate_nx_info(int);
+extern struct nx_info *locate_or_create_nx_info(int);
+
+extern int get_nid_list(int, unsigned int *, int);
+extern int nid_is_hashed(nid_t);
+
+extern int nx_migrate_task(struct task_struct *, struct nx_info *);
+
+extern long vs_net_change(struct nx_info *, unsigned int);
+
+struct in_ifaddr;
+struct net_device;
+
+int ifa_in_nx_info(struct in_ifaddr *, struct nx_info *);
+int dev_in_nx_info(struct net_device *, struct nx_info *);
+
+struct sock;
+
+int nx_addr_conflict(struct nx_info *, uint32_t, struct sock *);
+
+#endif /* __KERNEL__ */
+#else /* _VX_NETWORK_H */
+#warning duplicate inclusion
+#endif /* _VX_NETWORK_H */
--- /dev/null
+#ifndef _VX_NETWORK_CMD_H
+#define _VX_NETWORK_CMD_H
+
+
+/* vinfo commands */
+
+#define VCMD_task_nid VC_CMD(VINFO, 2, 0)
+
+#ifdef __KERNEL__
+extern int vc_task_nid(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+
+#define VCMD_nx_info VC_CMD(VINFO, 6, 0)
+
+struct vcmd_nx_info_v0 {
+ uint32_t nid;
+ /* more to come */
+};
+
+#ifdef __KERNEL__
+extern int vc_nx_info(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+
+#define VCMD_net_create_v0 VC_CMD(VNET, 1, 0)
+#define VCMD_net_create VC_CMD(VNET, 1, 1)
+
+struct vcmd_net_create {
+ uint64_t flagword;
+};
+
+#define VCMD_net_migrate VC_CMD(NETMIG, 1, 0)
+
+#define VCMD_net_add VC_CMD(NETALT, 1, 0)
+#define VCMD_net_remove VC_CMD(NETALT, 2, 0)
+
+struct vcmd_net_addr_v0 {
+ uint16_t type;
+ uint16_t count;
+ uint32_t ip[4];
+ uint32_t mask[4];
+ /* more to come */
+};
+
+
+#ifdef __KERNEL__
+extern int vc_net_create(uint32_t, void __user *);
+extern int vc_net_migrate(uint32_t, void __user *);
+
+extern int vc_net_add(uint32_t, void __user *);
+extern int vc_net_remove(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+
+
+/* flag commands */
+
+#define VCMD_get_nflags VC_CMD(FLAGS, 5, 0)
+#define VCMD_set_nflags VC_CMD(FLAGS, 6, 0)
+
+struct vcmd_net_flags_v0 {
+ uint64_t flagword;
+ uint64_t mask;
+};
+
+#ifdef __KERNEL__
+extern int vc_get_nflags(uint32_t, void __user *);
+extern int vc_set_nflags(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+
+
+/* network caps commands */
+
+#define VCMD_get_ncaps VC_CMD(FLAGS, 7, 0)
+#define VCMD_set_ncaps VC_CMD(FLAGS, 8, 0)
+
+struct vcmd_net_caps_v0 {
+ uint64_t ncaps;
+ uint64_t cmask;
+};
+
+#ifdef __KERNEL__
+extern int vc_get_ncaps(uint32_t, void __user *);
+extern int vc_set_ncaps(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+#endif /* _VX_CONTEXT_CMD_H */
--- /dev/null
+#ifndef _VX_SCHED_H
+#define _VX_SCHED_H
+
+#ifdef __KERNEL__
+
+struct timespec;
+
+void vx_vsi_uptime(struct timespec *, struct timespec *);
+
+
+struct vx_info;
+
+void vx_update_load(struct vx_info *);
+
+
+struct task_struct;
+
+int vx_effective_vavavoom(struct vx_info *, int);
+
+int vx_tokens_recalc(struct vx_info *);
+
+#endif /* __KERNEL__ */
+#else /* _VX_SCHED_H */
+#warning duplicate inclusion
+#endif /* _VX_SCHED_H */
--- /dev/null
+#ifndef _VX_SCHED_CMD_H
+#define _VX_SCHED_CMD_H
+
+/* sched vserver commands */
+
+#define VCMD_set_sched_v2 VC_CMD(SCHED, 1, 2)
+#define VCMD_set_sched VC_CMD(SCHED, 1, 3)
+
+struct vcmd_set_sched_v2 {
+ int32_t fill_rate;
+ int32_t interval;
+ int32_t tokens;
+ int32_t tokens_min;
+ int32_t tokens_max;
+ uint64_t cpu_mask;
+};
+
+struct vcmd_set_sched_v3 {
+ uint32_t set_mask;
+ int32_t fill_rate;
+ int32_t interval;
+ int32_t tokens;
+ int32_t tokens_min;
+ int32_t tokens_max;
+ int32_t priority_bias;
+};
+
+
+#define VXSM_FILL_RATE 0x0001
+#define VXSM_INTERVAL 0x0002
+#define VXSM_TOKENS 0x0010
+#define VXSM_TOKENS_MIN 0x0020
+#define VXSM_TOKENS_MAX 0x0040
+#define VXSM_PRIO_BIAS 0x0100
+
+#define SCHED_KEEP (-2)
+
+#ifdef __KERNEL__
+
+#include <linux/compiler.h>
+
+extern int vc_set_sched_v1(uint32_t, void __user *);
+extern int vc_set_sched_v2(uint32_t, void __user *);
+extern int vc_set_sched(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+#endif /* _VX_SCHED_CMD_H */
--- /dev/null
+#ifndef _VX_SCHED_DEF_H
+#define _VX_SCHED_DEF_H
+
+#include <linux/spinlock.h>
+#include <linux/jiffies.h>
+#include <linux/cpumask.h>
+#include <asm/atomic.h>
+#include <asm/param.h>
+
+
+struct _vx_ticks {
+ uint64_t user_ticks; /* token tick events */
+ uint64_t sys_ticks; /* token tick events */
+ uint64_t hold_ticks; /* token ticks paused */
+ uint64_t unused[5]; /* cacheline ? */
+};
+
+/* context sub struct */
+
+struct _vx_sched {
+ atomic_t tokens; /* number of CPU tokens */
+ spinlock_t tokens_lock; /* lock for token bucket */
+
+ int fill_rate; /* Fill rate: add X tokens... */
+ int interval; /* Divisor: per Y jiffies */
+ int tokens_min; /* Limit: minimum for unhold */
+ int tokens_max; /* Limit: no more than N tokens */
+ uint32_t jiffies; /* last time accounted */
+
+ int priority_bias; /* bias offset for priority */
+ int vavavoom; /* last calculated vavavoom */
+
+ cpumask_t cpus_allowed; /* cpu mask for context */
+
+ struct _vx_ticks cpu[NR_CPUS];
+};
+
+#endif /* _VX_SCHED_DEF_H */
--- /dev/null
+#ifndef _VX_SIGNAL_CMD_H
+#define _VX_SIGNAL_CMD_H
+
+/* signalling vserver commands */
+
+#define VCMD_ctx_kill VC_CMD(PROCTRL, 1, 0)
+#define VCMD_wait_exit VC_CMD(EVENT, 99, 0)
+
+struct vcmd_ctx_kill_v0 {
+ int32_t pid;
+ int32_t sig;
+};
+
+struct vcmd_wait_exit_v0 {
+ int32_t a;
+ int32_t b;
+};
+
+#ifdef __KERNEL__
+
+extern int vc_ctx_kill(uint32_t, void __user *);
+extern int vc_wait_exit(uint32_t, void __user *);
+
+#endif /* __KERNEL__ */
+#endif /* _VX_SIGNAL_CMD_H */
--- /dev/null
+#ifndef _VX_SWITCH_H
+#define _VX_SWITCH_H
+
+#include <linux/types.h>
+
+#define VC_CATEGORY(c) (((c) >> 24) & 0x3F)
+#define VC_COMMAND(c) (((c) >> 16) & 0xFF)
+#define VC_VERSION(c) ((c) & 0xFFF)
+
+#define VC_CMD(c,i,v) ((((VC_CAT_ ## c) & 0x3F) << 24) \
+ | (((i) & 0xFF) << 16) | ((v) & 0xFFF))
+
+/*
+
+ Syscall Matrix V2.8
+
+ |VERSION|CREATE |MODIFY |MIGRATE|CONTROL|EXPERIM| |SPECIAL|SPECIAL|
+ |STATS |DESTROY|ALTER |CHANGE |LIMIT |TEST | | | |
+ |INFO |SETUP | |MOVE | | | | | |
+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+ SYSTEM |VERSION|VSETUP |VHOST | | | | |DEVICES| |
+ HOST | 00| 01| 02| 03| 04| 05| | 06| 07|
+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+ CPU | |VPROC |PROCALT|PROCMIG|PROCTRL| | |SCHED. | |
+ PROCESS| 08| 09| 10| 11| 12| 13| | 14| 15|
+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+ MEMORY | | | | | | | |SWAP | |
+ | 16| 17| 18| 19| 20| 21| | 22| 23|
+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+ NETWORK| |VNET |NETALT |NETMIG |NETCTL | | |SERIAL | |
+ | 24| 25| 26| 27| 28| 29| | 30| 31|
+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+ DISK | | | | |DLIMIT | | |INODE | |
+ VFS | 32| 33| 34| 35| 36| 37| | 38| 39|
+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+ OTHER | | | | | | | |VINFO | |
+ | 40| 41| 42| 43| 44| 45| | 46| 47|
+ =======+=======+=======+=======+=======+=======+=======+ +=======+=======+
+ SPECIAL|EVENT | | | |FLAGS | | | | |
+ | 48| 49| 50| 51| 52| 53| | 54| 55|
+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+ SPECIAL|DEBUG | | | |RLIMIT |SYSCALL| | |COMPAT |
+ | 56| 57| 58| 59| 60|TEST 61| | 62| 63|
+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+
+*/
+
+#define VC_CAT_VERSION 0
+
+#define VC_CAT_VSETUP 1
+#define VC_CAT_VHOST 2
+
+#define VC_CAT_VPROC 9
+#define VC_CAT_PROCALT 10
+#define VC_CAT_PROCMIG 11
+#define VC_CAT_PROCTRL 12
+
+#define VC_CAT_SCHED 14
+
+#define VC_CAT_VNET 25
+#define VC_CAT_NETALT 26
+#define VC_CAT_NETMIG 27
+#define VC_CAT_NETCTRL 28
+
+#define VC_CAT_DLIMIT 36
+#define VC_CAT_INODE 38
+
+#define VC_CAT_VINFO 46
+#define VC_CAT_EVENT 48
+
+#define VC_CAT_FLAGS 52
+#define VC_CAT_DEBUG 56
+#define VC_CAT_RLIMIT 60
+
+#define VC_CAT_SYSTEST 61
+#define VC_CAT_COMPAT 63
+
+/* interface version */
+
+#define VCI_VERSION 0x00020001
+#define VCI_LEGACY_VERSION 0x000100FF
+
+/* query version */
+
+#define VCMD_get_version VC_CMD(VERSION, 0, 0)
+
+
+#ifdef __KERNEL__
+
+#include <linux/errno.h>
+
+
+#else /* __KERNEL__ */
+#define __user
+#endif /* __KERNEL__ */
+
+#endif /* _VX_SWITCH_H */
--- /dev/null
+#ifndef _VX_XID_H
+#define _VX_XID_H
+
+#ifndef CONFIG_VSERVER
+#warning config options missing
+#endif
+
+#define XID_TAG_SB(sb) (sb->s_flags & MS_TAGXID)
+
+#define XID_TAG(in) (!(in) || \
+ (((struct inode *)in)->i_sb && \
+ XID_TAG_SB(((struct inode *)in)->i_sb)))
+
+
+#ifdef CONFIG_XID_TAG_NFSD
+#define XID_TAG_NFSD 1
+#else
+#define XID_TAG_NFSD 0
+#endif
+
+
+#ifdef CONFIG_INOXID_NONE
+
+#define MAX_UID 0xFFFFFFFF
+#define MAX_GID 0xFFFFFFFF
+
+#define INOXID_XID(tag, uid, gid, xid) (0)
+
+#define XIDINO_UID(tag, uid, xid) (uid)
+#define XIDINO_GID(tag, gid, xid) (gid)
+
+#endif
+
+
+#ifdef CONFIG_INOXID_GID16
+
+#define MAX_UID 0xFFFFFFFF
+#define MAX_GID 0x0000FFFF
+
+#define INOXID_XID(tag, uid, gid, xid) \
+ ((tag) ? (((gid) >> 16) & 0xFFFF) : 0)
+
+#define XIDINO_UID(tag, uid, xid) (uid)
+#define XIDINO_GID(tag, gid, xid) \
+ ((tag) ? (((gid) & 0xFFFF) | ((xid) << 16)) : (gid))
+
+#endif
+
+
+#ifdef CONFIG_INOXID_UGID24
+
+#define MAX_UID 0x00FFFFFF
+#define MAX_GID 0x00FFFFFF
+
+#define INOXID_XID(tag, uid, gid, xid) \
+ ((tag) ? ((((uid) >> 16) & 0xFF00) | (((gid) >> 24) & 0xFF)) : 0)
+
+#define XIDINO_UID(tag, uid, xid) \
+ ((tag) ? (((uid) & 0xFFFFFF) | (((xid) & 0xFF00) << 16)) : (uid))
+#define XIDINO_GID(tag, gid, xid) \
+ ((tag) ? (((gid) & 0xFFFFFF) | (((xid) & 0x00FF) << 24)) : (gid))
+
+#endif
+
+
+#ifdef CONFIG_INOXID_UID16
+
+#define MAX_UID 0x0000FFFF
+#define MAX_GID 0xFFFFFFFF
+
+#define INOXID_XID(tag, uid, gid, xid) \
+ ((tag) ? (((uid) >> 16) & 0xFFFF) : 0)
+
+#define XIDINO_UID(tag, uid, xid) \
+ ((tag) ? (((uid) & 0xFFFF) | ((xid) << 16)) : (uid))
+#define XIDINO_GID(tag, gid, xid) (gid)
+
+#endif
+
+
+#ifdef CONFIG_INOXID_INTERN
+
+#define MAX_UID 0xFFFFFFFF
+#define MAX_GID 0xFFFFFFFF
+
+#define INOXID_XID(tag, uid, gid, xid) \
+ ((tag) ? (xid) : 0)
+
+#define XIDINO_UID(tag, uid, xid) (uid)
+#define XIDINO_GID(tag, gid, xid) (gid)
+
+#endif
+
+
+#ifdef CONFIG_INOXID_RUNTIME
+
+#define MAX_UID 0xFFFFFFFF
+#define MAX_GID 0xFFFFFFFF
+
+#define INOXID_XID(tag, uid, gid, xid) (0)
+
+#define XIDINO_UID(tag, uid, xid) (uid)
+#define XIDINO_GID(tag, gid, xid) (gid)
+
+#endif
+
+
+#ifdef CONFIG_INOXID_NONE
+#define vx_current_fsxid(sb) (0)
+#else
+#define vx_current_fsxid(sb) \
+ (XID_TAG_SB(sb) ? current->xid : 0)
+#endif
+
+#define INOXID_UID(tag, uid, gid) \
+ ((tag) ? ((uid) & MAX_UID) : (uid))
+#define INOXID_GID(tag, uid, gid) \
+ ((tag) ? ((gid) & MAX_GID) : (gid))
+
+
+static inline uid_t vx_map_uid(uid_t uid)
+{
+ if ((uid > MAX_UID) && (uid != -1))
+ uid = -2;
+ return (uid & MAX_UID);
+}
+
+static inline gid_t vx_map_gid(gid_t gid)
+{
+ if ((gid > MAX_GID) && (gid != -1))
+ gid = -2;
+ return (gid & MAX_GID);
+}
+
+
+#ifdef CONFIG_VSERVER_LEGACY
+#define FIOC_GETXID _IOR('x', 1, long)
+#define FIOC_SETXID _IOW('x', 2, long)
+#define FIOC_SETXIDJ _IOW('x', 3, long)
+#endif
+
+int vx_parse_xid(char *string, xid_t *xid, int remove);
+void vx_propagate_xid(struct nameidata *nd, struct inode *inode);
+
+#endif /* _VX_XID_H */
-## $Id: Makefile-files,v 1.1.4.6 2004/03/04 03:23:09 ensc Exp $ -*- makefile -*-
+## $Id: Makefile-files,v 1.55 2005/05/05 09:17:25 ensc Exp $ -*- makefile -*-
## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
-lib_SRCS = lib/syscall.c \
- lib/syscall_rlimit.c \
- lib/syscall_kill.c \
- lib/checkversion.c \
- lib/getctx.c \
- lib/getversion.c \
- lib/uint2str.c
-
-lib_HDRS = lib/vserver.h
-
-lib_XHDRS = lib/syscall-compat.hc \
- lib/syscall-legacy.hc \
- lib/syscall_rlimit-v11.hc \
- lib/syscall_kill-v11.hc \
- lib/getctx-compat.hc \
- lib/getctx-legacy.hc \
- lib/getversion-internal.hc \
- lib/safechroot-internal.hc \
- lib/virtual.h \
- lib/vserver-internal.h
-
-lib_lib_LIBS = lib/libvserver.a
-
-lib_libvserver_a_SOURCES = $(lib_SRCS)
-lib_libvserver_a_CPPFLAGS = -D_GNU_SOURCE
+lib_VERSION = 0.0.0
+
+lib_compat_SRCS = lib/cflags-compat.c \
+ lib/cflags_list-compat.c
+lib_legacy_SRCS = lib/getprocentry-legacy.c
+lib_management_SRCS = lib/createskeleton.c \
+ lib/getvserverbyctx.c \
+ lib/getvserverbyctx-compat.hc \
+ lib/getvserverbyctx-v13.hc \
+ lib/getvservercfgstyle.c \
+ lib/getvserverappdir.c \
+ lib/getvservercfgdir.c \
+ lib/getvserverctx.c \
+ lib/getvservername.c \
+ lib/getvservervdir.c \
+ lib/xidopt2xid.c
+lib_v11_SRCS = lib/syscall_rlimit.c \
+ lib/syscall_rlimit-v11.hc \
+ lib/syscall_kill.c \
+ lib/syscall_kill-v11.hc
+lib_v13_SRCS = lib/syscall_ctxcreate.c \
+ lib/syscall_ctxcreate-v13.hc \
+ lib/syscall_ctxmigrate.c \
+ lib/syscall_ctxmigrate-v13.hc \
+ lib/syscall_cleanupnamespace-v13.hc \
+ lib/syscall_cleanupnamespace.c \
+ lib/syscall_enternamespace-v13.hc \
+ lib/syscall_enternamespace.c \
+ lib/syscall_getccaps-v13.hc \
+ lib/syscall_getccaps.c \
+ lib/syscall_getcflags-v13.hc \
+ lib/syscall_getcflags.c \
+ lib/syscall_getiattr-fscompat.hc \
+ lib/syscall_getiattr-v13.hc \
+ lib/syscall_getiattr.c \
+ lib/syscall_getncaps-net.hc \
+ lib/syscall_getncaps.c \
+ lib/syscall_getnflags-net.hc \
+ lib/syscall_getnflags.c \
+ lib/syscall_getnxinfo-net.hc \
+ lib/syscall_getnxinfo.c \
+ lib/syscall_gettasknid-net.hc \
+ lib/syscall_gettasknid.c \
+ lib/syscall_gettaskxid-oldproc.hc \
+ lib/syscall_gettaskxid-v13.hc \
+ lib/syscall_gettaskxid.c \
+ lib/syscall_getvhiname-olduts.hc \
+ lib/syscall_getvhiname-v13.hc \
+ lib/syscall_getvhiname.c \
+ lib/syscall_getvxinfo-oldproc.hc \
+ lib/syscall_getvxinfo-v13.hc \
+ lib/syscall_getvxinfo.c \
+ lib/syscall_netadd-net.hc \
+ lib/syscall_netadd.c \
+ lib/syscall_netcreate-net.hc \
+ lib/syscall_netcreate.c \
+ lib/syscall_netmigrate-net.hc \
+ lib/syscall_netmigrate.c \
+ lib/syscall_netremove-net.hc \
+ lib/syscall_netremove.c \
+ lib/syscall_setccaps-v13.hc \
+ lib/syscall_setccaps.c \
+ lib/syscall_setcflags-v13.hc \
+ lib/syscall_setcflags.c \
+ lib/syscall_setiattr-fscompat.hc \
+ lib/syscall_setiattr-v13.hc \
+ lib/syscall_setiattr.c \
+ lib/syscall_setnamespace-v13.hc \
+ lib/syscall_setnamespace.c \
+ lib/syscall_setncaps-net.hc \
+ lib/syscall_setncaps.c \
+ lib/syscall_setnflags-net.hc \
+ lib/syscall_setnflags.c \
+ lib/syscall_setsched-v13.hc \
+ lib/syscall_setsched.c \
+ lib/syscall_setvhiname-olduts.hc \
+ lib/syscall_setvhiname-v13.hc \
+ lib/syscall_setvhiname.c \
+ lib/syscall_waitexit.c \
+ lib/syscall_waitexit-v13.hc \
+ lib/bcaps-v13.c \
+ lib/bcaps_list-v13.c \
+ lib/ccaps-v13.c \
+ lib/ccaps_list-v13.c \
+ lib/cflags-v13.c \
+ lib/cflags_list-v13.c \
+ lib/ncaps-net.c \
+ lib/ncaps_list-net.c \
+ lib/nflags-net.c \
+ lib/nflags_list-net.c
+
+if ENSC_HAVE_C99_COMPILER
+lib_v13_SRCS += lib/syscall_adddlimit-v13.hc \
+ lib/syscall_adddlimit.c \
+ lib/syscall_getdlimit-v13.hc \
+ lib/syscall_getdlimit.c \
+ lib/syscall_remdlimit-v13.hc \
+ lib/syscall_remdlimit.c \
+ lib/syscall_setdlimit-v13.hc \
+ lib/syscall_setdlimit.c
+endif
+
+PKGCONFIG_FILES = lib/util-vserver
+
+lib_SRCS = lib/syscall.c \
+ lib/checkversion.c \
+ lib/isdirectory.c \
+ lib/isfile.c \
+ lib/islink.c \
+ lib/getnbipv4root.c \
+ lib/getversion.c \
+ lib/capabilities.c \
+ lib/getfilecontext.c \
+ lib/getinsecurebcaps.c \
+ lib/getxidtype.c \
+ lib/isdynamicxid.c \
+ lib/issupported.c \
+ lib/issupportedstring.c \
+ lib/listparser_uint32.c \
+ lib/listparser_uint64.c \
+ lib/personalityflag.c \
+ lib/personalityflag_list.c \
+ lib/personalitytype.c \
+ lib/syscall-syscall.c \
+ lib/val2text-t2v-uint32.c \
+ lib/val2text-t2v-uint64.c \
+ lib/val2text-v2t-uint32.c \
+ lib/val2text-v2t-uint64.c \
+ lib/parselimit.c \
+ $(lib_legacy_SRCS) \
+ $(lib_compat_SRCS) \
+ $(lib_management_SRCS) \
+ $(lib_v11_SRCS) \
+ $(lib_v13_SRCS) \
+ $(ensc_fmt_SRCS)
+
+include_HEADERS += lib/vserver.h
+
+noinst_HEADERS += lib/syscall-compat.hc \
+ lib/syscall-legacy.hc \
+ lib/createskeleton-full.hc \
+ lib/createskeleton-short.hc \
+ lib/fmt.h \
+ lib/getversion-internal.hc \
+ lib/safechroot-internal.hc \
+ lib/ioctl-getext2flags.hc \
+ lib/ioctl-getfilecontext.hc \
+ lib/ioctl-setext2flags.hc \
+ lib/ioctl-setfilecontext.hc \
+ lib/ioctl-getxflg.hc \
+ lib/ioctl-setxflg.hc \
+ lib/ext2fs.h \
+ lib/listparser.hc \
+ lib/val2text.hc \
+ lib/virtual.h \
+ lib/internal.h \
+ lib/syscall-alternative.h \
+ lib/syscall-wrap.h \
+ lib/utils-legacy.h \
+ lib/vserver-internal.h
+
+LIBVSERVER_GLIBC = lib/libvserver.la
+lib_LTLIBRARIES += $(LIBVSERVER_GLIBC)
+
+if USE_DIETLIBC
+LIBVSERVER_DIET = lib/libvserver.a
+LIBVSERVER = $(LIBVSERVER_DIET)
+lib_LIBRARIES += $(LIBVSERVER_DIET)
+else
+LIBVSERVER_DIET = lib-dietlibc-not-enabled-error.a
+LIBVSERVER = lib/libvserver.la
+endif
+
+lib_libvserver_la_SOURCES = $(lib_SRCS)
+lib_libvserver_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIB_DEBUG_CPPFLAGS)
+lib_libvserver_la_LDFLAGS = -version $(lib_VERSION)
+
+lib_libvserver_a_SOURCES = $(lib_SRCS)
+lib_libvserver_a_CPPFLAGS = $(AM_CPPFLAGS) $(LIB_DEBUG_CPPFLAGS)
+
+DIETPROGS += lib/lib_libvserver_a-%
+
+CLEANFILES += lib/libvserver.la \
+ lib/libvserver.a
+
+include $(srcdir)/lib/apidoc/Makefile-files
+include $(srcdir)/lib/testsuite/Makefile-files
--- /dev/null
+# Doxyfile 1.3.6
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME = "@PACKAGE@ (libvserver)"
+PROJECT_NUMBER = @PACKAGE_VERSION@
+OUTPUT_DIRECTORY =
+OUTPUT_LANGUAGE = English
+USE_WINDOWS_ENCODING = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF =
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP = NO
+INHERIT_DOCS = YES
+DISTRIBUTE_GROUP_DOC = NO
+TAB_SIZE = 8
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = YES
+OPTIMIZE_OUTPUT_JAVA = NO
+SUBGROUPING = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = NO
+EXTRACT_PRIVATE = YES
+EXTRACT_STATIC = NO
+EXTRACT_LOCAL_CLASSES = YES
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = NO
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+SHOW_INCLUDE_FILES = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = NO
+SORT_BY_SCOPE_NAME = NO
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = @top_srcdir@/lib
+FILE_PATTERNS = vserver.h \
+ internal.h
+RECURSIVE = NO
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS =
+EXAMPLE_PATH = @top_srcdir@/lib/apidoc
+EXAMPLE_PATTERNS =
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_SOURCE_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = YES
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION = YES
+VERBATIM_HEADERS = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = NO
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = NO
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+BINARY_TOC = NO
+TOC_EXPAND = NO
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = NO
+TREEVIEW_WIDTH = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = YES
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = YES
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = YES
+USE_PDFLATEX = YES
+LATEX_BATCHMODE = YES
+LATEX_HIDE_INDICES = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = YES
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_LINKS = YES
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+XML_OUTPUT = xml
+XML_SCHEMA =
+XML_DTD =
+XML_PROGRAMLISTING = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = NO
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED = VC_ATTR_UNUSED= \
+ VC_ATTR_NONNULL(X)= \
+ VC_ATTR_NORETURN= \
+ VC_ATTR_ALWAYSINLINE= \
+ VC_ATTR_PURE= \
+ IS_DOXYGEN=1
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = YES
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = YES
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+UML_LOOK = YES
+TEMPLATE_RELATIONS = NO
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = YES
+GRAPHICAL_HIERARCHY = YES
+DOT_IMAGE_FORMAT = png
+DOT_PATH =
+DOTFILE_DIRS =
+MAX_DOT_GRAPH_WIDTH = 1024
+MAX_DOT_GRAPH_HEIGHT = 1024
+MAX_DOT_GRAPH_DEPTH = 0
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
+DOT_TRANSPARENT = YES
+DOT_MULTI_TARGETS = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
--- /dev/null
+## $Id: Makefile-files,v 1.3 2004/04/28 18:12:54 ensc Exp $ --*- makefile -*--
+
+## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+
+CLEANFILES += lib/apidoc/.apidoc
+EXTRA_DIST += lib/apidoc/list2xxx.syntax
+
+doc: lib/apidoc/.apidoc
+clean-local: clean_lib_apidoc
+
+clean_lib_apidoc:
+ -rm -rf lib/apidoc/html lib/apidoc/latex lib/apidoc/man
+
+lib/apidoc/.apidoc: lib/apidoc/Doxyfile lib/vserver.h lib/internal.h
+ -rm -rf lib/apidoc/html lib/apidoc/latex lib/apidoc/man
+ cd "$$(dirname '$<')" && $(DOXYGEN) "$$(basename '$<')"
+ $(MAKE) -j1 -C lib/apidoc/latex
+ touch '$@'
--- /dev/null
+LIST <- ELEM | ELEM ',' LIST
+ELEM <- '~' ELEM | MASK | NAME
+MASK <- NUMBER | '^' NUMBER
+NUMBER <- 0[0-7]* | [1-9][0-9]* | 0x[0-9,a-f]+
+NAME <- <literal name> | "all" | "any" | "none"
--- /dev/null
+// $Id: bcaps-v13.c,v 1.5 2005/07/15 16:27:37 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include <lib_internal/util-dimof.h>
+#include <linux/capability.h>
+
+#include <string.h>
+#include <strings.h>
+#include <assert.h>
+
+#define DECL(VAL) { #VAL, sizeof(#VAL)-1, 1 << (CAP_ ## VAL) }
+
+#ifndef CAP_AUDIT_WRITE
+# define CAP_AUDIT_WRITE 29
+#endif
+
+#ifndef CAP_AUDIT_CONTROL
+# define CAP_AUDIT_CONTROL 30
+#endif
+
+static struct Mapping_uint64 const VALUES[] = {
+ DECL(CHOWN),
+ DECL(DAC_OVERRIDE),
+ DECL(DAC_READ_SEARCH),
+ DECL(FOWNER),
+ DECL(FSETID),
+ DECL(KILL),
+ DECL(SETGID),
+ DECL(SETUID),
+ DECL(SETPCAP),
+ DECL(LINUX_IMMUTABLE),
+ DECL(NET_BIND_SERVICE),
+ DECL(NET_BROADCAST),
+ DECL(NET_ADMIN),
+ DECL(NET_RAW),
+ DECL(IPC_LOCK),
+ DECL(IPC_OWNER),
+ DECL(SYS_MODULE),
+ DECL(SYS_RAWIO),
+ DECL(SYS_CHROOT),
+ DECL(SYS_PTRACE),
+ DECL(SYS_PACCT),
+ DECL(SYS_ADMIN),
+ DECL(SYS_BOOT),
+ DECL(SYS_NICE),
+ DECL(SYS_RESOURCE),
+ DECL(SYS_TIME),
+ DECL(SYS_TTY_CONFIG),
+ DECL(MKNOD),
+ DECL(LEASE),
+ DECL(AUDIT_WRITE),
+ DECL(AUDIT_CONTROL),
+};
+
+inline static char const *
+removePrefix(char const *str, size_t *len)
+{
+ if ((len==0 || *len==0 || *len>4) &&
+ strncasecmp("cap_", str, 4)==0) {
+ if (len && *len>4) *len -= 4;
+ return str+4;
+ }
+ else
+ return str;
+}
+
+uint_least64_t
+vc_text2bcap(char const *str, size_t len)
+{
+ char const * tmp = removePrefix(str, &len);
+ ssize_t idx = utilvserver_value2text_uint64(tmp, len,
+ VALUES, DIM_OF(VALUES));
+ if (idx==-1) return 0;
+ else return VALUES[idx].val;
+}
+
+char const *
+vc_lobcap2text(uint_least64_t *val)
+{
+ ssize_t idx = utilvserver_text2value_uint64(val,
+ VALUES, DIM_OF(VALUES));
+
+ if (idx==-1) return 0;
+ else return VALUES[idx].id;
+}
--- /dev/null
+// $Id: bcaps_list-v13.c,v 1.3 2005/04/24 20:19:52 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+
+#include <string.h>
+
+static uint_least64_t
+vc_text2bcap_err(char const *str, size_t len, bool *failed)
+{
+ uint_least64_t res = vc_text2bcap(str, len);
+ if (res==0) *failed = true;
+ return res;
+}
+
+int
+vc_list2bcap(char const *str, size_t len,
+ struct vc_err_listparser *err,
+ struct vc_ctx_caps *caps)
+{
+ return utilvserver_listparser_uint64(str, len,
+ err ? &err->ptr : 0,
+ err ? &err->len : 0,
+ &caps->bcaps, &caps->bmask,
+ vc_text2bcap_err);
+}
--- /dev/null
+// $Id: capabilities.c,v 1.5 2005/07/15 16:32:05 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+
+#include "vserver.h"
+#include <string.h>
+
+#if 1
+# define DECLARECAP(X,Y) { #X, VC_##X }
+#else
+# define DECLARECAP(X,Y) { #X, Y }
+#endif
+
+static struct {
+ char const * const id;
+ unsigned char bit;
+} const CAP2BIT[] = {
+ DECLARECAP(CAP_CHOWN, 0),
+ DECLARECAP(CAP_DAC_OVERRIDE, 1),
+ DECLARECAP(CAP_DAC_READ_SEARCH, 2),
+ DECLARECAP(CAP_FOWNER, 3),
+ DECLARECAP(CAP_FSETID, 4),
+ DECLARECAP(CAP_KILL, 5),
+ DECLARECAP(CAP_SETGID, 6),
+ DECLARECAP(CAP_SETUID, 7),
+ DECLARECAP(CAP_SETPCAP, 8),
+ DECLARECAP(CAP_LINUX_IMMUTABLE, 9),
+ DECLARECAP(CAP_NET_BIND_SERVICE, 10),
+ DECLARECAP(CAP_NET_BROADCAST, 11),
+ DECLARECAP(CAP_NET_ADMIN, 12),
+ DECLARECAP(CAP_NET_RAW, 13),
+ DECLARECAP(CAP_IPC_LOCK, 14),
+ DECLARECAP(CAP_IPC_OWNER, 15),
+ DECLARECAP(CAP_SYS_MODULE, 16),
+ DECLARECAP(CAP_SYS_RAWIO, 17),
+ DECLARECAP(CAP_SYS_CHROOT, 18),
+ DECLARECAP(CAP_SYS_PTRACE, 19),
+ DECLARECAP(CAP_SYS_PACCT, 20),
+ DECLARECAP(CAP_SYS_ADMIN, 21),
+ DECLARECAP(CAP_SYS_BOOT, 22),
+ DECLARECAP(CAP_SYS_NICE, 23),
+ DECLARECAP(CAP_SYS_RESOURCE, 24),
+ DECLARECAP(CAP_SYS_TIME, 25),
+ DECLARECAP(CAP_SYS_TTY_CONFIG, 26),
+ DECLARECAP(CAP_MKNOD, 27),
+ DECLARECAP(CAP_LEASE, 28),
+ { "CAP_QUOTACTL", 29 },
+};
+
+int
+vc_text2cap(char const *str)
+{
+ size_t i;
+ if (strncmp(str, "CAP_", 4)==0) str += 4;
+
+ for (i=0; i<sizeof(CAP2BIT)/sizeof(CAP2BIT[0]); ++i)
+ if (strcmp(CAP2BIT[i].id+4, str)==0) return CAP2BIT[i].bit;
+
+ return -1;
+}
+
+char const *
+vc_cap2text(unsigned int bit)
+{
+ if ((size_t)bit>=sizeof(CAP2BIT)/sizeof(CAP2BIT[0])) return 0;
+ return CAP2BIT[bit].id;
+}
--- /dev/null
+// $Id: ccaps-v13.c,v 1.4 2005/07/15 16:28:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include <lib_internal/util-dimof.h>
+
+#include <string.h>
+#include <assert.h>
+
+#define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL }
+
+static struct Mapping_uint64 const VALUES[] = {
+ DECL("utsname", VC_VXC_SET_UTSNAME),
+ DECL("rlimit", VC_VXC_SET_RLIMIT),
+ DECL("raw_icmp", VC_VXC_RAW_ICMP),
+ DECL("syslog", VC_VXC_SYSLOG),
+ DECL("secure_mount", VC_VXC_SECURE_MOUNT),
+ DECL("secure_remount", VC_VXC_SECURE_REMOUNT),
+ DECL("binary_mount", VC_VXC_BINARY_MOUNT),
+ DECL("quota_ctl", VC_VXC_QUOTA_CTL),
+ // some deprecated values...
+ DECL("mount", VC_VXC_SECURE_MOUNT),
+ DECL("remount", VC_VXC_SECURE_REMOUNT),
+ DECL("icmp", VC_VXC_RAW_ICMP),
+ DECL("ping", VC_VXC_RAW_ICMP),
+};
+
+uint_least64_t
+vc_text2ccap(char const *str, size_t len)
+{
+ ssize_t idx = utilvserver_value2text_uint64(str, len,
+ VALUES, DIM_OF(VALUES));
+ if (idx==-1) return 0;
+ else return VALUES[idx].val;
+}
+
+char const *
+vc_loccap2text(uint_least64_t *val)
+{
+ ssize_t idx = utilvserver_text2value_uint64(val,
+ VALUES, DIM_OF(VALUES));
+
+ if (idx==-1) return 0;
+ else return VALUES[idx].id;
+}
--- /dev/null
+// $Id: ccaps_list-v13.c,v 1.2 2005/04/24 20:19:52 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+
+#include <string.h>
+
+static uint_least64_t
+vc_text2ccap_err(char const *str, size_t len, bool *failed)
+{
+ uint_least64_t res = vc_text2ccap(str, len);
+ if (res==0) *failed = true;
+ return res;
+}
+
+int
+vc_list2ccap(char const *str, size_t len,
+ struct vc_err_listparser *err,
+ struct vc_ctx_caps *caps)
+{
+ return utilvserver_listparser_uint64(str, len,
+ err ? &err->ptr : 0,
+ err ? &err->len : 0,
+ &caps->ccaps, &caps->cmask,
+ vc_text2ccap_err);
+}
--- /dev/null
+// $Id: cflags-compat.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include <string.h>
+#include <assert.h>
+
+#define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL }
+
+static struct {
+ char const * const id;
+ size_t len;
+ unsigned char val;
+} const FLAGVALUES[] = {
+ DECL("lock", S_CTX_INFO_LOCK),
+ DECL("sched", S_CTX_INFO_SCHED),
+ DECL("nproc", S_CTX_INFO_NPROC),
+ DECL("private", S_CTX_INFO_PRIVATE),
+ DECL("fakeinit", S_CTX_INFO_INIT),
+ DECL("hideinfo", S_CTX_INFO_HIDEINFO),
+ DECL("ulimit", S_CTX_INFO_ULIMIT),
+ DECL("namespace", S_CTX_INFO_NAMESPACE),
+};
+
+uint_least32_t
+vc_text2cflag_compat(char const *str, size_t len)
+{
+ size_t i;
+ if (len==0) len=strlen(str);
+
+ for (i=0; i<sizeof(FLAGVALUES)/sizeof(FLAGVALUES[0]); ++i)
+ if (len==FLAGVALUES[i].len &&
+ strncmp(FLAGVALUES[i].id, str, len)==0)
+ return FLAGVALUES[i].val;
+
+ return 0;
+}
+
+char const *
+vc_hicflag2text_compat(uint_least32_t val)
+{
+ size_t i;
+ size_t idx;
+
+ assert(S_CTX_INFO_ULIMIT==64);
+
+ for (i=S_CTX_INFO_ULIMIT, idx=6; i>0; i/=2, --idx)
+ if (val & i) return FLAGVALUES[idx].id;
+
+ return 0;
+}
--- /dev/null
+// $Id: cflags-v13.c,v 1.3 2004/10/21 19:00:20 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include <lib_internal/util-dimof.h>
+
+#include <string.h>
+#include <assert.h>
+
+#define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL }
+
+static struct Mapping_uint64 const VALUES[] = {
+ DECL("lock", VC_VXF_INFO_LOCK),
+ DECL("nproc", VC_VXF_INFO_NPROC),
+ DECL("private", VC_VXF_INFO_PRIVATE),
+ DECL("fakeinit", VC_VXF_INFO_INIT),
+
+ DECL("hideinfo", VC_VXF_INFO_HIDEINFO),
+ DECL("ulimit", VC_VXF_INFO_ULIMIT),
+ DECL("namespace", VC_VXF_INFO_NAMESPACE),
+
+ DECL("sched_hard", VC_VXF_SCHED_HARD),
+ DECL("sched_prio", VC_VXF_SCHED_PRIO),
+ DECL("sched_pause", VC_VXF_SCHED_PAUSE),
+
+ DECL("virt_mem", VC_VXF_VIRT_MEM),
+ DECL("virt_uptime", VC_VXF_VIRT_UPTIME),
+ DECL("virt_cpu", VC_VXF_VIRT_CPU),
+ DECL("virt_load", VC_VXF_VIRT_LOAD),
+
+ DECL("hide_mount", VC_VXF_HIDE_MOUNT),
+ DECL("hide_netif", VC_VXF_HIDE_NETIF),
+
+ DECL("state_setup", VC_VXF_STATE_SETUP),
+ DECL("state_init", VC_VXF_STATE_INIT),
+
+ DECL("fork_rss", VC_VXF_FORK_RSS),
+ DECL("prolific", VC_VXF_PROLIFIC),
+ DECL("igneg_nice", VC_VXF_IGNEG_NICE),
+
+};
+
+uint_least64_t
+vc_text2cflag(char const *str, size_t len)
+{
+ ssize_t idx = utilvserver_value2text_uint64(str, len,
+ VALUES, DIM_OF(VALUES));
+ if (idx==-1) return 0;
+ else return VALUES[idx].val;
+}
+
+char const *
+vc_locflag2text(uint_least64_t *val)
+{
+ ssize_t idx = utilvserver_text2value_uint64(val,
+ VALUES, DIM_OF(VALUES));
+
+ if (idx==-1) return 0;
+ else return VALUES[idx].id;
+}
--- /dev/null
+// $Id: cflags_list-compat.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include <string.h>
+
+uint_least32_t
+vc_list2cflag_compat(char const *str, size_t len,
+ struct vc_err_listparser *err)
+{
+ uint32_t res = 0;
+
+ if (len==0) len = strlen(str);
+
+ for (;len>0;) {
+ char const *ptr = strchr(str, ',');
+ size_t cnt = ptr ? (size_t)(ptr-str) : len;
+ unsigned int tmp;
+
+ if (cnt>=len) { cnt=len; len=0; }
+ else len-=(cnt+1);
+
+ tmp = vc_text2cflag_compat(str,cnt);
+
+ if (tmp!=0) res |= tmp;
+ else {
+ if (err) {
+ err->ptr = str;
+ err->len = cnt;
+ }
+ return res;
+ }
+
+ if (ptr==0) break;
+ str = ptr+1;
+ }
+
+ if (err) {
+ err->ptr = 0;
+ err->len = 0;
+ }
+ return res;
+}
--- /dev/null
+// $Id: cflags_list-v13.c,v 1.3 2005/04/28 17:53:01 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+
+
+static uint_least64_t
+vc_text2cflag_err(char const *str, size_t len, bool *failed)
+{
+ uint_least64_t res = vc_text2cflag(str, len);
+ if (res==0) *failed = true;
+ return res;
+}
+
+int
+vc_list2cflag(char const *str, size_t len,
+ struct vc_err_listparser *err,
+ struct vc_ctx_flags *flags)
+{
+ return utilvserver_listparser_uint64(str, len,
+ err ? &err->ptr : 0,
+ err ? &err->len : 0,
+ &flags->flagword, &flags->mask,
+ vc_text2cflag_err);
+}
-// $Id: checkversion.c,v 1.1.2.3 2003/10/21 16:58:02 ensc Exp $ --*- c++ -*--
+// $Id: checkversion.c,v 1.5 2004/01/21 18:53:22 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
#include "vserver.h"
+#include "vserver-internal.h"
#include "getversion-internal.hc"
int
--- /dev/null
+// $Id: createskeleton-full.hc,v 1.4 2005/02/01 00:55:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#define CONCAT_TWO_ARGS(BUF, LHS,RHS) \
+ size_t BUF ## l1 = strlen(LHS); \
+ size_t BUF ## l2 = strlen(RHS); \
+ char BUF[BUF##l1 + BUF##l2 + 2]; \
+ \
+ memcpy(BUF, LHS, BUF##l1 + 1); \
+ if (BUF##l2 > 0) { \
+ BUF[ BUF##l1 ] = '/'; \
+ memcpy(BUF+ BUF##l1 + 1, RHS, BUF##l2 + 1); \
+ }
+
+static inline int
+mkdir2(char const *lhs, char const *rhs, int mode)
+{
+ CONCAT_TWO_ARGS(buf, lhs, rhs);
+ return mkdir(buf, mode);
+}
+
+static inline int
+setIAttr2(char const *lhs, char const *rhs, int flags)
+{
+ CONCAT_TWO_ARGS(buf, lhs, rhs);
+
+ return vc_set_iattr(buf, 0, flags, VC_IMMUTABLE_ALL);
+}
+
+static inline int
+symlink2(char const *old_lhs, char const *old_rhs,
+ char const *new_lhs, char const *new_rhs)
+{
+ CONCAT_TWO_ARGS(old_buf, old_lhs, old_rhs);
+
+ {
+ CONCAT_TWO_ARGS(new_buf, new_lhs, new_rhs);
+ return symlink(old_buf, new_buf);
+ }
+}
+
+#undef CONCAT_TWO_ARGS
+
+static inline int
+vc_createSkeleton_full(char const *id, char const *name, int flags)
+{
+ if (mkdir(id, 0755)==-1) return -1;
+
+ if (mkdir2(id, "apps", 0755)==-1 ||
+ ((flags&vcSKEL_INTERFACES) && mkdir2(id, "interfaces", 755)==-1) ||
+ ((flags&vcSKEL_PKGMGMT) && (
+ mkdir2(id, "apps/pkgmgmt", 0755)==-1)))
+ return -1;
+
+ for (;;) {
+ char const *basedir = CONFDIR "/.defaults/run";
+
+ if (!utilvserver_isDirectory(basedir, true)) basedir = DEFAULT_PKGSTATEDIR;
+ if (!utilvserver_isDirectory(basedir, true)) break;
+
+ if (symlink2(basedir, name, id, "run")==-1)
+ return -1;
+
+ break;
+ }
+
+ while (flags&vcSKEL_PKGMGMT) {
+ char const *basedir = CONFDIR "/.defaults/apps/pkgmgmt/base";
+
+ if (!utilvserver_isDirectory(basedir, true)) basedir = DEFAULT_VSERVERPKGDIR;
+ if (!utilvserver_isDirectory(basedir, true)) break;
+
+ if (mkdir2(basedir, name, 0755)==-1 ||
+ symlink2(basedir, name, id, "apps/pkgmgmt/base")==-1)
+ return -1;
+
+ break;
+ }
+
+ while (flags&vcSKEL_FILESYSTEM) {
+ char const *basedir = CONFDIR "/.defaults/vdirbase";
+
+ if (!utilvserver_isDirectory(basedir, true)) basedir = DEFAULT_VSERVERDIR;
+ if (!utilvserver_isDirectory(basedir, true)) break;
+
+ if (mkdir2(basedir, name, 0755)==-1 ||
+ setIAttr2(basedir, name, 0)==-1 ||
+ symlink2(basedir, name, id, "vdir")==-1)
+ return -1;
+
+ break;
+ }
+
+ return 0;
+}
--- /dev/null
+// $Id: createskeleton-short.hc,v 1.1 2004/02/18 04:42:38 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+#include <stdlib.h>
+#include <string.h>
+
+static inline int
+vc_createSkeleton_short(char const *id, int flags)
+{
+ size_t l = strlen(id);
+ char buf[sizeof(CONFDIR "/") + l];
+
+ memcpy(buf, CONFDIR "/", sizeof(CONFDIR "/")-1);
+ memcpy(buf+sizeof(CONFDIR "/")-1, id, l+1);
+
+ return vc_createSkeleton_full(buf, id, flags);
+}
--- /dev/null
+// $Id: createskeleton.c,v 1.1 2004/02/18 04:42:38 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+
+#include "pathconfig.h"
+
+#include "createskeleton-full.hc"
+#include "createskeleton-short.hc"
+
+#include <errno.h>
+
+int
+vc_createSkeleton(char const *id, vcCfgStyle style, int flags)
+{
+ if (style==vcCFG_NONE || style==vcCFG_AUTO) {
+ if (strchr(id, '/')!=0) style = vcCFG_RECENT_FULL;
+ else style = vcCFG_RECENT_SHORT;
+ }
+
+ switch (style) {
+ case vcCFG_RECENT_SHORT : return vc_createSkeleton_short(id, flags);
+ case vcCFG_RECENT_FULL : return vc_createSkeleton_full(id, 0, flags);
+ default : ;
+ }
+
+ errno = EINVAL;
+ return -1;
+}
--- /dev/null
+// $Id: ext2fs.h,v 1.2 2004/01/29 11:00:41 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_SRC_EXT2FS_H
+#define H_UTIL_VSERVER_SRC_EXT2FS_H
+
+#ifdef ENSC_HAVE_EXT2FS_EXT2_FS_H
+# include <ext2fs/ext2_fs.h>
+#elif defined(ENSC_HAVE_LINUX_EXT2_FS_H)
+# include <linux/ext2_fs.h>
+#else
+# error Do not know how to include <ext2_fs.h>
+#endif
+
+#endif // H_UTIL_VSERVER_SRC_EXT2FS_H
--- /dev/null
+// $Id: fmt.h,v 1.7 2004/06/16 10:06:03 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_FMT_H
+#define H_UTIL_VSERVER_LIB_FMT_H
+
+#include "../ensc_fmt/fmt.h"
+
+#endif // H_UTIL_VSERVER_LIB_FMT_H
--- /dev/null
+// $Id: getfilecontext.c,v 1.1 2004/12/09 13:05:41 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include <errno.h>
+
+xid_t vc_getfilecontext(char const *filename)
+{
+ xid_t res;
+ uint32_t mask = VC_IATTR_XID;
+
+ if (vc_get_iattr(filename, &res, 0,&mask)==-1)
+ return VC_NOCTX;
+ else if ((mask&VC_IATTR_XID) && res!=VC_NOCTX)
+ return res;
+
+ errno = 0;
+ return VC_NOCTX;
+}
--- /dev/null
+// $Id: getinsecurebcaps.c,v 1.2 2005/07/15 18:59:55 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+
+uint_least64_t
+vc_get_insecurebcaps()
+{
+ return ( (1<<VC_CAP_LINUX_IMMUTABLE) | (1<<VC_CAP_NET_BROADCAST) |
+ (1<<VC_CAP_NET_ADMIN) | (1<<VC_CAP_NET_RAW) |
+ (1<<VC_CAP_IPC_LOCK) | (1<<VC_CAP_IPC_OWNER) |
+ (1<<VC_CAP_SYS_MODULE) | (1<<VC_CAP_SYS_RAWIO) |
+ (1<<VC_CAP_SYS_PACCT) | (1<<VC_CAP_SYS_ADMIN) |
+ (1<<VC_CAP_SYS_NICE) |
+ (1<<VC_CAP_SYS_RESOURCE) | (1<<VC_CAP_SYS_TIME) |
+ (1<<VC_CAP_MKNOD) | (1<<VC_CAP_AUDIT_CONTROL)
+ | ~(0x7fffffff)
+
+#if defined(VC_ENABLE_API_COMPAT)
+ | (vc_isSupported(vcFEATURE_VSHELPER) ? 0 : (1<<VC_CAP_SYS_BOOT))
+ | (vc_isSupported(vcFEATURE_MIGRATE) ? 0 : (1<<29)) // formerly QUOTACTL
+#endif
+ );
+}
--- /dev/null
+// $Id: getnbipv4root.c,v 1.1 2004/03/16 14:27:53 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+size_t
+vc_get_nb_ipv4root()
+{
+ return NB_IPV4ROOT;
+}
--- /dev/null
+// $Id: getprocentry-legacy.c,v 1.4 2004/03/05 04:40:59 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "utils-legacy.h"
+#include "internal.h"
+#include "vserver-internal.h"
+
+#include <string.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
+
+static volatile size_t proc_bufsize = 4097;
+
+size_t
+utilvserver_getProcEntryBufsize()
+{
+ return proc_bufsize;
+}
+
+char *
+utilvserver_getProcEntry(pid_t pid,
+ char *str,
+ char *buf, size_t bufsize)
+{
+ char status_name[ sizeof("/proc//status") + sizeof(unsigned int)*3 + 1 ];
+ int fd;
+ size_t len;
+ char * res = 0;
+
+ if (pid<0 || (uint32_t)(pid)>99999) {
+ errno = EBADR;
+ return 0;
+ }
+
+ if (pid==0) strcpy(status_name, "/proc/self/status");
+ else {
+ strcpy(status_name, "/proc/");
+ len = utilvserver_fmt_uint(status_name+sizeof("/proc/")-1, pid);
+ strcpy(status_name+sizeof("/proc/")+len-1, "/status");
+ }
+
+ fd = open(status_name, O_RDONLY);
+ if (fd==-1) return 0;
+
+ len = read(fd, buf, bufsize);
+ close(fd);
+
+ if (len<bufsize) {
+ buf[len] = '\0';
+ if (str)
+ res = strstr(buf, str) + strlen(str);
+ else
+ res = buf;
+ }
+ else if (len!=(size_t)-1) {
+ if (proc_bufsize==bufsize)
+ proc_bufsize = bufsize * 2 - 1;
+
+ errno = EAGAIN;
+ }
+
+ return res;
+}
-// $Id: getversion-internal.hc,v 1.1.2.3 2003/12/26 00:16:48 uid68581 Exp $ --*- c++ -*--
+// $Id: getversion-internal.hc,v 1.6 2004/01/22 21:35:36 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
-#include "vserver-internal.h"
+#define _LINUX_TYPES_H 1
#include "linuxvirtual.h"
-static inline ALWAYSINLINE int
+static inline ALWAYSINLINE UNUSED int
vc_get_version_internal(int cat)
{
- return vserver(VC_CMD(VERSION, 0, 0), cat, 0);
+ return vserver(VCMD_get_version, cat, 0);
}
#endif // H_UTIL_VSERVER_LIB_GETVERSION_INTERNAL_H
-// $Id: getversion.c,v 1.1.2.3 2004/01/26 18:19:24 ensc Exp $ --*- c++ -*--
+// $Id: getversion.c,v 1.5 2004/01/29 11:00:41 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
+#include "vserver-internal.h"
#include "getversion-internal.hc"
int
--- /dev/null
+// $Id: getvserverappdir.c,v 1.1 2004/01/16 17:55:45 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include "pathconfig.h"
+
+#include <string.h>
+
+char *
+vc_getVserverAppDir(char const *id, vcCfgStyle style, char const *app)
+{
+ size_t l1 = strlen(id);
+ size_t l2 = strlen(app);
+ char *res = 0;
+
+ if (style==vcCFG_NONE || style==vcCFG_AUTO)
+ style = vc_getVserverCfgStyle(id);
+
+ switch (style) {
+ case vcCFG_NONE : return 0;
+ case vcCFG_LEGACY : return 0;
+ case vcCFG_RECENT_FULL :
+ case vcCFG_RECENT_SHORT :
+ {
+ char buf[sizeof(CONFDIR) + l1 + l2 + sizeof("//apps/") - 1];
+ char * ptr = buf;
+
+ if (style==vcCFG_RECENT_FULL)
+ memcpy(ptr, id, l1);
+ else {
+ memcpy(ptr, CONFDIR "/", sizeof(CONFDIR "/")-1);
+ ptr += sizeof(CONFDIR "/")-1;
+ memcpy(ptr, id, l1);
+ }
+
+ ptr += l1;
+ memcpy(ptr, "/apps/", 6); ptr += 6;
+ memcpy(ptr, app, l2); ptr += l2;
+ *ptr = '\0';
+
+ res = strdup(buf);
+ break;
+ }
+ default : return 0;
+ }
+
+ if (!utilvserver_isDirectory(res, true)) {
+ free(res);
+ res = 0;
+ }
+
+ return res;
+}
--- /dev/null
+// $Id: getvserverbyctx-compat.hc,v 1.3 2004/06/27 13:01:28 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include "pathconfig.h"
+#include "compat-c99.h"
+
+#include <string.h>
+#include <unistd.h>
+
+#ifdef VC_ENABLE_API_COMPAT
+#include <dirent.h>
+#include <sys/types.h>
+
+
+static char *
+handleLegacy(xid_t xid)
+{
+ DIR *dir = opendir(DEFAULT_PKGSTATEDIR);
+ struct dirent *ep;
+ char * result = 0;
+
+ if (dir==0) return 0;
+ while ((ep=readdir(dir))!=0) {
+ char * const name = ep->d_name;
+ size_t l = name ? strlen(name) : 0;
+ xid_t cur_xid;
+
+ if (l<=4 || strcmp(name+l-4, ".ctx")!=0) continue;
+ name[l-4] = '\0';
+ cur_xid = vc_getVserverCtx(name, vcCFG_LEGACY, false, 0);
+ if (cur_xid!=xid) continue;
+
+ result = strdup(name);
+ break;
+ }
+
+ closedir(dir);
+ return result;
+}
+#else
+static inline char *
+handleLegacy(xid_t UNUSED xid)
+{
+ return 0;
+}
+#endif
+
+static char *
+vc_getVserverByCtx_compat(xid_t ctx, vcCfgStyle *style, char const *revdir)
+{
+ if (revdir==0) revdir = DEFAULT_PKGSTATEREVDIR;
+
+ {
+ vcCfgStyle cur_style = vcCFG_NONE;
+ size_t l = strlen(revdir);
+ size_t l1;
+ char path[l + sizeof(unsigned int)*3 + 3];
+
+ strcpy(path, revdir);
+ path[l] = '/';
+ l1 = utilvserver_fmt_uint(path+l+1, ctx);
+ path[l+1+l1] = '\0';
+
+ if (style==0 || *style==vcCFG_AUTO) {
+ if (access(path, F_OK)==0) cur_style = vcCFG_RECENT_FULL;
+ else cur_style = vcCFG_LEGACY;
+ }
+ else
+ cur_style = *style;
+
+ switch (cur_style) {
+ case vcCFG_RECENT_SHORT :
+ case vcCFG_RECENT_FULL :
+ // check if expected ctx == actual ctx
+ if (vc_getVserverCtx(path, vcCFG_RECENT_FULL, false, 0)!=ctx) return 0;
+
+ if (style) *style = vcCFG_RECENT_FULL;
+ return strdup(path);
+ // TODO: handle legacy
+ case vcCFG_LEGACY :
+ {
+ char * tmp = handleLegacy(ctx);
+ if (tmp && style)
+ *style = vcCFG_LEGACY;
+
+ return tmp;
+ }
+
+ default :
+ return 0;
+ }
+ }
+}
--- /dev/null
+// $Id: getvserverbyctx-v13.hc,v 1.1 2004/03/11 04:39:59 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static char *
+vc_getVserverByCtx_v13(xid_t ctx, vcCfgStyle *style, char const UNUSED *revdir)
+{
+ char buf[128];
+
+ if (vc_get_vhi_name(ctx, vcVHI_CONTEXT, buf, sizeof buf)!=-1 &&
+ vc_getVserverCtx(buf, vcCFG_RECENT_FULL, false, 0)==ctx) {
+ if (style) *style = vcCFG_RECENT_FULL;
+ return strdup(buf);
+ }
+ else
+ return 0;
+}
--- /dev/null
+// $Id: getvserverbyctx.c,v 1.6 2004/03/11 04:40:29 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include "pathconfig.h"
+#include "compat-c99.h"
+
+#include <string.h>
+#include <unistd.h>
+
+#include "getvserverbyctx-compat.hc"
+#include "getvserverbyctx-v13.hc"
+
+char *
+vc_getVserverByCtx(xid_t ctx, vcCfgStyle *style, char const *revdir)
+{
+ if (vc_isSupported(vcFEATURE_MIGRATE))
+ return vc_getVserverByCtx_v13(ctx, style, revdir);
+ else
+ return vc_getVserverByCtx_compat(ctx, style, revdir);
+}
--- /dev/null
+// $Id: getvservercfgdir.c,v 1.1 2004/01/16 17:55:45 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include "pathconfig.h"
+
+#include <string.h>
+
+char *
+vc_getVserverCfgDir(char const *id, vcCfgStyle style)
+{
+ size_t l1 = strlen(id);
+ char *res = 0;
+
+ if (style==vcCFG_NONE || style==vcCFG_AUTO)
+ style = vc_getVserverCfgStyle(id);
+
+ switch (style) {
+ case vcCFG_NONE : return 0;
+ case vcCFG_LEGACY : return 0;
+ case vcCFG_RECENT_FULL : res = strdup(id); break;
+ case vcCFG_RECENT_SHORT :
+ {
+ char buf[sizeof(CONFDIR) + l1 + sizeof("/") - 1];
+
+ strcpy(buf, CONFDIR "/");
+ strcpy(buf+sizeof(CONFDIR "/") - 1, id);
+
+ res = strdup(buf);
+ break;
+ }
+ default : return 0;
+ }
+
+ if (!utilvserver_isDirectory(res, true)) {
+ free(res);
+ res = 0;
+ }
+
+ return res;
+}
--- /dev/null
+// $Id: getvservercfgstyle.c,v 1.6 2005/01/26 23:29:06 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "pathconfig.h"
+#include "internal.h"
+
+#include <string.h>
+#include <sys/param.h>
+#include <unistd.h>
+#include <assert.h>
+
+static inline bool
+isRelPath(char const *p)
+{
+ return p[0]=='.' && (p[1]=='/' || (p[1]=='.' && p[2]=='/'));
+}
+
+static inline bool
+isAbsPath(char const *p)
+{
+ return p[0]=='/';
+}
+
+#define ISDIR utilvserver_isDirectory(buf, true)
+#define ISFILE utilvserver_isFile(buf, true)
+#define ISLINK utilvserver_isLink(buf)
+
+vcCfgStyle
+vc_getVserverCfgStyle(char const *id)
+{
+ vcCfgStyle res = vcCFG_NONE;
+ size_t l1 = strlen(id);
+ char buf[l1 +
+ MAX(sizeof(CONFDIR "/"),sizeof(DEFAULT_VSERVERDIR "/")) +
+ MAX(sizeof("/legacy"), sizeof(".conf")) - 1];
+ char * marker = 0;
+ bool is_path;
+
+ strcpy(buf, id);
+ marker = buf+l1;
+ strcpy(marker, "/vdir");
+
+ is_path = isAbsPath(buf) || isRelPath(buf);
+ if (is_path && (ISDIR || ISLINK))
+ res = vcCFG_RECENT_FULL;
+ else if (!is_path) {
+ strcpy(buf, CONFDIR "/");
+ strcpy(buf+sizeof(CONFDIR "/") - 1, id);
+ marker = buf+sizeof(CONFDIR "/")+l1 - 1;
+ strcpy(marker, "/vdir");
+
+ if (ISDIR) res = vcCFG_RECENT_SHORT;
+ else {
+ strcpy(buf, DEFAULT_VSERVERDIR "/");
+ strcpy(buf+sizeof(DEFAULT_VSERVERDIR)+1 - 1, id);
+
+ if (ISDIR) res = vcCFG_LEGACY;
+ }
+
+ if (res==vcCFG_LEGACY) {
+ strcpy(buf, CONFDIR "/");
+ strcpy(buf+sizeof(CONFDIR "/") - 1, id);
+ strcpy(buf+sizeof(CONFDIR "/")+l1 - 1, ".conf");
+
+ if (!ISFILE) res = vcCFG_NONE;
+ }
+ }
+
+
+ if (res==vcCFG_RECENT_FULL || res==vcCFG_RECENT_SHORT) {
+ assert(marker!=0);
+ strcpy(marker, "/legacy");
+ if (access(buf, F_OK)==0) res=vcCFG_LEGACY;
+ }
+
+ return res;
+}
--- /dev/null
+// $Id: getvserverctx.c,v 1.8 2004/06/27 13:02:07 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "pathconfig.h"
+#include "compat-c99.h"
+#include "lib_internal/util.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#ifdef VC_ENABLE_API_COMPAT
+#include <fcntl.h>
+
+static xid_t
+extractLegacyXID(char const *dir, char const *basename)
+{
+ size_t l1 = strlen(dir);
+ size_t l2 = strlen(basename);
+ char path[l1 + l2 + sizeof("/.ctx")];
+ char * ptr = path;
+ int fd;
+ ssize_t len;
+ xid_t result = VC_NOXID;
+
+ ptr = Xmemcpy(ptr, dir, l1);
+ *ptr++ = '/';
+ ptr = Xmemcpy(ptr, basename, l2);
+ ptr = Xmemcpy(ptr, ".ctx", 5);
+
+ fd = open(path, O_RDONLY);
+ if (fd==-1) return VC_NOXID;
+
+ len = lseek(fd, 0, SEEK_END);
+
+ if (len!=-1 && lseek(fd, 0, SEEK_SET)!=-1) {
+ char buf[len+2];
+ char const *pos = 0;
+
+ buf[0] = '\n';
+
+ if (read(fd, buf+1, len+1)==len) {
+ buf[len+1] = '\0';
+ pos = strstr(buf, "\nS_CONTEXT=");
+ }
+
+ if (pos) pos += 11;
+ if (*pos>='1' && *pos<='9')
+ result = atoi(pos);
+ }
+
+ close(fd);
+ return result;
+}
+#else
+static xid_t
+extractLegacyXID(char const UNUSED *dir, char const UNUSED *basename)
+{
+ return VC_NOXID;
+}
+#endif
+
+
+static xid_t
+getCtxFromFile(char const *pathname)
+{
+ int fd;
+ off_t len;
+
+ fd = open(pathname, O_RDONLY);
+
+ if (fd==-1 ||
+ (len=lseek(fd, 0, SEEK_END))==-1 ||
+ (len>50) ||
+ (lseek(fd, 0, SEEK_SET)==-1))
+ return VC_NOCTX;
+
+ {
+ char buf[len+1];
+ char *errptr;
+ xid_t res;
+
+ if (TEMP_FAILURE_RETRY(read(fd, buf, len+1))!=len)
+ return VC_NOCTX;
+
+ res = strtol(buf, &errptr, 10);
+ if (*errptr!='\0' && *errptr!='\n') return VC_NOCTX;
+
+ return res;
+ }
+}
+
+xid_t
+vc_getVserverCtx(char const *id, vcCfgStyle style, bool honor_static, bool *is_running)
+{
+ size_t l1 = strlen(id);
+ char buf[sizeof(CONFDIR "//") + l1 + sizeof("/context")];
+
+ if (style==vcCFG_NONE || style==vcCFG_AUTO)
+ style = vc_getVserverCfgStyle(id);
+
+ if (is_running) *is_running = false;
+
+ switch (style) {
+ case vcCFG_NONE : return VC_NOCTX;
+ case vcCFG_LEGACY :
+ return extractLegacyXID(DEFAULT_PKGSTATEDIR, id);
+ case vcCFG_RECENT_SHORT :
+ case vcCFG_RECENT_FULL : {
+ size_t idx = 0;
+ xid_t res = 0;
+
+ if (style==vcCFG_RECENT_SHORT) {
+ memcpy(buf, CONFDIR "/", sizeof(CONFDIR "/")-1);
+ idx = sizeof(CONFDIR "/") - 1;
+ }
+ memcpy(buf+idx, id, l1); idx += l1;
+ memcpy(buf+idx, "/run", 5); // appends '\0' too
+
+ res = getCtxFromFile(buf);
+ if (is_running) *is_running = res!=VC_NOCTX;
+
+ if (res==VC_NOCTX && honor_static) {
+ memcpy(buf+idx, "/context", 9); // appends '\0' too
+
+ res = getCtxFromFile(buf);
+ }
+
+ return res;
+ }
+ default : return VC_NOCTX;
+ }
+}
--- /dev/null
+// $Id: getvservername.c,v 1.5 2004/05/08 01:27:25 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "pathconfig.h"
+
+#include <string.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <libgen.h>
+#include <unistd.h>
+#include <limits.h>
+
+static char *
+getRecentName(char *start, char *end)
+{
+ char *res = 0;
+ int fd;
+ char buf[PATH_MAX];
+
+ strcpy(end, "/name");
+ fd = open(start, O_RDONLY);
+ if (fd!=-1) {
+ off_t len;
+
+ if ((len=lseek(fd, 0, SEEK_END))!=-1 &&
+ (len<VC_LIMIT_VSERVER_NAME_LEN) &&
+ (lseek(fd, 0, SEEK_SET)!=-1)) {
+ char buf[len+1];
+
+ if (TEMP_FAILURE_RETRY(read(fd, buf, len+1))==len) {
+ while (len>0 && buf[len-1]=='\n') --len;
+ buf[len] = '\0';
+ if (len>0) res = buf;
+ }
+
+ close(fd);
+ return strdup(res);
+ }
+
+ close(fd);
+ }
+
+ if (res==0) {
+ *end = '\0';
+ res = realpath(start, buf);
+ //printf("start='%s', res='%s'\n", start,res);
+ if (res==0) res = start;
+
+ res = basename(res);
+ }
+
+ return strdup(res);
+}
+
+char *
+vc_getVserverName(char const *id, vcCfgStyle style)
+{
+ size_t l1 = strlen(id);
+
+ if (style==vcCFG_NONE || style==vcCFG_AUTO)
+ style = vc_getVserverCfgStyle(id);
+
+ switch (style) {
+ case vcCFG_NONE : return 0;
+ case vcCFG_LEGACY : return strdup(id);
+ case vcCFG_RECENT_SHORT :
+ {
+ char buf[sizeof(CONFDIR "/") + l1 + sizeof("/name") - 1];
+
+ strcpy(buf, CONFDIR "/");
+ strcpy(buf+sizeof(CONFDIR "/") - 1, id);
+
+ return getRecentName(buf, buf+sizeof(CONFDIR "/")+l1 - 1);
+ }
+ case vcCFG_RECENT_FULL :
+ {
+ char buf[l1 + sizeof("/name")];
+ strcpy(buf, id);
+
+ return getRecentName(buf, buf+l1);
+ }
+ default : return 0;
+ }
+}
--- /dev/null
+// $Id: getvservervdir.c,v 1.5 2005/03/22 14:59:46 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include "pathconfig.h"
+
+#include <string.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include <fcntl.h>
+
+static char *
+getDir(char *dir, bool physical)
+{
+ int fd;
+ char tmp[PATH_MAX];
+
+ if (!physical) return strdup(dir);
+
+ fd = open(".", O_RDONLY);
+ if (fd==-1) return 0;
+
+ if (chdir(dir)!=-1 &&
+ getcwd(tmp, sizeof tmp)!=0)
+ dir = strdup(tmp);
+ else
+ dir = 0;
+
+ if (fchdir(fd)==-1) {
+ if (write(2, "FATAL error: failed to restore directory\n", 41)!=41) { /*...*/ }
+ abort();
+ }
+ close(fd);
+ return dir;
+}
+
+char *
+vc_getVserverVdir(char const *id, vcCfgStyle style, bool physical)
+{
+ size_t l1 = strlen(id);
+ char *res = 0;
+
+ if (style==vcCFG_NONE || style==vcCFG_AUTO)
+ style = vc_getVserverCfgStyle(id);
+
+ switch (style) {
+ case vcCFG_NONE : return 0;
+ case vcCFG_LEGACY :
+ {
+ char buf[sizeof(DEFAULT_VSERVERDIR "/") + l1];
+
+ strcpy(buf, DEFAULT_VSERVERDIR "/");
+ strcpy(buf+sizeof(DEFAULT_VSERVERDIR "/") - 1, id);
+
+ res = getDir(buf, physical);
+ break;
+ }
+
+ case vcCFG_RECENT_SHORT :
+ {
+ char buf[sizeof(CONFDIR) + l1 + sizeof("//vdir") - 1];
+
+ strcpy(buf, CONFDIR "/");
+ strcpy(buf+sizeof(CONFDIR "/") - 1, id);
+ strcpy(buf+sizeof(CONFDIR "/")+l1 - 1, "/vdir");
+
+ res = getDir(buf, physical);
+ break;
+ }
+
+ case vcCFG_RECENT_FULL :
+ {
+ char buf[l1 + sizeof("/vdir")];
+
+ strcpy(buf, id);
+ strcpy(buf+l1, "/vdir");
+
+ res = getDir(buf, physical);
+ break;
+ }
+
+ default : return 0;
+ }
+
+ // ignore physical-case; we went into the directory while determining
+ // the physical path so the directory exists
+ if (!physical && !utilvserver_isDirectory(res, true)) {
+ free(res);
+ res = 0;
+ }
+
+ return res;
+}
--- /dev/null
+// $Id: getxidtype.c,v 1.1 2005/03/09 14:38:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "virtual.h"
+
+vcXidType
+vc_getXIDType(xid_t xid)
+{
+ if (xid==0) return vcTYPE_MAIN;
+ if (xid==1) return vcTYPE_WATCH;
+ if (xid>1 && xid<MIN_D_CONTEXT) return vcTYPE_STATIC;
+ if (xid>=MIN_D_CONTEXT && xid<MAX_S_CONTEXT) return vcTYPE_DYNAMIC;
+ return vcTYPE_INVALID;
+}
--- /dev/null
+// $Id: internal.h,v 1.13 2005/04/28 17:52:30 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+/** \file internal.h
+ * \brief Declarations which are used by util-vserver internally.
+ */
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_H
+
+#include "fmt.h"
+#include <stdlib.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int utilvserver_checkCompatVersion();
+bool utilvserver_isDirectory(char const *path, bool follow_link);
+bool utilvserver_isFile(char const *path, bool follow_link);
+bool utilvserver_isLink(char const *path);
+
+int utilvserver_listparser_uint32(char const *str, size_t len,
+ char const **err_ptr, size_t *err_len,
+ uint_least32_t *flag,
+ uint_least32_t *mask,
+ uint_least32_t (*func)(char const*,
+ size_t, bool *
+ )) NONNULL((1,5,7));
+
+int utilvserver_listparser_uint64(char const *str, size_t len,
+ char const **err_ptr, size_t *err_len,
+ uint_least64_t *flag,
+ uint_least64_t *mask,
+ uint_least64_t (*func)(char const*,
+ size_t, bool *
+ )) NONNULL((1,5,7));
+
+struct Mapping_uint32 {
+ char const * const id;
+ size_t len;
+ uint_least32_t val;
+};
+
+struct Mapping_uint64 {
+ char const * const id;
+ size_t len;
+ uint_least64_t val;
+};
+
+ssize_t utilvserver_value2text_uint32(char const *str, size_t len,
+ struct Mapping_uint32 const *map,
+ size_t map_len) NONNULL((1,3));
+
+ssize_t utilvserver_value2text_uint64(char const *str, size_t len,
+ struct Mapping_uint64 const *map,
+ size_t map_len) NONNULL((1,3));
+
+ssize_t utilvserver_text2value_uint32(uint_least32_t *val,
+ struct Mapping_uint32 const *map,
+ size_t map_len) NONNULL((1,2));
+
+ssize_t utilvserver_text2value_uint64(uint_least64_t *val,
+ struct Mapping_uint64 const *map,
+ size_t map_len) NONNULL((1,2));
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_H
--- /dev/null
+// $Id: ioctl-getext2flags.hc,v 1.4 2004/01/23 20:47:32 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "ext2fs.h"
+
+#include <sys/ioctl.h>
+
+#ifndef EXT2_IMMUTABLE_FILE_FL
+# define EXT2_IMMUTABLE_FILE_FL 0x00000010
+#endif
+
+#ifndef EXT2_IMMUTABLE_LINK_FL
+# define EXT2_IMMUTABLE_LINK_FL 0x00008000
+#endif
+
+static inline ALWAYSINLINE int
+vc_X_get_ext2flags(int fd, long *flags)
+{
+ int rc;
+
+ *flags = 0;
+ rc = ioctl(fd, EXT2_IOC_GETFLAGS, flags);
+ *flags = EXT2FLAGS_KERNEL2USER(*flags);
+
+ ENSC_FIX_IOCTL(rc);
+
+ return rc;
+}
--- /dev/null
+// $Id: ioctl-getfilecontext.hc,v 1.4 2004/01/23 20:47:32 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "ext2fs.h"
+
+#include <sys/ioctl.h>
+
+static inline ALWAYSINLINE xid_t
+vc_X_get_filecontext(int fd)
+{
+ int c;
+ int rc = ioctl(fd, EXT2_IOC_GETCONTEXT, &c);
+
+ ENSC_FIX_IOCTL(rc);
+
+ if (rc==-1) return VC_NOCTX;
+ else return c;
+}
--- /dev/null
+// $Id: ioctl-getxflg.hc,v 1.3 2004/01/22 13:36:30 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "ext2fs.h"
+
+#include <sys/ioctl.h>
+
+#define FIOC_GETXFLG _IOR('x', 5, long)
+
+static inline ALWAYSINLINE int
+vc_X_get_xflg(int fd, long *flags)
+{
+ int rc;
+ *flags = 0;
+ rc = ioctl(fd, FIOC_GETXFLG, flags);
+
+ if (rc<-1) {
+ errno = -rc;
+ rc = -1;
+ }
+
+ return rc;
+}
--- /dev/null
+// $Id: ioctl-setext2flags.hc,v 1.4 2004/01/23 20:47:32 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "ext2fs.h"
+
+#include <sys/ioctl.h>
+
+#ifndef EXT2_IMMUTABLE_FILE_FL
+# define EXT2_IMMUTABLE_FILE_FL 0x00000010
+#endif
+
+#ifndef EXT2_IMMUTABLE_LINK_FL
+# define EXT2_IMMUTABLE_LINK_FL 0x00008000
+#endif
+
+static inline ALWAYSINLINE int
+vc_X_set_ext2flags(int fd, long set_flags, long del_flags)
+{
+ long old_flags = 0;
+ int rc;
+
+ set_flags = EXT2FLAGS_USER2KERNEL(set_flags);
+ del_flags = EXT2FLAGS_USER2KERNEL(del_flags);
+
+ if (del_flags!=-1) {
+ if (ioctl(fd, EXT2_IOC_GETFLAGS, &old_flags)==-1) return -1;
+ old_flags &= ~del_flags;
+ }
+
+ old_flags |= set_flags;
+ rc = ioctl(fd, EXT2_IOC_SETFLAGS, &old_flags);
+
+ ENSC_FIX_IOCTL(rc);
+
+ return rc;
+}
--- /dev/null
+// $Id: ioctl-setfilecontext.hc,v 1.4 2004/01/23 20:47:32 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "ext2fs.h"
+
+#include <sys/ioctl.h>
+
+static inline ALWAYSINLINE int
+vc_X_set_filecontext(int fd, xid_t ctx)
+{
+ int c = ctx;
+ int rc = ioctl(fd, EXT2_IOC_SETCONTEXT, &c);
+
+ ENSC_FIX_IOCTL(rc);
+
+ return rc;
+}
--- /dev/null
+// $Id: ioctl-setxflg.hc,v 1.4 2004/01/23 20:47:32 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "ext2fs.h"
+
+#include <sys/ioctl.h>
+
+#define FIOC_SETXFLG _IOW('x', 6, long)
+
+static inline ALWAYSINLINE int
+vc_X_set_xflg(int fd, long flags)
+{
+ int rc;
+ rc = ioctl(fd, FIOC_SETXFLG, &flags);
+
+ ENSC_FIX_IOCTL(rc);
+
+ return rc;
+}
--- /dev/null
+// $Id: isdirectory.c,v 1.1 2004/01/16 17:55:45 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "internal.h"
+
+#include <stdbool.h>
+#include <unistd.h>
+#include <sys/stat.h>
+
+bool
+utilvserver_isDirectory(char const *path, bool follow_link)
+{
+ struct stat st;
+ if ( ( follow_link && stat(path, &st)==-1) ||
+ (!follow_link && lstat(path, &st)==-1) ) return false;
+
+ return S_ISDIR(st.st_mode);
+}
--- /dev/null
+// $Id: isdynamicxid.c,v 1.1 2004/03/16 03:42:14 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+bool
+vc_is_dynamic_xid(xid_t xid)
+{
+ return xid>=MIN_D_CONTEXT;
+}
--- /dev/null
+// $Id: isfile.c,v 1.1 2004/08/19 13:56:47 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "internal.h"
+
+#include <stdbool.h>
+#include <unistd.h>
+#include <sys/stat.h>
+
+bool
+utilvserver_isFile(char const *path, bool follow_link)
+{
+ struct stat st;
+ if ( ( follow_link && stat(path, &st)==-1) ||
+ (!follow_link && lstat(path, &st)==-1) ) return false;
+
+ return S_ISREG(st.st_mode);
+}
--- /dev/null
+// $Id: islink.c,v 1.1 2004/10/21 19:01:26 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "internal.h"
+
+#include <stdbool.h>
+#include <unistd.h>
+#include <sys/stat.h>
+
+bool
+utilvserver_isLink(char const *path)
+{
+ struct stat st;
+ if (lstat(path, &st)==-1) return false;
+
+ return S_ISLNK(st.st_mode);
+}
--- /dev/null
+// $Id: issupported.c,v 1.4 2005/05/19 18:05:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "assert.h"
+
+bool
+vc_isSupported(vcFeatureSet feature)
+{
+ int ver = vc_get_version();
+ if (ver==-1) return false;
+
+ switch (feature) {
+ case vcFEATURE_COMPAT : return true;
+ case vcFEATURE_VSHELPER0 : return ver >= 0x00010000 && ver < 0x00010010;
+ case vcFEATURE_VSHELPER : return ver >= 0x00010000;
+ case vcFEATURE_VKILL : return ver >= 0x00010004;
+ case vcFEATURE_RLIMIT : return ver >= 0x00010004;
+ case vcFEATURE_VINFO : return ver >= 0x00010010;
+ case vcFEATURE_VHI : return ver >= 0x00010010;
+ case vcFEATURE_IATTR : return ver >= 0x00010011;
+ case vcFEATURE_MIGRATE : return ver >= 0x00010012;
+ case vcFEATURE_NAMESPACE : return ver >= 0x00010012;
+ case vcFEATURE_VWAIT : return ver >= 0x00010025;
+ case vcFEATURE_SCHED : return ver >= 0x00020000; // todo
+ default : assert(false);
+ }
+
+ return false;
+}
--- /dev/null
+// $Id: issupportedstring.c,v 1.4 2005/05/19 18:05:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "lib_internal/util-dimof.h"
+#include <strings.h>
+
+#define DECL(F) \
+ { vcFEATURE_ ## F, #F }
+
+static struct {
+ vcFeatureSet feature;
+ char const * name;
+} FEATURES[] = {
+ DECL(VKILL), DECL(IATTR), DECL(RLIMIT), DECL(COMPAT),
+ DECL(MIGRATE), DECL(NAMESPACE), DECL(SCHED), DECL(VINFO),
+ DECL(VHI), DECL(VSHELPER0), DECL(VSHELPER), DECL(VWAIT)
+};
+
+bool
+vc_isSupportedString(char const *str)
+{
+ size_t i;
+ for (i=0; i<DIM_OF(FEATURES); ++i) {
+ if (strcasecmp(FEATURES[i].name, str)==0)
+ return vc_isSupported(FEATURES[i].feature);
+ }
+
+ return false;
+}
--- /dev/null
+// $Id: listparser.hc,v 1.5 2005/04/24 20:23:11 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+
+#define TONUMBER_uint64(S,E,B) strtoll(S,E,B)
+#define TONUMBER_uint32(S,E,B) strtol (S,E,B)
+
+#define ISNUMBER(TYPE,SHORT) \
+ static inline ALWAYSINLINE bool \
+ isNumber_##SHORT(char const **str,size_t *len,TYPE *res,char end_chr) \
+ { \
+ char *err_ptr; \
+ if (**str=='^') { \
+ *res = ((TYPE)(1)) << TONUMBER_##SHORT(++*str, &err_ptr, 0); \
+ if (len) --*len; \
+ } \
+ else \
+ *res = TONUMBER_##SHORT(*str, &err_ptr, 0); \
+ return err_ptr>*str && *err_ptr==end_chr; \
+ }
+
+
+#define LISTPARSER(TYPE,SHORT) \
+ ISNUMBER(TYPE,SHORT) \
+ int \
+ utilvserver_listparser_ ## SHORT(char const *str, size_t len, \
+ char const **err_ptr, \
+ size_t *err_len, \
+ TYPE * const flag, \
+ TYPE * const mask, \
+ TYPE (*func)(char const *, \
+ size_t, bool *)) \
+ { \
+ if (len==0) len = strlen(str); \
+ for (;len>0;) { \
+ char const *ptr = strchr(str, ','); \
+ size_t cnt; \
+ TYPE tmp = 0; \
+ bool is_neg = false; \
+ bool failed = false; \
+ \
+ while (mask!=0 && len>0 && (*str=='!' || *str=='~')) { \
+ is_neg = !is_neg; \
+ ++str; \
+ --len; \
+ } \
+ \
+ cnt = ptr ? (size_t)(ptr-str) : len; \
+ if (cnt>=len) { cnt=len; len=0; } \
+ else len-=(cnt+1); \
+ \
+ if (cnt==0) \
+ failed = true; \
+ else if (mask!=0 && \
+ (strncasecmp(str,"all",cnt)==0 || \
+ strncasecmp(str,"any",cnt)==0)) \
+ tmp = ~(TYPE)(0); \
+ else if (mask!=0 && strncasecmp(str,"none",cnt)==0) {} \
+ else if (!isNumber_##SHORT(&str, &cnt, &tmp, str[cnt])) \
+ tmp = (*func)(str,cnt, &failed); \
+ \
+ if (!failed) { \
+ if (!is_neg) *flag |= tmp; \
+ else *flag &= ~tmp; \
+ if (mask!=0) *mask |= tmp; \
+ } \
+ else { \
+ if (err_ptr) *err_ptr = str; \
+ if (err_len) *err_len = cnt; \
+ return -1; \
+ } \
+ \
+ if (ptr==0) break; \
+ str = ptr+1; \
+ } \
+ \
+ if (err_ptr) *err_ptr = 0; \
+ if (err_len) *err_len = 0; \
+ return 0; \
+ }
--- /dev/null
+// $Id: listparser_uint32.c,v 1.1 2004/03/05 03:12:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "internal.h"
+#include "listparser.hc"
+
+LISTPARSER(uint_least32_t, uint32)
--- /dev/null
+// $Id: listparser_uint64.c,v 1.1 2004/03/05 03:12:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "internal.h"
+#include "listparser.hc"
+
+LISTPARSER(uint_least64_t, uint64)
--- /dev/null
+// $Id: ncaps-net.c,v 1.2 2005/04/24 20:25:17 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include <lib_internal/util-dimof.h>
+
+#include <string.h>
+#include <assert.h>
+
+#define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL }
+
+static struct Mapping_uint64 const VALUES[] = {
+#warning Add the 'ncap' values here
+ DECL("", 0)
+};
+
+uint_least64_t
+vc_text2ncap(char const *str, size_t len)
+{
+ ssize_t idx = utilvserver_value2text_uint64(str, len,
+ VALUES, DIM_OF(VALUES));
+ if (idx==-1) return 0;
+ else return VALUES[idx].val;
+}
+
+char const *
+vc_loncap2text(uint_least64_t *val)
+{
+ ssize_t idx = utilvserver_text2value_uint64(val,
+ VALUES, DIM_OF(VALUES));
+
+ if (idx==-1) return 0;
+ else return VALUES[idx].id;
+}
--- /dev/null
+// $Id: ncaps_list-net.c,v 1.2 2005/04/24 20:24:36 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+
+#include <string.h>
+
+static uint_least64_t
+vc_text2ncap_err(char const *str, size_t len, bool *failed)
+{
+ uint_least64_t res = vc_text2ncap(str, len);
+
+ if (res==0) *failed = true;
+ return res;
+}
+
+int
+vc_list2ncap(char const *str, size_t len,
+ struct vc_err_listparser *err,
+ struct vc_net_caps *caps)
+{
+ return utilvserver_listparser_uint64(str, len,
+ err ? &err->ptr : 0,
+ err ? &err->len : 0,
+ &caps->ncaps, &caps->cmask,
+ vc_text2ncap_err);
+}
--- /dev/null
+// $Id: nflags-net.c,v 1.2 2005/04/24 20:25:17 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include <lib_internal/util-dimof.h>
+
+#include <string.h>
+#include <assert.h>
+
+#define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL }
+
+static struct Mapping_uint64 const VALUES[] = {
+#warning Add the 'nflags' values here
+ DECL("", 0)
+};
+
+uint_least64_t
+vc_text2nflag(char const *str, size_t len)
+{
+ ssize_t idx = utilvserver_value2text_uint64(str, len,
+ VALUES, DIM_OF(VALUES));
+ if (idx==-1) return 0;
+ else return VALUES[idx].val;
+}
+
+char const *
+vc_lonflag2text(uint_least64_t *val)
+{
+ ssize_t idx = utilvserver_text2value_uint64(val,
+ VALUES, DIM_OF(VALUES));
+
+ if (idx==-1) return 0;
+ else return VALUES[idx].id;
+}
--- /dev/null
+// $Id: nflags_list-net.c,v 1.2 2005/04/24 20:24:36 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+
+#include <string.h>
+
+static uint_least64_t
+vc_text2nflag_err(char const *str, size_t len, bool *failed)
+{
+ uint_least64_t res = vc_text2nflag(str, len);
+
+ if (res==0) *failed = true;
+ return res;
+}
+
+int
+vc_list2nflag(char const *str, size_t len,
+ struct vc_err_listparser *err,
+ struct vc_net_flags *flags)
+{
+ return utilvserver_listparser_uint64(str, len,
+ err ? &err->ptr : 0,
+ err ? &err->len : 0,
+ &flags->flagword, &flags->mask,
+ vc_text2nflag_err);
+}
--- /dev/null
+// $Id: parselimit.c,v 1.1 2004/03/05 17:20:31 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include <string.h>
+#include <stdlib.h>
+
+bool
+vc_parseLimit(char const *buf, vc_limit_t *res)
+{
+ char * errptr;
+
+ if (strncmp(buf, "inf", 3)==0) {
+ *res = VC_LIM_INFINITY;
+ return true;
+ }
+
+ *res = strtoll(buf, &errptr, 0);
+
+ if (errptr!=buf) {
+ switch (*errptr) {
+ case 'M' : *res *= 1024; /* fallthrough */
+ case 'K' : *res *= 1024; ++errptr; break;
+ case 'm' : *res *= 1000; /* fallthrough */
+ case 'k' : *res *= 1000; ++errptr; break;
+ default : break;
+ }
+ }
+
+ return errptr!=buf && (*errptr=='\0' || *errptr=='\n');
+}
--- /dev/null
+// $Id: personalityflag.c,v 1.2 2005/07/15 19:40:15 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include <lib_internal/util-dimof.h>
+#include <linux/personality.h>
+
+#define DECL(VAL) { #VAL, sizeof(#VAL)-1, (VAL) }
+
+static struct Mapping_uint32 const VALUES[] = {
+#if HAVE_DECL_MMAP_PAGE_ZERO
+ DECL(MMAP_PAGE_ZERO),
+#endif
+
+#if HAVE_DECL_ADDR_LIMIT_32BIT
+ DECL(ADDR_LIMIT_32BIT),
+#endif
+
+#if HAVE_DECL_SHORT_INODE
+ DECL(SHORT_INODE),
+#endif
+
+#if HAVE_DECL_WHOLE_SECONDS
+ DECL(WHOLE_SECONDS),
+#endif
+
+#if HAVE_DECL_STICKY_TIMEOUTS
+ DECL(STICKY_TIMEOUTS),
+#endif
+
+#if HAVE_DECL_ADDR_LIMIT_3GB
+ DECL(ADDR_LIMIT_3GB),
+#endif
+};
+
+uint_least32_t
+vc_text2personalityflag(char const *str, size_t len)
+{
+ ssize_t idx = utilvserver_value2text_uint32(str, len,
+ VALUES, DIM_OF(VALUES));
+
+ if (idx==-1) return 0;
+ else return VALUES[idx].val;
+}
+
+char const *
+vc_lopersonality2text(uint_least32_t *val)
+{
+ ssize_t idx = utilvserver_text2value_uint32(val, VALUES,
+ DIM_OF(VALUES));
+
+ if (idx==-1) return 0;
+ else return VALUES[idx].id;
+}
+
+
--- /dev/null
+// $Id: personalityflag_list.c,v 1.1 2005/04/28 17:51:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+
+
+static uint_least32_t
+text2personalityflag_err(char const *str,
+ size_t len, bool *failed)
+{
+ uint_least32_t res = vc_text2personalityflag(str, len);
+ if (res==0) *failed = true;
+ return res;
+}
+
+int
+vc_list2personalityflag(char const *str, size_t len,
+ uint_least32_t *personality,
+ struct vc_err_listparser *err)
+{
+ return utilvserver_listparser_uint32(str, len,
+ err ? &err->ptr : 0,
+ err ? &err->len : 0,
+ personality, 0,
+ text2personalityflag_err);
+}
--- /dev/null
+// $Id: personalitytype.c,v 1.2 2005/07/15 19:40:15 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "internal.h"
+#include <lib_internal/util-dimof.h>
+#include <linux/personality.h>
+
+#include <string.h>
+#include <strings.h>
+#include <assert.h>
+
+#define DECL(VAL) { #VAL, sizeof(#VAL)-1, (PER_ ## VAL) }
+
+static struct Mapping_uint32 const VALUES[] = {
+#if HAVE_DECL_PER_LINUX
+ DECL(LINUX),
+#endif
+
+#if HAVE_DECL_PER_LINUX_32BIT
+ DECL(LINUX_32BIT),
+#endif
+
+#if HAVE_DECL_PER_SVR4
+ DECL(SVR4),
+#endif
+
+#if HAVE_DECL_PER_SVR3
+ DECL(SVR3),
+#endif
+
+#if HAVE_DECL_PER_SCOSVR3
+ DECL(SCOSVR3),
+#endif
+
+#if HAVE_DECL_PER_OSR5
+ DECL(OSR5),
+#endif
+
+#if HAVE_DECL_PER_WYSEV386
+ DECL(WYSEV386),
+#endif
+
+#if HAVE_DECL_PER_ISCR4
+ DECL(ISCR4),
+#endif
+
+#if HAVE_DECL_PER_BSD
+ DECL(BSD),
+#endif
+
+#if HAVE_DECL_PER_SUNOS
+ DECL(SUNOS),
+#endif
+
+#if HAVE_DECL_PER_XENIX
+ DECL(XENIX),
+#endif
+
+#if HAVE_DECL_PER_LINUX32
+ DECL(LINUX32),
+#endif
+
+#if HAVE_DECL_PER_LINUX32_3GB
+ DECL(LINUX32_3GB),
+#endif
+
+#if HAVE_DECL_PER_IRIX32
+ DECL(IRIX32),
+#endif
+
+#if HAVE_DECL_PER_IRIXN32
+ DECL(IRIXN32),
+#endif
+
+#if HAVE_DECL_PER_IRIX64
+ DECL(IRIX64),
+#endif
+
+#if HAVE_DECL_PER_RISCOS
+ DECL(RISCOS),
+#endif
+
+#if HAVE_DECL_PER_SOLARIS
+ DECL(SOLARIS),
+#endif
+
+#if HAVE_DECL_PER_UW7
+ DECL(UW7),
+#endif
+
+#if HAVE_DECL_PER_HPUX
+ DECL(HPUX),
+#endif
+
+#if HAVE_DECL_PER_OSF4
+ DECL(OSF4),
+#endif
+
+};
+
+static char const *
+removePrefix(char const *str, size_t *len)
+{
+ if ((len==0 || *len==0 || *len>4) &&
+ strncasecmp("per_", str, 4)==0) {
+ if (len && *len>4) *len -= 4;
+ return str+4;
+ }
+ else
+ return str;
+}
+
+uint_least32_t
+vc_str2personalitytype(char const *str, size_t len)
+{
+ char const *tmp = removePrefix(str, &len);
+ ssize_t idx = utilvserver_value2text_uint32(tmp, len,
+ VALUES, DIM_OF(VALUES));
+
+ if (idx==-1) return VC_BAD_PERSONALITY;
+ else return VALUES[idx].val;
+}
-// $Id: safechroot-internal.hc,v 1.1.2.1 2003/10/14 15:19:14 ensc Exp $ --*- c++ -*--
+// $Id: safechroot-internal.hc,v 1.2 2003/10/14 15:40:50 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
--- /dev/null
+
+#ifndef __syscall_retval
+#define __syscall_retval(v) do { } while(0)
+#endif
+
+#ifndef __syscall_error
+#define __syscall_error(e) do { errno = (e); } while(0)
+#endif
+
+#define __check(pos, reg) \
+ ".ifnc " pos ", " reg "\n\t" \
+ ".err\n\t" \
+ ".endif\n\t"
+
+#ifndef __stringify0
+#define __stringify0(val) #val
+#endif
+
+#ifndef __stringify
+#define __stringify(val) __stringify0(val)
+#endif
+
+#define __comment(name) \
+ "\t/* kernel sys_" #name "[" __stringify(__NR_##name) "] */"
+
+
+/* *****************************************
+ ALPHA ALPHA ALPHA ALPHA *
+ alpha kernel interface */
+
+#if defined(__alpha__)
+
+/* The Alpha calling convention doesn't use the stack until
+ after the first six arguments have been passed in registers.
+
+ scnr: v0($0)
+ args: a0($16), a1($17), a2($18), a3($19), a4($20), a5($21)
+ sret: v0($0)
+ serr: a3($19) (!=0, err=sret)
+*/
+
+
+#define __syscall_return(type, ret, err) do { \
+ __syscall_retval(ret); \
+ if (err) { \
+ int __err = (ret); \
+ __syscall_error(__err); \
+ ret = -1; \
+ } \
+ return (type) ret; \
+} while (0)
+
+#define __syscall_regdef(name, reg) \
+ register long __sc_##name __asm__ (reg)
+
+#define __syscall_regval(name, reg, val) \
+ register long __sc_##name __asm__ (reg) = (long)(val)
+
+#define __syscall_clobbers \
+ "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", \
+ "$22", "$23", "$24", "$25", "$27", "$28", "memory" \
+
+
+#define _syscall0(type, name) \
+type name(void) \
+{ \
+ long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(v0, "$0", __NR_##name); \
+ __syscall_regdef(a3, "$19"); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2", "$0$19$0") \
+ "callsys" __comment(name) \
+ : "=r"(__sc_v0), "=r"(__sc_a3) \
+ : "0"(__sc_v0) \
+ : "$16", "$17", "$18", "$20", "$21", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_v0; \
+ __sc_err = __sc_a3; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+#define _syscall1(type, name, type1, arg1) \
+type name(type1 arg1) \
+{ \
+ long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(v0, "$0", __NR_##name); \
+ __syscall_regval(a0, "$16", arg1); \
+ __syscall_regdef(a3, "$19"); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2%3", "$0$19$0$16") \
+ "callsys" __comment(name) \
+ : "=r"(__sc_v0), "=r"(__sc_a3) \
+ : "0"(__sc_v0), \
+ "r"(__sc_a0) \
+ : "$17", "$18", "$20", "$21", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_v0; \
+ __sc_err = __sc_a3; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+#define _syscall2(type, name, type1, arg1, type2, arg2) \
+type name(type1 arg1, type2 arg2) \
+{ \
+ long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(v0, "$0", __NR_##name); \
+ __syscall_regval(a0, "$16", arg1); \
+ __syscall_regval(a1, "$17", arg2); \
+ __syscall_regdef(a3, "$19"); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2%3%4", "$0$19$0$16$17") \
+ "callsys" __comment(name) \
+ : "=r"(__sc_v0), "=r"(__sc_a3) \
+ : "0"(__sc_v0), \
+ "r"(__sc_a0), "r"(__sc_a1) \
+ : "$18", "$20", "$21", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_v0; \
+ __sc_err = __sc_a3; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
+type name(type1 arg1, type2 arg2, type3 arg3) \
+{ \
+ long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(v0, "$0", __NR_##name); \
+ __syscall_regval(a0, "$16", arg1); \
+ __syscall_regval(a1, "$17", arg2); \
+ __syscall_regval(a2, "$18", arg3); \
+ __syscall_regdef(a3, "$19"); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2%3%4%5", "$0$19$0$16$17$18") \
+ "callsys" __comment(name) \
+ : "=r"(__sc_v0), "=r"(__sc_a3) \
+ : "0"(__sc_v0), \
+ "r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2) \
+ : "$20", "$21", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_v0; \
+ __sc_err = __sc_a3; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+{ \
+ long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(v0, "$0", __NR_##name); \
+ __syscall_regval(a0, "$16", arg1); \
+ __syscall_regval(a1, "$17", arg2); \
+ __syscall_regval(a2, "$18", arg3); \
+ __syscall_regval(a3, "$19", arg4); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2%3%4%5%6", "$0$19$0$16$17$18$19") \
+ "callsys" __comment(name) \
+ : "=r"(__sc_v0), "=r"(__sc_a3) \
+ : "0"(__sc_v0), \
+ "r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2), \
+ "1"(__sc_a3) \
+ : "$20", "$21", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_v0; \
+ __sc_err = __sc_a3; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+{ \
+ long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(v0, "$0", __NR_##name); \
+ __syscall_regval(a0, "$16", arg1); \
+ __syscall_regval(a1, "$17", arg2); \
+ __syscall_regval(a2, "$18", arg3); \
+ __syscall_regval(a3, "$19", arg4); \
+ __syscall_regval(a4, "$20", arg5); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2%3%4%5%6%7", "$0$19$0$16$17$18$19$20") \
+ "callsys" __comment(name) \
+ : "=r"(__sc_v0), "=r"(__sc_a3) \
+ : "0"(__sc_v0), \
+ "r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2), \
+ "1"(__sc_a3), "r"(__sc_a4) \
+ : "$21", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_v0; \
+ __sc_err = __sc_a3; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5, type6, arg6) \
+type name (type1 arg1, type2 arg2, type3 arg3, \
+ type4 arg4, type5 arg5, type6 arg6) \
+{ \
+ long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(v0, "$0", __NR_##name); \
+ __syscall_regval(a0, "$16", arg1); \
+ __syscall_regval(a1, "$17", arg2); \
+ __syscall_regval(a2, "$18", arg3); \
+ __syscall_regval(a3, "$19", arg4); \
+ __syscall_regval(a4, "$20", arg5); \
+ __syscall_regval(a5, "$21", arg6); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2%3%4%5%6%7%8", \
+ "$0$19$0$16$17$18$19$20$21") \
+ "callsys" __comment(name) \
+ : "=r"(__sc_v0), "=r"(__sc_a3) \
+ : "0"(__sc_v0), \
+ "r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2), \
+ "1"(__sc_a3), "r"(__sc_a4), "r"(__sc_a5) \
+ : __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_v0; \
+ __sc_err = __sc_a3; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+
+
+/* *****************************************
+ ARM ARM ARM ARM *
+ arm kernel interface */
+
+#elif defined(__arm__)
+
+/* The Arm calling convention uses stack args after four arguments
+ but the Linux kernel gets up to seven arguments in registers.
+
+ scnr: imm
+ args: a1(r0), a2(r1), a3(r2), a4(r3), v1(r4), v2(r5),
+ sret: a1(r0)
+ serr: (err= sret > (unsigned)-EMAXERRNO)
+*/
+
+#ifndef EMAXERRNO
+#define EMAXERRNO 125
+#endif
+
+#define __syscall_errcon(res) \
+ ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO))
+
+#define __syscall_return(type, res) do { \
+ __syscall_retval(res); \
+ if (__syscall_errcon(res)) { \
+ int __err = -(res); \
+ __syscall_error(__err); \
+ res = -1; \
+ } \
+ return (type) res; \
+} while (0)
+
+#define __syscall_regdef(name, reg) \
+ register int __sc_##name __asm__ (reg)
+
+#define __syscall_regval(name, reg, val) \
+ register int __sc_##name __asm__ (reg) = (int)(val)
+
+
+#define _syscall0(type, name) \
+type name(void) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regdef(a1, "r0"); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0", "r0") \
+ "swi %1" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "i"(__NR_##name) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall1(type, name, type1, arg1) \
+type name(type1 arg1) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a1, "r0", arg1); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2", "r0r0") \
+ "swi %1" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "i"(__NR_##name), \
+ "0"(__sc_a1) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall2(type, name, type1, arg1, type2, arg2) \
+type name(type1 arg1, type2 arg2) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a1, "r0", arg1); \
+ __syscall_regval(a2, "r1", arg2); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2%3", "r0r0r1") \
+ "swi %1" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "i"(__NR_##name), \
+ "0"(__sc_a1), "r"(__sc_a2) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
+type name(type1 arg1, type2 arg2, type3 arg3) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a1, "r0", arg1); \
+ __syscall_regval(a2, "r1", arg2); \
+ __syscall_regval(a3, "r2", arg3); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2%3%4", "r0r0r1r2") \
+ "swi %1" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "i"(__NR_##name), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a1, "r0", arg1); \
+ __syscall_regval(a2, "r1", arg2); \
+ __syscall_regval(a3, "r2", arg3); \
+ __syscall_regval(a4, "r3", arg4); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2%3%4%5", "r0r0r1r2r3") \
+ "swi %1" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "i"(__NR_##name), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a1, "r0", arg1); \
+ __syscall_regval(a2, "r1", arg2); \
+ __syscall_regval(a3, "r2", arg3); \
+ __syscall_regval(a4, "r3", arg4); \
+ __syscall_regval(v1, "r4", arg5); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2%3%4%5%6", "r0r0r1r2r3r4") \
+ "swi %1" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "i"(__NR_##name), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4), "r"(__sc_v1) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5, type6, arg6) \
+type name (type1 arg1, type2 arg2, type3 arg3, \
+ type4 arg4, type5 arg5, type6 arg6) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a1, "r0", arg1); \
+ __syscall_regval(a2, "r1", arg2); \
+ __syscall_regval(a3, "r2", arg3); \
+ __syscall_regval(a4, "r3", arg4); \
+ __syscall_regval(v1, "r4", arg5); \
+ __syscall_regval(v2, "r5", arg6); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2%3%4%5%6%7", "r0r0r1r2r3r4r5") \
+ "swi %1" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "i"(__NR_##name), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4), "r"(__sc_v1), "r"(__sc_v2) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+
+/* *****************************************
+ CRIS CRIS CRIS CRIS *
+ cris v10 kernel interface */
+
+#elif defined(__cris__)
+
+/* The Cris calling convention uses stack args after four arguments
+ but the Linux kernel gets up to six arguments in registers.
+
+ scnr: (r9)
+ args: (r10), (r11), (r12), (r13), (mof), (srp),
+ sret: (r10)
+ serr: (err= sret > (unsigned)-EMAXERRNO)
+*/
+
+#ifndef EMAXERRNO
+#define EMAXERRNO 125
+#endif
+
+#define __syscall_errcon(res) \
+ ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO))
+
+#define __syscall_return(type, res) do { \
+ __syscall_retval(res); \
+ if (__syscall_errcon(res)) { \
+ int __err = -(res); \
+ __syscall_error(__err); \
+ res = -1; \
+ } \
+ return (type) res; \
+} while (0)
+
+#define __syscall_regdef(name, reg) \
+ register long __sc_##name __asm__ (reg)
+
+#define __syscall_regval(name, reg, val) \
+ register long __sc_##name __asm__ (reg) = (long)(val)
+
+#define _syscall0(type, name) \
+type name(void) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "r9", __NR_##name); \
+ __syscall_regdef(a1, "r10"); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1", "$r10$r9") \
+ "break 13" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_a0) \
+ : "memory", "srp", "r13", "r12", "r11" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall1(type, name, type1, arg1) \
+type name(type1 arg1) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "r9", __NR_##name); \
+ __syscall_regval(a1, "r10", arg1); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2", "$r10$r9$r10") \
+ "break 13" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_a0), \
+ "0"(__sc_a1) \
+ : "memory", "srp", "r13", "r12", "r11" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall2(type, name, type1, arg1, type2, arg2) \
+type name(type1 arg1, type2 arg2) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "r9", __NR_##name); \
+ __syscall_regval(a1, "r10", arg1); \
+ __syscall_regval(a2, "r11", arg2); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2%3", "$r10$r9$r10$r11") \
+ "break 13" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_a0), \
+ "0"(__sc_a1), "r"(__sc_a2) \
+ : "memory", "srp", "r13", "r12" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
+type name(type1 arg1, type2 arg2, type3 arg3) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "r9", __NR_##name); \
+ __syscall_regval(a1, "r10", arg1); \
+ __syscall_regval(a2, "r11", arg2); \
+ __syscall_regval(a3, "r12", arg3); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2%3%4", "$r10$r9$r10$r11$r12") \
+ "break 13" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_a0), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3) \
+ : "memory", "srp", "r13" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "r9", __NR_##name); \
+ __syscall_regval(a1, "r10", arg1); \
+ __syscall_regval(a2, "r11", arg2); \
+ __syscall_regval(a3, "r12", arg3); \
+ __syscall_regval(a4, "r13", arg4); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2%3%4%5", "$r10$r9$r10$r11$r12$r13") \
+ "break 13" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_a0), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4) \
+ : "memory", "srp" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "r9", __NR_##name); \
+ __syscall_regval(a1, "r10", arg1); \
+ __syscall_regval(a2, "r11", arg2); \
+ __syscall_regval(a3, "r12", arg3); \
+ __syscall_regval(a4, "r13", arg4); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2%3%4%5", "$r10$r9$r10$r11$r12$r13") \
+ "move %6,$mof\n\t" \
+ "break 13" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_a0), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4), \
+ "g"((long)arg5) \
+ : "memory", "srp" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5, type6, arg6) \
+type name (type1 arg1, type2 arg2, type3 arg3, \
+ type4 arg4, type5 arg5, type6 arg6) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "r9", __NR_##name); \
+ __syscall_regval(a1, "r10", arg1); \
+ __syscall_regval(a2, "r11", arg2); \
+ __syscall_regval(a3, "r12", arg3); \
+ __syscall_regval(a4, "r13", arg4); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%1%2%3%4%5", "$r10$r9$r10$r11$r12$r13") \
+ "move %6,$mof\n\t" \
+ "move %7,$srp\n\t" \
+ "break 13" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_a0), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4), \
+ "g"((long)arg5), "g"((long)arg6) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+
+/* *****************************************
+ FRV FRV FRV FRV *
+ frv kernel interface */
+
+#elif defined(__frv__)
+
+#warning syscall arch frv not implemented yet
+
+
+/* *****************************************
+ H8300 H8300 H8300 H8300 *
+ h8/300 kernel interface */
+
+#elif defined(__h8300__)
+
+#warning syscall arch h8300 not implemented yet
+
+
+/* *****************************************
+ I386 I386 I386 I386 *
+ i386 kernel interface */
+
+#elif defined(__i386__)
+
+/* The x86 calling convention uses stack args for all arguments,
+ but the Linux kernel passes the first six arguments in the
+ following registers: ebx, ecx, edx, esi, edi, ebp.
+
+ scnr: a0(eax)
+ args: a1(ebx), a2(ecx), a3(edx), a4(esi), a5(edi), a6(ebp)
+ sret: a0(eax)
+ serr: (err= sret > (unsigned)-EMAXERRNO)
+*/
+
+#ifndef EMAXERRNO
+#define EMAXERRNO 129
+#endif
+
+#define __syscall_errcon(res) \
+ ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO))
+
+#define __syscall_return(type, res) do { \
+ __syscall_retval(res); \
+ if (__syscall_errcon(res)) { \
+ int __err = -(res); \
+ __syscall_error(__err); \
+ res = -1; \
+ } \
+ return (type) res; \
+} while (0)
+
+#define __syscall_regdef(name, reg) \
+ register long __sc_##name __asm__ (reg)
+
+#define __syscall_regval(name, reg, val) \
+ register long __sc_##name __asm__ (reg) = (long)(val)
+
+
+#define _syscall0(type, name) \
+type name(void) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "eax", __NR_##name); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1", "%%eax%%eax") \
+ "int $0x80" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall1(type, name, type1, arg1) \
+type name(type1 arg1) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "eax", __NR_##name); \
+ __syscall_regval(a1, "ebx", arg1); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2", "%%eax%%eax%%ebx") \
+ "int $0x80" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall2(type, name, type1, arg1, type2, arg2) \
+type name(type1 arg1, type2 arg2) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "eax", __NR_##name); \
+ __syscall_regval(a1, "ebx", arg1); \
+ __syscall_regval(a2, "ecx", arg2); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3", "%%eax%%eax%%ebx%%ecx") \
+ "int $0x80" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1), "r"(__sc_a2) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
+type name(type1 arg1, type2 arg2, type3 arg3) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "eax", __NR_##name); \
+ __syscall_regval(a1, "ebx", arg1); \
+ __syscall_regval(a2, "ecx", arg2); \
+ __syscall_regval(a3, "edx", arg3); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4", "%%eax%%eax%%ebx%%ecx%%edx") \
+ "int $0x80" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+
+#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "eax", __NR_##name); \
+ __syscall_regval(a1, "ebx", arg1); \
+ __syscall_regval(a2, "ecx", arg2); \
+ __syscall_regval(a3, "edx", arg3); \
+ __syscall_regval(a4, "esi", arg4); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4%5", \
+ "%%eax%%eax%%ebx%%ecx%%edx%%esi") \
+ "int $0x80" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \
+ "r" (__sc_a4) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "eax", __NR_##name); \
+ __syscall_regval(a1, "ebx", arg1); \
+ __syscall_regval(a2, "ecx", arg2); \
+ __syscall_regval(a3, "edx", arg3); \
+ __syscall_regval(a4, "esi", arg4); \
+ __syscall_regval(a5, "edi", arg5); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4%5%6", \
+ "%%eax%%eax%%ebx%%ecx%%edx%%esi%%edi") \
+ "int $0x80" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \
+ "r" (__sc_a4), "r"(__sc_a5) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5, type6, arg6) \
+type name (type1 arg1, type2 arg2, type3 arg3, \
+ type4 arg4, type5 arg5, type6 arg6) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "eax", __NR_##name); \
+ __syscall_regval(a1, "ebx", arg1); \
+ __syscall_regval(a2, "ecx", arg2); \
+ __syscall_regval(a3, "edx", arg3); \
+ __syscall_regval(a4, "esi", arg4); \
+ __syscall_regval(a5, "edi", arg5); \
+ __syscall_regval(a6, "ebp", arg6); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4%5%6%7", \
+ "%%eax%%eax%%ebx%%ecx%%edx%%esi%%edi%%ebp") \
+ "int $0x80" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \
+ "r" (__sc_a4), "r"(__sc_a5), "r" (__sc_a6) \
+ : "memory" \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+
+/* *****************************************
+ IA64 IA64 IA64 IA64 *
+ ia64 kernel interface */
+
+#elif defined(__ia64__)
+
+#warning syscall arch ia64 not implemented yet
+
+
+/* *****************************************
+ M32R IM32R M32R M32R *
+ m32r kernel interface */
+
+#elif defined(__m32r__)
+
+#warning syscall arch m32r not implemented yet
+
+
+/* *****************************************
+ M68K M68K M68K M68K *
+ m68k kernel interface */
+
+#elif defined(__m68000__)
+
+#warning syscall arch m68k not implemented yet
+
+
+/* *****************************************
+ MIPS MIPS MIPS MIPS *
+ mips kernel interface */
+
+#elif defined(__mips__)
+
+#warning syscall arch mips not implemented yet
+
+
+/* *****************************************
+ HPPA HPPA HPPA HPPA *
+ hppa kernel interface */
+
+#elif defined(__hppa__)
+
+/* The hppa calling convention uses r26-r23 for the first 4
+ arguments, the rest is spilled onto the stack. However the
+ Linux kernel passes the first six arguments in the registers
+ r26-r21.
+
+ The system call number MUST ALWAYS be loaded in the delay
+ slot of the ble instruction, or restarting system calls
+ WILL NOT WORK.
+
+ scnr: r20
+ args: r26, r25, r24, r23, r22, r21
+ sret: r28
+ serr: (err= sret > (unsigned)-EMAXERRNO)
+ clob: r1, r2, r4, r20, r29, r31, memory
+*/
+
+#ifndef EMAXERRNO
+#define EMAXERRNO 4095
+#endif
+
+#define __syscall_errcon(res) \
+ ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO))
+
+#define __syscall_return(type, res) do { \
+ __syscall_retval(res); \
+ if (__syscall_errcon(res)) { \
+ int __err = -(res); \
+ __syscall_error(__err); \
+ res = -1; \
+ } \
+ return (type) res; \
+} while (0)
+
+#define __syscall_clobbers \
+ "%r1", "%r2", "%r4", "%r20", "%r29", "%r31", "memory"
+
+#define __syscall_regdef(name, reg) \
+ register unsigned long __sc_##name __asm__ (reg)
+
+#define __syscall_regval(name, reg, val) \
+ register unsigned long __sc_##name __asm__ (reg) = \
+ (unsigned long)(val)
+
+
+#define _syscall0(type, name) \
+type name(void) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regdef(ret, "r28"); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0", "%%r28") \
+ "ble 0x100(%%sr2, %%r0)" \
+ __comment(name) "\n\t" \
+ "ldi %1, %%r20" \
+ : "=r"(__sc_ret) \
+ : "i"(__NR_##name) \
+ : "%r21", "%r22", "%r23", \
+ "%r24", "%r25", "%r26", \
+ __syscall_clobbers \
+ ); \
+ __sc_res = __sc_ret; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall1(type, name, type1, arg1) \
+type name(type1 arg1) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regdef(ret, "r28"); \
+ __syscall_regval(a1, "r26", arg1); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2", "%%r28%%r26") \
+ "ble 0x100(%%sr2, %%r0)" \
+ __comment(name) "\n\t" \
+ "ldi %1, %%r20" \
+ : "=r"(__sc_ret) \
+ : "i"(__NR_##name), \
+ "r"(__sc_a1) \
+ : "%r21", "%r22", "%r23", "%r24", "%r25", \
+ __syscall_clobbers \
+ ); \
+ __sc_res = __sc_ret; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall2(type, name, type1, arg1, type2, arg2) \
+type name(type1 arg1, type2 arg2) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regdef(ret, "r28"); \
+ __syscall_regval(a1, "r26", arg1); \
+ __syscall_regval(a2, "r25", arg2); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2%3", "%%r28%%r26%%r25") \
+ "ble 0x100(%%sr2, %%r0)" \
+ __comment(name) "\n\t" \
+ "ldi %1, %%r20" \
+ : "=r"(__sc_ret) \
+ : "i"(__NR_##name), \
+ "r"(__sc_a1), "r"(__sc_a2) \
+ : "%r21", "%r22", "%r23", "%r24", \
+ __syscall_clobbers \
+ ); \
+ __sc_res = __sc_ret; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
+type name(type1 arg1, type2 arg2, type3 arg3) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regdef(ret, "r28"); \
+ __syscall_regval(a1, "r26", arg1); \
+ __syscall_regval(a2, "r25", arg2); \
+ __syscall_regval(a3, "r24", arg3); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2%3%4", "%%r28%%r26%%r25%%r24") \
+ "ble 0x100(%%sr2, %%r0)" \
+ __comment(name) "\n\t" \
+ "ldi %1, %%r20" \
+ : "=r"(__sc_ret) \
+ : "i"(__NR_##name), \
+ "r"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3) \
+ : "%r21", "%r22", "%r23", \
+ __syscall_clobbers \
+ ); \
+ __sc_res = __sc_ret; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regdef(ret, "r28"); \
+ __syscall_regval(a1, "r26", arg1); \
+ __syscall_regval(a2, "r25", arg2); \
+ __syscall_regval(a3, "r24", arg3); \
+ __syscall_regval(a4, "r23", arg4); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2%3%4%5", "%%r28%%r26%%r25%%r24%%r23") \
+ "ble 0x100(%%sr2, %%r0)" \
+ __comment(name) "\n\t" \
+ "ldi %1, %%r20" \
+ : "=r"(__sc_ret) \
+ : "i"(__NR_##name), \
+ "r"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4) \
+ : "%r21", "%r22", \
+ __syscall_clobbers \
+ ); \
+ __sc_res = __sc_ret; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regdef(ret, "r28"); \
+ __syscall_regval(a1, "r26", arg1); \
+ __syscall_regval(a2, "r25", arg2); \
+ __syscall_regval(a3, "r24", arg3); \
+ __syscall_regval(a4, "r23", arg4); \
+ __syscall_regval(a5, "r22", arg5); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2%3%4%5%6", \
+ "%%r28%%r26%%r25%%r24%%r23%%r22") \
+ "ble 0x100(%%sr2, %%r0)" \
+ __comment(name) "\n\t" \
+ "ldi %1, %%r20" \
+ : "=r"(__sc_ret) \
+ : "i"(__NR_##name), \
+ "r"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4), "r"(__sc_a5) \
+ : "%r21", \
+ __syscall_clobbers \
+ ); \
+ __sc_res = __sc_ret; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5, type6, arg6) \
+type name (type1 arg1, type2 arg2, type3 arg3, \
+ type4 arg4, type5 arg5, type6 arg6) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regdef(ret, "r28"); \
+ __syscall_regval(a1, "r26", arg1); \
+ __syscall_regval(a2, "r25", arg2); \
+ __syscall_regval(a3, "r24", arg3); \
+ __syscall_regval(a4, "r23", arg4); \
+ __syscall_regval(a5, "r22", arg5); \
+ __syscall_regval(a6, "r21", arg6); \
+ \
+ __asm__ __volatile__ ( \
+ __check("%0%2%3%4%5%6%7", \
+ "%%r28%%r26%%r25%%r24%%r23%%r22%%r21") \
+ "ble 0x100(%%sr2, %%r0)" \
+ __comment(name) "\n\t" \
+ "ldi %1, %%r20" \
+ : "=r"(__sc_ret) \
+ : "i"(__NR_##name), \
+ "r"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4), "r"(__sc_a5), "r"(__sc_a6) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_ret; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+
+
+/* *****************************************
+ PPC64 PPC64 PPC64 PPC64 *
+ ppc64 kernel interface */
+
+#elif defined(__powerpc64__)
+
+#warning syscall arch ppc64 not implemented yet
+
+
+/* *****************************************
+ PPC PPC PPC PPC *
+ ppc kernel interface */
+
+#elif defined(__powerpc__)
+
+/* The powerpc calling convention uses r3-r10 to pass the first
+ eight arguments, the remainder is spilled onto the stack.
+
+ scnr: r0
+ args: a1(r3), a2(r4), a3(r5), a4(r6), a5(r7), a6(r8)
+ sret: r3
+ serr: (carry)
+ call: sc
+ clob: cr0, ctr
+*/
+
+#define __syscall_errcon(err) (err & 0x10000000)
+
+#define __syscall_return(type, ret, err) do { \
+ __syscall_retval(ret); \
+ if (__syscall_errcon(err)) { \
+ int __err = (ret); \
+ __syscall_error(__err); \
+ ret = -1; \
+ } \
+ return (type) ret; \
+} while (0)
+
+#define __syscall_regdef(name, reg) \
+ register long __sc_##name __asm__ (reg)
+
+#define __syscall_regval(name, reg, val) \
+ register long __sc_##name __asm__ (reg) = (long)(val)
+
+#define __syscall_clobbers \
+ "r9", "r10", "r11", "r12", \
+ "cr0", "ctr", "memory"
+
+
+#define _syscall0(type, name) \
+type name(void) \
+{ \
+ long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(r0, "r0", __NR_##name); \
+ __syscall_regdef(a1, "r3"); \
+ \
+ __asm__ __volatile__ ( \
+ "sc" __comment(name) "\n\t" \
+ "mfcr %0" \
+ : "=r"(__sc_r0), "=r"(__sc_a1) \
+ : "0"(__sc_r0) \
+ : "r4", "r5", "r6", "r7", "r8", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_a1; \
+ __sc_err = __sc_r0; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+#define _syscall1(type, name, type1, arg1) \
+type name(type1 arg1) \
+{ \
+ unsigned long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(r0, "r0", __NR_##name); \
+ __syscall_regval(a1, "r3", arg1); \
+ \
+ __asm__ __volatile__ ( \
+ "sc" __comment(name) "\n\t" \
+ "mfcr %0" \
+ : "=r"(__sc_r0), "=r"(__sc_a1) \
+ : "0"(__sc_r0), \
+ "1"(__sc_a1) \
+ : "r4", "r5", "r6", "r7", "r8", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_a1; \
+ __sc_err = __sc_r0; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+#define _syscall2(type, name, type1, arg1, type2, arg2) \
+type name(type1 arg1, type2 arg2) \
+{ \
+ unsigned long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(r0, "r0", __NR_##name); \
+ __syscall_regval(a1, "r3", arg1); \
+ __syscall_regval(a2, "r4", arg2); \
+ \
+ __asm__ __volatile__ ( \
+ "sc" __comment(name) "\n\t" \
+ "mfcr %0" \
+ : "=r"(__sc_r0), "=r"(__sc_a1) \
+ : "0"(__sc_r0), \
+ "1"(__sc_a1), "r"(__sc_a2) \
+ : "r5", "r6", "r7", "r8", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_a1; \
+ __sc_err = __sc_r0; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
+type name(type1 arg1, type2 arg2, type3 arg3) \
+{ \
+ unsigned long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(r0, "r0", __NR_##name); \
+ __syscall_regval(a1, "r3", arg1); \
+ __syscall_regval(a2, "r4", arg2); \
+ __syscall_regval(a3, "r5", arg3); \
+ \
+ __asm__ __volatile__ ( \
+ "sc" __comment(name) "\n\t" \
+ "mfcr %0" \
+ : "=r"(__sc_r0), "=r"(__sc_a1) \
+ : "0"(__sc_r0), \
+ "1"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3) \
+ : "r6", "r7", "r8", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_a1; \
+ __sc_err = __sc_r0; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+
+#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+{ \
+ unsigned long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(r0, "r0", __NR_##name); \
+ __syscall_regval(a1, "r3", arg1); \
+ __syscall_regval(a2, "r4", arg2); \
+ __syscall_regval(a3, "r5", arg3); \
+ __syscall_regval(a4, "r6", arg4); \
+ \
+ __asm__ __volatile__ ( \
+ "sc" __comment(name) "\n\t" \
+ "mfcr %0" \
+ : "=r"(__sc_r0), "=r"(__sc_a1) \
+ : "0"(__sc_r0), \
+ "1"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4) \
+ : "r7", "r8", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_a1; \
+ __sc_err = __sc_r0; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+{ \
+ unsigned long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(r0, "r0", __NR_##name); \
+ __syscall_regval(a1, "r3", arg1); \
+ __syscall_regval(a2, "r4", arg2); \
+ __syscall_regval(a3, "r5", arg3); \
+ __syscall_regval(a4, "r6", arg4); \
+ __syscall_regval(a5, "r7", arg5); \
+ \
+ __asm__ __volatile__ ( \
+ "sc" __comment(name) "\n\t" \
+ "mfcr %0" \
+ : "=r"(__sc_r0), "=r"(__sc_a1) \
+ : "0"(__sc_r0), \
+ "1"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4), "r"(__sc_a5) \
+ : "r8", \
+ __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_a1; \
+ __sc_err = __sc_r0; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5, type6, arg6) \
+type name (type1 arg1, type2 arg2, type3 arg3, \
+ type4 arg4, type5 arg5, type6 arg6) \
+{ \
+ unsigned long __sc_ret, __sc_err; \
+ { \
+ __syscall_regval(r0, "r0", __NR_##name); \
+ __syscall_regval(a1, "r3", arg1); \
+ __syscall_regval(a2, "r4", arg2); \
+ __syscall_regval(a3, "r5", arg3); \
+ __syscall_regval(a4, "r6", arg4); \
+ __syscall_regval(a5, "r7", arg5); \
+ __syscall_regval(a6, "r8", arg6); \
+ \
+ __asm__ __volatile__ ( \
+ "sc" __comment(name) "\n\t" \
+ "mfcr %0" \
+ : "=r"(__sc_r0), "=r"(__sc_a1) \
+ : "0"(__sc_r0), \
+ "1"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4), "r"(__sc_a5), "r"(__sc_a6) \
+ : __syscall_clobbers \
+ ); \
+ __sc_ret = __sc_a1; \
+ __sc_err = __sc_r0; \
+ } \
+ __syscall_return(type, __sc_ret, __sc_err); \
+}
+
+
+/* *****************************************
+ S390X S390X S390X S390X *
+ s390x kernel interface */
+
+#elif defined(__s390x__)
+
+/* The s390x calling convention passes the first five arguments
+ in r2-r6, the remainder is spilled onto the stack. However
+ the Linux kernel passes the first six arguments in r2-r7.
+
+ scnr: imm, r1
+ args: a1(r2), a2(r3), a3(r4), a4(r5), a5(r6), a6(r7)
+ sret: r2
+ serr: (err= sret > (unsigned)-EMAXERRNO)
+ call: svc
+ clob: memory
+*/
+
+#ifndef EMAXERRNO
+#define EMAXERRNO 4095
+#endif
+
+#define __syscall_errcon(res) \
+ ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO))
+
+#define __syscall_return(type, res) do { \
+ __syscall_retval(res); \
+ if (__syscall_errcon(res)) { \
+ int __err = -(res); \
+ __syscall_error(__err); \
+ res = -1; \
+ } \
+ return (type) res; \
+} while (0)
+
+#define __syscall_regdef(name, reg) \
+ register unsigned long __sc_##name __asm__ (reg)
+
+#define __syscall_regval(name, reg, val) \
+ register unsigned long __sc_##name __asm__ (reg) = \
+ (unsigned long)(val)
+
+#define __syscall_clobbers "memory"
+
+
+#define _syscall0(type, name) \
+type name(void) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(nr, "r1", __NR_##name); \
+ __syscall_regdef(a1, "r2"); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1", "%%r2%%r1") \
+ "svc 0" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_nr) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall1(type, name, type1, arg1) \
+type name(type1 arg1) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(nr, "r1", __NR_##name); \
+ __syscall_regval(a1, "r2", arg1); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2", "%%r2%%r1%%r2") \
+ "svc 0" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_nr), \
+ "0"(__sc_a1) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall2(type, name, type1, arg1, type2, arg2) \
+type name(type1 arg1, type2 arg2) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(nr, "r1", __NR_##name); \
+ __syscall_regval(a1, "r2", arg1); \
+ __syscall_regval(a2, "r3", arg2); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3", "%%r2%%r1%%r2%%r3") \
+ "svc 0" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_nr), \
+ "0"(__sc_a1), "r"(__sc_a2) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
+type name(type1 arg1, type2 arg2, type3 arg3) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(nr, "r1", __NR_##name); \
+ __syscall_regval(a1, "r2", arg1); \
+ __syscall_regval(a2, "r3", arg2); \
+ __syscall_regval(a3, "r4", arg3); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4", "%%r2%%r1%%r2%%r3%%r4") \
+ "svc 0" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_nr), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(nr, "r1", __NR_##name); \
+ __syscall_regval(a1, "r2", arg1); \
+ __syscall_regval(a2, "r3", arg2); \
+ __syscall_regval(a3, "r4", arg3); \
+ __syscall_regval(a4, "r5", arg4); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4%5", "%%r2%%r1%%r2%%r3%%r4%%r5") \
+ "svc 0" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_nr), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(nr, "r1", __NR_##name); \
+ __syscall_regval(a1, "r2", arg1); \
+ __syscall_regval(a2, "r3", arg2); \
+ __syscall_regval(a3, "r4", arg3); \
+ __syscall_regval(a4, "r5", arg4); \
+ __syscall_regval(a5, "r6", arg5); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4%5%6", \
+ "%%r2%%r1%%r2%%r3%%r4%%r5%%r6") \
+ "svc 0" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_nr), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4), "r"(__sc_a5) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5, type6, arg6) \
+type name (type1 arg1, type2 arg2, type3 arg3, \
+ type4 arg4, type5 arg5, type6 arg6) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(nr, "r1", __NR_##name); \
+ __syscall_regval(a1, "r2", arg1); \
+ __syscall_regval(a2, "r3", arg2); \
+ __syscall_regval(a3, "r4", arg3); \
+ __syscall_regval(a4, "r5", arg4); \
+ __syscall_regval(a5, "r6", arg5); \
+ __syscall_regval(a6, "r7", arg6); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4%5%6%7", \
+ "%%r2%%r1%%r2%%r3%%r4%%r5%%r6%%r7") \
+ "svc 0" __comment(name) \
+ : "=r"(__sc_a1) \
+ : "r"(__sc_nr), \
+ "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \
+ "r"(__sc_a4), "r"(__sc_a5), "r"(__sc_a6) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a1; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+
+
+/* *****************************************
+ S390 S390 S390 S390 *
+ s390 kernel interface */
+
+#elif defined(__s390__)
+
+#warning syscall arch s390 not implemented yet
+
+
+/* *****************************************
+ SH SH SH SH *
+ sh kernel interface */
+
+#elif defined(__sh__) && !defined(__SH5__)
+
+#warning syscall arch sh not implemented yet
+
+
+/* *****************************************
+ SH64 SH64 SH64 SH64 *
+ sh64 kernel interface */
+
+#elif defined(__sh__) && defined(__SH5__)
+
+#warning syscall arch sh64 not implemented yet
+
+
+/* *****************************************
+ SPARC64 SPARC64 SPARC64 SPARC64 *
+ sparc64 kernel interface */
+
+#elif defined(__sparc__) && defined(__arch64__)
+
+/* The sparc64 calling convention uses o0-o5 to pass the first six
+ arguments (mapped via register windows).
+
+ scnr: g1
+ args: o0, o1, o2, o3, o4, o5
+ sret: o0
+ serr: (carry)
+ call: t 0x10
+ clob: g1-g6, g7?, o7?, f0-f31, cc
+*/
+
+#ifndef EMAXERRNO
+#define EMAXERRNO 515
+#endif
+
+#define __syscall_errcon(res) \
+ ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO))
+
+#define __syscall_return(type, res) do { \
+ __syscall_retval(res); \
+ if (__syscall_errcon(res)) { \
+ int __err = -(res); \
+ __syscall_error(__err); \
+ res = -1; \
+ } \
+ return (type) res; \
+} while (0)
+
+#define __syscall_clobbers \
+ "g2", "g3", "g4", "g5", "g6", \
+ "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", \
+ "f9", "f10", "f11", "f12", "f13", "f14", "f15", "f16", \
+ "f17", "f18", "f19", "f20", "f21", "f22", "f23", "f24", \
+ "f25", "f26", "f27", "f28", "f29", "f30", "f31", "f32", \
+ "f34", "f36", "f38", "f40", "f42", "f44", "f46", "f48", \
+ "f50", "f52", "f54", "f56", "f58", "f60", "f62", \
+ "cc", "memory"
+
+#define __syscall_regdef(name, reg) \
+ register long __sc_##name __asm__ (reg)
+
+#define __syscall_regval(name, reg, val) \
+ register long __sc_##name __asm__ (reg) = (long)(val)
+
+#define _syscall0(type, name) \
+type name(void) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regdef(o0, "o0"); \
+ \
+ __asm__ volatile ( \
+ "ta 0x6d" __comment(name) "\n\t" \
+ "bcs,a,pt %%xcc,1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall1(type, name, type1, arg1) \
+type name(type1 arg1) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ \
+ __asm__ volatile ( \
+ "ta 0x6d" __comment(name) "\n\t" \
+ "bcs,a,pt %%xcc,1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall2(type, name, type1, arg1, type2, arg2) \
+type name(type1 arg1, type2 arg2) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ __syscall_regval(o1, "o1", arg2); \
+ \
+ __asm__ volatile ( \
+ "ta 0x6d" __comment(name) "\n\t" \
+ "bcs,a,pt %%xcc,1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0), "r"(__sc_o1) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
+type name(type1 arg1, type2 arg2, type3 arg3) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ __syscall_regval(o1, "o1", arg2); \
+ __syscall_regval(o2, "o2", arg3); \
+ \
+ __asm__ volatile ( \
+ "ta 0x6d" __comment(name) "\n\t" \
+ "bcs,a,pt %%xcc,1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ __syscall_regval(o1, "o1", arg2); \
+ __syscall_regval(o2, "o2", arg3); \
+ __syscall_regval(o3, "o3", arg4); \
+ \
+ __asm__ volatile ( \
+ "ta 0x6d" __comment(name) "\n\t" \
+ "bcs,a,pt %%xcc,1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \
+ "r"(__sc_o3) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ __syscall_regval(o1, "o1", arg2); \
+ __syscall_regval(o2, "o2", arg3); \
+ __syscall_regval(o3, "o3", arg4); \
+ __syscall_regval(o4, "o4", arg5); \
+ \
+ __asm__ volatile ( \
+ "ta 0x6d" __comment(name) "\n\t" \
+ "bcs,a,pt %%xcc,1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \
+ "r"(__sc_o3), "r"(__sc_o4) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5, type6, arg6) \
+type name (type1 arg1, type2 arg2, type3 arg3, \
+ type4 arg4, type5 arg5, type6 arg6) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ __syscall_regval(o1, "o1", arg2); \
+ __syscall_regval(o2, "o2", arg3); \
+ __syscall_regval(o3, "o3", arg4); \
+ __syscall_regval(o4, "o4", arg5); \
+ __syscall_regval(o5, "o5", arg6); \
+ \
+ __asm__ volatile ( \
+ "ta 0x6d" __comment(name) "\n\t" \
+ "bcs,a,pt %%xcc,1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \
+ "r"(__sc_o3), "r"(__sc_o4), "r"(__sc_o5) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+
+/* *****************************************
+ SPARC SPARC SPARC SPARC *
+ sparc kernel interface */
+
+#elif defined(__sparc__)
+
+/* The sparc calling convention uses o0-o5 to pass the first six
+ arguments (mapped via register windows).
+
+ scnr: g1
+ args: o0, o1, o2, o3, o4, o5
+ sret: o0
+ serr: (carry)
+ call: t 0x10
+ clob: g1-g6, g7?, o7?, f0-f31, cc
+*/
+
+#ifndef EMAXERRNO
+#define EMAXERRNO 515
+#endif
+
+#define __syscall_errcon(res) \
+ ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO))
+
+#define __syscall_return(type, res) do { \
+ __syscall_retval(res); \
+ if (__syscall_errcon(res)) { \
+ int __err = -(res); \
+ __syscall_error(__err); \
+ res = -1; \
+ } \
+ return (type) res; \
+} while (0)
+
+#define __syscall_clobbers \
+ "g2", "g3", "g4", "g5", "g6", \
+ "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", \
+ "f9", "f10", "f11", "f12", "f13", "f14", "f15", "f16", \
+ "f17", "f18", "f19", "f20", "f21", "f22", "f23", "f24", \
+ "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
+ "cc", "memory"
+
+#define __syscall_regdef(name, reg) \
+ register long __sc_##name __asm__ (reg)
+
+#define __syscall_regval(name, reg, val) \
+ register long __sc_##name __asm__ (reg) = (long)(val)
+
+#define _syscall0(type, name) \
+type name(void) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regdef(o0, "o0"); \
+ \
+ __asm__ volatile ( \
+ "t 0x10" __comment(name) "\n\t" \
+ "bcs,a 1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall1(type, name, type1, arg1) \
+type name(type1 arg1) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ \
+ __asm__ volatile ( \
+ "t 0x10" __comment(name) "\n\t" \
+ "bcs,a 1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall2(type, name, type1, arg1, type2, arg2) \
+type name(type1 arg1, type2 arg2) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ __syscall_regval(o1, "o1", arg2); \
+ \
+ __asm__ volatile ( \
+ "t 0x10" __comment(name) "\n\t" \
+ "bcs,a 1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0), "r"(__sc_o1) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
+type name(type1 arg1, type2 arg2, type3 arg3) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ __syscall_regval(o1, "o1", arg2); \
+ __syscall_regval(o2, "o2", arg3); \
+ \
+ __asm__ volatile ( \
+ "t 0x10" __comment(name) "\n\t" \
+ "bcs,a 1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ __syscall_regval(o1, "o1", arg2); \
+ __syscall_regval(o2, "o2", arg3); \
+ __syscall_regval(o3, "o3", arg4); \
+ \
+ __asm__ volatile ( \
+ "t 0x10" __comment(name) "\n\t" \
+ "bcs,a 1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \
+ "r"(__sc_o3) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ __syscall_regval(o1, "o1", arg2); \
+ __syscall_regval(o2, "o2", arg3); \
+ __syscall_regval(o3, "o3", arg4); \
+ __syscall_regval(o4, "o4", arg5); \
+ \
+ __asm__ volatile ( \
+ "t 0x10" __comment(name) "\n\t" \
+ "bcs,a 1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \
+ "r"(__sc_o3), "r"(__sc_o4) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5, type6, arg6) \
+type name (type1 arg1, type2 arg2, type3 arg3, \
+ type4 arg4, type5 arg5, type6 arg6) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(g1, "g1", __NR_##name); \
+ __syscall_regval(o0, "o0", arg1); \
+ __syscall_regval(o1, "o1", arg2); \
+ __syscall_regval(o2, "o2", arg3); \
+ __syscall_regval(o3, "o3", arg4); \
+ __syscall_regval(o4, "o4", arg5); \
+ __syscall_regval(o5, "o5", arg6); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4%5", "$o0$g1$o0$o1$o2$o3$o4$o5$o6") \
+ "t 0x10" __comment(name) "\n\t" \
+ "bcs,a 1f\n\t" \
+ "sub %%g0,%%o0,%%o0\n" \
+ "1:" \
+ : "=r"(__sc_o0) \
+ : "r"(__sc_g1), \
+ "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \
+ "r"(__sc_o3), "r"(__sc_o4), "r"(__sc_o5) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_o0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+
+/* *****************************************
+ V850 V850 V850 V850 *
+ v850 kernel interface */
+
+#elif defined(__v850__)
+
+#warning syscall arch v850 not implemented yet
+
+
+/* *****************************************
+ X86_64 X86_64 X86_64 X86_64 *
+ x86_64 kernel interface */
+
+#elif defined(__x86_64__)
+
+/* The x86_64 calling convention uses rdi, rsi, rdx, rcx, r8, r9
+ but the Linux kernel interface uses rdi, rsi, rdx, r10, r8, r9.
+
+ scnr: a0(rax)
+ args: a1(rdi), a2(rsi), a3(rdx), a4(r10), a5(r8), a6(r9)
+ sret: a0(rax)
+ serr: (err= sret > (unsigned)-EMAXERRNO)
+ call: syscall
+ clob: rcx, r11
+*/
+
+#ifndef EMAXERRNO
+#define EMAXERRNO 4095
+#endif
+
+#define __syscall_errcon(res) \
+ ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO))
+
+#define __syscall_return(type, res) do { \
+ __syscall_retval(res); \
+ if (__syscall_errcon(res)) { \
+ int __err = -(res); \
+ __syscall_error(__err); \
+ res = -1; \
+ } \
+ return (type) res; \
+} while (0)
+
+#define __syscall_clobbers \
+ "cc", "r11", "rcx", "memory"
+
+#define __syscall_regdef(name, reg) \
+ register long __sc_##name __asm__ (reg)
+
+#define __syscall_regval(name, reg, val) \
+ register long __sc_##name __asm__ (reg) = (long)(val)
+
+
+#define _syscall0(type, name) \
+type name(void) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "rax", __NR_##name); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1", "%%rax%%rax") \
+ "syscall" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall1(type, name, type1, arg1) \
+type name(type1 arg1) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "rax", __NR_##name); \
+ __syscall_regval(a1, "rdi", arg1); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2", "%%rax%%rax%%rdi") \
+ "syscall" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall2(type, name, type1, arg1, type2, arg2) \
+type name(type1 arg1, type2 arg2) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "rax", __NR_##name); \
+ __syscall_regval(a1, "rdi", arg1); \
+ __syscall_regval(a2, "rsi", arg2); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3", "%%rax%%rax%%rdi%%rsi") \
+ "syscall" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1), "r"(__sc_a2) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
+type name(type1 arg1, type2 arg2, type3 arg3) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "rax", __NR_##name); \
+ __syscall_regval(a1, "rdi", arg1); \
+ __syscall_regval(a2, "rsi", arg2); \
+ __syscall_regval(a3, "rdx", arg3); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4", "%%rax%%rax%%rdi%%rsi%%rdx") \
+ "syscall" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+
+#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "rax", __NR_##name); \
+ __syscall_regval(a1, "rdi", arg1); \
+ __syscall_regval(a2, "rsi", arg2); \
+ __syscall_regval(a3, "rdx", arg3); \
+ __syscall_regval(a4, "r10", arg4); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4%5", \
+ "%%rax%%rax%%rdi%%rsi%%rdx%%r10") \
+ "syscall" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \
+ "r" (__sc_a4) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5) \
+type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "rax", __NR_##name); \
+ __syscall_regval(a1, "rdi", arg1); \
+ __syscall_regval(a2, "rsi", arg2); \
+ __syscall_regval(a3, "rdx", arg3); \
+ __syscall_regval(a4, "r10", arg4); \
+ __syscall_regval(a5, "r8", arg5); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4%5%6", \
+ "%%rax%%rax%%rdi%%rsi%%rdx%%r10%%r8") \
+ "syscall" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \
+ "r" (__sc_a4), "r"(__sc_a5) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
+ type4, arg4, type5, arg5, type6, arg6) \
+type name (type1 arg1, type2 arg2, type3 arg3, \
+ type4 arg4, type5 arg5, type6 arg6) \
+{ \
+ long __sc_res; \
+ { \
+ __syscall_regval(a0, "rax", __NR_##name); \
+ __syscall_regval(a1, "rdi", arg1); \
+ __syscall_regval(a2, "rsi", arg2); \
+ __syscall_regval(a3, "rdx", arg3); \
+ __syscall_regval(a4, "r10", arg4); \
+ __syscall_regval(a5, "r8", arg5); \
+ __syscall_regval(a6, "r9", arg6); \
+ \
+ __asm__ volatile ( \
+ __check("%0%1%2%3%4%5%6%7", \
+ "%%rax%%rax%%rdi%%rsi%%rdx%%r10%%r8%%r9") \
+ "syscall" __comment(name) \
+ : "=a"(__sc_a0) \
+ : "0"(__sc_a0), \
+ "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \
+ "r" (__sc_a4), "r"(__sc_a5), "r" (__sc_a6) \
+ : __syscall_clobbers \
+ ); \
+ __sc_res = __sc_a0; \
+ } \
+ __syscall_return(type, __sc_res); \
+}
+
+
+#endif
+
-// $Id: syscall-compat.hc,v 1.1.4.8 2004/02/19 22:56:53 ensc Exp $ --*- c++ -*--
+// $Id: syscall-compat.hc,v 1.11 2004/04/14 23:21:23 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#include "compat.h"
#include "safechroot-internal.hc"
-
#include "vserver.h"
-#include "vserver-internal.h"
#include <unistd.h>
-static inline ALWAYSINLINE int
+static inline ALWAYSINLINE xid_t
vc_new_s_context_compat(xid_t ctx, unsigned int remove_cap, unsigned int flags)
{
struct vcmd_new_s_context_v1 msg;
msg.remove_cap = remove_cap;
msg.flags = flags;
- return vserver(VC_CMD(COMPAT, 1, 1), CTX_USER2KERNEL(ctx), &msg);
+ return vserver(VCMD_new_s_context, CTX_USER2KERNEL(ctx), &msg);
}
static inline ALWAYSINLINE int
size_t i;
if (nb>NB_IPV4ROOT) {
- errno = -EINVAL;
+ errno = -EOVERFLOW;
return -1;
}
msg.broadcast = bcast;
for (i=0; i<nb; ++i) {
- msg.ip_mask_pair[i].ip = ips[i].ip;
- msg.ip_mask_pair[i].mask = ips[i].mask;
+ msg.nx_mask_pair[i].ip = ips[i].ip;
+ msg.nx_mask_pair[i].mask = ips[i].mask;
}
- return vserver(VC_CMD(COMPAT, 2, 3), nb, &msg);
-}
-
-static inline ALWAYSINLINE int
-vc_chrootsafe_compat(char const *dir)
-{
- vc_tell_unsafe_chroot();
- return chroot(dir);
+ return vserver(VCMD_set_ipv4root, nb, &msg);
}
-// $Id: syscall-legacy.hc,v 1.1.4.6 2004/02/05 03:52:45 ensc Exp $ --*- c -*--
+// $Id: syscall-legacy.hc,v 1.10 2005/05/02 21:41:49 ensc Exp $ --*- c -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on syscall.cc by Jacques Gelinas
*/
#include "safechroot-internal.hc"
-#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
-#include <syscall.h>
#include <asm/unistd.h>
+#include <stdbool.h>
+
+#include "syscall-wrap.h"
// Here is the trick. We keep a copy of the define, then undef it
// and then later, we try to locate the value reading /proc/self/status
static int rev_ipv4root=0;
#ifdef ENSC_SYSCALL_TRADITIONAL
+# if defined __dietlibc__
+extern long int syscall (long int __sysno, ...);
+# endif
+
inline static int
set_ipv4root_rev0(unsigned long ip)
{
return syscall(__NR_set_ipv4root_rev3, ip, nb, bcast, mask);
}
-#else
+#else // ENSC_SYSCALL_TRADITIONAL
inline static _syscall1(int, set_ipv4root_rev0, unsigned long, ip)
inline static _syscall2(int, set_ipv4root_rev1, unsigned long, ip, unsigned long, bcast)
inline static _syscall3(int, set_ipv4root_rev2, unsigned long *, ip, int, nb, unsigned long, bcast)
inline static _syscall4(int, set_ipv4root_rev3, unsigned long *, ip, int, nb, unsigned long, bcast, unsigned long *, mask)
-#endif
+#endif // ENSC_SYSCALL_TRADITIONAL
static int def_NR_new_s_context = 273;
#undef __NR_new_s_context
static int __NR_new_s_context_rev0;
- //static int __NR_new_s_context_rev1;
static int rev_s_context=0;
+
#ifdef ENSC_SYSCALL_TRADITIONAL
-inline static int
+inline static xid_t
new_s_context_rev0(int newctx, int remove_cap, int flags)
{
return syscall(__NR_new_s_context_rev0, newctx, remove_cap, flags);
}
-#else
+#else // ENSC_SYSCALL_TRADITIONAL
inline static _syscall3(int, new_s_context_rev0, int, newctx, int, remove_cap, int, flags)
- //static _syscall4(int, new_s_context_rev1, int, nbctx, int *, ctxs, int, remove_cap, int, flags)
-#endif
+#endif // ENSC_SYSCALL_TRADITIONAL
+
-#if 0
-#undef __NR_set_ctxlimit
-static int __NR_set_ctxlimit=-1;
-static int rev_set_ctxlimit=-1;
+static bool is_init = false;
-static _syscall2 (int, set_ctxlimit, int, resource, long, limit)
+#include "utils-legacy.h"
+
+#ifndef WRITE_MSG
+# define WRITE_MSG(FD,X) (void)(write(FD,X,sizeof(X)-1))
#endif
+
+static bool
+getNumRevPair(char const *str, int *num, int *rev)
+{
+ char const * blank_pos = strchr(str, ' ');
+ char const * eol_pos = strchr(str, '\n');
+
+ *num = atoi(str);
+ if (*num==0) return false;
+
+ if (blank_pos!=0 && eol_pos!=0 && blank_pos<eol_pos &&
+ strncmp(blank_pos+1, "rev", 3)==0)
+ *rev = atoi(blank_pos+4);
+
+ return true;
+}
+
+#define SET_TAG_POS(TAG) \
+ pos = strstr(buf, (TAG)); \
+ if (pos) pos+=sizeof(TAG)-1
+
+static bool init_internal()
+{
+ size_t bufsize = utilvserver_getProcEntryBufsize();
+ char buf[bufsize];
+ char const * pos = 0;
+ pid_t pid = getpid();
+ int num;
+
+ errno = 0;
+
+ pos=utilvserver_getProcEntry(pid, 0, buf, bufsize);
+ if (pos==0 && errno==EAGAIN) return false;
+
+ SET_TAG_POS("\n__NR_set_ipv4root: ");
+ if ( pos!=0 && getNumRevPair(pos, &num, &rev_ipv4root) ) {
+ __NR_set_ipv4root_rev0 =
+ __NR_set_ipv4root_rev1 =
+ __NR_set_ipv4root_rev2 =
+ __NR_set_ipv4root_rev3 = num;
+ }
+
+ SET_TAG_POS("\n__NR_new_s_context: ");
+ if ( pos!=0 && getNumRevPair(pos, &num, &rev_s_context) )
+ __NR_new_s_context_rev0 = num;
+
+ return true;
+}
+
+#undef SET_TAG_POS
+
static void init()
{
- static int is_init = 0;
if (!is_init){
- FILE *fin = fopen ("/proc/self/status","r");
__NR_set_ipv4root_rev0 = def_NR_set_ipv4root;
__NR_set_ipv4root_rev1 = def_NR_set_ipv4root;
__NR_set_ipv4root_rev2 = def_NR_set_ipv4root;
__NR_set_ipv4root_rev3 = def_NR_set_ipv4root;
__NR_new_s_context_rev0 = def_NR_new_s_context;
- //__NR_new_s_context_rev1 = def_NR_new_s_context;
- if (fin != NULL){
- char line[100];
- while (fgets(line,sizeof(line)-1,fin)!=NULL){
- int num;
- char title[100],rev[100];
- rev[0] = '\0';
- if (sscanf(line,"%s %d %s",title,&num,rev)>=2){
- if (strcmp(title,"__NR_set_ipv4root:")==0){
- __NR_set_ipv4root_rev0 = num;
- __NR_set_ipv4root_rev1 = num;
- __NR_set_ipv4root_rev2 = num;
- __NR_set_ipv4root_rev3 = num;
- if (strncmp(rev,"rev",3)==0){
- rev_ipv4root = atoi(rev+3);
- }
-#if 0
- }else if (strcmp(title,"__NR_set_ctxlimit:")==0){
- __NR_set_ctxlimit = num;
- if (strncmp(rev,"rev",3)==0){
- rev_set_ctxlimit = atoi(rev+3);
- }
-#endif
- }else if (strcmp(title,"__NR_new_s_context:")==0){
- __NR_new_s_context_rev0 = num;
- //__NR_new_s_context_rev1 = num;
- if (strncmp(rev,"rev",3)==0){
- rev_s_context = atoi(rev+3);
- }
- }
- }
- }
- fclose (fin);
- }
- is_init = 1;
+
+ while (!init_internal() && errno==EAGAIN) {}
+
+ is_init = true;
}
}
init();
}
-static ALWAYSINLINE int
+void vc_init_internal_legacy(int ctx_rev, int ctx_number,
+ int ipv4_rev, int ipv4_number)
+{
+ rev_s_context = ctx_rev;
+ __NR_new_s_context_rev0 = ctx_number;
+
+ rev_ipv4root = ipv4_rev;
+ __NR_set_ipv4root_rev0 = ipv4_number;
+ __NR_set_ipv4root_rev1 = ipv4_number;
+ __NR_set_ipv4root_rev2 = ipv4_number;
+ __NR_set_ipv4root_rev3 = ipv4_number;
+
+ is_init = true;
+}
+
+static ALWAYSINLINE xid_t
vc_new_s_context_legacy(int ctx, int remove_cap, int flags)
{
- int ret = -1;
+ xid_t ret = -1;
init();
if (rev_s_context == 0){
return new_s_context_rev0(ctx, remove_cap, flags);
}else{
errno = -ENOSYS;
- ret = -1;
+ ret = VC_NOCTX;
}
return ret;
}
init();
if (rev_ipv4root == 0){
if (nb > 1){
- fprintf (stderr,"set_ipv4root: Several IP number specified, but this kernel only supports one. Ignored\n");
+ WRITE_MSG(2,"set_ipv4root: Several IP number specified, but this kernel only supports one. Ignored\n");
}
return set_ipv4root_rev0 (ip[0]);
}else if (rev_ipv4root == 1){
if (nb > 1){
- fprintf (stderr,"set_ipv4root: Several IP number specified, but this kernel only supports one. Ignored\n");
+ WRITE_MSG(2,"set_ipv4root: Several IP number specified, but this kernel only supports one. Ignored\n");
}
return set_ipv4root_rev1 (ip[0],bcast);
}else if (rev_ipv4root == 2){
{
unsigned long ip[nb];
unsigned long mask[nb];
- size_t i;
+ size_t i;
for (i=0; i<nb; ++i) {
ip[i] = ips[i].ip;
--- /dev/null
+// $Id: syscall-syscall.c,v 1.2 2004/08/19 13:57:53 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver-internal.h"
+
+#if 0
+int
+vc_syscall(uint32_t cmd, xid_t xid, void *data) __attribute__((__alias__("vserver")));
+#else
+int
+vc_syscall(uint32_t cmd, xid_t xid, void *data)
+{
+ return vserver(cmd, xid, data);
+}
+#endif
--- /dev/null
+// $Id: syscall-wrap.h,v 1.2 2005/05/02 21:42:05 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_SYSCALL_WRAP_H
+#define H_UTIL_VSERVER_LIB_SYSCALL_WRAP_H
+
+#include <sys/syscall.h>
+#include <syscall.h>
+#include <unistd.h>
+
+#ifdef ENSC_USE_ALTERNATIVE_SYSCALL_MACROS
+# undef _syscall0
+# undef _syscall1
+# undef _syscall2
+# undef _syscall3
+# undef _syscall4
+# undef _syscall5
+# undef _syscall6
+# undef _syscall7
+
+# include "syscall-alternative.h"
+#endif
+
+#endif // H_UTIL_VSERVER_LIB_SYSCALL_WRAP_H
-// $Id: syscall.c,v 1.1.4.6 2003/12/30 13:45:57 ensc Exp $ --*- c++ -*--
+// $Id: syscall.c,v 1.10 2004/04/08 06:04:41 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
+#include "compat.h"
#include "vserver.h"
-#include "vserver-internal.h"
+#include "internal.h"
+
+#define _LINUX_TYPES_H 1
#include "linuxvirtual.h"
+#if defined(VC_ENABLE_API_COMPAT) && defined(VC_ENABLE_API_LEGACY)
+# define VC_MULTIVERSION_SYSCALL 1
+#endif
+#include "vserver-internal.h"
+
#ifdef VC_ENABLE_API_COMPAT
# include "syscall-compat.hc"
#endif
#include <stdbool.h>
#include <errno.h>
+
#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY)
-int
+xid_t
vc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags)
{
CALL_VC(CALL_VC_COMPAT(vc_new_s_context, ctx, remove_cap, flags),
CALL_VC_LEGACY(vc_set_ipv4root, bcast, nb, ips));
}
+LINK_WARNING("vc_new_s_context", "warning: vc_new_s_context() is obsoleted; use vc_create_context() instead of");
#endif
--- /dev/null
+// $Id: syscall_adddlimit-v13.hc,v 1.3 2005/03/02 01:29:44 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+
+static inline ALWAYSINLINE int
+vc_add_dlimit_v13b(char const *filename, xid_t xid, uint32_t flags)
+{
+ struct vcmd_ctx_dlimit_base_v0 init = {
+ .name = filename,
+ .flags = flags
+ };
+
+ return vserver(VCMD_add_dlimit, CTX_USER2KERNEL(xid), &init);
+}
--- /dev/null
+// $Id: syscall_adddlimit.c,v 1.2 2005/03/02 01:27:54 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_adddlimit-v13.hc"
+#endif
+
+int
+vc_add_dlimit(char const *filename, xid_t xid, uint32_t flags)
+{
+ CALL_VC(CALL_VC_V13B(vc_add_dlimit, filename, xid, flags));
+}
--- /dev/null
+// $Id: syscall_cleanupnamespace-v13.hc,v 1.1 2004/02/27 04:39:09 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+
+static inline ALWAYSINLINE int
+vc_cleanup_namespace_v13(int UNUSED tmp)
+{
+ return vserver(VCMD_cleanup_namespace, 0, 0);
+}
--- /dev/null
+// $Id: syscall_cleanupnamespace.c,v 1.1 2004/02/27 04:39:09 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_cleanupnamespace-v13.hc"
+#endif
+
+int
+vc_cleanup_namespace()
+{
+ CALL_VC(CALL_VC_V13(vc_cleanup_namespace,0));
+}
--- /dev/null
+// $Id: syscall_ctxcreate-v13.hc,v 1.2 2004/04/22 20:45:50 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE xid_t
+vc_ctx_create_v13(xid_t xid)
+{
+ xid_t res = vserver(VCMD_ctx_create, CTX_USER2KERNEL(xid), 0);
+
+ return CTX_KERNEL2USER(res);
+}
--- /dev/null
+// $Id: syscall_ctxcreate.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_V13)
+# include "syscall_ctxcreate-v13.hc"
+#endif
+
+#if defined(VC_ENABLE_API_V13)
+xid_t
+vc_ctx_create(xid_t xid)
+{
+ CALL_VC(CALL_VC_V13A(vc_ctx_create, xid));
+}
+#endif
--- /dev/null
+// $Id: syscall_ctxmigrate-v13.hc,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_ctx_migrate_v13(xid_t xid)
+{
+ return vserver(VCMD_ctx_migrate, CTX_USER2KERNEL(xid), 0);
+}
--- /dev/null
+// $Id: syscall_ctxmigrate.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_V13)
+# include "syscall_ctxmigrate-v13.hc"
+#endif
+
+#if defined(VC_ENABLE_API_V13)
+int
+vc_ctx_migrate(xid_t xid)
+{
+ CALL_VC(CALL_VC_V13A(vc_ctx_migrate, xid));
+}
+#endif
--- /dev/null
+// $Id: syscall_enternamespace-v13.hc,v 1.1 2004/02/20 17:58:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+
+static inline ALWAYSINLINE int
+vc_enter_namespace_v13(xid_t xid)
+{
+ return vserver(VCMD_enter_namespace, CTX_USER2KERNEL(xid), 0);
+}
--- /dev/null
+// $Id: syscall_enternamespace.c,v 1.1 2004/02/20 17:58:43 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_enternamespace-v13.hc"
+#endif
+
+int
+vc_enter_namespace(xid_t xid)
+{
+ CALL_VC(CALL_VC_V13(vc_enter_namespace, xid));
+}
--- /dev/null
+// $Id: syscall_getccaps-v13.hc,v 1.2 2004/03/24 01:07:11 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_get_ccaps_v13(xid_t xid, struct vc_ctx_caps *caps)
+{
+ struct vcmd_ctx_caps_v0 k_caps;
+ int res;
+
+ res = vserver(VCMD_get_ccaps, CTX_USER2KERNEL(xid), &k_caps);
+ caps->bcaps = k_caps.bcaps;
+ caps->bmask = ~0ull;
+ caps->ccaps = k_caps.ccaps;
+ caps->cmask = k_caps.cmask;
+
+ return res;
+}
--- /dev/null
+// $Id: syscall_getccaps.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_V13)
+# include "syscall_getccaps-v13.hc"
+#endif
+
+#if defined(VC_ENABLE_API_V13)
+int
+vc_get_ccaps(xid_t xid, struct vc_ctx_caps *caps)
+{
+ if (caps==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ CALL_VC(CALL_VC_V13A(vc_get_ccaps, xid, caps));
+}
+#endif
--- /dev/null
+// $Id: syscall_getcflags-v13.hc,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_get_cflags_v13(xid_t xid, struct vc_ctx_flags *flags)
+{
+ struct vcmd_ctx_flags_v0 k_flags;
+ int res;
+
+ if (flags==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ res = vserver(VCMD_get_cflags, CTX_USER2KERNEL(xid), &k_flags);
+ flags->flagword = k_flags.flagword;
+ flags->mask = k_flags.mask;
+
+ return res;
+}
--- /dev/null
+// $Id: syscall_getcflags.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_V13)
+# include "syscall_getcflags-v13.hc"
+#endif
+
+#if defined(VC_ENABLE_API_V13)
+int
+vc_get_cflags(xid_t xid, struct vc_ctx_flags *flags)
+{
+ CALL_VC(CALL_VC_V13A(vc_get_cflags, xid, flags));
+}
+#endif
--- /dev/null
+// $Id: syscall_getdlimit-v13.hc,v 1.2 2005/03/02 01:29:44 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+
+static inline ALWAYSINLINE int
+vc_get_dlimit_v13b(char const *filename, xid_t xid,
+ uint_least32_t flags, struct vc_ctx_dlimit *limits)
+{
+ int rc;
+ struct vcmd_ctx_dlimit_v0 attr = {
+ .name = filename,
+ .flags = flags
+ };
+
+ rc = vserver(VCMD_get_dlimit, CTX_USER2KERNEL(xid), &attr);
+
+ if (limits) {
+ limits->space_used = CDLIM_KERNEL2USER(attr.space_used);
+ limits->space_total = CDLIM_KERNEL2USER(attr.space_total);
+ limits->inodes_used = CDLIM_KERNEL2USER(attr.inodes_used);
+ limits->inodes_total = CDLIM_KERNEL2USER(attr.inodes_total);
+ limits->reserved = CDLIM_KERNEL2USER(attr.reserved);
+ }
+
+ return rc;
+}
--- /dev/null
+// $Id: syscall_getdlimit.c,v 1.2 2005/03/02 01:27:54 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_getdlimit-v13.hc"
+#endif
+
+int
+vc_get_dlimit(char const *filename, xid_t xid,
+ uint_least32_t flags, struct vc_ctx_dlimit *limits)
+{
+ CALL_VC(CALL_VC_V13B(vc_get_dlimit, filename, xid, flags, limits));
+}
--- /dev/null
+// $Id: syscall_getiattr-fscompat.hc,v 1.2 2005/07/15 18:06:27 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "ioctl-getext2flags.hc"
+#include "ioctl-getfilecontext.hc"
+#include "ioctl-getxflg.hc"
+
+#include <fcntl.h>
+static inline ALWAYSINLINE int
+vc_get_iattr_fscompat(char const *filename,
+ xid_t * /*@null@*/ xid,
+ uint32_t * /*@null@*/ flags,
+ uint32_t * mask)
+{
+ struct stat st;
+ int stat_rc;
+ int fd;
+ int old_mask = *mask;
+
+ *mask = 0;
+
+ if (lstat(filename, &st)==-1) return -1;
+ if (!S_ISREG(st.st_mode) && !S_ISDIR(st.st_mode)) return 0;
+
+ fd = open(filename, O_RDONLY|O_NONBLOCK);
+ if (fd==-1) return -1;
+
+ stat_rc = fstat(fd, &st);
+ if (stat_rc==-1) goto err;
+
+ if ( old_mask&VC_IATTR_XID ) {
+ *xid = vc_X_get_filecontext(fd);
+ if (*xid!=VC_NOCTX) *mask |= VC_IATTR_XID;
+ }
+
+ if ( old_mask&VC_IATTR_IUNLINK ) {
+ long tmp;
+ int rc = vc_X_get_ext2flags(fd, &tmp);
+
+ if (rc!=-1) {
+ *mask |= VC_IATTR_IUNLINK;
+ if (tmp & (VC_IMMUTABLE_FILE_FL|VC_IMMUTABLE_LINK_FL))
+ *flags |= VC_IATTR_IUNLINK;
+ }
+ }
+
+ if ( (old_mask&VC_IATTR_BARRIER) && S_ISDIR(st.st_mode)) {
+ long ext2_flags;
+
+ *mask |= VC_IATTR_BARRIER;
+ if ((st.st_mode&0777)==0 &&
+ vc_X_get_ext2flags(fd, &ext2_flags)!=-1 &&
+ (ext2_flags & VC_IMMUTABLE_LINK_FL))
+ *flags |= VC_IATTR_BARRIER;
+ }
+
+ if ( (old_mask&(VC_IATTR_WATCH|VC_IATTR_HIDE)) ){
+ long tmp;
+ int rc = vc_X_get_xflg(fd, &tmp);
+ if (rc!=-1) {
+ *mask |= (VC_IATTR_WATCH|VC_IATTR_HIDE);
+ if (tmp&1) *flags |= VC_IATTR_HIDE;
+ if (tmp&2) *flags |= VC_IATTR_WATCH;
+ }
+ }
+
+ close(fd);
+ return 0;
+ err:
+ {
+ int old_errno = errno;
+ close(fd);
+ errno = old_errno;
+ return -1;
+ }
+}
--- /dev/null
+// $Id: syscall_getiattr-v13.hc,v 1.7 2004/03/12 02:56:46 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+
+static inline ALWAYSINLINE int
+vc_get_iattr_v13(char const *filename,
+ xid_t *xid, uint32_t *flags, uint32_t *mask)
+{
+ struct vcmd_ctx_iattr_v1 attr;
+ int rc;
+
+ attr.name = filename;
+
+ rc = vserver(VCMD_get_iattr, 0, &attr);
+ if (xid) *xid = CTX_KERNEL2USER(attr.xid);
+ if (flags) *flags = attr.flags;
+ if (mask) *mask = attr.mask;
+
+ return rc;
+}
--- /dev/null
+// $Id: syscall_getiattr.c,v 1.3 2004/03/05 04:40:59 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_FSCOMPAT) && defined(VC_ENABLE_API_V13)
+# define VC_MULTIVERSION_SYSCALL 1
+#endif
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_getiattr-v13.hc"
+#endif
+
+#ifdef VC_ENABLE_API_FSCOMPAT
+# include "syscall_getiattr-fscompat.hc"
+#endif
+
+int
+vc_get_iattr(char const *filename, xid_t *xid, uint32_t *flags, uint32_t *mask)
+{
+ if ( (mask==0) ||
+ ((*mask&VC_IATTR_XID) && xid==0) ||
+ ((*mask&~VC_IATTR_XID) && flags==0) ) {
+ errno = EFAULT;
+ return -1;
+ }
+ if ( flags ) *flags &= ~*mask;
+
+ CALL_VC(CALL_VC_V13 (vc_get_iattr, filename, xid, flags, mask),
+ CALL_VC_FSCOMPAT(vc_get_iattr, filename, xid, flags, mask));
+}
--- /dev/null
+// $Id: syscall_getncaps-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_get_ncaps_net(nid_t nid, struct vc_net_caps *caps)
+{
+ struct vcmd_net_caps_v0 k_caps;
+ int res;
+
+ res = vserver(VCMD_get_ncaps, NID_USER2KERNEL(nid), &k_caps);
+ caps->ncaps = k_caps.ncaps;
+ caps->cmask = k_caps.cmask;
+
+ return res;
+}
--- /dev/null
+// $Id: syscall_getncaps.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_NET)
+# include "syscall_getncaps-net.hc"
+#endif
+
+#if defined(VC_ENABLE_API_NET)
+int
+vc_get_ncaps(nid_t nid, struct vc_net_caps *caps)
+{
+ if (caps==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ CALL_VC(CALL_VC_NET(vc_get_ncaps, nid, caps));
+}
+#endif
--- /dev/null
+// $Id: syscall_getnflags-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_get_nflags_net(nid_t nid, struct vc_net_flags *flags)
+{
+ struct vcmd_net_flags_v0 k_flags;
+ int res;
+
+ res = vserver(VCMD_get_nflags, NID_USER2KERNEL(nid), &k_flags);
+ flags->flagword = k_flags.flagword;
+ flags->mask = k_flags.mask;
+
+ return res;
+}
--- /dev/null
+// $Id: syscall_getnflags.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_NET)
+# include "syscall_getnflags-net.hc"
+#endif
+
+#if defined(VC_ENABLE_API_NET)
+int
+vc_get_nflags(nid_t nid, struct vc_net_flags *flags)
+{
+ if (flags==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ CALL_VC(CALL_VC_NET(vc_get_nflags, nid, flags));
+}
+#endif
--- /dev/null
+// $Id: syscall_getnxinfo-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_get_nx_info_net(nid_t nid, struct vc_nx_info *info)
+{
+ struct vcmd_nx_info_v0 res;
+ int rc;
+
+ rc = vserver(VCMD_nx_info, NID_USER2KERNEL(nid), &res);
+ if (rc==-1) return -1;
+
+ info->nid = NID_KERNEL2USER(res.nid);
+ return rc;
+}
--- /dev/null
+// $Id: syscall_getnxinfo.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_NET
+# include "syscall_getnxinfo-net.hc"
+#endif
+
+#ifdef VC_ENABLE_API_NET
+int
+vc_get_nx_info(nid_t nid, struct vc_nx_info *info)
+{
+ if (info==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ CALL_VC(CALL_VC_NET(vc_get_nx_info, nid, info));
+}
+#endif
--- /dev/null
+// $Id: syscall_gettasknid-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE nid_t
+vc_get_task_nid_net(pid_t pid)
+{
+ nid_t res=vserver(VCMD_task_nid, pid, 0);
+ return NID_KERNEL2USER(res);
+}
--- /dev/null
+// $Id: syscall_gettasknid.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_NET
+# include "syscall_gettasknid-net.hc"
+#endif
+
+#ifdef VC_ENABLE_API_NET
+nid_t
+vc_get_task_nid(pid_t pid)
+{
+ CALL_VC(CALL_VC_NET(vc_get_task_nid, pid));
+}
+#endif
--- /dev/null
+// $Id: syscall_gettaskxid-oldproc.hc,v 1.2 2004/02/02 18:58:00 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "utils-legacy.h"
+
+static xid_t
+getctx_legacy_internal(pid_t pid)
+{
+ size_t bufsize = utilvserver_getProcEntryBufsize();
+ char buf[bufsize];
+ char *pos = 0;
+
+ pos = utilvserver_getProcEntry(pid, "\ns_context: ", buf, bufsize);
+
+ if (pos!=0) return atoi(pos);
+ else return VC_NOCTX;
+}
+
+static inline ALWAYSINLINE xid_t
+vc_get_task_xid_oldproc(pid_t pid)
+{
+ xid_t res;
+ do {
+ res = getctx_legacy_internal(pid);
+ } while (res==VC_NOCTX && errno==EAGAIN);
+
+ return res;
+}
--- /dev/null
+// $Id: syscall_gettaskxid-v13.hc,v 1.4 2004/01/22 21:35:36 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE xid_t
+vc_get_task_xid_v13(pid_t pid)
+{
+ xid_t res=vserver(VCMD_task_xid, pid, 0);
+ return CTX_KERNEL2USER(res);
+}
--- /dev/null
+// $Id: syscall_gettaskxid.c,v 1.1 2004/01/21 18:47:18 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_OLDPROC) && defined(VC_ENABLE_API_V13)
+# define VC_MULTIVERSION_SYSCALL 1
+#endif
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_gettaskxid-v13.hc"
+#endif
+
+#ifdef VC_ENABLE_API_OLDPROC
+# include "syscall_gettaskxid-oldproc.hc"
+#endif
+
+xid_t
+vc_get_task_xid(pid_t pid)
+{
+ CALL_VC(CALL_VC_V13 (vc_get_task_xid, pid),
+ CALL_VC_OLDPROC(vc_get_task_xid, pid));
+}
--- /dev/null
+// $Id: syscall_getvhiname-olduts.hc,v 1.1 2004/02/02 18:32:53 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_get_vhi_name_olduts(xid_t xid, vc_uts_type type, char *val, size_t len)
+{
+ if (xid!=VC_SAMECTX) {
+ errno = ESRCH;
+ return -1;
+ }
+
+ switch (type) {
+ case vcVHI_NODENAME : return gethostname (val, len);
+ case vcVHI_DOMAINNAME : return getdomainname(val, len);
+ default :
+ errno = ENOENT;
+ return -1;
+ }
+}
--- /dev/null
+// $Id: syscall_getvhiname-v13.hc,v 1.3 2005/07/03 17:49:56 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <string.h>
+
+ // HACK: workaround naming changes instead of defining yet another interface
+ // version
+#if !defined(VCMD_get_vhi_name) && defined(VCMD_vx_get_vhi_name)
+# define VCMD_get_vhi_name VCMD_vx_get_vhi_name
+# define vcmd_vhi_name_v0 vcmd_vxi_vhi_name_v0
+#endif
+
+
+static inline ALWAYSINLINE int
+vc_get_vhi_name_v13(xid_t xid, vc_uts_type type, char *val, size_t len)
+{
+ struct vcmd_vhi_name_v0 cmd;
+ int rc;
+ size_t l = sizeof(cmd.name);
+
+ cmd.field = VHI_USER2KERNEL(type);
+ rc = vserver(VCMD_get_vhi_name, CTX_USER2KERNEL(xid), &cmd);
+ ENSC_FIX_IOCTL(rc);
+ if (rc==-1) return -1;
+
+ l = l>len ? len : l;
+ strncpy(val, cmd.name, l);
+ return 0;
+}
--- /dev/null
+// $Id: syscall_getvhiname.c,v 1.1 2004/02/02 18:32:53 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_OLDUTS) && defined(VC_ENABLE_API_V13)
+# define VC_MULTIVERSION_SYSCALL 1
+#endif
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_getvhiname-v13.hc"
+#endif
+
+#ifdef VC_ENABLE_API_OLDUTS
+# include "syscall_getvhiname-olduts.hc"
+#endif
+
+int
+vc_get_vhi_name(xid_t xid, vc_uts_type type, char *val, size_t len)
+{
+ CALL_VC(CALL_VC_V13 (vc_get_vhi_name, xid, type, val, len),
+ CALL_VC_OLDUTS(vc_get_vhi_name, xid, type, val, len));
+}
--- /dev/null
+// $Id: syscall_getvxinfo-oldproc.hc,v 1.3 2004/03/05 04:40:59 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_get_vx_info_oldproc(xid_t UNUSED xid, struct vc_vx_info UNUSED *info)
+{
+ // TODO: ???
+ errno = ENOSYS;
+ return -1;
+}
--- /dev/null
+// $Id: syscall_getvxinfo-v13.hc,v 1.4 2004/02/20 17:04:12 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_get_vx_info_v13(xid_t xid, struct vc_vx_info *info)
+{
+ if (xid==0 || xid==1) {
+ info->xid = xid;
+ info->initpid = -1;
+
+ return 0;
+ }
+ else {
+ struct vcmd_vx_info_v0 res;
+ int rc;
+
+ rc = vserver(VCMD_vx_info, CTX_USER2KERNEL(xid), &res);
+ if (rc==-1) return -1;
+
+ info->xid = CTX_KERNEL2USER(res.xid);
+ info->initpid = res.initpid;
+
+ return rc;
+ }
+}
--- /dev/null
+// $Id: syscall_getvxinfo.c,v 1.2 2004/03/05 04:40:59 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_OLDPROC) && defined(VC_ENABLE_API_V13)
+# define VC_MULTIVERSION_SYSCALL 1
+#endif
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_getvxinfo-v13.hc"
+#endif
+
+#ifdef VC_ENABLE_API_OLDPROC
+# include "syscall_getvxinfo-oldproc.hc"
+#endif
+
+int
+vc_get_vx_info(xid_t xid, struct vc_vx_info *info)
+{
+ if (info==0) {
+ errno = EFAULT;
+ return -1;
+ }
+ CALL_VC(CALL_VC_V13 (vc_get_vx_info, xid, info),
+ CALL_VC_OLDPROC(vc_get_vx_info, xid, info));
+}
-// $Id: syscall_kill-v11.hc,v 1.1.2.5 2004/01/26 18:20:18 ensc Exp $ --*- c++ -*--
+// $Id: syscall_kill-v11.hc,v 1.4 2004/02/02 18:55:52 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
static inline ALWAYSINLINE int
vc_ctx_kill_v11(xid_t ctx, pid_t pid, int sig)
{
- struct vcmd_ctx_kill_v0 param = { 0,0 };
+ struct vcmd_ctx_kill_v0 param = { .pid = 0 };
param.pid = pid;
param.sig = sig;
- return vserver(VC_CMD(PROCTRL, 1, 0), ctx, ¶m);
+ return vserver(VCMD_ctx_kill, CTX_USER2KERNEL(ctx), ¶m);
}
-// $Id: syscall_kill.c,v 1.1.2.2 2003/12/30 13:45:57 ensc Exp $ --*- c++ -*--
+// $Id: syscall_kill.c,v 1.3 2004/01/21 18:55:12 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
#include "vserver.h"
#include "vserver-internal.h"
#include "linuxvirtual.h"
-#ifdef VC_ENABLE_API_V11
+#if defined(VC_ENABLE_API_V11) || defined(VC_ENABLE_API_V13)
# include "syscall_kill-v11.hc"
#endif
+#ifdef VC_ENABLE_API_V13
+# define vc_ctx_kill_v13 vc_ctx_kill_v11
+#endif
+
+
+#if defined(VC_ENABLE_API_V11) || defined(VC_ENABLE_API_V13)
+
+ // NOTICE: the reverse order of V11 -> V13 is correct here since these are
+ // the same syscalls
+
int
vc_ctx_kill(xid_t ctx, pid_t pid, int sig)
{
- CALL_VC(CALL_VC_V11(vc_ctx_kill, ctx, pid, sig));
+ CALL_VC(CALL_VC_V11(vc_ctx_kill, ctx, pid, sig),
+ CALL_VC_V13(vc_ctx_kill, ctx, pid, sig));
}
-#if defined (VC_ENABLE_API_V11)
#endif
--- /dev/null
+// $Id: syscall_netadd-net.hc,v 1.2 2005/07/15 18:07:24 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_net_add_net(nid_t nid, struct vc_net_nx const *info)
+{
+ struct vcmd_net_addr_v0 k_info;
+
+ k_info.type = NETTYPE_USER2KERNEL(info->type);
+ k_info.count = info->count;
+
+ return vserver(VCMD_net_add, NID_USER2KERNEL(nid), &k_info);
+}
--- /dev/null
+// $Id: syscall_netadd.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_NET)
+# include "syscall_netadd-net.hc"
+#endif
+
+#if defined(VC_ENABLE_API_NET) && 0
+int
+vc_net_add(nid_t nid, struct vc_net_nx const *info)
+{
+ if (info==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ CALL_VC(CALL_VC_NET(vc_net_add, nid, info));
+}
+#endif
--- /dev/null
+// $Id: syscall_netcreate-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE nid_t
+vc_net_create_net(nid_t nid)
+{
+ nid_t res = vserver(VCMD_net_create, NID_USER2KERNEL(nid), 0);
+
+ return NID_KERNEL2USER(res);
+}
--- /dev/null
+// $Id: syscall_netcreate.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_NET)
+# include "syscall_netcreate-net.hc"
+#endif
+
+#if defined(VC_ENABLE_API_NET)
+nid_t
+vc_net_create(nid_t nid)
+{
+ CALL_VC(CALL_VC_NET(vc_net_create, nid));
+}
+#endif
--- /dev/null
+// $Id: syscall_netmigrate-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_net_migrate_net(nid_t nid)
+{
+ return vserver(VCMD_net_migrate, NID_USER2KERNEL(nid), 0);
+}
--- /dev/null
+// $Id: syscall_netmigrate.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_NET)
+# include "syscall_netmigrate-net.hc"
+#endif
+
+#if defined(VC_ENABLE_API_NET)
+int
+vc_net_migrate(nid_t nid)
+{
+ CALL_VC(CALL_VC_NET(vc_net_migrate, nid));
+}
+#endif
--- /dev/null
+// $Id: syscall_netremove-net.hc,v 1.2 2005/07/15 18:07:24 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_net_remove_net(nid_t nid, struct vc_net_nx const *info)
+{
+ struct vcmd_net_addr_v0 k_info;
+
+ k_info.type = NETTYPE_USER2KERNEL(info->type);
+ k_info.count = info->count;
+
+ return vserver(VCMD_net_remove, NID_USER2KERNEL(nid), &k_info);
+}
--- /dev/null
+// $Id: syscall_netremove.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_NET)
+# include "syscall_netremove-net.hc"
+#endif
+
+#if defined(VC_ENABLE_API_NET) && 0
+int
+vc_net_remove(nid_t nid, struct vc_net_nx const *info)
+{
+ if (info==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ CALL_VC(CALL_VC_NET(vc_net_remove, nid, info));
+}
+#endif
--- /dev/null
+// $Id: syscall_remdlimit-v13.hc,v 1.3 2005/03/02 01:29:44 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+
+static inline ALWAYSINLINE int
+vc_rem_dlimit_v13b(char const *filename, xid_t xid, uint32_t flags)
+{
+ struct vcmd_ctx_dlimit_base_v0 init = {
+ .name = filename,
+ .flags = flags
+ };
+
+ return vserver(VCMD_rem_dlimit, CTX_USER2KERNEL(xid), &init);
+}
--- /dev/null
+// $Id: syscall_remdlimit.c,v 1.2 2005/03/02 01:27:54 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_remdlimit-v13.hc"
+#endif
+
+int
+vc_rem_dlimit(char const *filename, xid_t xid, uint32_t flags)
+{
+ CALL_VC(CALL_VC_V13B(vc_rem_dlimit, filename, xid, flags));
+}
-// $Id: syscall_rlimit-v11.hc,v 1.1.2.7 2004/02/20 19:43:29 ensc Exp $ --*- c++ -*--
+// $Id: syscall_rlimit-v11.hc,v 1.5 2004/02/20 19:03:24 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
int rc;
vc_lim.id = resource;
- rc = vserver(VC_CMD(RLIMIT, 1, 0), CTX_USER2KERNEL(ctx), &vc_lim);
+ rc = vserver(VCMD_get_rlimit, CTX_USER2KERNEL(ctx), &vc_lim);
lim->min = KERN2USR(vc_lim.minimum);
lim->soft = KERN2USR(vc_lim.softlimit);
lim->hard = KERN2USR(vc_lim.maximum);
vc_lim.softlimit = USR2KERN(lim->soft);
vc_lim.maximum = USR2KERN(lim->hard);
- return vserver(VC_CMD(RLIMIT, 2, 0), CTX_USER2KERNEL(ctx), &vc_lim);
+ return vserver(VCMD_set_rlimit, CTX_USER2KERNEL(ctx), &vc_lim);
}
static inline ALWAYSINLINE int
-vc_get_rlimit_mask_v11(xid_t ctx, int tmp, struct vc_rlimit_mask *lim)
+vc_get_rlimit_mask_v11(xid_t ctx, int UNUSED tmp, struct vc_rlimit_mask *lim)
{
struct vcmd_ctx_rlimit_mask_v0 vc_lim;
int rc;
- (void)tmp;
+ rc = vserver(VCMD_get_rlimit_mask, CTX_USER2KERNEL(ctx), &vc_lim);
- rc = vserver(VC_CMD(RLIMIT, 3, 0), CTX_USER2KERNEL(ctx), &vc_lim);
lim->min = vc_lim.minimum;
lim->soft = vc_lim.softlimit;
lim->hard = vc_lim.maximum;
-// $Id: syscall_rlimit.c,v 1.1.2.2 2003/12/30 13:45:56 ensc Exp $ --*- c++ -*--
+// $Id: syscall_rlimit.c,v 1.4 2004/01/21 18:55:12 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#include "compat.h"
#include "vserver.h"
-#include "vserver-internal.h"
+#include "internal.h"
#include "linuxvirtual.h"
-#ifdef VC_ENABLE_API_V11
+
+#include "vserver-internal.h"
+
+#if defined(VC_ENABLE_API_V11) || defined(VC_ENABLE_API_V13)
# include "syscall_rlimit-v11.hc"
#endif
-#if defined (VC_ENABLE_API_V11)
+#ifdef VC_ENABLE_API_V13
+# define vc_get_rlimit_v13 vc_get_rlimit_v11
+# define vc_set_rlimit_v13 vc_set_rlimit_v11
+# define vc_get_rlimit_mask_v13 vc_get_rlimit_mask_v11
+#endif
+
+
+#if defined(VC_ENABLE_API_V11) || defined(VC_ENABLE_API_V13)
+
+ // NOTICE: the reverse order of V11 -> V13 is correct here since these are
+ // the same syscalls
int
vc_get_rlimit(xid_t ctx, int resource, struct vc_rlimit *lim)
{
- CALL_VC(CALL_VC_V11(vc_get_rlimit, ctx, resource, lim));
+ CALL_VC(CALL_VC_V11(vc_get_rlimit, ctx, resource, lim),
+ CALL_VC_V13(vc_get_rlimit, ctx, resource, lim));
}
int
vc_set_rlimit(xid_t ctx, int resource, struct vc_rlimit const *lim)
{
- CALL_VC(CALL_VC_V11(vc_set_rlimit, ctx, resource, lim));
+ CALL_VC(CALL_VC_V11(vc_set_rlimit, ctx, resource, lim),
+ CALL_VC_V13(vc_set_rlimit, ctx, resource, lim));
}
int
vc_get_rlimit_mask(xid_t ctx, struct vc_rlimit_mask *lim)
{
- CALL_VC(CALL_VC_V11(vc_get_rlimit_mask, ctx, 0, lim));
+ CALL_VC(CALL_VC_V11(vc_get_rlimit_mask, ctx, 0, lim),
+ CALL_VC_V13(vc_get_rlimit_mask, ctx, 0, lim));
}
--- /dev/null
+// $Id: syscall_setccaps-v13.hc,v 1.2 2004/03/24 01:07:11 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_set_ccaps_v13(xid_t xid, struct vc_ctx_caps const *caps)
+{
+ struct vcmd_ctx_caps_v0 k_caps;
+
+ k_caps.bcaps = caps->bcaps & caps->bmask;
+ k_caps.ccaps = caps->ccaps;
+ k_caps.cmask = caps->cmask;
+
+ return vserver(VCMD_set_ccaps, CTX_USER2KERNEL(xid), &k_caps);
+}
--- /dev/null
+// $Id: syscall_setccaps.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_V13)
+# include "syscall_setccaps-v13.hc"
+#endif
+
+#if defined(VC_ENABLE_API_V13)
+int
+vc_set_ccaps(xid_t xid, struct vc_ctx_caps const *caps)
+{
+ if (caps==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ CALL_VC(CALL_VC_V13A(vc_set_ccaps, xid, caps));
+}
+#endif
--- /dev/null
+// $Id: syscall_setcflags-v13.hc,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_set_cflags_v13(xid_t xid, struct vc_ctx_flags const *flags)
+{
+ struct vcmd_ctx_flags_v0 k_flags;
+
+ if (flags==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ k_flags.flagword = flags->flagword;
+ k_flags.mask = flags->mask;
+
+ return vserver(VCMD_set_cflags, CTX_USER2KERNEL(xid), &k_flags);
+}
--- /dev/null
+// $Id: syscall_setcflags.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_V13)
+# include "syscall_setcflags-v13.hc"
+#endif
+
+#if defined(VC_ENABLE_API_V13)
+int
+vc_set_cflags(xid_t xid, struct vc_ctx_flags const *flags)
+{
+ if (flags==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ CALL_VC(CALL_VC_V13A(vc_set_cflags, xid, flags));
+}
+#endif
--- /dev/null
+// $Id: syscall_setdlimit-v13.hc,v 1.2 2005/03/02 01:29:44 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+
+static inline ALWAYSINLINE int
+vc_set_dlimit_v13b(char const *filename, xid_t xid,
+ uint_least32_t flags, struct vc_ctx_dlimit const *limits)
+{
+ struct vcmd_ctx_dlimit_v0 attr = {
+ .name = filename,
+ .flags = flags,
+ .space_used = CDLIM_USER2KERNEL(limits->space_used),
+ .space_total = CDLIM_USER2KERNEL(limits->space_total),
+ .inodes_used = CDLIM_USER2KERNEL(limits->inodes_used),
+ .inodes_total = CDLIM_USER2KERNEL(limits->inodes_total),
+ .reserved = CDLIM_USER2KERNEL(limits->reserved),
+ };
+
+ return vserver(VCMD_set_dlimit, CTX_USER2KERNEL(xid), &attr);
+}
--- /dev/null
+// $Id: syscall_setdlimit.c,v 1.2 2005/03/02 01:27:54 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_setdlimit-v13.hc"
+#endif
+
+int
+vc_set_dlimit(char const *filename, xid_t xid,
+ uint_least32_t flags, struct vc_ctx_dlimit const *limits)
+{
+ CALL_VC(CALL_VC_V13B(vc_set_dlimit, filename, xid, flags, limits));
+}
--- /dev/null
+// $Id: syscall_setiattr-fscompat.hc,v 1.3 2005/07/15 18:06:27 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "ioctl-setext2flags.hc"
+#include "ioctl-setfilecontext.hc"
+#include "ioctl-setxflg.hc"
+#include "ioctl-getxflg.hc"
+
+#include <fcntl.h>
+
+static inline ALWAYSINLINE int
+vc_set_iattr_fscompat(char const *filename,
+ xid_t xid,
+ uint32_t flags, uint32_t mask)
+{
+ int fd;
+ struct stat st;
+ int stat_rc;
+
+ fd = open(filename, O_RDONLY|O_NONBLOCK);
+ if (fd==-1) return -1;
+
+ stat_rc = fstat(fd, &st);
+ if (stat_rc==-1) goto err;
+
+ if ( (mask&VC_IATTR_IUNLINK) ) {
+ unsigned int const tmp = VC_IMMUTABLE_FILE_FL|VC_IMMUTABLE_LINK_FL;
+ if (vc_X_set_ext2flags(fd,
+ (flags&VC_IATTR_IUNLINK) ? tmp : 0,
+ (flags&VC_IATTR_IUNLINK) ? 0 : tmp)==-1)
+ goto err;
+ }
+
+ if ( (mask&VC_IATTR_BARRIER) ) {
+ if ((flags&VC_IATTR_BARRIER)) {
+ if (vc_X_set_ext2flags(fd, VC_IMMUTABLE_LINK_FL, 0)==-1 ||
+ fchmod(fd, 0))
+ goto err;
+ }
+ else {
+ if (vc_X_set_ext2flags(fd, 0, VC_IMMUTABLE_LINK_FL)==-1 ||
+ fchmod(fd, 0500))
+ goto err;
+ }
+ }
+
+ if ( (mask&VC_IATTR_XID) &&
+ vc_X_set_filecontext(fd, xid)==-1)
+ goto err;
+
+ if ( (mask&(VC_IATTR_HIDE|VC_IATTR_WATCH)) ) {
+ long tmp;
+ if (vc_X_get_xflg(fd, &tmp)==-1) goto err;
+
+ tmp &= ~( ((mask&VC_IATTR_HIDE) ? 1 : 0) |
+ ((mask&VC_IATTR_WATCH) ? 2 : 0) );
+ tmp |= ( ((flags&VC_IATTR_HIDE) ? 1 : 0) |
+ ((flags&VC_IATTR_WATCH) ? 2 : 0) );
+
+ if (vc_X_set_xflg(fd, tmp)==-1) goto err;
+ }
+
+ close(fd);
+ return 0;
+ err:
+ {
+ int old_errno = errno;
+ close(fd);
+ errno = old_errno;
+ return -1;
+ }
+}
--- /dev/null
+// $Id: syscall_setiattr-v13.hc,v 1.7 2004/03/12 02:56:46 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+
+static inline ALWAYSINLINE int
+vc_set_iattr_v13(char const *filename, xid_t xid, uint32_t flags, uint32_t mask)
+{
+ struct vcmd_ctx_iattr_v1 attr;
+
+ attr.name = filename;
+ attr.xid = CTX_USER2KERNEL(xid);
+ attr.flags = flags;
+ attr.mask = mask;
+ return vserver(VCMD_set_iattr, 0, &attr);
+}
--- /dev/null
+// $Id: syscall_setiattr.c,v 1.2 2004/02/19 22:22:43 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_FSCOMPAT) && defined(VC_ENABLE_API_V13)
+# define VC_MULTIVERSION_SYSCALL 1
+#endif
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_setiattr-v13.hc"
+#endif
+
+#ifdef VC_ENABLE_API_FSCOMPAT
+# include "syscall_setiattr-fscompat.hc"
+#endif
+
+int
+vc_set_iattr(char const *filename, xid_t xid, uint32_t flags, uint32_t mask)
+{
+ CALL_VC(CALL_VC_V13 (vc_set_iattr, filename, xid, flags, mask),
+ CALL_VC_FSCOMPAT(vc_set_iattr, filename, xid, flags, mask));
+}
--- /dev/null
+// $Id: syscall_setnamespace-v13.hc,v 1.1 2004/02/27 04:39:09 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+
+static inline ALWAYSINLINE int
+vc_set_namespace_v13(int UNUSED tmp)
+{
+ return vserver(VCMD_set_namespace, 0, 0);
+}
--- /dev/null
+// $Id: syscall_setnamespace.c,v 1.1 2004/02/27 04:39:09 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_setnamespace-v13.hc"
+#endif
+
+int
+vc_set_namespace()
+{
+ CALL_VC(CALL_VC_V13(vc_set_namespace,0));
+}
--- /dev/null
+// $Id: syscall_setncaps-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_set_ncaps_net(nid_t nid, struct vc_net_caps const *caps)
+{
+ struct vcmd_net_caps_v0 k_caps;
+
+ k_caps.ncaps = caps->ncaps;
+ k_caps.cmask = caps->cmask;
+
+ return vserver(VCMD_set_ncaps, NID_USER2KERNEL(nid), &k_caps);
+}
--- /dev/null
+// $Id: syscall_setncaps.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_NET)
+# include "syscall_setncaps-net.hc"
+#endif
+
+#if defined(VC_ENABLE_API_NET)
+int
+vc_set_ncaps(nid_t nid, struct vc_net_caps const *caps)
+{
+ if (caps==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ CALL_VC(CALL_VC_NET(vc_set_ncaps, nid, caps));
+}
+#endif
--- /dev/null
+// $Id: syscall_setnflags-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_set_nflags_net(nid_t nid, struct vc_net_flags const *flags)
+{
+ struct vcmd_net_flags_v0 k_flags;
+
+ if (flags==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ k_flags.flagword = flags->flagword;
+ k_flags.mask = flags->mask;
+
+ return vserver(VCMD_set_nflags, NID_USER2KERNEL(nid), &k_flags);
+}
--- /dev/null
+// $Id: syscall_setnflags.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_NET)
+# include "syscall_setnflags-net.hc"
+#endif
+
+#if defined(VC_ENABLE_API_NET)
+int
+vc_set_nflags(nid_t nid, struct vc_net_flags const *flags)
+{
+ if (flags==0) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ CALL_VC(CALL_VC_NET(vc_set_nflags, nid, flags));
+}
+#endif
#endif
#include "vserver.h"
-#include "sched_cmd.h"
+#include <lib_internal/util.h>
#define VCGET(MASK,VAL) ((data->set_mask & (MASK)) ? (VAL) : SCHED_KEEP);
-
static inline ALWAYSINLINE int
vc_set_sched_v13obs(xid_t xid, struct vc_set_sched const *data)
{
X(set_mask) && X(fill_rate) && X(interval) && X(tokens) &&
X(tokens_min) && X(tokens_max) && X(priority_bias))
return vserver(VCMD_set_sched, CTX_USER2KERNEL(xid),
- (struct vc_set_sched *)(data));
+ const_cast(struct vc_set_sched *)(data));
else {
k_data.set_mask = data->set_mask;
k_data.fill_rate = data->fill_rate;
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
#include "vserver.h"
+#include "linuxvirtual.h"
#define VC_MULTIVERSION_SYSCALL 1
#include "vserver-internal.h"
-#include "linuxvirtual.h"
-
-#define VC_ENABLE_API_V13
-
#ifdef VC_ENABLE_API_V13
# include "syscall_setsched-v13.hc"
#endif
--- /dev/null
+// $Id: syscall_setvhiname-olduts.hc,v 1.1 2004/02/02 18:32:53 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_set_vhi_name_olduts(xid_t xid, vc_uts_type type, char const *val, size_t len)
+{
+ if (xid!=VC_SAMECTX) {
+ errno = ESRCH;
+ return -1;
+ }
+
+ switch (type) {
+ case vcVHI_NODENAME : return sethostname (val, len);
+ case vcVHI_DOMAINNAME : return setdomainname(val, len);
+ default :
+ errno = ENOENT;
+ return -1;
+ }
+}
--- /dev/null
+// $Id: syscall_setvhiname-v13.hc,v 1.4 2005/07/03 17:49:57 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <string.h>
+
+ // HACK: workaround naming changes instead of defining yet another interface
+ // version
+#if !defined(VCMD_set_vhi_name) && defined(VCMD_vx_set_vhi_name)
+# define VCMD_set_vhi_name VCMD_vx_set_vhi_name
+# define vcmd_vhi_name_v0 vcmd_vxi_vhi_name_v0
+#endif
+
+static inline ALWAYSINLINE int
+vc_set_vhi_name_v13(xid_t xid, vc_uts_type type, char const *val, size_t len)
+{
+ struct vcmd_vhi_name_v0 cmd;
+ int rc;
+
+ if (len>=sizeof(cmd.name)) {
+ errno = E2BIG;
+ return -1;
+ }
+
+ cmd.field = VHI_USER2KERNEL(type);
+ memcpy(cmd.name, val, len);
+ cmd.name[len] = '\0';
+
+ rc = vserver(VCMD_set_vhi_name, CTX_USER2KERNEL(xid), &cmd);
+ ENSC_FIX_IOCTL(rc);
+
+ return rc;
+}
--- /dev/null
+// $Id: syscall_setvhiname.c,v 1.1 2004/02/02 18:32:53 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_OLDUTS) && defined(VC_ENABLE_API_V13)
+# define VC_MULTIVERSION_SYSCALL 1
+#endif
+#include "vserver-internal.h"
+
+#ifdef VC_ENABLE_API_V13
+# include "syscall_setvhiname-v13.hc"
+#endif
+
+#ifdef VC_ENABLE_API_OLDUTS
+# include "syscall_setvhiname-olduts.hc"
+#endif
+
+int
+vc_set_vhi_name(xid_t xid, vc_uts_type type, char const *val, size_t len)
+{
+ if (len==(size_t)(-1)) len=strlen(val);
+
+ CALL_VC(CALL_VC_V13 (vc_set_vhi_name, xid, type, val, len),
+ CALL_VC_OLDUTS(vc_set_vhi_name, xid, type, val, len));
+}
--- /dev/null
+// $Id: syscall_waitexit-v13.hc,v 1.1 2005/05/05 09:17:25 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_wait_exit_v13b(xid_t ctx)
+{
+ struct vcmd_wait_exit_v0 param = { .a = 0, .b = 0 };
+
+ return vserver(VCMD_wait_exit, CTX_USER2KERNEL(ctx), ¶m);
+}
--- /dev/null
+// $Id: syscall_waitexit.c,v 1.1 2005/05/05 09:17:25 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "linuxvirtual.h"
+
+#if defined(VC_ENABLE_API_V13)
+# include "syscall_waitexit-v13.hc"
+#endif
+
+#if defined(VC_ENABLE_API_V13)
+
+int
+vc_wait_exit(xid_t ctx)
+{
+ CALL_VC(CALL_VC_V13B(vc_wait_exit, ctx));
+}
+
+#endif
--- /dev/null
+## $Id: Makefile-files,v 1.9 2005/04/28 17:54:57 ensc Exp $ --*- makefile -*--
+
+## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+
+DIETPROGS += lib/testsuite/cflags \
+ lib/testsuite/personality \
+ lib/testsuite/fmt
+
+check_PROGRAMS += lib/testsuite/cflags \
+ lib/testsuite/personality \
+ lib/testsuite/fmt \
+ lib/testsuite/parselimit
+TESTS += lib/testsuite/cflags \
+ lib/testsuite/personality \
+ lib/testsuite/fmt \
+ lib/testsuite/parselimit
+
+lib_testsuite_cflags_SOURCES = lib/testsuite/cflags.c
+lib_testsuite_cflags_LDADD = $(LIBVSERVER)
+lib_testsuite_cflags_LDFLAGS = $(VSERVER_LDFLGS)
+lib_testsuite_cflags_CPPFLAGS = $(AM_CPPFLAGS) -DENSC_TESTSUITE
+
+lib_testsuite_personality_SOURCES = lib/testsuite/personality.c
+lib_testsuite_personality_LDADD = $(LIBVSERVER)
+lib_testsuite_personality_LDFLAGS = $(VSERVER_LDFLGS)
+lib_testsuite_personality_CPPFLAGS = $(AM_CPPFLAGS) -DENSC_TESTSUITE
+
+lib_testsuite_fmt_SOURCES = lib/testsuite/fmt.c
+lib_testsuite_fmt_LDADD = $(LIBVSERVER)
+lib_testsuite_fmt_LDFLAGS = $(VSERVER_LDFLGS)
+lib_testsuite_fmt_CPPFLAGS = $(AM_CPPFLAGS) -DENSC_TESTSUITE
+
+lib_testsuite_parselimit_SOURCES = lib/testsuite/parselimit.c
+lib_testsuite_parselimit_LDADD = $(LIBVSERVER)
+lib_testsuite_parselimit_LDFLAGS = $(VSERVER_LDFLGS)
+lib_testsuite_parselimit_CPPFLAGS = $(AM_CPPFLAGS) -DENSC_TESTSUITE
--- /dev/null
+// $Id: cflags.c,v 1.6 2005/03/02 01:24:25 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "lib_internal/coreassert.h"
+#include "vserver.h"
+
+#include <string.h>
+#include <unistd.h>
+
+
+#define TEST_T2F_C(X,Y,Z) assert(vc_text2cflag_compat(X,Y)==Z)
+#define TEST_F2T_C(Y,X) { \
+ char const *x=vc_hicflag2text_compat(X); \
+ assert((x==0 && Y==0) || (x!=0 && Y!=0)); \
+ if (x!=0 && Y!=0) assert(strcmp(x, Y ? Y : "")==0); \
+ }
+
+#define TEST_LIST_C(STR,LEN,EXP,ERR_POS,ERR_LEN) { \
+ struct vc_err_listparser err; \
+ char buf[] = STR; \
+ uint32_t res; \
+ res = vc_list2cflag_compat(buf, LEN, &err); \
+ assert(res==(EXP)); \
+ assert(err.len==ERR_LEN); \
+ if (ERR_POS==-1) assert(err.ptr==0); \
+ else assert(err.ptr==buf+(ERR_POS)); \
+ }
+
+//----
+
+#define TEST_T2F(X,Y,Z) assert(vc_text2cflag(X,Y)==Z)
+#define TEST_F2T(Y,X) { \
+ uint_least64_t x = (X); \
+ char const *rc=vc_locflag2text(&x); \
+ assert((rc==0 && Y==0) || (rc!=0 && Y!=0)); \
+ if (rc!=0 && Y!=0) assert(strcmp(rc, Y ? Y : "")==0); \
+ }
+#define TEST_LIST(STR,LEN,EXP_RES,EXP_FLAG,EXP_MASK,ERR_POS,ERR_LEN) { \
+ struct vc_err_listparser err; \
+ char buf[] = STR; \
+ volatile int res; \
+ struct vc_ctx_flags flags = {0,0}; \
+ res = vc_list2cflag(buf, LEN, &err, &flags); \
+ assert(res==(EXP_RES)); \
+ assert(flags.flagword==(uint_least64_t)(EXP_FLAG)); \
+ assert(flags.mask ==(uint_least64_t)(EXP_MASK)); \
+ assert(err.len==ERR_LEN); \
+ if (ERR_POS==-1) assert(err.ptr==0); \
+ else assert(err.ptr==buf+(ERR_POS)); \
+ }
+
+#define ALL64 (~(uint_least64_t)(0))
+
+int main()
+{
+ TEST_T2F_C("lock", 0, S_CTX_INFO_LOCK);
+ TEST_T2F_C("lockXXXX", 4, S_CTX_INFO_LOCK);
+ TEST_T2F_C("locXXXXX", 3, 0);
+ TEST_T2F_C("sched", 0, S_CTX_INFO_SCHED);
+ TEST_T2F_C("nproc", 0, S_CTX_INFO_NPROC);
+ TEST_T2F_C("private", 0, S_CTX_INFO_PRIVATE);
+ TEST_T2F_C("fakeinit", 0, S_CTX_INFO_INIT);
+ TEST_T2F_C("hideinfo", 0, S_CTX_INFO_HIDEINFO);
+ TEST_T2F_C("ulimit", 0, S_CTX_INFO_ULIMIT);
+ TEST_T2F_C("XXX", 0, 0);
+ TEST_T2F_C("", 0, 0);
+
+ TEST_F2T_C("lock", S_CTX_INFO_LOCK);
+ TEST_F2T_C("sched", S_CTX_INFO_SCHED);
+ TEST_F2T_C("nproc", S_CTX_INFO_NPROC);
+ TEST_F2T_C("private", S_CTX_INFO_PRIVATE);
+ TEST_F2T_C("fakeinit", S_CTX_INFO_INIT);
+ TEST_F2T_C("hideinfo", S_CTX_INFO_HIDEINFO);
+ TEST_F2T_C("ulimit", S_CTX_INFO_ULIMIT);
+ TEST_F2T_C(0, 0);
+ TEST_F2T_C("ulimit", 64 | 128 | 23 );
+ TEST_F2T_C("fakeinit", 23);
+
+ TEST_LIST_C("lock", 0, S_CTX_INFO_LOCK, -1,0);
+ TEST_LIST_C("lock,sched,", 0, S_CTX_INFO_LOCK|S_CTX_INFO_SCHED, -1,0);
+ TEST_LIST_C("lock,XXX", 0, S_CTX_INFO_LOCK, 5,3);
+ TEST_LIST_C("", 0, 0, -1,0);
+ TEST_LIST_C("X", 0, 0, 0,1);
+ TEST_LIST_C("lock,sched,", 10, S_CTX_INFO_LOCK|S_CTX_INFO_SCHED, -1,0);
+
+ //-------
+
+ TEST_T2F("fakeinit", 0, VC_VXF_INFO_INIT);
+ TEST_T2F("XXX", 0, 0);
+ TEST_T2F("", 0, 0);
+
+ TEST_F2T("fakeinit", VC_VXF_INFO_INIT);
+ TEST_F2T(0, 0);
+
+ TEST_LIST("fakeinit", 0, 0, VC_VXF_INFO_INIT, VC_VXF_INFO_INIT,-1,0);
+ TEST_LIST("FaKeInIt", 0, 0, VC_VXF_INFO_INIT, VC_VXF_INFO_INIT,-1,0);
+ TEST_LIST("~fakeinit", 0, 0, 0, VC_VXF_INFO_INIT,-1,0);
+ TEST_LIST("!fakeinit", 0, 0, 0, VC_VXF_INFO_INIT,-1,0);
+ TEST_LIST("fakeinit,XXX", 0, -1, VC_VXF_INFO_INIT, VC_VXF_INFO_INIT, 9,3);
+ TEST_LIST("", 0, 0, 0, 0, -1,0);
+ TEST_LIST("0", 0, 0, 0, 0, -1,0);
+ TEST_LIST("00", 0, 0, 0, 0, -1,0);
+ TEST_LIST("X", 0, -1, 0, 0, 0,1);
+ TEST_LIST("all", 0, 0, ALL64, ALL64, -1,0);
+ TEST_LIST("ALL", 0, 0, ALL64, ALL64, -1,0);
+ TEST_LIST("any", 0, 0, ALL64, ALL64, -1,0);
+ TEST_LIST("ANY", 0, 0, ALL64, ALL64, -1,0);
+ TEST_LIST("~all", 0, 0, 0, ALL64, -1,0);
+ TEST_LIST("~ALL", 0, 0, 0, ALL64, -1,0);
+ TEST_LIST("none", 0, 0, 0, 0, -1,0);
+ TEST_LIST("NONE", 0, 0, 0, 0, -1,0);
+ TEST_LIST("~none", 0, 0, 0, 0, -1,0);
+ TEST_LIST("~NONE", 0, 0, 0, 0, -1,0);
+ TEST_LIST("all,~fakeinit",0, 0, ~VC_VXF_INFO_INIT,ALL64, -1,0);
+ TEST_LIST("~all,fakeinit",0, 0, VC_VXF_INFO_INIT, ALL64, -1,0);
+ TEST_LIST("fakeinit,~all",0, 0, 0, ALL64, -1,0);
+ TEST_LIST("none,~lock", 0, 0, 0, VC_VXF_INFO_LOCK,-1,0);
+ TEST_LIST("~none,lock", 0, 0, VC_VXF_INFO_LOCK,VC_VXF_INFO_LOCK,-1,0);
+ TEST_LIST("lock,none", 0, 0, VC_VXF_INFO_LOCK,VC_VXF_INFO_LOCK,-1,0);
+ TEST_LIST("lock,~none", 0, 0, VC_VXF_INFO_LOCK,VC_VXF_INFO_LOCK,-1,0);
+ TEST_LIST("~", 0, -1, 0, 0, 1,0);
+ TEST_LIST("~~", 0, -1, 0, 0, 2,0);
+ TEST_LIST("!", 0, -1, 0, 0, 1,0);
+ TEST_LIST("^", 0, -1, 0, 0, 1,0);
+ TEST_LIST("fakeinit,~", 0, -1, VC_VXF_INFO_INIT, VC_VXF_INFO_INIT,10,0);
+ TEST_LIST("1", 0, 0, 1, 1, -1,0);
+ TEST_LIST("1,23,42", 0, 0, 1|23|42, 1|23|42, -1,0);
+ TEST_LIST("~1", 0, 0, 0, 1, -1,0);
+ TEST_LIST("!1", 0, 0, 0, 1, -1,0);
+ TEST_LIST("~~1", 0, 0, 1, 1, -1,0);
+ TEST_LIST("~~~1", 0, 0, 0, 1, -1,0);
+ TEST_LIST("~!~1", 0, 0, 0, 1, -1,0);
+ TEST_LIST("42,fakeinit", 0, 0, VC_VXF_INFO_INIT|42, VC_VXF_INFO_INIT|42, -1,0);
+ TEST_LIST("42x,1", 0, -1, 0, 0, 0,3);
+
+ TEST_LIST("^4,~^2", 0, 0, 0x10, 0x14, -1,0);
+ TEST_LIST("^4,~~^2", 0, 0, 0x14, 0x14, -1,0);
+ TEST_LIST("^4,~~~^2", 0, 0, 0x10, 0x14, -1,0);
+ TEST_LIST("~^2,^4", 0, 0, 0x10, 0x14, -1,0);
+ TEST_LIST("1,^1,~^2,8", 0, 0, 0x0b, 0x0f, -1,0);
+
+ TEST_LIST("lock,nproc,private,fakeinit,hideinfo,ulimit,namespace,"
+ "sched_hard,sched_prio,sched_pause,"
+ "virt_mem,virt_uptime,virt_cpu,virt_load,"
+ "hide_mount,hide_netif,state_setup,state_init,"
+ "fork_rss,prolific,igneg_nice",
+ 0, 0,
+ VC_VXF_INFO_LOCK|VC_VXF_INFO_NPROC|VC_VXF_INFO_PRIVATE|VC_VXF_INFO_INIT|
+ VC_VXF_INFO_HIDEINFO|VC_VXF_INFO_ULIMIT|VC_VXF_INFO_NAMESPACE|
+ VC_VXF_SCHED_HARD|VC_VXF_SCHED_PRIO|VC_VXF_SCHED_PAUSE|
+ VC_VXF_VIRT_MEM|VC_VXF_VIRT_UPTIME|VC_VXF_VIRT_CPU|VC_VXF_VIRT_LOAD|
+ VC_VXF_HIDE_MOUNT|VC_VXF_HIDE_NETIF|
+ VC_VXF_STATE_SETUP|VC_VXF_STATE_INIT|
+ VC_VXF_FORK_RSS|VC_VXF_PROLIFIC|VC_VXF_IGNEG_NICE,
+
+ VC_VXF_INFO_LOCK|VC_VXF_INFO_NPROC|VC_VXF_INFO_PRIVATE|VC_VXF_INFO_INIT|
+ VC_VXF_INFO_HIDEINFO|VC_VXF_INFO_ULIMIT|VC_VXF_INFO_NAMESPACE|
+ VC_VXF_SCHED_HARD|VC_VXF_SCHED_PRIO|VC_VXF_SCHED_PAUSE|
+ VC_VXF_VIRT_MEM|VC_VXF_VIRT_UPTIME|VC_VXF_VIRT_CPU|VC_VXF_VIRT_LOAD|
+ VC_VXF_HIDE_MOUNT|VC_VXF_HIDE_NETIF|
+ VC_VXF_STATE_SETUP|VC_VXF_STATE_INIT|
+ VC_VXF_FORK_RSS|VC_VXF_PROLIFIC|VC_VXF_IGNEG_NICE,
+
+ -1,0);
+
+ TEST_LIST("~lock,~nproc,~private,~fakeinit,~hideinfo,~ulimit,~namespace,"
+ "~sched_hard,~sched_prio,~sched_pause,"
+ "~virt_mem,~virt_uptime,~virt_cpu,~virt_load,"
+ "~hide_mount,~hide_netif,~state_setup,~state_init,"
+ "~fork_rss,~prolific,~igneg_nice",
+ 0, 0,
+ 0,
+ VC_VXF_INFO_LOCK|VC_VXF_INFO_NPROC|VC_VXF_INFO_PRIVATE|VC_VXF_INFO_INIT|
+ VC_VXF_INFO_HIDEINFO|VC_VXF_INFO_ULIMIT|VC_VXF_INFO_NAMESPACE|
+ VC_VXF_SCHED_HARD|VC_VXF_SCHED_PRIO|VC_VXF_SCHED_PAUSE|
+ VC_VXF_VIRT_MEM|VC_VXF_VIRT_UPTIME|VC_VXF_VIRT_CPU|VC_VXF_VIRT_LOAD|
+ VC_VXF_HIDE_MOUNT|VC_VXF_HIDE_NETIF|
+ VC_VXF_STATE_SETUP|VC_VXF_STATE_INIT|
+ VC_VXF_FORK_RSS|VC_VXF_PROLIFIC|VC_VXF_IGNEG_NICE,
+
+ -1,0);
+
+
+ return 0;
+}
--- /dev/null
+// $Id: fmt.c,v 1.4 2004/04/28 18:07:41 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "lib_internal/coreassert.h"
+
+#include "lib/fmt.h"
+#include <string.h>
+
+#define TEST(VAL, EXP) { \
+ char buf[512]; \
+ size_t l; \
+ memset(buf, '\23', sizeof buf); \
+ l = FUNC(buf+1, VAL); \
+ assert(l==sizeof(EXP)-1); \
+ assert(memcmp(buf+1, EXP, l)==0); \
+ assert(buf[l+1]=='\23'); \
+ }
+
+int main()
+{
+ #define FUNC utilvserver_fmt_xuint64
+ TEST(0, "0");
+ TEST(1, "1");
+ TEST(15, "f");
+ TEST(16, "10");
+ TEST(100, "64");
+ TEST(1000, "3e8");
+ TEST(65535, "ffff");
+ TEST(65536, "10000");
+ TEST(68719476736ul, "1000000000");
+
+ return 0;
+}
--- /dev/null
+// $Id: parselimit.c,v 1.2 2004/04/28 18:07:41 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "lib_internal/coreassert.h"
+#include "vserver.h"
+
+#define TEST(BUF, RES, VAL) \
+ do { \
+ vc_limit_t res = 0xdeadbeaf; \
+ assert(vc_parseLimit(BUF, &res)==(RES)); \
+ assert(res==(VAL)); \
+ } while (0)
+
+#define TESTT(BUF,VAL) TEST(BUF, true, VAL)
+#define TESTF(BUF,VAL) TEST(BUF, false, VAL)
+
+int main()
+{
+ TESTT("0", 0);
+ TESTT("1", 1);
+ TESTT("1k", 1000);
+ TESTT("1K", 1024);
+ TESTT("1m", 1000000);
+ TESTT("1M", 1048576);
+ TESTT("1234", 1234);
+ TESTT("1234\n", 1234);
+ TESTT("inf", VC_LIM_INFINITY);
+
+ TESTF("x", 0);
+ TESTF("k", 0);
+ TESTF("1kX", 1000);
+ TESTF("", 0);
+
+ return EXIT_SUCCESS;
+}
--- /dev/null
+// $Id: personality.c,v 1.1 2005/04/28 17:54:57 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "lib_internal/coreassert.h"
+#include "vserver.h"
+
+#include <string.h>
+#include <unistd.h>
+#include <linux/personality.h>
+
+
+#define TEST_T2PF(X,Y,Z) assert(vc_text2personalityflag(X,Y)==Z)
+#define TEST_PF2T(Y,X) { \
+ uint_least32_t x = (X); \
+ char const *rc=vc_lopersonality2text(&x); \
+ assert((rc==0 && Y==0) || (rc!=0 && Y!=0)); \
+ if (rc!=0 && Y!=0) assert(strcmp(rc, Y ? Y : "")==0); \
+ }
+
+#define TEST_LIST(STR,LEN,EXP_RES,EXP_PERS,ERR_POS,ERR_LEN) { \
+ struct vc_err_listparser err; \
+ char buf[] = STR; \
+ volatile int res; \
+ uint_least32_t personality = 0; \
+ res = vc_list2personalityflag(buf, LEN, &personality, &err); \
+ assert(res==(EXP_RES)); \
+ assert(personality==(uint_least32_t)(EXP_PERS)); \
+ assert(err.len==ERR_LEN); \
+ if (ERR_POS==-1) assert(err.ptr==0); \
+ else assert(err.ptr==buf+(ERR_POS)); \
+ }
+
+
+
+#define TEST_T2PT(X,Y,Z) assert(vc_str2personalitytype(X,Y)==Z)
+
+
+
+int main()
+{
+ TEST_T2PF("mmap_page_zero", 0, MMAP_PAGE_ZERO);
+ TEST_T2PF("MMAP_PAGE_ZERO", 0, MMAP_PAGE_ZERO);
+ TEST_T2PF("MmAp_PaGe_ZeRo", 0, MMAP_PAGE_ZERO);
+ TEST_T2PF("mmap_page_zero", 14, MMAP_PAGE_ZERO);
+ TEST_T2PF("MMAP_PAGE_ZERO", 14, MMAP_PAGE_ZERO);
+ TEST_T2PF("MMAP_PAGE_ZEROXXXX", 14, MMAP_PAGE_ZERO);
+ TEST_T2PF("MMAP_PAGE_ZEROXXXX", 13, 0);
+ TEST_T2PF("MMAP_PAGE_ZERO", 13, 0);
+ TEST_T2PF("MMAP_PAGE_ZERXXX", 13, 0);
+ TEST_T2PF("XXX", 0, 0);
+ TEST_T2PF("", 0, 0);
+
+ TEST_T2PF("ADDR_LIMIT_32BIT", 0, ADDR_LIMIT_32BIT);
+ TEST_T2PF("SHORT_INODE", 0, SHORT_INODE);
+ TEST_T2PF("WHOLE_SECONDS", 0, WHOLE_SECONDS);
+ TEST_T2PF("STICKY_TIMEOUTS", 0, STICKY_TIMEOUTS);
+ TEST_T2PF("ADDR_LIMIT_3GB", 0, ADDR_LIMIT_3GB);
+
+
+ // the _loc* tests
+ TEST_PF2T("MMAP_PAGE_ZERO", MMAP_PAGE_ZERO);
+ TEST_PF2T("ADDR_LIMIT_32BIT", ADDR_LIMIT_32BIT);
+ TEST_PF2T("SHORT_INODE", SHORT_INODE);
+ TEST_PF2T("WHOLE_SECONDS", WHOLE_SECONDS);
+ TEST_PF2T("STICKY_TIMEOUTS", STICKY_TIMEOUTS);
+ TEST_PF2T("ADDR_LIMIT_3GB", ADDR_LIMIT_3GB);
+
+
+
+ TEST_LIST("mmap_page_zero", 14, 0, MMAP_PAGE_ZERO, -1, 0);
+ TEST_LIST("mmap_page_zero,XXX", 14, 0, MMAP_PAGE_ZERO, -1, 0);
+ TEST_LIST("mmap_page_zero", 0, 0, MMAP_PAGE_ZERO, -1, 0);
+ TEST_LIST("MmAp_pAgE_ZeRo", 0, 0, MMAP_PAGE_ZERO, -1, 0);
+ TEST_LIST("mmap_page_zero,XXX", 0, -1, MMAP_PAGE_ZERO, 15, 3);
+ TEST_LIST("~mmap_page_zero", 0, -1, 0, 0,15);
+ TEST_LIST("!mmap_page_zero", 0, -1, 0, 0,15);
+ TEST_LIST("", 0, 0, 0, -1, 0);
+ TEST_LIST("0", 0, 0, 0, -1, 0);
+ TEST_LIST("00", 0, 0, 0, -1, 0);
+ TEST_LIST("1", 0, 0, 1, -1, 0);
+ TEST_LIST("1,23,42", 0, 0, 1|23|42, -1, 0);
+ TEST_LIST("^1", 0, 0, 2, -1, 0);
+ TEST_LIST("^4,^2", 0, 0, 0x14, -1, 0);
+ TEST_LIST("^2,^3", 0, 0, 0x0c, -1, 0);
+ TEST_LIST("^2,~^3", 0, -1, 0x04, 3, 3);
+ TEST_LIST("~0", 0, -1, 0, 0, 2);
+ TEST_LIST("^", 0, -1, 0, 1, 0);
+ TEST_LIST("~", 0, -1, 0, 0, 1);
+ TEST_LIST("!", 0, -1, 0, 0, 1);
+ TEST_LIST("X", 0, -1, 0, 0, 1);
+ TEST_LIST("all", 0, -1, 0, 0, 3);
+ TEST_LIST("ALL", 0, -1, 0, 0, 3);
+ TEST_LIST("~all", 0, -1, 0, 0, 4);
+ TEST_LIST("~ALL", 0, -1, 0, 0, 4);
+ TEST_LIST("any", 0, -1, 0, 0, 3);
+ TEST_LIST("ANY", 0, -1, 0, 0, 3);
+ TEST_LIST("~any", 0, -1, 0, 0, 4);
+ TEST_LIST("~ANY", 0, -1, 0, 0, 4);
+ TEST_LIST("none", 0, -1, 0, 0, 4);
+ TEST_LIST("NONE", 0, -1, 0, 0, 4);
+ TEST_LIST("~none", 0, -1, 0, 0, 5);
+ TEST_LIST("~NONE", 0, -1, 0, 0, 5);
+ TEST_LIST("mmap_page_zero,all", 0, -1, MMAP_PAGE_ZERO, 15, 3);
+ TEST_LIST("mmap_page_zero,any", 0, -1, MMAP_PAGE_ZERO, 15, 3);
+
+ TEST_LIST("mmap_page_zero,addr_limit_32bit,short_inode,whole_seconds,"
+ "sticky_timeouts,addr_limit_3gb",
+ 0, 0,
+ MMAP_PAGE_ZERO|ADDR_LIMIT_32BIT|SHORT_INODE|WHOLE_SECONDS|
+ STICKY_TIMEOUTS|ADDR_LIMIT_3GB,
+ -1, 0);
+
+ TEST_T2PT("linux", 0, PER_LINUX);
+ TEST_T2PT("LINUX", 0, PER_LINUX);
+ TEST_T2PT("LiNuX", 0, PER_LINUX);
+ TEST_T2PT("LiNuX", 5, PER_LINUX);
+ TEST_T2PT("LiNuX", 4, VC_BAD_PERSONALITY);
+ TEST_T2PT("LiNuXAAA", 5, PER_LINUX);
+ TEST_T2PT("LiNuXAAA", 4, VC_BAD_PERSONALITY);
+ TEST_T2PT("LiNuAAA", 4, VC_BAD_PERSONALITY);
+ TEST_T2PT("XXX", 0, VC_BAD_PERSONALITY);
+ TEST_T2PT("", 0, VC_BAD_PERSONALITY);
+
+
+ return 0;
+}
--- /dev/null
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: @PACKAGE@
+Description: vserver libraries
+Version: @VERSION@
+Requires:
+Libs: @libflags@-lvserver
+Cflags: @incflags@
--- /dev/null
+// $Id: utils-legacy.h,v 1.1 2003/10/16 14:02:54 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_UTILS_COMPAT_H
+#define H_UTIL_VSERVER_LIB_UTILS_COMPAT_H
+
+#include <stdlib.h>
+#include <sys/types.h>
+
+ // read /proc/<pid>/status into 'buf' which has the size bufsize. When 'str'
+ // is non-null, search this string and return a pointer *after* it. When no
+ // such string could be found, return 0. When 'str' is null return 'buf'.
+ //
+ // When this function fails (result==0) and errno is EAGAIN, the buffersize
+ // was too small and this function should be called again with a larger
+ // buffer.
+char * utilvserver_getProcEntry(pid_t pid, char *str,
+ char *buf, size_t bufsize);
+
+ // Returns the suggested buffersize for reading a /proc/.../status
+ // file. Return-value can change when utilvserver_getProcEntry() was called.
+size_t utilvserver_getProcEntryBufsize();
+
+#endif // H_UTIL_VSERVER_LIB_UTILS_COMPAT_H
--- /dev/null
+// $Id: val2text-t2v-uint32.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "internal.h"
+#include "val2text.hc"
+
+TEXT2VAL(uint_least32_t, uint32)
--- /dev/null
+// $Id: val2text-t2v-uint64.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "internal.h"
+#include "val2text.hc"
+
+TEXT2VAL(uint_least64_t, uint64)
--- /dev/null
+// $Id: val2text-v2t-uint32.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "internal.h"
+#include "val2text.hc"
+
+VAL2TEXT(uint_least32_t, uint32)
--- /dev/null
+// $Id: val2text-v2t-uint64.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "internal.h"
+#include "val2text.hc"
+
+VAL2TEXT(uint_least64_t, uint64)
--- /dev/null
+// $Id: val2text.hc,v 1.3 2004/05/08 01:27:48 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+
+#define VAL2TEXT(TYPE,SHORT) \
+ ssize_t \
+ utilvserver_value2text_##SHORT(char const *str, size_t len, \
+ struct Mapping_ ##SHORT const *map, \
+ size_t map_len) \
+ { \
+ size_t i; \
+ if (len==0) len=strlen(str); \
+ \
+ for (i=0; i<map_len; ++i) \
+ if (len==map[i].len && \
+ strncasecmp(map[i].id, str, len)==0) \
+ return i; \
+ \
+ return -1; \
+ }
+
+#define TEXT2VAL(TYPE,SHORT) \
+ static ssize_t \
+ searchValue(TYPE val, \
+ struct Mapping_##SHORT const *map, size_t map_len) \
+ { \
+ size_t i; \
+ for (i=0; i<map_len; ++i) \
+ if (val == map[i].val) return i; \
+ return -1; \
+ } \
+ \
+ ssize_t \
+ utilvserver_text2value_##SHORT(TYPE *val, \
+ struct Mapping_##SHORT const *map, \
+ size_t map_len) \
+ { \
+ ssize_t idx; \
+ TYPE del_val; \
+ if (*val==0) \
+ return -1; \
+ \
+ del_val = *val; \
+ idx = searchValue(del_val, map, map_len); \
+ \
+ if (idx==-1) { \
+ size_t i; \
+ for (i=0; i<sizeof(*val)*8 && (*val&(1<<i))==0; ++i) {} \
+ del_val = (1<<i); \
+ idx = searchValue(del_val, map, map_len); \
+ } \
+ *val &= ~del_val; \
+ return idx; \
+ }
-#ifndef _LINUX_VIRTUAL_H
-#define _LINUX_VIRTUAL_H
-
-#define VC_CATEGORY(c) (((c) >> 24) & 0x3F)
-#define VC_COMMAND(c) (((c) >> 16) & 0xFF)
-#define VC_VERSION(c) ((c) & 0xFFF)
-
-#define VC_CMD(c,i,v) ((((VC_CAT_ ## c) & 0x3F) << 24) \
- | (((i) & 0xFF) << 16) | ((v) & 0xFFF))
-
-/*
-
- Syscall Matrix V2.2
-
- |VERSION|CREATE |MODIFY |MIGRATE|CONTROL|EXPERIM| |SPECIAL|SPECIAL|
- |STATS |DESTROY|ALTER |CHANGE |LIMIT |TEST | | | |
- |INFO |SETUP | |MOVE | | | | | |
- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
- SYSTEM |VERSION| | | | | | |DEVICES| |
- HOST | 00| 01| 02| 03| 04| 05| | 06| 07|
- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
- CPU | | | | | | | |SCHED. | |
- PROCESS| 08| 09| 10| 11| 12| 13| | 14| 15|
- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
- MEMORY | | | | | | | |SWAP | |
- | 16| 17| 18| 19| 20| 21| | 22| 23|
- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
- NETWORK| | | | | | | |SERIAL | |
- | 24| 25| 26| 27| 28| 29| | 30| 31|
- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
- DISK | | | | | | | | | |
- VFS | 32| 33| 34| 35| 36| 37| | 38| 39|
- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
- OTHER | | | | | | | | | |
- | 40| 41| 42| 43| 44| 45| | 46| 47|
- =======+=======+=======+=======+=======+=======+=======+ +=======+=======+
- SPECIAL| | | | | | | | | |
- | 48| 49| 50| 51| 52| 53| | 54| 55|
- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
- SPECIAL| | | | |RLIMIT |SYSCALL| | |COMPAT |
- | 56| 57| 58| 59| 60|TEST 61| | 62| 63|
- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
-
-*/
-
-#define VC_CAT_VERSION 0
-
-#define VC_CAT_PROCTRL 12
-
-#define VC_CAT_RLIMIT 60
-
-#define VC_CAT_SYSTEST 61
-#define VC_CAT_COMPAT 63
-
-/* interface version */
-
-#define VCI_VERSION 0x00010001
-
-
-
-/* query version */
-
-#define VCMD_get_version VC_CMD(VERSION, 0, 0)
-
-
-/* compatibiliy vserver commands */
-
-#define VCMD_new_s_context VC_CMD(COMPAT, 1, 1)
-#define VCMD_set_ipv4root VC_CMD(COMPAT, 2, 3)
-
-/* compatibiliy vserver arguments */
-
-struct vcmd_new_s_context_v1 {
- uint32_t remove_cap;
- uint32_t flags;
-};
-
-#define NB_IPV4ROOT 16
-
-struct vcmd_set_ipv4root_v3 {
- /* number of pairs in id */
- uint32_t broadcast;
- struct {
- uint32_t ip;
- uint32_t mask;
- } ip_mask_pair[NB_IPV4ROOT];
-};
-
-/* context signalling */
-
-#define VCMD_ctx_kill VC_CMD(PROCTRL, 1, 0)
-
-struct vcmd_ctx_kill_v0 {
- int32_t pid;
- int32_t sig;
-};
-
-/* rlimit vserver commands */
-
-#define VCMD_get_rlimit VC_CMD(RLIMIT, 1, 0)
-#define VCMD_set_rlimit VC_CMD(RLIMIT, 2, 0)
-#define VCMD_get_rlimit_mask VC_CMD(RLIMIT, 3, 0)
-
-struct vcmd_ctx_rlimit_v0 {
- uint32_t id;
- uint64_t minimum;
- uint64_t softlimit;
- uint64_t maximum;
-};
-
-struct vcmd_ctx_rlimit_mask_v0 {
- uint32_t minimum;
- uint32_t softlimit;
- uint32_t maximum;
-};
-
-#define CRLIM_INFINITY (~0ULL)
-#define CRLIM_KEEP (~1ULL)
-
-
-#endif /* _LINUX_VIRTUAL_H */
+// $Id: virtual.h,v 1.24 2005/07/03 17:51:00 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_VIRTUAL_H
+#define H_UTIL_VSERVER_LIB_VIRTUAL_H
+
+#include <kernel/context.h>
+#include <kernel/context_cmd.h>
+#include <kernel/cvirt_cmd.h>
+#include <kernel/cvirt_cmd.h>
+#include <kernel/dlimit.h>
+#include <kernel/dlimit_cmd.h>
+#include <kernel/inode_cmd.h>
+#include <kernel/limit_cmd.h>
+#include <kernel/namespace_cmd.h>
+#include <kernel/network_cmd.h>
+#include <kernel/sched_cmd.h>
+#include <kernel/signal_cmd.h>
+
+#include <kernel/network.h>
+#include <kernel/legacy.h>
+
+#endif // H_UTIL_VSERVER_LIB_VIRTUAL_H
-// $Id: vserver-internal.h,v 1.1.4.14 2004/02/14 00:25:34 ensc Exp $ --*- c++ -*--
+// $Id: vserver-internal.h,v 1.25 2005/05/02 21:42:37 ensc Exp $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#ifdef H_VSERVER_SYSCALL_INTERNAL_H
+# error vserver-internal.h must not be included more than once
+#endif
#ifndef H_VSERVER_SYSCALL_INTERNAL_H
#define H_VSERVER_SYSCALL_INTERNAL_H
-#include <stdint.h>
-#include <stdlib.h>
-#include <syscall.h>
-#include <unistd.h>
#include <asm/unistd.h>
#include <errno.h>
+#include <stdint.h>
+#include <unistd.h>
+
+#include "internal.h"
+#include "syscall-wrap.h"
#if !defined(__NR_vserver) && defined(ENSC_SYSCALL__NR_vserver)
# define __NR_vserver ENSC_SYSCALL__NR_vserver
#endif
+inline static ALWAYSINLINE void vc_noop0() {}
+
#define VC_PREFIX 0)
-#define VC_SUFFIX else (void)((void)0
-#define CALL_VC_NOOP (void)0
+#define VC_SUFFIX else (void)(vc_noop0()
+#define CALL_VC_NOOP vc_noop0()
#define CALL_VC_GENERAL(ID, SUFFIX, FUNC, ...) \
VC_PREFIX; VC_SELECT(ID) return FUNC ## _ ## SUFFIX(__VA_ARGS__); VC_SUFFIX
-#if 1
-# define VC_SELECT(ID) case ID: if(1)
+#ifdef VC_MULTIVERSION_SYSCALL
+# define VC_SELECT(ID) if (ver>=(ID))
# define CALL_VC(...) \
- switch (utilvserver_checkCompatVersion()&~0xff) { \
- case -1 & 0xff : if (1) break; \
- VC_SUFFIX, __VA_ARGS__ , VC_PREFIX; \
- default : errno = EINVAL; \
- } \
- return -1
+ do { \
+ int ver = utilvserver_checkCompatVersion(); \
+ if (ver==-1) return -1; \
+ VC_SUFFIX, __VA_ARGS__, VC_PREFIX; \
+ errno = ENOSYS; \
+ return -1; \
+ } while (0)
#else
# define VC_SELECT(ID) if (1)
-# define CALL_VC(...) \
- if (1) {} VC_SUFFIX, __VA_ARGS__, VC_PREFIX; \
- errno = ENOSYS; return -1
+# define CALL_VC(...) \
+ do { \
+ if (1) {} VC_SUFFIX, __VA_ARGS__, VC_PREFIX; \
+ errno = ENOSYS; return -1; \
+ } while (0)
#endif
#ifdef VC_ENABLE_API_COMPAT
# define CALL_VC_V11(F,...) CALL_VC_NOOP
#endif
+#ifdef VC_ENABLE_API_V13
+# define CALL_VC_V13(F,...) CALL_VC_GENERAL(0x00010011, v13, F, __VA_ARGS__)
+#else
+# define CALL_VC_V13(F,...) CALL_VC_NOOP
+#endif
+
+#ifdef VC_ENABLE_API_V13
+# define CALL_VC_V13A(F,...) CALL_VC_GENERAL(0x00010012, v13, F, __VA_ARGS__)
+#else
+# define CALL_VC_V13A(F,...) CALL_VC_NOOP
+#endif
+
+#ifdef VC_ENABLE_API_V13
+# define CALL_VC_V13B(F,...) CALL_VC_GENERAL(0x00010021, v13b, F, __VA_ARGS__)
+#else
+# define CALL_VC_V13B(F,...) CALL_VC_NOOP
+#endif
+
+#ifdef VC_ENABLE_API_V13
+# define CALL_VC_V13OBS(F,...) CALL_VC_GENERAL(0x00010011, v13obs, F, __VA_ARGS__)
+#else
+# define CALL_VC_V13OBS(F,...) CALL_VC_NOOP
+#endif
+
+
+#ifdef VC_ENABLE_API_NET
+# define CALL_VC_NET(F,...) CALL_VC_GENERAL(0x00010016, net, F, __VA_ARGS__)
+#else
+# define CALL_VC_NET(F,...) CALL_VC_NOOP
+#endif
+
+#ifdef VC_ENABLE_API_FSCOMPAT
+# define CALL_VC_FSCOMPAT(F,...) CALL_VC_GENERAL(0x00010000, fscompat, F, __VA_ARGS__)
+#else
+# define CALL_VC_FSCOMPAT(F,...) CALL_VC_NOOP
+#endif
+
+#ifdef VC_ENABLE_API_OLDPROC
+# define CALL_VC_OLDPROC(F,...) CALL_VC_GENERAL(0x00000000, oldproc, F, __VA_ARGS__)
+#else
+# define CALL_VC_OLDPROC(F,...) CALL_VC_NOOP
+#endif
+
+#ifdef VC_ENABLE_API_OLDUTS
+# define CALL_VC_OLDUTS(F,...) CALL_VC_GENERAL(0x00000000, olduts, F, __VA_ARGS__)
+#else
+# define CALL_VC_OLDUTS(F,...) CALL_VC_NOOP
+#endif
+
+
+ // Some kernel <-> userspace wrappers; they should be noops in most cases
+
#if 1
# define CTX_KERNEL2USER(X) (((X)==(uint32_t)(-1)) ? VC_NOCTX : \
((X)==(uint32_t)(-2)) ? VC_SAMECTX : \
(xid_t)(X))
-# define CTX_USER2KERNEL(X) (((X)==VC_RANDCTX) ? (uint32_t)(-1) : \
- ((X)==VC_SAMECTX) ? (uint32_t)(-2) : \
+# define CTX_USER2KERNEL(X) (((X)==VC_DYNAMIC_XID) ? (uint32_t)(-1) : \
+ ((X)==VC_SAMECTX) ? (uint32_t)(-2) : \
(uint32_t)(X))
#else
# define CTX_USER2KERNEL(X) (X)
# define CTX_KERNEL2USER(X) (X)
#endif
-#ifdef __cplusplus
-extern "C" {
+#if 1
+# define EXT2FLAGS_USER2KERNEL(X) (((X) & ~(VC_IMMUTABLE_FILE_FL|VC_IMMUTABLE_LINK_FL)) | \
+ ((X) & VC_IMMUTABLE_FILE_FL ? EXT2_IMMUTABLE_FILE_FL : 0) | \
+ ((X) & VC_IMMUTABLE_LINK_FL ? EXT2_IMMUTABLE_LINK_FL : 0))
+# define EXT2FLAGS_KERNEL2USER(X) (((X) & ~(EXT2_IMMUTABLE_FILE_FL|EXT2_IMMUTABLE_LINK_FL)) | \
+ ((X) & EXT2_IMMUTABLE_FILE_FL ? VC_IMMUTABLE_FILE_FL : 0) | \
+ ((X) & EXT2_IMMUTABLE_LINK_FL ? VC_IMMUTABLE_LINK_FL : 0))
+#else
+# define EXT2FLAGS_KERNEL2USER(X) (X)
+# define EXT2FLAGS_USER2KERNEL(X) (X)
+#endif
+
+#if 1
+# define VHI_USER2KERNEL(X) ((((X)==vcVHI_CONTEXT) ? VHIN_CONTEXT : \
+ ((X)==vcVHI_SYSNAME) ? VHIN_SYSNAME : \
+ ((X)==vcVHI_NODENAME) ? VHIN_NODENAME : \
+ ((X)==vcVHI_RELEASE) ? VHIN_RELEASE : \
+ ((X)==vcVHI_VERSION) ? VHIN_VERSION : \
+ ((X)==vcVHI_MACHINE) ? VHIN_MACHINE : \
+ ((X)==vcVHI_DOMAINNAME) ? VHIN_DOMAINNAME : \
+ (X)))
+# define VHI_KERNEL2USER(X) ((((X)==VHIN_CONTEXT) ? vcVHI_CONTEXT : \
+ ((X)==VHIN_SYSNAME) ? vcVHI_SYSNAME : \
+ ((X)==VHIN_NODENAME) ? vcVHI_NODENAME : \
+ ((X)==VHIN_RELEASE) ? vcVHI_RELEASE : \
+ ((X)==VHIN_VERSION) ? vcVHI_VERSION : \
+ ((X)==VHIN_MACHINE) ? vcVHI_MACHINE : \
+ ((X)==VHIN_DOMAINNAME) ? vcVHI_DOMAINNAME : \
+ (X)))
+#else
+# define VHI_USER2KERNEL(X) (X)
+# define VHI_KERNEL2USER(X) (X)
+#endif
+
+#if 1
+# define NID_KERNEL2USER(X) (((X)==(uint32_t)(-1)) ? VC_NONID : \
+ (xid_t)(X))
+
+# define NID_USER2KERNEL(X) (((X)==VC_DYNAMIC_NID) ? (uint32_t)(-1) : \
+ (uint32_t)(X))
+#else
+# define NID_USER2KERNEL(X) (X)
+# define NID_KERNEL2USER(X) (X)
+#endif
+
+#if 1
+# define NETTYPE_USER2KERNEL(X) ((X)==vcNET_IPV4 ? 0 : \
+ (X)==vcNET_IPV6 ? 1 : \
+ (X)==vcNET_IPV4R ? 2 : \
+ (X)==vcNET_IPV6R ? 3 : \
+ (X))
+# define NETTYPE_KERNEL2USER(X) ((X)==0 ? vcNET_IPV4 ? : \
+ (X)==1 ? vcNET_IPV6 ? : \
+ (X)==2 ? vcNET_IPV4R ? : \
+ (X)==3 ? vcNET_IPV6R ? : \
+ (vc_net_nx_type)(X))
+#else
+# define NETTYPE_USER2KERNEL(X) (X)
+# define NETTYPE_KERNEL2USER(X) (X)
#endif
+#define CDLIM_USER2KERNEL(X) ((X)==VC_CDLIM_UNSET ? CDLIM_UNSET : \
+ (X)==VC_CDLIM_INFINITY ? CDLIM_INFINITY : \
+ (X)==VC_CDLIM_KEEP ? CDLIM_KEEP : \
+ (X))
+
+ /// the __typeof__ thing is a hack to deal with the kernel interface
+ /// using an unsigned long long value for a uint32_t type
+#define CDLIM_KERNEL2USER(X) ((X)==(__typeof__(X))CDLIM_UNSET ? VC_CDLIM_UNSET : \
+ (X)==(__typeof__(X))CDLIM_INFINITY ? VC_CDLIM_INFINITY : \
+ (X)==(__typeof__(X))CDLIM_KEEP ? VC_CDLIM_KEEP : \
+ (X))
+
+
+#define ENSC_STRUCT_IDX(STRUCT,ATTR) \
+ ((char*)(&(STRUCT).ATTR) - (char*)(&(STRUCT)))
+#define ENSC_SAME_STRUCT_IDX(LHS,RHS,ATTR) \
+ (ENSC_STRUCT_IDX(LHS,ATTR) == ENSC_STRUCT_IDX(RHS,ATTR))
+#define ENSC_SAME_STRUCT_ITEM(LHS,RHS,ATTR) \
+ (ENSC_SAME_STRUCT_IDX(LHS,RHS,ATTR) && \
+ sizeof((LHS).ATTR)==sizeof((RHS).ATTR) && \
+ sizeof(LHS)==sizeof(RHS))
+
+#define EXT2_IOC_GETCONTEXT _IOR('x', 1, long)
+#define EXT2_IOC_SETCONTEXT _IOW('x', 2, long)
+
#ifndef HAVE_VSERVER
#ifdef ENSC_SYSCALL_TRADITIONAL
inline static UNUSED ALWAYSINLINE
int vserver(uint32_t cmd, uint32_t id, void *data)
{
+#if defined __dietlibc__
+ extern long int syscall (long int __sysno, ...);
+#endif
+
return syscall(__NR_vserver, cmd, id, data);
}
#else
#endif
#endif
-size_t utilvserver_uint2str(char *buf, size_t len,
- unsigned int val, unsigned char base);
-int utilvserver_checkCompatVersion();
-
-#ifdef __cplusplus
-}
-#endif
-
-
#endif // H_VSERVER_SYSCALL_INTERNAL_H
-/* $Id: vserver.h,v 1.1.4.11 2004/01/26 18:19:41 ensc Exp $
+/* $Id: vserver.h,v 1.66 2005/07/15 16:27:02 ensc Exp $
* Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
*
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+/** \file vserver.h
+ * \brief The public interface of the the libvserver library.
+ */
+
#ifndef H_VSERVER_SYSCALL_H
#define H_VSERVER_SYSCALL_H
#include <stdint.h>
#include <stdlib.h>
+#include <stdbool.h>
#include <sys/types.h>
+#ifndef IS_DOXYGEN
+#if defined(__GNUC__)
+# define VC_ATTR_UNUSED __attribute__((__unused__))
+# define VC_ATTR_NORETURN __attribute__((__noreturn__))
+# define VC_ATTR_CONST __attribute__((__const__))
+# define VC_ATTR_DEPRECATED __attribute__((__deprecated__))
+# if __GNUC__*0x10000 + __GNUC_MINOR__*0x100 + __GNUC_PATCHLEVEL__ >= 0x30300
+# define VC_ATTR_NONNULL(ARGS) __attribute__((__nonnull__ ARGS))
+# define VC_ATTR_ALWAYSINLINE __attribute__((__always_inline__))
+# else
+# define VC_ATTR_NONNULL(ARGS)
+# define VC_ATTR_ALWAYSINLINE
+# endif
+# if __GNUC__*0x10000 + __GNUC_MINOR__*0x100 + __GNUC_PATCHLEVEL__ >= 0x30303
+# define VC_ATTR_PURE __attribute__((__pure__))
+# else
+# define VC_ATTR_PURE
+# endif
+#else
+# define VC_ATTR_NONNULL(ARGS)
+# define VC_ATTR_UNUSED
+# define VC_ATTR_NORETURN
+# define VC_ATTR_ALWAYSINLINE
+# define VC_ATTR_DEPRECATED
+# define VC_ATTR_PURE
+# define VC_ATTR_CONST
+#endif
+#endif // IS_DOXYGEN
+
/** the value which is returned in error-case (no ctx found) */
#define VC_NOCTX ((xid_t)(-1))
+#define VC_NOXID ((xid_t)(-1))
/** the value which means a random (the next free) ctx */
-#define VC_RANDCTX ((xid_t)(-1))
+#define VC_DYNAMIC_XID ((xid_t)(-1))
/** the value which means the current ctx */
#define VC_SAMECTX ((xid_t)(-2))
+#define VC_NONID ((nid_t)(-1))
+#define VC_DYNAMIC_NID ((nid_t)(-1))
+
#define VC_LIM_INFINITY (~0ULL)
#define VC_LIM_KEEP (~1ULL)
+#define VC_CDLIM_UNSET (0U)
+#define VC_CDLIM_INFINITY (~0U)
+#define VC_CDLIM_KEEP (~1U)
+
+#ifndef S_CTX_INFO_LOCK
+# define S_CTX_INFO_LOCK 1
+#endif
+
+#ifndef S_CTX_INFO_SCHED
+# define S_CTX_INFO_SCHED 2
+#endif
+
+#ifndef S_CTX_INFO_NPROC
+# define S_CTX_INFO_NPROC 4
+#endif
+
+#ifndef S_CTX_INFO_PRIVATE
+# define S_CTX_INFO_PRIVATE 8
+#endif
+
+#ifndef S_CTX_INFO_INIT
+# define S_CTX_INFO_INIT 16
+#endif
+
+#ifndef S_CTX_INFO_HIDEINFO
+# define S_CTX_INFO_HIDEINFO 32
+#endif
+
+#ifndef S_CTX_INFO_ULIMIT
+# define S_CTX_INFO_ULIMIT 64
+#endif
+
+#ifndef S_CTX_INFO_NAMESPACE
+# define S_CTX_INFO_NAMESPACE 128
+#endif
+
+#define VC_CAP_CHOWN 0
+#define VC_CAP_DAC_OVERRIDE 1
+#define VC_CAP_DAC_READ_SEARCH 2
+#define VC_CAP_FOWNER 3
+#define VC_CAP_FSETID 4
+#define VC_CAP_KILL 5
+#define VC_CAP_SETGID 6
+#define VC_CAP_SETUID 7
+#define VC_CAP_SETPCAP 8
+#define VC_CAP_LINUX_IMMUTABLE 9
+#define VC_CAP_NET_BIND_SERVICE 10
+#define VC_CAP_NET_BROADCAST 11
+#define VC_CAP_NET_ADMIN 12
+#define VC_CAP_NET_RAW 13
+#define VC_CAP_IPC_LOCK 14
+#define VC_CAP_IPC_OWNER 15
+#define VC_CAP_SYS_MODULE 16
+#define VC_CAP_SYS_RAWIO 17
+#define VC_CAP_SYS_CHROOT 18
+#define VC_CAP_SYS_PTRACE 19
+#define VC_CAP_SYS_PACCT 20
+#define VC_CAP_SYS_ADMIN 21
+#define VC_CAP_SYS_BOOT 22
+#define VC_CAP_SYS_NICE 23
+#define VC_CAP_SYS_RESOURCE 24
+#define VC_CAP_SYS_TIME 25
+#define VC_CAP_SYS_TTY_CONFIG 26
+#define VC_CAP_MKNOD 27
+#define VC_CAP_LEASE 28
+#define VC_CAP_AUDIT_WRITE 29
+#define VC_CAP_AUDIT_CONTROL 30
+
+#define VC_IMMUTABLE_FILE_FL 0x0000010lu
+#define VC_IMMUTABLE_LINK_FL 0x0008000lu
+#define VC_IMMUTABLE_ALL (VC_IMMUTABLE_LINK_FL|VC_IMMUTABLE_FILE_FL)
+
+#define VC_IATTR_XID 0x01000000u
+
+#define VC_IATTR_ADMIN 0x00000001u
+#define VC_IATTR_WATCH 0x00000002u
+#define VC_IATTR_HIDE 0x00000004u
+#define VC_IATTR_FLAGS 0x00000007u
+
+#define VC_IATTR_BARRIER 0x00010000u
+#define VC_IATTR_IUNLINK 0x00020000u
+#define VC_IATTR_IMMUTABLE 0x00040000u
+
+
+// the flags
+#define VC_VXF_INFO_LOCK 0x00000001ull
+#define VC_VXF_INFO_NPROC 0x00000004ull
+#define VC_VXF_INFO_PRIVATE 0x00000008ull
+#define VC_VXF_INFO_INIT 0x00000010ull
+
+#define VC_VXF_INFO_HIDEINFO 0x00000020ull
+#define VC_VXF_INFO_ULIMIT 0x00000040ull
+#define VC_VXF_INFO_NAMESPACE 0x00000080ull
+
+#define VC_VXF_SCHED_HARD 0x00000100ull
+#define VC_VXF_SCHED_PRIO 0x00000200ull
+#define VC_VXF_SCHED_PAUSE 0x00000400ull
+
+#define VC_VXF_VIRT_MEM 0x00010000ull
+#define VC_VXF_VIRT_UPTIME 0x00020000ull
+#define VC_VXF_VIRT_CPU 0x00040000ull
+#define VC_VXF_VIRT_LOAD 0x00080000ull
+
+#define VC_VXF_HIDE_MOUNT 0x01000000ull
+#define VC_VXF_HIDE_NETIF 0x02000000ull
+
+#define VC_VXF_STATE_SETUP (1ULL<<32)
+#define VC_VXF_STATE_INIT (1ULL<<33)
+
+#define VC_VXF_FORK_RSS (1ULL<<48)
+#define VC_VXF_PROLIFIC (1ULL<<49)
+
+#define VC_VXF_IGNEG_NICE (1ULL<<52)
+
+
+// the ccapabilities
+#define VC_VXC_SET_UTSNAME 0x00000001ull
+#define VC_VXC_SET_RLIMIT 0x00000002ull
+
+#define VC_VXC_RAW_ICMP 0x00000100ull
+#define VC_VXC_SYSLOG 0x00001000ull
+
+#define VC_VXC_SECURE_MOUNT 0x00010000ull
+#define VC_VXC_SECURE_REMOUNT 0x00020000ull
+#define VC_VXC_BINARY_MOUNT 0x00040000ull
+
+#define VC_VXC_QUOTA_CTL 0x00100000ull
+
+
+#define VC_VXSM_FILL_RATE 0x0001
+#define VC_VXSM_INTERVAL 0x0002
+#define VC_VXSM_TOKENS 0x0010
+#define VC_VXSM_TOKENS_MIN 0x0020
+#define VC_VXSM_TOKENS_MAX 0x0040
+#define VC_VXSM_PRIO_BIAS 0x0100
+
+
+#define VC_BAD_PERSONALITY ((uint_least32_t)(-1))
+
+
+/** \defgroup syscalls Syscall wrappers
+ * Functions which are calling the vserver syscall directly. */
+
+/** \defgroup helper Helper functions
+ * Functions which are doing general helper tasks like parameter parsing. */
+
+/** \typedef an_unsigned_integer_type xid_t
+ * The identifier of a context. */
+
+#ifdef IS_DOXYGEN
+typedef an_unsigned_integer_type xid_t;
+typedef an_unsigned_integer_type nid_t;
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
struct vc_ip_mask_pair {
- uint32_t ip;
- uint32_t mask;
+ uint32_t ip;
+ uint32_t mask;
};
- /** Returns version of the current kernel API */
+ /** \brief The generic vserver syscall
+ * \ingroup syscalls
+ *
+ * This function executes the generic vserver syscall. It uses the
+ * correct syscallnumber (which may differ between the different
+ * architectures).
+ *
+ * \param cmd the command to be executed
+ * \param xid the xid on which the cmd shall be applied
+ * \param data additional arguments; depends on \c cmd
+ * \returns depends on \c cmd; usually, -1 stands for an error
+ */
+ int vc_syscall(uint32_t cmd, xid_t xid, void *data);
+
+ /** \brief Returns the version of the current kernel API.
+ * \ingroup syscalls
+ * \returns The versionnumber of the kernel API
+ */
int vc_get_version();
- /** Puts current process into context <ctx>, removes the given caps and
- * sets flags.
- * Special values for ctx are
- * - VC_SAMECTX which means the current context (just for changing caps and flags)
- * - VC_RANDCTX which means the next free context; this value can be used by
- * ordinary users also */
- int vc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags);
+ /** \brief Moves current process into a context
+ * \ingroup syscalls
+ *
+ * Puts current process into context \a ctx, removes the capabilities
+ * given in \a remove_cap and sets \a flags.
+ *
+ * \param ctx The new context; special values for are
+ * - VC_SAMECTX which means the current context (just for changing caps and flags)
+ * - VC_DYNAMIC_XID which means the next free context; this value can be used by
+ * ordinary users also
+ * \param remove_cap The linux capabilities which will be \b removed.
+ * \param flags Special flags which will be set.
+ *
+ * \returns The new context-id, or VC_NOCTX on errors; \c errno
+ * will be set appropriately
+ *
+ * See http://vserver.13thfloor.at/Stuff/Logic.txt for details */
+ xid_t vc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags);
- /** Sets the ipv4root information.
- * \precondition: nb<16 */
- int vc_set_ipv4root(uint32_t bcast, size_t nb, struct vc_ip_mask_pair const *ips);
-
+ /** \brief Sets the ipv4root information.
+ * \ingroup syscalls
+ * \pre \a nb < NB_IPV4ROOT && \a ips != 0 */
+ int vc_set_ipv4root(uint32_t bcast, size_t nb,
+ struct vc_ip_mask_pair const *ips) VC_ATTR_NONNULL((3));
+
+ /** \brief Returns the value of NB_IPV4ROOT.
+ * \ingroup helper
+ *
+ * This function returns the value of NB_IPV4ROOT which was used when the
+ * library was built, but \b not the value which is used by the currently
+ * running kernel. */
+ size_t vc_get_nb_ipv4root() VC_ATTR_CONST VC_ATTR_PURE;
+
+ /** \brief Creates a context without starting it.
+ * \ingroup syscalls
+ *
+ * This functions initializes a new context. When already in a freshly
+ * created context, this old context will be discarded.
+ *
+ * \param xid The new context; special values are:
+ * - VC_DYNAMIC_XID which means to create a dynamic context
+ *
+ * \returns the xid of the created context, or VC_NOCTX on errors. \c errno
+ * will be set appropriately. */
+ xid_t vc_ctx_create(xid_t xid);
- /* rlimit related functions */
- typedef uint64_t vc_limit_t;
+ /** \brief Moves the current process into the specified context.
+ * \ingroup syscalls
+ *
+ * \param xid The new context
+ * \returns 0 on success, -1 on errors */
+ int vc_ctx_migrate(xid_t xid);
+ /* rlimit related functions */
- struct vc_rlimit
- {
- vc_limit_t min;
- vc_limit_t soft;
- vc_limit_t hard;
+ /** \brief The type which is used for a single limit value.
+ *
+ * Special values are
+ * - VC_LIM_INFINITY ... which is the infinite value
+ * - VC_LIM_KEEP ... which is used to mark values which shall not be
+ * modified by the vc_set_rlimit() operation.
+ *
+ * Else, the interpretation of the value depends on the corresponding
+ * resource; it might be bytes, pages, seconds or litres of beer. */
+ typedef uint_least64_t vc_limit_t;
+
+ /** \brief The limits of a resources.
+ *
+ * This is a triple consisting of a minimum, soft and hardlimit. */
+ struct vc_rlimit {
+ vc_limit_t min; ///< the guaranted minimum of a resources
+ vc_limit_t soft; ///< the softlimit of a resource
+ vc_limit_t hard; ///< the absolute hardlimit of a resource
};
+ /** \brief Masks describing the supported limits. */
struct vc_rlimit_mask {
- uint32_t min;
- uint32_t soft;
- uint32_t hard;
+ uint_least32_t min; ///< masks the resources supporting a minimum limit
+ uint_least32_t soft; ///< masks the resources supporting a soft limit
+ uint_least32_t hard; ///< masks the resources supporting a hard limit
};
- int vc_get_rlimit(xid_t ctx, int resource, struct vc_rlimit *lim);
- int vc_set_rlimit(xid_t ctx, int resource, struct vc_rlimit const *lim);
- int vc_get_rlimit_mask(xid_t ctx, struct vc_rlimit_mask *lim);
+ /** \brief Returns the limits of \a resource.
+ * \ingroup syscalls
+ *
+ * \param xid The id of the context
+ * \param resource The resource which will be queried
+ * \param lim The result which will be filled with the limits
+ *
+ * \returns 0 on success, and -1 on errors. */
+ int vc_get_rlimit(xid_t xid, int resource,
+ struct vc_rlimit /*@out@*/ *lim) VC_ATTR_NONNULL((3));
+ /** \brief Sets the limits of \a resource.
+ * \ingroup syscalls
+ *
+ * \param xid The id of the context
+ * \param resource The resource which will be queried
+ * \param lim The new limits
+ *
+ * \returns 0 on success, and -1 on errors. */
+ int vc_set_rlimit(xid_t xid, int resource,
+ struct vc_rlimit const /*@in@*/ *lim) VC_ATTR_NONNULL((3));
+ int vc_get_rlimit_mask(xid_t xid,
+ struct vc_rlimit_mask *lim) VC_ATTR_NONNULL((2));
+ /** \brief Parses a string describing a limit
+ * \ingroup helper
+ *
+ * This function parses \a str and interprets special words like \p "inf"
+ * or suffixes. Valid suffixes are
+ * - \p k ... 1000
+ * - \p m ... 1000000
+ * - \p K ... 1024
+ * - \p M ... 1048576
+ *
+ * \param str The string which shall be parsed
+ * \param res Will be filled with the interpreted value; in errorcase,
+ * this value is undefined.
+ *
+ * \returns \a true, iff the string \a str could be parsed. \a res will
+ * be filled with the interpreted value in this case.
+ *
+ * \pre \a str!=0 && \a res!=0
+ */
+ bool vc_parseLimit(char const /*@in@*/ *str, vc_limit_t /*@out@*/ *res) VC_ATTR_NONNULL((1,2));
- /** sends a signal to a context/pid
- Special values for pid are:
- * -1 which means every process in ctx except the init-process
- * 0 which means every process in ctx inclusive the init-process */
+ /** \brief Sends a signal to a context/pid
+ * \ingroup syscalls
+ *
+ * Special values for \a pid are:
+ * - -1 which means every process in ctx except the init-process
+ * - 0 which means every process in ctx inclusive the init-process */
int vc_ctx_kill(xid_t ctx, pid_t pid, int sig);
+
+
+ struct vc_nx_info {
+ nid_t nid;
+ };
+
+ nid_t vc_get_task_nid(pid_t pid);
+ int vc_get_nx_info(nid_t nid, struct vc_nx_info *) VC_ATTR_NONNULL((2));
+
+ typedef enum { vcNET_IPV4, vcNET_IPV6, vcNET_IPV4R, vcNET_IPV6R } vc_net_nx_type;
- /** Returns the context of the given process. pid==0 means the current process. */
- xid_t vc_X_getctx(pid_t pid);
+ struct vc_net_nx {
+ vc_net_nx_type type;
+ size_t count;
+ uint32_t ip;
+ uint32_t mask;
+ };
+
+ nid_t vc_net_create(nid_t nid);
+ int vc_net_migrate(nid_t nid);
+
+ int vc_net_add(nid_t nid, struct vc_net_nx const *info);
+ int vc_net_remove(nid_t nid, struct vc_net_nx const *info);
+
+ struct vc_net_flags {
+ uint_least64_t flagword;
+ uint_least64_t mask;
+ };
+
+ int vc_get_nflags(nid_t, struct vc_net_flags *);
+ int vc_set_nflags(nid_t, struct vc_net_flags const *);
+
+
+ struct vc_net_caps {
+ uint_least64_t ncaps;
+ uint_least64_t cmask;
+ };
+
+ int vc_get_ncaps(nid_t, struct vc_net_caps *);
+ int vc_set_ncaps(nid_t, struct vc_net_caps const *);
+
+
+
+
+ int vc_set_iattr(char const *filename, xid_t xid,
+ uint_least32_t flags, uint_least32_t mask) VC_ATTR_NONNULL((1));
+
+ /** \brief Returns information about attributes and assigned context of a file.
+ * \ingroup syscalls
+ *
+ * This function returns the VC_IATTR_XXX flags and about the assigned
+ * context of a file. To request an information, the appropriate bit in
+ * \c mask must be set and the corresponding parameter (\a xid or \a
+ * flags) must not be NULL.
+ *
+ * E.g. to receive the assigned context, the \c VC_IATTR_XID bit must be
+ * set in \a mask, and \a xid must point to valid memory.
+ *
+ * Possible flags are \c VC_IATTR_ADMIN, \c VC_IATTR_WATCH , \c VC_IATTR_HIDE,
+ * \c VC_IATTR_BARRIER, \c VC_IATTR_IUNLINK and \c VC_IATTR_IMMUTABLE.
+ *
+ * \param filename The name of the file whose attributes shall be determined.
+
+ * \param xid When non-zero and the VC_IATTR_XID bit is set in \a mask,
+ * the assigned context of \a filename will be stored there.
+ * \param flags When non-zero, a bitmask of current attributes will be
+ * stored there. These attributes must be requested explicitly
+ * by setting the appropriate bit in \a mask
+ * \param mask Points to a bitmask which tells which attributes shall be
+ * determined. On return, it will masquerade the attributes
+ * which were determined.
+ *
+ * \pre mask!=0 && !((*mask&VC_IATTR_XID) && xid==0) && !((*mask&~VC_IATTR_XID) && flags==0) */
+ int vc_get_iattr(char const *filename, xid_t * /*@null@*/ xid,
+ uint_least32_t * /*@null@*/ flags,
+ uint_least32_t * /*@null@*/ mask) VC_ATTR_NONNULL((1));
+
+ struct vc_vx_info {
+ xid_t xid;
+ pid_t initpid;
+ };
+
+ /** \brief Returns the context of the given process.
+ * \ingroup syscalls
+ *
+ * \param pid the process-id whose xid shall be determined;
+ * pid==0 means the current process.
+ * \returns the xid of process \c pid or -1 on errors
+ */
+ xid_t vc_get_task_xid(pid_t pid);
+ int vc_get_vx_info(xid_t xid, struct vc_vx_info *info) VC_ATTR_NONNULL((2));
+
+
+ typedef enum { vcVHI_CONTEXT, vcVHI_SYSNAME, vcVHI_NODENAME,
+ vcVHI_RELEASE, vcVHI_VERSION, vcVHI_MACHINE,
+ vcVHI_DOMAINNAME } vc_uts_type;
+
+ int vc_set_vhi_name(xid_t xid, vc_uts_type type,
+ char const *val, size_t len) VC_ATTR_NONNULL((3));
+ int vc_get_vhi_name(xid_t xid, vc_uts_type type,
+ char *val, size_t len) VC_ATTR_NONNULL((3));
+
+ /** Returns true iff \a xid is a dynamic xid */
+ bool vc_is_dynamic_xid(xid_t xid);
+
+ int vc_enter_namespace(xid_t xid);
+ int vc_set_namespace();
+ int vc_cleanup_namespace();
+
+
+ /** \brief Flags of process-contexts
+ */
+ struct vc_ctx_flags {
+ /** \brief Mask of set context flags */
+ uint_least64_t flagword;
+ /** \brief Mask of set and unset context flags when used by set
+ * operations, or modifiable flags when used by get
+ * operations */
+ uint_least64_t mask;
+ };
+
+ /** \brief Capabilities of process-contexts */
+ struct vc_ctx_caps {
+ /** \brief Mask of set common system capabilities */
+ uint_least64_t bcaps;
+ /** \brief Mask of set and unset common system capabilities when used by
+ * set operations, or the modifiable capabilities when used by
+ * get operations */
+ uint_least64_t bmask;
+ /** \brief Mask of set process context capabilities */
+ uint_least64_t ccaps;
+ /** \brief Mask of set and unset process context capabilities when used
+ * by set operations, or the modifiable capabilities when used
+ * by get operations */
+ uint_least64_t cmask;
+ };
+
+ /** \brief Information about parsing errors
+ * \ingroup helper
+ */
+ struct vc_err_listparser {
+ char const *ptr; ///< Pointer to the first character of an erroneous string
+ size_t len; ///< Length of the erroneous string
+ };
+
+ int vc_get_cflags(xid_t xid, struct vc_ctx_flags *) VC_ATTR_NONNULL((2));
+ int vc_set_cflags(xid_t xid, struct vc_ctx_flags const *) VC_ATTR_NONNULL((2));
+
+ int vc_get_ccaps(xid_t xid, struct vc_ctx_caps *);
+ int vc_set_ccaps(xid_t xid, struct vc_ctx_caps const *);
+
+ /** \brief Converts a single string into bcapability
+ * \ingroup helper
+ *
+ * \param str The string to be parsed;
+ * both "CAP_xxx" and "xxx" will be accepted
+ * \param len The length of the string, or \c 0 for automatic detection
+ *
+ * \returns 0 on error; a bitmask on success
+ * \pre \a str != 0
+ */
+ uint_least64_t vc_text2bcap(char const *str, size_t len);
+
+ /** \brief Converts the lowest bit of a bcapability or the entire value
+ * (when possible) to a textual representation
+ * \ingroup helper
+ *
+ * \param val The string to be converted; on success, the detected bit(s)
+ * will be unset, in errorcase only the lowest set bit
+ *
+ * \returns A textual representation of \a val resp. of its lowest set bit;
+ * or \c NULL in errorcase.
+ * \pre \a val!=0
+ * \post \a *val<sub>old</sub> \c != 0 \c <-->
+ * \a *val<sub>old</sub> > \a *val<sub>new</sub>
+ * \post \a *val<sub>old</sub> \c == 0 \c ---> \a result == 0
+ */
+ char const * vc_lobcap2text(uint_least64_t *val) VC_ATTR_NONNULL((1));
+
+ /** \brief Converts a string into a bcapability-bitmask
+ * \ingroup helper
+ *
+ * Syntax of \a str: \verbinclude list2xxx.syntax
+ *
+ * When the \c `~' prefix is used, the bits will be unset and a `~' after
+ * another `~' will cancel both ones. The \c `^' prefix specifies a
+ * bitnumber instead of a bitmask.
+ *
+ * "literal name" is everything which will be accepted by the
+ * vc_text2bcap() function. The special values for \c NAME will be
+ * recognized case insensitively
+ *
+ * \param str The string to be parsed
+ * \param len The length of the string, or \c 0 for automatic detection
+ * \param err Pointer to a structure for error-information, or \c NULL.
+ * \param cap Pointer to a vc_ctx_caps structure holding the results;
+ * only the \a bcaps and \a bmask fields will be changed and
+ * already set values will not be honored. When an error
+ * occured, \a cap will have the value of all processed valid
+ * \c BCAP parts.
+ *
+ * \returns 0 on success, -1 on error. In error case, \a err will hold
+ * position and length of the first not understood BCAP part
+ * \pre \a str != 0 && \a cap != 0;
+ * \a cap->bcaps and \a cap->bmask must be initialized
+ */
+ int vc_list2bcap(char const *str, size_t len,
+ struct vc_err_listparser *err,
+ struct vc_ctx_caps *cap) VC_ATTR_NONNULL((1,4));
+
+ uint_least64_t vc_text2ccap(char const *, size_t len);
+ char const * vc_loccap2text(uint_least64_t *);
+ int vc_list2ccap(char const *, size_t len,
+ struct vc_err_listparser *err,
+ struct vc_ctx_caps *);
+
+ int vc_list2cflag(char const *, size_t len,
+ struct vc_err_listparser *err,
+ struct vc_ctx_flags *flags);
+ uint_least64_t vc_text2cflag(char const *, size_t len);
+ char const * vc_locflag2text(uint_least64_t *);
+
+ uint_least32_t vc_list2cflag_compat(char const *, size_t len,
+ struct vc_err_listparser *err);
+ uint_least32_t vc_text2cflag_compat(char const *, size_t len);
+ char const * vc_hicflag2text_compat(uint_least32_t);
+
+ int vc_text2cap(char const *);
+ char const * vc_cap2text(unsigned int);
+
+
+ int vc_list2nflag(char const *, size_t len,
+ struct vc_err_listparser *err,
+ struct vc_net_flags *flags);
+ uint_least64_t vc_text2nflag(char const *, size_t len);
+ char const * vc_lonflag2text(uint_least64_t *);
+
+ uint_least64_t vc_text2ncap(char const *, size_t len);
+ char const * vc_loncap2text(uint_least64_t *);
+ int vc_list2ncap(char const *, size_t len,
+ struct vc_err_listparser *err,
+ struct vc_net_caps *);
+
+ uint_least64_t vc_get_insecurebcaps() VC_ATTR_CONST;
+ inline static uint_least64_t vc_get_insecureccaps() {
+ return ~(VC_VXC_SET_UTSNAME|VC_VXC_RAW_ICMP);
+ }
+
+ inline static int vc_setfilecontext(char const *filename, xid_t xid) {
+ return vc_set_iattr(filename, xid, 0, VC_IATTR_XID);
+ }
+
+
+ uint_least32_t vc_text2personalityflag(char const *str,
+ size_t len) VC_ATTR_NONNULL((1));
+
+ char const * vc_lopersonality2text(uint_least32_t *) VC_ATTR_NONNULL((1));
+
+ int vc_list2personalityflag(char const /*@in@*/ *,
+ size_t len,
+ uint_least32_t /*@out@*/ *personality,
+ struct vc_err_listparser /*@out@*/ *err) VC_ATTR_NONNULL((1,3));
+
+ uint_least32_t vc_str2personalitytype(char const /*@in@*/*,
+ size_t len) VC_ATTR_NONNULL((1));
+
+ /** \brief Returns the context of \c filename
+ * \ingroup syscalls
+ *
+ * This function calls vc_get_iattr() with appropriate arguments to
+ * determine the context of \c filename. In error-case or when no context
+ * is assigned, \c VC_NOCTX will be returned. To differ between both cases,
+ * \c errno must be examined.
+ *
+ * \b WARNING: this function can modify \c errno although no error happened.
+ *
+ * \param filename The file to check
+ * \returns The assigned context, or VC_NOCTX when an error occured or no
+ * such assignment exists. \c errno will be 0 in the latter case */
+ xid_t vc_getfilecontext(char const *filename) VC_ATTR_NONNULL((1));
+
+
+ struct vc_set_sched {
+ uint_least32_t set_mask;
+ int_least32_t fill_rate;
+ int_least32_t interval;
+ int_least32_t tokens;
+ int_least32_t tokens_min;
+ int_least32_t tokens_max;
+ int_least32_t priority_bias;
+ };
+
+ int vc_set_sched(xid_t xid, struct vc_set_sched const *);
+
+
+ struct vc_ctx_dlimit {
+ uint_least32_t space_used;
+ uint_least32_t space_total;
+ uint_least32_t inodes_used;
+ uint_least32_t inodes_total;
+ uint_least32_t reserved;
+ };
+
+
+ /** Add a disk limit to a file system. */
+ int vc_add_dlimit(char const *filename, xid_t xid,
+ uint_least32_t flags) VC_ATTR_NONNULL((1));
+ /** Remove a disk limit from a file system. */
+ int vc_rem_dlimit(char const *filename, xid_t xid,
+ uint_least32_t flags) VC_ATTR_NONNULL((1));
+
+ /** Set a disk limit. */
+ int vc_set_dlimit(char const *filename, xid_t xid,
+ uint_least32_t flags,
+ struct vc_ctx_dlimit const *limits) VC_ATTR_NONNULL((1,4));
+ /** Get a disk limit. */
+ int vc_get_dlimit(char const *filename, xid_t xid,
+ uint_least32_t flags,
+ struct vc_ctx_dlimit *limits) VC_ATTR_NONNULL((1));
+
+ /** \brief Waits for the end of a context
+ * \ingroup syscalls
+ */
+ int vc_wait_exit(xid_t xid);
+ typedef enum { vcFEATURE_VKILL, vcFEATURE_IATTR, vcFEATURE_RLIMIT,
+ vcFEATURE_COMPAT, vcFEATURE_MIGRATE, vcFEATURE_NAMESPACE,
+ vcFEATURE_SCHED, vcFEATURE_VINFO, vcFEATURE_VHI,
+ vcFEATURE_VSHELPER0, vcFEATURE_VSHELPER, vcFEATURE_VWAIT }
+ vcFeatureSet;
+
+ bool vc_isSupported(vcFeatureSet) VC_ATTR_CONST;
+ bool vc_isSupportedString(char const *);
+
+
+ typedef enum { vcTYPE_INVALID, vcTYPE_MAIN, vcTYPE_WATCH,
+ vcTYPE_STATIC, vcTYPE_DYNAMIC }
+ vcXidType;
+
+ vcXidType vc_getXIDType(xid_t xid) VC_ATTR_CONST;
+
+ /* The management part */
+
+#define VC_LIMIT_VSERVER_NAME_LEN 1024
+
+ typedef enum { vcCFG_NONE, vcCFG_AUTO,
+ vcCFG_LEGACY,
+ vcCFG_RECENT_SHORT,
+ vcCFG_RECENT_FULL } vcCfgStyle;
+
+
+ /** Maps an xid given at '--xid' options to an xid_t */
+ xid_t vc_xidopt2xid(char const *, bool honor_static, char const **err_info);
+
+ vcCfgStyle vc_getVserverCfgStyle(char const *id);
+
+ /** Resolves the name of the vserver. The result will be allocated and must
+ be freed by the caller. */
+ char * vc_getVserverName(char const *id, vcCfgStyle style);
+
+ /** Returns the path of the vserver configuration directory. When the given
+ * vserver does not exist, or when it does not have such a directory, NULL
+ * will be returned. Else, the result will be allocated and must be freed
+ * by the caller. */
+ char * vc_getVserverCfgDir(char const *id, vcCfgStyle style);
+
+ /** Returns the path of the configuration directory for the given
+ * application. The result will be allocated and must be freed by the
+ * caller. */
+ char * vc_getVserverAppDir(char const *id, vcCfgStyle style, char const *app);
+
+ /** Returns the path to the vserver root-directory. The result will be
+ * allocated and must be freed by the caller. */
+ char * vc_getVserverVdir(char const *id, vcCfgStyle style, bool physical);
+
+ /** Returns the ctx of the given vserver. When vserver is not running and
+ * 'honor_static' is false, VC_NOCTX will be returned. Else, when
+ * 'honor_static' is true and a static assignment exists, those value will
+ * be returned. Else, the result will be VC_NOCTX.
+ *
+ * When 'is_running' is not null, the status of the vserver will be
+ * assigned to this variable. */
+ xid_t vc_getVserverCtx(char const *id, vcCfgStyle style,
+ bool honor_static, bool /*@null@*/ *is_running);
+
+ /** Resolves the cfg-path of the vserver owning the given ctx. 'revdir' will
+ be used as the directory holding the mapping-links; when NULL, the
+ default value will be assumed. The result will be allocated and must be
+ freed by the caller. */
+ char * vc_getVserverByCtx(xid_t ctx, /*@null@*/vcCfgStyle *style,
+ /*@null@*/char const *revdir);
+
+#define vcSKEL_INTERFACES 1u
+#define vcSKEL_PKGMGMT 2u
+#define vcSKEL_FILESYSTEM 4u
+
+ /** Create a basic configuration skeleton for a vserver plus toplevel
+ * directories for pkgmanagemt and filesystem (when requested). */
+ int vc_createSkeleton(char const *id, vcCfgStyle style, int flags);
+
+
#ifdef __cplusplus
}
#endif
+#undef VC_ATTR_PURE
+#undef VC_ATTR_ALWAYSINLINE
+#undef VC_ATTR_NORETURN
+#undef VC_ATTR_UNUSED
+#undef VC_ATTR_NONNULL
+
#endif
--- /dev/null
+// $Id: xidopt2xid.c,v 1.2 2004/08/19 13:58:40 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include <string.h>
+#include <stdlib.h>
+
+static xid_t
+getVserverXid(char const *id, bool honor_static, char const **err)
+{
+ *err = "vc_getVserverCtx";
+ return vc_getVserverCtx(id, vcCFG_AUTO, honor_static, 0);
+}
+
+xid_t
+vc_xidopt2xid(char const *str, bool honor_static, char const **err_info)
+{
+ char const * err;
+ xid_t res = VC_NOCTX;
+
+ err = "vc_get_task_xid()";
+ if (strcmp(str,"self")==0) res = vc_get_task_xid(0);
+ else if (str[0]==':') res = getVserverXid(str+1, honor_static, &err);
+ else {
+ char * endptr;
+ xid_t xid = strtol(str, &endptr, 10);
+
+ if (endptr!=str && (*endptr=='\0' || *endptr=='\n'))
+ res = xid;
+ else
+ res = getVserverXid(str, honor_static, &err);
+ }
+
+ if (res==VC_NOCTX && err_info) *err_info = err;
+
+ return res;
+}
--- /dev/null
+## $Id: Makefile-files,v 1.18 2005/07/04 22:35:47 ensc Exp $ -*- makefile -*-
+
+## Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+
+
+LIBINTERNAL_GLIBC = lib_internal/libinternal-glibc.a
+noinst_LIBRARIES += $(LIBINTERNAL_GLIBC)
+
+if USE_DIETLIBC
+LIBINTERNAL_DIET = lib_internal/libinternal-diet.a
+LIBINTERNAL = $(LIBINTERNAL_DIET)
+noinst_LIBRARIES += $(LIBINTERNAL_DIET)
+else
+LIBINTERNAL_DIET = lib-dietlibc-not-enabled-error.a
+LIBINTERNAL = $(LIBINTERNAL_GLIBC)
+endif
+
+
+command_SRCS = lib_internal/command-appendparameter.c \
+ lib_internal/command-setparams.c \
+ lib_internal/command-exec.c\
+ lib_internal/command-free.c \
+ lib_internal/command-init.c \
+ lib_internal/command-reset.c \
+ lib_internal/command-wait.c \
+ lib_internal/command.h
+
+if ENSC_HAVE_C99_COMPILER
+filecfg_SRCS = lib_internal/filecfg.h \
+ lib_internal/filecfg-iteratemultiline.c \
+ lib_internal/filecfg-readentryflag.c \
+ lib_internal/filecfg-readentrystr.c \
+ lib_internal/matchlist-initbyvserver.c \
+ lib_internal/matchvserverinfo-init.c \
+ lib_internal/unify-copy.c
+endif
+
+noinst_HEADERS += \
+ lib_internal/coreassert.h \
+ lib_internal/errinfo.h \
+ lib_internal/jail.h \
+ lib_internal/matchlist.h \
+ lib_internal/pathinfo.h \
+ lib_internal/string.h \
+ lib_internal/sys_clone.h \
+ lib_internal/sys_personality.h \
+ lib_internal/unify.h \
+ lib_internal/util.h \
+ lib_internal/util-cast.h \
+ lib_internal/util-commonstrings.h \
+ lib_internal/util-debug.h \
+ lib_internal/util-declarecmd.h \
+ lib_internal/util-dimof.h \
+ lib_internal/util-dotfile.h \
+ lib_internal/util-exitlikeprocess.h \
+ lib_internal/util-io.h \
+ lib_internal/util-lockfile.h \
+ lib_internal/util-mem.h \
+ lib_internal/util-perror.h \
+ lib_internal/util-safechdir.h \
+ lib_internal/util-unixsock.h \
+ lib_internal/string.hc
+
+lib_internal_libinternal_common_SRCS = \
+ lib_internal/errinfo-writeerrno.c \
+ lib_internal/jailintotempdir.c \
+ lib_internal/matchlist-appendfiles.c \
+ lib_internal/matchlist-compare.c \
+ lib_internal/matchlist-destroy.c \
+ lib_internal/matchlist-init.c \
+ lib_internal/matchlist-initmanually.c \
+ lib_internal/matchlist-initrefserverlist.c \
+ lib_internal/matchlist-printid.c \
+ lib_internal/matchvserverinfo-free.c \
+ lib_internal/pathinfo-append.c \
+ lib_internal/pathinfo-test.c \
+ lib_internal/switchtowatchxid.c \
+ lib_internal/unify-deunify.c \
+ lib_internal/unify-settime.c \
+ lib_internal/unify-unify.c \
+ lib_internal/unify-isiunlinkable.c \
+ lib_internal/util-canonify.c \
+ lib_internal/util-exitlikeprocess.c \
+ lib_internal/util-isnumber.c \
+ lib_internal/util-lockfile.c \
+ lib_internal/util-safechdir.c \
+ $(command_SRCS) \
+ $(filecfg_SRCS)
+
+lib_internal_libinternal_diet_a_SOURCES = \
+ $(lib_internal_libinternal_common_SRCS)
+
+lib_internal_libinternal_glibc_a_SOURCES = \
+ $(lib_internal_libinternal_common_SRCS)
+
+lib_internal_libinternal_diet_a_CPPFLAGS = $(AM_CPPFLAGS) $(LIB_DEBUG_CPPFLAGS)
+lib_internal_libinternal_glibc_a_CPPFLAGS = $(AM_CPPFLAGS) $(LIB_DEBUG_CPPFLAGS)
+
+DIETPROGS += lib_internal/libinternal-diet.a
+
+CLEANFILES += lib_internal/libinternal-diet.a \
+ lib_internal/libinternal-glibc.a
+
+include $(top_srcdir)/lib_internal/testsuite/Makefile-files
--- /dev/null
+// $Id: command-appendparameter.c,v 1.2 2004/08/19 14:09:02 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "command.h"
+#include "util.h"
+
+void
+Command_appendParameter(struct Command *cmd, char const *param)
+{
+ switch (cmd->params_style_) {
+ case parNONE :
+ Vector_init(&cmd->params.v, 10);
+ cmd->params_style_ = parVEC;
+ /*@fallthrough@*/
+ case parVEC : {
+ char const **p = Vector_pushback(&cmd->params.v);
+ *p = param;
+ break;
+ }
+
+ default :
+ WRITE_MSG(2, "internal error: conflicting functions Command_appendParameter() and Command_setParams() used together; aborting...\n");
+ abort();
+ }
+}
--- /dev/null
+// $Id: command-exec.c,v 1.3 2005/03/22 15:25:54 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "command.h"
+#include "util.h"
+
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <assert.h>
+
+static inline bool
+initPipes(int p[2])
+{
+ return (pipe(p)!=-1 &&
+ fcntl(p[1], F_SETFD, FD_CLOEXEC)!=-1);
+}
+
+bool
+Command_exec(struct Command *cmd, bool do_fork)
+{
+ int p[2];
+
+ if (cmd->params_style_==parVEC)
+ Vector_zeroEnd(&cmd->params.v);
+
+ if (!do_fork)
+ cmd->pid = 0;
+ else if (!initPipes(p) ||
+ (cmd->pid = fork())==-1) {
+ cmd->err = errno;
+ return false;
+ }
+
+ if (cmd->pid==0) {
+ char const ** argv = { 0 };
+
+ if (do_fork) close(p[0]);
+
+ switch (cmd->params_style_) {
+ case parVEC : argv = cmd->params.v.data; break;
+ case parDATA : argv = cmd->params.d; break;
+ default : break;
+ }
+
+ execv(cmd->filename ? cmd->filename : argv[0],
+ reinterpret_cast(char **const)(argv));
+ cmd->err = errno;
+ assert(cmd->err != 0);
+
+ if (do_fork) {
+ TEMP_FAILURE_RETRY(write(p[1], &cmd->err, sizeof(cmd->err)));
+ _exit(1); // implicates 'close(p[1])'
+ }
+ }
+ else {
+ close(p[1]);
+ if (read(p[0], &cmd->err, sizeof(cmd->err))==0)
+ cmd->err = 0;
+ else // cleanup zombies
+ while (wait4(cmd->pid, 0,0,0)==-1 &&
+ (errno==EINTR || errno==EAGAIN)) {};
+ close(p[0]);
+ }
+
+ return cmd->err==0;
+}
--- /dev/null
+// $Id: command-free.c,v 1.2 2004/08/19 14:09:22 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "command.h"
+
+void
+Command_free(struct Command *cmd)
+{
+ if (cmd->params_style_==parVEC)
+ Vector_free(&cmd->params.v);
+}
--- /dev/null
+// $Id: command-init.c,v 1.2 2004/08/19 14:09:34 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "command.h"
+
+void
+Command_init(struct Command *cmd)
+{
+ cmd->filename = 0;
+ cmd->pid = -1;
+ cmd->rc = -1;
+ cmd->err = 0;
+ cmd->params_style_ = parNONE;
+}
--- /dev/null
+// $Id: command-reset.c,v 1.1 2004/06/27 14:38:06 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "command.h"
+
+void
+Command_reset(struct Command *cmd)
+{
+ cmd->pid = -1;
+ cmd->rc = -1;
+ cmd->err = 0;
+}
--- /dev/null
+// $Id: command-setparams.c,v 1.1 2004/08/19 14:08:17 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "command.h"
+#include "util.h"
+
+void
+Command_setParams(struct Command *cmd, char const **par)
+{
+ switch (cmd->params_style_) {
+ case parNONE :
+ cmd->params_style_ = parDATA;
+ /*@fallthrough@*/
+ case parDATA :
+ cmd->params.d = par;
+ break;
+ default :
+ WRITE_MSG(2, "internal error: conflicting functions Command_appendParameter() and Command_setParams() used together; aborting...\n");
+ abort();
+ }
+}
--- /dev/null
+// $Id: command-wait.c,v 1.2 2004/07/02 23:44:33 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "command.h"
+#include <errno.h>
+
+bool
+Command_wait(struct Command *cmd, bool do_block)
+{
+ int rc;
+
+ if (cmd->rc!=-1) return true;
+
+ switch (wait4(cmd->pid, &rc, (!do_block ? WNOHANG : 0), &cmd->rusage)) {
+ case 0 : break;
+ case -1 : cmd->err = errno; break;
+ default : cmd->rc = rc; return true;
+ }
+
+ return false;
+}
--- /dev/null
+// $Id: command.h,v 1.2 2004/08/19 14:09:49 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_COMMAND_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_COMMAND_H
+
+#include <ensc_vector/vector.h>
+#include <sys/resource.h>
+#include <sys/wait.h>
+#include <stdbool.h>
+
+struct Command
+{
+ char const * filename;
+ union {
+ struct Vector v;
+ char const ** d;
+ } params;
+ pid_t pid;
+ int rc;
+ int err;
+ struct rusage rusage;
+
+ enum { parNONE, parVEC, parDATA } params_style_;
+};
+
+void Command_init(struct Command *);
+void Command_free(struct Command *);
+void Command_reset(struct Command *);
+bool Command_exec(struct Command *, bool do_fork);
+void Command_appendParameter(struct Command *, char const *);
+void Command_setParams(struct Command *, char const **);
+/**
+ * \args do_hang when true, do not return before command exited, or
+ * an error (e.g. signal) occured
+ * \returns \c true iff command/processes exited; in this case,
+ * exitcode is available in the \c rc member
+ */
+bool Command_wait(struct Command *, bool do_block);
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_COMMAND_H
--- /dev/null
+// $Id: coreassert.h,v 1.2 2005/03/22 14:59:46 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTILVSERVER_LIB_INTERNAL_COREASSERT_H
+#define H_UTILVSERVER_LIB_INTERNAL_COREASSERT_H
+
+#ifndef ENSC_TESTSUITE
+# error Do not use <coreassert.h> outside of testenvironemnts!
+#endif
+
+#include "lib_internal/util-io.h"
+
+#include <assert.h>
+#include <unistd.h>
+
+#undef assert
+#define ASSERT_STRX(X) #X
+#define ASSERT_STR(X) ASSERT_STRX(X)
+#define ASSERT_WRITE(X) Vwrite(2, (X), sizeof(X)-1)
+#define assert(X) \
+ (!(X)) ? \
+ ASSERT_WRITE(__FILE__ ":" ASSERT_STR(__LINE__) \
+ " Assertion: '" #X "' failed\n"), \
+ *(char *)(0)=0 : 0
+
+
+#endif // H_UTILVSERVER_LIB_INTERNAL_COREASSERT_H
--- /dev/null
+// $Id: errinfo-writeerrno.c,v 1.1 2004/07/02 23:34:51 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "errinfo.h"
+#include "util.h"
+
+void
+ErrInfo_writeErrno(struct ErrorInformation const *info)
+{
+ if (info->app) {
+ WRITE_STR(2, info->app);
+ WRITE_MSG(2, ": ");
+ }
+
+ if (info->pos) {
+ WRITE_STR(2, info->pos);
+ if (info->id!=0) WRITE_MSG(2, ": ");
+ }
+
+ if (info->id!=0) {
+ WRITE_STR(2, strerror(info->id));
+ }
+
+ WRITE_MSG(2, "\n");
+}
--- /dev/null
+// $Id: errinfo.h,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_ERRINFO_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_ERRINFO_H
+
+struct ErrorInformation
+{
+ char const * app; // the application-name
+ char const * pos; // the detailed position of the error
+ int id; // usually errno
+};
+
+void ErrInfo_writeErrno(struct ErrorInformation const *);
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_ERRINFO_H
--- /dev/null
+// $Id: filecfg-iteratemultiline.c,v 1.2 2004/12/07 11:13:29 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "filecfg.h"
+#include <string.h>
+
+bool
+FileCfg_iterateOverMultiLine(char const *str,
+ FileCfg_MultiLineHandler handler,
+ void *data)
+{
+ char const *ptr = str;
+ size_t line_nr = 1;
+
+ while (*ptr!='\0') {
+ while (*ptr==' ' || *ptr=='\t') ++ptr; // left-trim line
+
+ char const *eol = strchr(ptr, '\n');
+ if (eol==0) eol=ptr+strlen(ptr); // handle unterminated lines
+
+ if (*ptr!='#') { // skip commented lines
+ size_t len = eol-ptr;
+ while (len>0 && (ptr[len-1]==' ' || ptr[len-1]=='\t'))
+ --len; // right-trim line
+
+ // handle only non-empty lines
+ if (len>0 && !(*handler)(data, ptr, len))
+ return false; // some parsing-error occured...
+ }
+
+ ++line_nr;
+ ptr = eol;
+ if (*ptr) ++ptr;
+ }
+
+ return true;
+}
--- /dev/null
+// $Id: filecfg-readentryflag.c,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "filecfg.h"
+
+#include <sys/stat.h>
+#include <unistd.h>
+#include <string.h>
+
+bool
+FileCfg_readEntryFlag(PathInfo const *base, char const *file, bool dflt)
+{
+ PathInfo filepath = { .d = file, .l = strlen(file) };
+ PathInfo path = *base;
+ char path_buf[ENSC_PI_APPSZ(path, filepath)];
+ struct stat st;
+
+ PathInfo_append(&path, &filepath, path_buf);
+ return stat(path.d, &st)!=-1 || dflt;
+}
--- /dev/null
+// $Id: filecfg-readentrystr.c,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "filecfg.h"
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+char *
+FileCfg_readEntryStr (PathInfo const *base, char const *file,
+ bool allow_multiline, char const *dflt)
+{
+ PathInfo filepath = { .d = file, .l = strlen(file) };
+ PathInfo path = *base;
+ char path_buf[ENSC_PI_APPSZ(path, filepath)];
+ int fd = -1;
+ off_t sz;
+ char * res = 0;
+
+ PathInfo_append(&path, &filepath, path_buf);
+ fd = open(path.d, O_RDONLY);
+ if (fd==-1) goto err;
+
+ sz = lseek(fd, 0, SEEK_END);
+ if (sz==-1 ||
+ lseek(fd, 0, SEEK_SET)==-1) goto err;
+
+
+ if (sz>0 && sz<FILECFG_MAX_FILESIZE) {
+ char buf[sz+1];
+
+ if (read(fd, buf, sz+1)!=sz) goto err;
+
+ if (!allow_multiline) {
+ char * pos;
+
+ buf[sz] = '\0';
+ pos = strchr(buf, '\n');
+ if (pos) *pos = '\0';
+ }
+ else {
+ while (sz>0 && buf[sz-1]=='\n') --sz;
+ buf[sz] = '\0';
+ }
+
+ res = strdup(buf);
+ }
+
+ err:
+ if (res==0 && dflt)
+ res = strdup(dflt);
+
+ if (fd!=-1) close(fd);
+ return res;
+}
--- /dev/null
+// $Id: filecfg.h,v 1.2 2004/10/19 21:05:15 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_FILECFG_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_FILECFG_H
+
+#include "pathinfo.h"
+#include <stdbool.h>
+
+// 1MiB should be enough for all applications
+#define FILECFG_MAX_FILESIZE 0x100000
+
+char * FileCfg_readEntryStr (PathInfo const *base, char const *file, bool allow_multiline, char const *dflt);
+bool FileCfg_readEntryFlag(PathInfo const *base, char const *file, bool dflt);
+
+typedef bool (*FileCfg_MultiLineHandler)(void *res, char const *data, size_t len);
+
+bool FileCfg_iterateOverMultiLine(char const *str, FileCfg_MultiLineHandler handler,
+ void *data);
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_FILECFG_H
--- /dev/null
+// $Id: jail.h,v 1.2 2004/03/15 21:37:06 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_JAIL_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_JAIL_H
+
+#include <stdbool.h>
+
+bool jailIntoTempDir(char const **err_pos);
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_JAIL_H
--- /dev/null
+// $Id: jailintotempdir.c,v 1.2 2004/03/15 21:37:06 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "jail.h"
+
+#include <stdlib.h>
+#include <grp.h>
+#include <unistd.h>
+
+bool
+jailIntoTempDir(char const **err_pos)
+{
+ gid_t const id = 1;
+ char buf[] = "/tmp/jaildir.XXXXXX";
+ char const * d = mkdtemp(buf);
+ char const * err = "mkdtemp()";
+
+ if (d==0 ||
+ (err="chdir()", chdir(d)==-1) ||
+ (err="rmdir()", rmdir(d)==-1) ||
+ (err="chroot()", chroot(".")==-1) ||
+ (err="setgroups()",setgroups(1, &id)==-1) ||
+ (err="setgid()", setgid(id)==-1) ||
+ (err="setuid()", setuid(id)==-1) ||
+ (err="getgid()", getgid()!=id) ||
+ (err="getuid()", getuid()!=id)) {
+ if (err_pos!=0) *err_pos = err;
+ return false;
+ }
+
+ return true;
+}
--- /dev/null
+// $Id: matchlist-appendfiles.c,v 1.2 2004/04/06 08:42:46 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "matchlist.h"
+#include <fnmatch.h>
+#include <assert.h>
+
+static int
+fnmatchWrap(char const *a, char const *b)
+{
+ return fnmatch(a, b, 0);
+}
+
+static MatchItemCompareFunc
+determineCompareFunc(char const UNUSED *fname)
+{
+ return fnmatchWrap;
+}
+
+void
+MatchList_appendFiles(struct MatchList *list, size_t idx,
+ char **files, size_t count,
+ bool auto_type)
+{
+ struct MatchItem *ptr = list->data + idx;
+ size_t i;
+
+ assert(idx+count <= list->count);
+
+ if (auto_type) {
+ for (i=0; i<count; ++i) {
+ char *file = files[i];
+ switch (file[0]) {
+ case '+' : ptr->type = stINCLUDE; ++file; break;
+ case '~' : ptr->type = stSKIP; ++file; break;
+ case '-' : ++file; /*@fallthrough@*/
+ default : ptr->type = stEXCLUDE; break;
+ }
+ ptr->cmp = determineCompareFunc(file);
+ ptr->name = file;
+ ++ptr;
+ }
+ }
+ else {
+ for (i=0; i<count; ++i) {
+ ptr->type = stEXCLUDE;
+ ptr->name = files[i];
+ ptr->cmp = 0;
+ ++ptr;
+ }
+ }
+}
--- /dev/null
+// $Id: matchlist-compare.c,v 1.2 2004/04/06 08:43:02 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "matchlist.h"
+#include <string.h>
+
+MatchType
+MatchList_compare(struct MatchList const *list, char const *path)
+{
+ struct MatchItem const * ptr = list->data;
+ struct MatchItem const * const end_ptr = list->data + list->count;
+
+ //write(1, path, strlen(path));
+ //write(1, "\n", 1);
+ for (; ptr<end_ptr; ++ptr) {
+ if ((ptr->cmp==0 && strcmp(ptr->name, path)==0) ||
+ (ptr->cmp!=0 && (ptr->cmp)(ptr->name, path)==0))
+ return ptr->type;
+ }
+
+ return stINCLUDE;
+}
--- /dev/null
+// $Id: matchlist-destroy.c,v 1.2 2005/03/18 00:18:38 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "matchlist.h"
+
+void
+MatchList_destroy(struct MatchList *list)
+{
+ size_t i;
+
+ String_free(&list->id);
+ free(list->data);
+
+ for (i=0; i<list->buf_count; ++i)
+ free((void *)(list->buf[i]));
+
+ free(list->buf);
+}
--- /dev/null
+// $Id: matchlist-init.c,v 1.1 2004/02/17 02:33:20 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "matchlist.h"
+#include <string.h>
+#include <stdlib.h>
+
+#define ENSC_WRAPPERS_STDLIB 1
+#include <wrappers.h>
+void
+MatchList_init(struct MatchList *list, char const *root, size_t count)
+{
+ list->skip_depth = 0;
+ list->root.d = root;
+ list->root.l = strlen(root);
+ list->data = Emalloc(sizeof(struct MatchItem) * count);
+ list->count = count;
+ list->buf = 0;
+ list->buf_count = 0;
+
+ String_init(&list->id);
+}
--- /dev/null
+// $Id: matchlist-initbyvserver.c,v 1.3 2005/03/18 00:20:02 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+#include "pathconfig.h"
+
+#include "matchlist.h"
+#include "util-io.h"
+
+#include "vserver.h"
+
+#include <assert.h>
+
+bool
+MatchList_initByVserver(struct MatchList *list,
+ struct MatchVserverInfo const *vserver)
+{
+ assert(vserver->appdir!=0 && vserver->vdir!=0);
+
+ size_t const l = vserver->appdir.l;
+ char tmp[l + sizeof("/exclude")];
+ char const * excl_list;
+
+ memcpy(tmp, vserver->appdir.d, l);
+ memcpy(tmp+l, "/exclude", 9);
+
+ excl_list = tmp;
+ if (access(excl_list, R_OK)==-1) excl_list = CONFDIR "/.defaults/apps/vunify/exclude";
+ if (access(excl_list, R_OK)==-1) excl_list = PKGLIBDIR "/defaults/vunify-exclude";
+
+ MatchList_initManually(list, vserver, 0, excl_list);
+
+ return true;
+}
+
--- /dev/null
+// $Id: matchlist-initmanually.c,v 1.5 2005/03/22 14:59:46 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+#include "pathconfig.h"
+
+#include "matchlist.h"
+#include "util-io.h"
+
+#include <wait.h>
+#include <errno.h>
+#include <assert.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_STDLIB 1
+#define ENSC_WRAPPERS_IO 1
+#include <wrappers.h>
+
+
+extern int Global_getVerbosity() PURE CONST;
+extern bool Global_doRenew() PURE CONST;
+
+static void
+readExcludeListFD(int fd,
+ char ***files, size_t *size,
+ char **buf)
+{
+ off_t len;
+ size_t lines = 0;
+ char *ptr;
+
+ if (fd==-1) return; // todo: message on verbose?
+
+ len = Elseek(fd, 0, SEEK_END);
+ Elseek(fd, 0, SEEK_SET);
+
+ *buf = Emalloc(sizeof(*buf) * (len+1));
+ EreadAll(fd, *buf, len);
+ (*buf)[len] = '\0';
+
+ ptr = *buf;
+ while ((ptr=strchr(ptr, '\n'))) {
+ ++lines;
+ ++ptr;
+ }
+
+ ++lines;
+ *files = Emalloc(sizeof(**files) * lines);
+
+ *size = 0;
+ ptr = *buf;
+ while (*ptr) {
+ char *end_ptr = strchr(ptr, '\n');
+
+ assert(*size<lines);
+ if (end_ptr==0) break;
+
+ if (*ptr!='#') {
+ char *tmp = end_ptr;
+ do {
+ *tmp-- = '\0';
+ } while (tmp>ptr && *tmp==' ');
+
+ if (tmp>ptr) (*files)[(*size)++] = ptr;
+ }
+
+ ptr = end_ptr+1;
+ }
+}
+
+static void
+readExcludeList(char const *filename,
+ char ***files, size_t *size,
+ char **buf)
+{
+ int fd = open(filename, O_RDONLY);
+ if (fd==-1) return; // todo: message on verbose?
+
+ readExcludeListFD(fd, files, size, buf);
+ Eclose(fd);
+}
+
+static void
+getConfigfileList(char const *vserver,
+ char ***files, size_t *size,
+ char **buf)
+{
+ char tmpname[] = "/tmp/vunify.XXXXXX";
+ pid_t pid;
+ int fd = Emkstemp(tmpname);
+
+ Eunlink(tmpname);
+ pid = Efork();
+
+ if (pid==0) {
+ char *args[10];
+ char const **ptr = (char const **)(args)+0;
+
+ Edup2(fd, 1);
+ //Eclose(0);
+ if (fd!=1) Eclose(fd);
+
+ *ptr++ = VPKG_PROG;
+ *ptr++ = vserver;
+ *ptr++ = "get-conffiles";
+ *ptr = 0;
+
+ Eexecv(args[0], args);
+ }
+ else {
+ int status;
+
+ if (TEMP_FAILURE_RETRY(wait4(pid, &status, 0,0))==-1) {
+ perror("wait4()");
+ exit(1);
+ }
+
+ if (!WIFEXITED(status) || WEXITSTATUS(status)!=0) {
+ WRITE_MSG(2, "failed to determine configfiles\n");
+ exit(1);
+ }
+
+ readExcludeListFD(fd, files, size, buf);
+ Eclose(fd);
+ }
+}
+
+void
+MatchList_initManually(struct MatchList *list,
+ struct MatchVserverInfo const *vserver,
+ char const *vdir, char const *exclude_file)
+{
+ char *buf[2] = { 0,0 };
+
+ char **fixed_files = 0;
+ size_t fixed_count = 0;
+
+ char **expr_files = 0;
+ size_t expr_count = 0;
+ size_t len;
+
+ assert((vdir==0 && vserver!=0) || (vdir!=0 && vserver==0));
+
+ if (vserver) {
+ vdir = vserver->vdir.d;
+ len = vserver->vdir.l;
+ }
+ else
+ len = strlen(vdir);
+
+ if (Global_getVerbosity()>=1) {
+ WRITE_MSG(1, "Initializing exclude-list for ");
+ Vwrite(1, vdir, len);
+ if (vserver!=0) {
+ WRITE_MSG(1, " (");
+ WRITE_STR(1, vserver->name);
+ WRITE_MSG(1, ")");
+ }
+ WRITE_MSG(1, "\n");
+ }
+ if (vserver && vserver->use_pkgmgmt && Global_doRenew()) {
+ if (Global_getVerbosity()>=2)
+ WRITE_MSG(1, " Fetching configuration-file list from packagemanagement\n");
+ getConfigfileList(vserver->name, &fixed_files, &fixed_count, buf+0);
+ }
+
+ // abuse special values (NULL, empty string) to skip the next step
+ if (exclude_file && *exclude_file) {
+ if (Global_getVerbosity()>=6) WRITE_MSG(1, " Reading exclude file\n");
+ readExcludeList(exclude_file,
+ &expr_files, &expr_count,
+ buf+1);
+ }
+
+ MatchList_init(list, strdup(vdir), fixed_count + expr_count);
+ list->buf = Emalloc(sizeof(void *) * 3);
+ list->buf[0] = buf[0];
+ list->buf[1] = buf[1];
+ list->buf[2] = list->root.d;
+ list->buf_count = 3;
+
+ MatchList_appendFiles(list, 0, fixed_files, fixed_count, false);
+ MatchList_appendFiles(list, fixed_count, expr_files, expr_count, true);
+
+ free(expr_files);
+ free(fixed_files);
+}
--- /dev/null
+// $Id: matchlist-initrefserverlist.c,v 1.4 2005/03/23 02:05:23 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "matchlist.h"
+#include "util-io.h"
+
+#include <dirent.h>
+#include <string.h>
+#include <fcntl.h>
+
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_STDLIB 1
+#include <wrappers.h>
+
+static int
+selectRefserver(struct dirent const *ent)
+{
+ return strncmp(ent->d_name, "refserver.", 10)==0;
+}
+
+void
+MatchList_initRefserverList(struct MatchList **lst, size_t *cnt,
+ char const *dir)
+{
+ int cur_dir = Eopen(".", O_RDONLY, 0);
+ struct dirent **entries;
+ int count,i;
+
+ Echdir(dir);
+ count = scandir(".", &entries, selectRefserver, alphasort);
+ if (count==-1) {
+ perror("scandir()");
+ exit(1);
+ }
+
+ if (count==0) {
+ WRITE_MSG(2, "no reference vserver configured\n");
+ exit(1);
+ }
+
+ *lst = Emalloc(sizeof(struct MatchList) * count);
+ *cnt = count;
+ for (i=0; i<count; ++i) {
+ char const *tmp = entries[i]->d_name;
+ size_t l = strlen(tmp);
+ char vname[sizeof("./") + l];
+ struct MatchVserverInfo vserver = {
+ .name = vname,
+ .use_pkgmgmt = true
+ };
+
+ memcpy(vname, "./", 2);
+ memcpy(vname+2, tmp, l+1);
+
+ if (!MatchVserverInfo_init(&vserver)) {
+ WRITE_MSG(2, "failed to initialize unification of reference vserver\n");
+ exit(1);
+ }
+
+ if (!MatchList_initByVserver((*lst)+i, &vserver)) {
+ WRITE_MSG(2, "unification for reference vserver not configured\n");
+ exit(1);
+ }
+
+ free(entries[i]);
+ MatchVserverInfo_free(&vserver);
+ }
+ free(entries);
+
+ Efchdir(cur_dir);
+ Eclose(cur_dir);
+}
--- /dev/null
+// $Id: matchlist-printid.c,v 1.2 2005/03/22 14:59:46 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "matchlist.h"
+#include "util-io.h"
+
+void
+MatchList_printId(struct MatchList const *l, int fd)
+{
+ if (l->id.l>0) {
+ WRITE_MSG(fd, "'");
+ Vwrite(fd, l->id.d, l->id.l);
+ WRITE_MSG(1, "'");
+ }
+ else if (l->root.l>0) {
+ Vwrite(fd, l->root.d, l->root.l);
+ }
+ else
+ WRITE_MSG(fd, "???");
+}
--- /dev/null
+// $Id: matchlist.h,v 1.5 2005/03/18 00:20:02 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_MATCHLIST_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_MATCHLIST_H
+
+#include "pathinfo.h"
+#include "string.h"
+#include "pathinfo.h"
+
+#include <lib/vserver.h>
+
+#include <stdlib.h>
+#include <stdbool.h>
+
+typedef int (*MatchItemCompareFunc)(char const *, char const *);
+typedef enum { stINCLUDE,stEXCLUDE,stSKIP } MatchType;
+
+struct MatchItem
+{
+ MatchType type;
+ char const * name;
+ MatchItemCompareFunc cmp;
+};
+
+struct MatchList
+{
+ size_t skip_depth;
+ PathInfo root;
+ String id;
+ struct MatchItem *data;
+ size_t count;
+
+ void const **buf;
+ size_t buf_count;
+};
+
+struct MatchVserverInfo
+{
+ char const *name;
+
+ vcCfgStyle style;
+ PathInfo vdir;
+ PathInfo appdir;
+
+ bool use_pkgmgmt;
+};
+
+void MatchList_init(struct MatchList *, char const *root,
+ size_t count) NONNULL((1,2));
+bool MatchList_initByVserver(struct MatchList *,
+ struct MatchVserverInfo const *vserver) NONNULL((1,2));
+void MatchList_initManually(struct MatchList *list,
+ struct MatchVserverInfo const *vserver,
+ char const *vdir,
+ char const *exclude_file) NONNULL((1,4));
+void MatchList_initRefserverList(struct MatchList **, size_t *cnt,
+ char const *dir) NONNULL((1,2,3));
+void MatchList_destroy(struct MatchList *) NONNULL((1));
+void MatchList_appendFiles(struct MatchList *, size_t idx,
+ char **files, size_t count,
+ bool auto_type) NONNULL((1,3));
+
+MatchType MatchList_compare(struct MatchList const *,
+ char const *path) NONNULL((1,2));
+struct MatchItem
+const * MatchList_find(struct MatchList const *,
+ char const *path) NONNULL((1,2));
+
+void MatchList_printId(struct MatchList const *, int fd) NONNULL((1));
+
+
+bool MatchVserverInfo_init(struct MatchVserverInfo *);
+void MatchVserverInfo_free(struct MatchVserverInfo *);
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_MATCHLIST_H
--- /dev/null
+// $Id: matchvserverinfo-free.c,v 1.1 2005/03/18 00:17:53 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "matchlist.h"
+#include "util.h"
+
+void
+MatchVserverInfo_free(struct MatchVserverInfo *info)
+{
+ String_free(&info->vdir);
+ String_free(&info->appdir);
+}
--- /dev/null
+// $Id: matchvserverinfo-init.c,v 1.2 2005/03/24 00:09:58 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "matchlist.h"
+#include "util.h"
+
+#include <pathconfig.h>
+
+#include <string.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <sys/param.h>
+
+static bool
+exists(char *path, size_t len, char const *name)
+{
+ if (name) strcpy(path + len, name);
+
+ return access(path, R_OK)!=-1;
+}
+
+#define EXISTS(X) exists(X, sizeof(X)-1, 0)
+#define DEFAULT_EXISTS(X) EXISTS(CONFDIR "/.defaults/apps/vunify/" X)
+
+bool
+MatchVserverInfo_init(struct MatchVserverInfo *info)
+{
+ assert(info->name!=0);
+ assert(info->vdir.d==0 && info->appdir.d==0);
+
+ info->style = vc_getVserverCfgStyle(info->name);
+ info->vdir.d = vc_getVserverVdir (info->name, info->style, true);
+ info->appdir.d = vc_getVserverAppDir (info->name, info->style, "vunify");
+
+ if (info->vdir.d==0 || info->appdir.d==0) {
+ free(const_cast(char *)(info->vdir.d));
+ free(const_cast(char *)(info->appdir.d));
+
+ return false;
+ }
+
+ info->vdir.l = strlen(info->vdir.d);
+ info->appdir.l = strlen(info->appdir.d);
+
+ size_t const l = info->appdir.l;
+ char tmp[l + MAX(sizeof("/pkgmgmt-ignore"),sizeof("/pkgmgmt-force"))];
+
+ memcpy(tmp, info->appdir.d, l);
+
+ if (exists(tmp, l, "/pkgmgmt-ignore")) info->use_pkgmgmt = false;
+ else if (exists(tmp, l, "/pkgmgmt-force")) info->use_pkgmgmt = true;
+ else if (DEFAULT_EXISTS ("pkgmgmt-ignore")) info->use_pkgmgmt = false;
+ else if (DEFAULT_EXISTS ("pkgmgmt-force")) info->use_pkgmgmt = true;
+
+ return true;
+}
--- /dev/null
+// $Id: pathinfo-append.c,v 1.1 2004/02/17 02:33:20 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "pathinfo.h"
+#include "util-mem.h"
+
+void
+PathInfo_append(PathInfo * restrict lhs,
+ PathInfo const * restrict rhs,
+ char *buf)
+{
+ char * ptr = buf;
+ char const * rhs_ptr = rhs->d;
+ size_t rhs_len = rhs->l;
+
+ while (lhs->l>1 && lhs->d[lhs->l-1]=='/') --lhs->l;
+
+ if (lhs->l>0) {
+ while (rhs->l>0 && *rhs_ptr=='/') {
+ ++rhs_ptr;
+ --rhs_len;
+ }
+
+ ptr = Xmemcpy(ptr, lhs->d, lhs->l);
+ if (ptr[-1]!='/')
+ ptr = Xmemcpy(ptr, "/", 1);
+ }
+// else if (*rhs_ptr!='/')
+// ptr = Xmemcpy(ptr, "/", 1);
+
+ ptr = Xmemcpy(ptr, rhs_ptr, rhs_len+1);
+
+ lhs->d = buf;
+ lhs->l = ptr-buf-1;
+}
--- /dev/null
+// $Id: pathinfo-test.c,v 1.1 2004/02/17 02:33:20 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "pathinfo.h"
+#include <string.h>
+#include <assert.h>
+
+#define CHECK(LHS,RHS, EXP) \
+ do { \
+ PathInfo lhs = { LHS, sizeof(LHS)-1 }; \
+ PathInfo rhs = { RHS, sizeof(RHS)-1 }; \
+ char *buf = malloc(ENSC_PI_APPSZ(lhs,rhs)); \
+ assert(ENSC_PI_APPSZ(lhs,rhs)>=sizeof(EXP)); \
+ PathInfo_append(&lhs, &rhs, buf); \
+ assert(memcmp(lhs.d, EXP, sizeof(EXP))==0); \
+ assert(lhs.l == sizeof(EXP)-1); \
+ free(buf); \
+ } while (0)
+
+
+void
+PathInfo_test()
+{
+ CHECK("/var", "/tmp", "/var/tmp");
+ CHECK("/var", "tmp", "/var/tmp");
+ CHECK("/var/", "/tmp", "/var/tmp");
+ CHECK("/var/", "tmp", "/var/tmp");
+
+ CHECK("/", "tmp", "/tmp");
+ CHECK("/", "/tmp", "/tmp");
+
+ CHECK("", "/tmp", "/tmp");
+
+ CHECK("", "tmp", "tmp");
+ CHECK("", "", "");
+}
--- /dev/null
+// $Id: pathinfo.h,v 1.2 2004/07/02 23:44:53 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_PATHINFO_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_PATHINFO_H
+
+#include "string.h"
+
+#define ENSC_PI_DECLARE(VAR,VAL) PathInfo VAR={.d = VAL,.l = sizeof(VAL)-1}
+#define ENSC_PI_APPSZ(P1,P2) ((P1).l + sizeof("/") + (P2).l)
+
+typedef String PathInfo;
+
+void PathInfo_append(PathInfo * restrict,
+ PathInfo const * restrict,
+ char *buf) NONNULL((1,2,3));
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_PATHINFO_H
--- /dev/null
+// $Id: string.h,v 1.3 2005/03/18 00:20:30 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_STRING_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_STRING_H
+
+#include <stdlib.h>
+
+typedef struct
+{
+ char const * d;
+ size_t l;
+} String;
+
+static void String_init(String *);
+static void String_free(String *);
+
+#define ENSC_STRING_FIXED(VAL) { .d = VAL, .l = (sizeof(VAL)-1) }
+#define ENSC_STRING_ASSIGN_FIXED(DST,VAL) \
+ { DST.d = (VAL); DST.l = (sizeof(VAL)-1); }
+
+#include "string.hc"
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_STRING_H
--- /dev/null
+// $Id: string.hc,v 1.3 2005/03/18 00:20:42 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+static inline UNUSED void
+String_init(String *str)
+{
+ str->d = 0;
+ str->l = 0;
+}
+
+static inline UNUSED char const *
+String_c_str(String const *str, char *buf)
+{
+ if (str->l==0) return "";
+
+ if (buf!=str->d)
+ abort(); // TODO: copy content
+
+ buf[str->l] = '\0';
+ return buf;
+}
+
+
+static inline UNUSED void
+String_free(String *str)
+{
+ free((char *)(str->d));
+}
--- /dev/null
+// $Id: switchtowatchxid.c,v 1.4 2005/03/25 02:37:41 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <vserver.h>
+#include <errno.h>
+#include <unistd.h>
+
+ // try to switch into context 1
+bool
+switchToWatchXid(char const **errptr)
+{
+#if 0
+# warning Compiling in debug-code
+ return;
+#endif
+ if (vc_get_task_xid(0)==1) return true;
+
+ if (vc_isSupported(vcFEATURE_MIGRATE)) {
+ if (vc_ctx_migrate(1)==-1) {
+ if (errptr) *errptr = "vc_migrate_context()";
+ return false;
+ }
+ }
+ else {
+#if VC_ENABLE_API_COMPAT
+ if (vc_new_s_context(1,0,0)==VC_NOCTX) {
+ if (errptr) *errptr = "vc_new_s_context()";
+ return false;
+ }
+#else
+ if (errptr) *errptr = "can not change context: migrate kernel feature missing and 'compat' API disabled";
+ errno = ENOSYS;
+ return false;
+#endif
+ }
+
+ return true;
+}
+
--- /dev/null
+// $Id: sys_clone.h,v 1.3 2005/04/28 18:01:37 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_SRC_SYS_CLONE_H
+#define H_UTIL_VSERVER_SRC_SYS_CLONE_H
+
+#include "lib/syscall-wrap.h"
+#define __NR_sys_clone __NR_clone
+
+#ifndef CLONE_NEWNS
+# define CLONE_NEWNS 0x00020000
+#endif
+
+#ifdef ENSC_SYSCALL_TRADITIONAL
+#include <unistd.h>
+
+inline static UNUSED ALWAYSINLINE
+int sys_clone(int flags, void *stack)
+{
+#if defined __dietlibc__
+ extern long int syscall (long int __sysno, ...);
+#endif
+
+ return syscall(__NR_sys_clone, flags, stack);
+}
+#else
+#include <errno.h>
+
+inline static UNUSED ALWAYSINLINE
+_syscall2(int, sys_clone, int, flags, void *, child_stack)
+#endif
+
+#undef __NR_sys_clone
+
+#define ENSC_HAVE_SYSCLONE 1
+
+#endif // H_UTIL_VSERVER_SRC_SYS_CLONE_H
--- /dev/null
+// $Id: sys_personality.h,v 1.1 2005/04/28 18:01:16 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_SRC_SYS_PERSONALITY_H
+#define H_UTIL_VSERVER_SRC_SYS_PERSONALITY_H
+
+#include "lib/syscall-wrap.h"
+#define __NR_sys_personality __NR_personality
+
+#ifdef ENSC_SYSCALL_TRADITIONAL
+#include <unistd.h>
+
+inline static UNUSED ALWAYSINLINE
+int sys_personality(int pers)
+{
+#if defined __dietlibc__
+ extern long int syscall (long int __sysno, ...);
+#endif
+
+ return syscall(__NR_sys_personality, pers);
+}
+#else
+#include <errno.h>
+
+inline static UNUSED ALWAYSINLINE
+_syscall1(int, sys_personality, int, pers)
+#endif
+
+#undef __NR_sys_personality
+
+#define ENSC_HAVE_SYSPERSONALITY 1
+
+#endif // H_UTIL_VSERVER_SRC_SYS_PERSONALITY_H
--- /dev/null
+## $Id: Makefile-files,v 1.6 2005/03/24 00:09:18 ensc Exp $ --*- makefile -*--
+
+## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+
+check_PROGRAMS += lib_internal/testsuite/command
+
+if ENSC_HAVE_C99_COMPILER
+check_PROGRAMS += lib_internal/testsuite/filecfg-ml \
+ lib_internal/testsuite/copy \
+ lib_internal/testsuite/sigbus
+TESTS += lib_internal/testsuite/filecfg-ml \
+ lib_internal/testsuite/copy-check \
+ lib_internal/testsuite/sigbus
+endif
+
+EXTRA_DIST += lib_internal/testsuite/copy-check
+
+TESTS_ENVIRONMENT += libinternaltestsuitedir=$(top_builddir)/lib_internal/testsuite
+
+
+lib_internal_testsuite_command_SOURCES = lib_internal/testsuite/command.c
+lib_internal_testsuite_command_LDADD = $(LIBINTERNAL_GLIBC) \
+ $(LIBENSCVECTOR_GLIBC)
+
+lib_internal_testsuite_filecfg_ml_SOURCES = lib_internal/testsuite/filecfg-ml.c
+lib_internal_testsuite_filecfg_ml_LDADD = $(LIBINTERNAL_GLIBC)
+
+lib_internal_testsuite_copy_SOURCES = lib_internal/testsuite/copy.c
+lib_internal_testsuite_copy_LDADD = $(LIBINTERNAL_GLIBC)
+
+lib_internal_testsuite_sigbus_SOURCES = lib_internal/testsuite/sigbus.c
--- /dev/null
+// $Id: command.c,v 1.2 2004/08/19 14:10:06 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <lib_internal/util.h>
+#include <lib_internal/command.h>
+
+int wrapper_exit_code = 255;
+
+int
+main(int argc, char *argv[])
+{
+ struct Command cmd;
+ ssize_t i;
+
+ if (argc<3) {
+ WRITE_MSG(2, "Not enough parameters\n");
+ return EXIT_FAILURE;
+ }
+
+ Command_init(&cmd);
+ for (i=2; i<argc; ++i)
+ Command_appendParameter(&cmd, argv[i]);
+
+ if (Command_exec(&cmd, argv[1][0]!=0)) {
+ Command_wait(&cmd, true);
+ }
+
+ Command_free(&cmd);
+}
--- /dev/null
+#! /bin/bash
+## $Id: copy-check,v 1.4 2005/03/25 02:38:13 ensc Exp $
+
+# Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+set -e
+
+dir=$(mktemp -d ${TMP:-/var/tmp}/copy-check.XXXXXX)
+trap "rm -rf $dir" EXIT
+
+COPY=${libinternaltestsuitedir:-$(dirname "$0")}/copy
+
+test -x "$COPY"
+
+function execWrap()
+{
+ nr=$1
+ msg=$2
+ shift 2
+
+ "$@" || {
+ rc=$?
+ echo $"Test $nr '$msg' failed with code $rc"
+ return $rc
+ }
+
+ return 0
+}
+
+function doit()
+{
+ execWrap "$nr" "copying" $COPY $dir/$nr-in $dir/$nr-out
+ execWrap "$nr" "comparing" cmp $dir/$nr-in $dir/$nr-out
+}
+
+## Usage: execCheck <nr> [<dd-args>*]
+function execCheck()
+{
+ local nr=$1
+ shift
+
+ dd if=/dev/urandom of=$dir/$nr-in "$@" &>/dev/null
+
+ doit $nr
+}
+
+LANG=C
+
+### Check 1: small file copy
+execCheck 01 bs=10 count=1
+
+### Check 2: PAGESIZEd file copy
+execCheck 02 bs=4096 count=1
+
+### Check 3: PAGESIZE+1 file copy
+execCheck 03 bs=4097 count=1
+
+### Check 3a: really large file copy
+test x"$ensc_use_expensive_tests" != xyes ||
+ execCheck 03a bs=$[ 64 * 1024*1024 + 23 ] count=1
+
+### Check 4: small sparse file copy
+execCheck 04 bs=10 count=1 seek=1
+
+### Check 5: large sparse file copy
+execCheck 05 bs=4097 count=1 seek=1
+
+### Check 6: large sparse file copy
+execCheck 06 bs=4098 count=1 seek=1
+
+### Check 7: large sparse file copy
+execCheck 07 bs=4099 count=1 seek=1
+
+### Check 8: large sparse file copy
+execCheck 08 bs=4100 count=1 seek=1
+
+### Check 8a: really large sparse file copy
+test x"$ensc_use_expensive_tests" != xyes ||
+ execCheck 08a bs=$[ 64 * 1024*1024 + 23 ] count=1 seek=1
+
+### Check 9: huge sparse file copy
+test x"$ensc_use_expensive_tests" != xyes ||
+ execCheck 09 bs=1024 count=1 seek=$[ 1024*1024 * 5 ]
+
+test x"$ensc_test_debug" != xyes || {
+ ls -l $dir/*
+ du $dir/*
+}
--- /dev/null
+// $Id: copy.c,v 1.1 2005/03/18 03:33:34 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "lib_internal/unify.h"
+
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+int wrapper_exit_code = 1;
+
+int main(int argc, char *argv[])
+{
+ struct stat st;
+
+ if (argc<2) return EXIT_FAILURE;
+ if (lstat(argv[1],&st)==-1) return EXIT_FAILURE;
+
+ unlink(argv[2]);
+ return Unify_copy(argv[1], &st, argv[2]) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
--- /dev/null
+// $Id: filecfg-ml.c,v 1.2 2005/01/26 15:32:35 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <lib_internal/filecfg.h>
+
+#include <string.h>
+#include <ctype.h>
+
+char const data[] = "\
+line 1\n\
+#line 2\n\
+\n\
+line 4\n\
+ \n\
+line 6\n\
+ \tline 7\n\
+line 8\t \n\
+";
+
+static bool
+test(void *x_p, char const *str, size_t len)
+{
+ size_t *x = x_p;
+
+ if (strncmp(str, "line ", 5)!=0) abort();
+ if (!isdigit(str[len-1])) abort();
+ ++*x;
+ return true;
+}
+
+int main()
+{
+ size_t l = 1;
+ FileCfg_iterateOverMultiLine(data, test, &l);
+ if (l!=6) abort();
+}
--- /dev/null
+// $Id: sigbus.c,v 1.3 2005/03/24 12:42:56 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_SOCKET 1
+#include <wrappers.h>
+
+int wrapper_exit_code = 1;
+
+#define TEST_BLOCKSIZE 0x10000
+static bool is_gremlin = false;
+static int sync_p[2];
+
+static void
+testit()
+{
+ if (!is_gremlin) return;
+
+ char c;
+
+ Esend(sync_p[1], ".", 1, 0);
+ Erecv(sync_p[1], &c, 1, 0);
+}
+
+#define TESTSUITE_COPY_CODE testit()
+
+#include "../unify.h"
+#include "../unify-copy.c"
+#include "../unify-settime.c"
+
+static bool
+checkTrunc(char const *src,
+ char const *dst,
+ struct stat const *st,
+ size_t pos)
+{
+ pid_t pid = Efork();
+
+ if (pid==0) {
+ char c;
+
+ Erecv(sync_p[0], &c, 1, 0);
+ Etruncate(src, pos);
+ Esend(sync_p[0], &c, 1, 0);
+ exit(0);
+ }
+
+ unlink(dst);
+ return !copyReg(src, st, dst);
+}
+
+int main()
+{
+ char f_name0[] = "/tmp/sigbus.XXXXXX";
+ char f_name1[] = "/tmp/sigbus.XXXXXX";
+ int fd_src = mkstemp(f_name0);
+ int fd_dst = mkstemp(f_name1);
+ char buf[TEST_BLOCKSIZE] = { [0] = '\0' };
+ struct stat st;
+ bool res;
+
+ fd_src =
+
+ write(fd_src, buf, sizeof(buf));
+ close(fd_src);
+ close(fd_dst);
+
+ unlink(f_name1);
+ stat(f_name0, &st);
+ if (!copyReg(f_name0, &st, f_name1))
+ return EXIT_FAILURE;
+
+
+ is_gremlin = true;
+
+ Esocketpair(AF_LOCAL, SOCK_STREAM, 0, sync_p);
+ signal(SIGCHLD, SIG_IGN);
+
+ res = (checkTrunc(f_name0, f_name1, &st, TEST_BLOCKSIZE/2) &&
+ checkTrunc(f_name0, f_name1, &st, 0x2345));
+
+ unlink(f_name0);
+ unlink(f_name1);
+ return res ? EXIT_SUCCESS : EXIT_FAILURE;
+}
--- /dev/null
+// $Id: unify-copy.c,v 1.6 2005/03/24 12:42:16 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "unify.h"
+#include "util.h"
+
+#include <unistd.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+
+#define ENSC_WRAPPERS_IO 1
+#include <wrappers.h>
+
+#define MMAP_BLOCKSIZE (16 * 1024*1024)
+
+#ifndef TESTSUITE_COPY_CODE
+# define TESTSUITE_COPY_CODE do { } while (false)
+#endif
+
+static inline bool
+verifySource(int fd, struct stat const *exp_stat)
+{
+ struct stat st;
+
+ return (fstat(fd, &st)!=-1 &&
+ st.st_dev==exp_stat->st_dev &&
+ st.st_ino==exp_stat->st_ino);
+}
+
+static inline bool
+copyLnk(char const *src, char const *dst)
+{
+ ssize_t len = 1024;
+ for (;;) {
+ char buf[len];
+ ssize_t l;
+ l = readlink(src, buf, len-1);
+ if (l==-1) return false;
+ if (l>=len-1) {
+ len *= 2;
+ continue;
+ }
+ buf[l] = '\0';
+
+ return (symlink(buf, dst)!=-1);
+ }
+}
+
+static sigjmp_buf bus_error_restore;
+static volatile sig_atomic_t bus_error;
+
+static void
+handlerSIGBUS(int UNUSED num)
+{
+ bus_error = 1;
+ siglongjmp(bus_error_restore, 1);
+}
+
+static void
+copyMem(void *dst_v, void const *src_v, size_t len_v)
+{
+#if 1
+ int *dst = dst_v;
+ int const *src = src_v;
+ size_t len = len_v / sizeof(int);
+ size_t rest = len_v - sizeof(int)*len;
+ size_t i=0;
+
+ for (; i<len; ++i) {
+ if (*src != 0) *dst = *src;
+ ++dst;
+ ++src;
+ }
+
+ char *dst_c = (void *)(dst);
+ char const *src_c = (void const *)(src);
+
+ for (i=0; i<rest; ++i) {
+ if (*src_c != 0) *dst_c = *src_c;
+ ++dst_c;
+ ++src_c;
+ }
+#else
+ memcpy(dst_v, src_v, len_v);
+#endif
+}
+
+static UNUSED bool
+copyMMap(int in_fd, int out_fd)
+{
+ off_t in_len = lseek(in_fd, 0, SEEK_END);
+ void const * volatile in_buf = 0;
+ void * volatile out_buf = 0;
+
+ loff_t volatile buf_size = 0;
+ bool volatile res = false;
+
+ if (in_len==-1) return false;
+ if (in_len>0 &&
+ (lseek(out_fd, in_len-1, SEEK_SET)==-1 ||
+ write(out_fd, "\0", 1)!=1)) // create sparse file
+ return false;
+
+ bus_error = 0;
+ if (sigsetjmp(bus_error_restore, 1)==0) {
+ off_t offset = 0;
+
+ while (offset < in_len) {
+ buf_size = in_len - offset;
+ if (buf_size > MMAP_BLOCKSIZE) buf_size = MMAP_BLOCKSIZE;
+
+ if ((in_buf = mmap(0, buf_size, PROT_READ, MAP_SHARED, in_fd, offset))==0 ||
+ (out_buf = mmap(0, buf_size, PROT_WRITE, MAP_SHARED, out_fd, offset))==0) {
+ perror("mmap()");
+ goto out;
+ }
+
+ offset += buf_size;
+ madvise(const_cast(void *)(in_buf), buf_size, MADV_SEQUENTIAL);
+ madvise(out_buf, buf_size, MADV_SEQUENTIAL);
+
+ TESTSUITE_COPY_CODE;
+ copyMem(out_buf, in_buf, buf_size);
+
+ munmap(const_cast(void *)(in_buf), buf_size); in_buf = 0;
+ munmap(out_buf, buf_size); out_buf = 0;
+ }
+
+ res = true;
+ }
+
+ out:
+ if (in_buf !=0) munmap(const_cast(void *)(in_buf), buf_size);
+ if (out_buf!=0) munmap(out_buf, buf_size);
+
+ return res;
+}
+
+static inline bool
+copyReg(char const *src, struct stat const *src_stat,
+ char const *dst)
+{
+ int in_fd = open(src, O_RDONLY|O_NOCTTY|O_NONBLOCK|O_NOFOLLOW|O_LARGEFILE);
+ int out_fd = in_fd==-1 ? -1 : open(dst, O_RDWR|O_CREAT|O_EXCL, 0200);
+ bool res = false;
+
+ if (in_fd==-1 || out_fd==-1 ||
+ !verifySource(in_fd, src_stat)) goto err;
+
+#if 0
+ for (;;) {
+ char buf[2048];
+ ssize_t l = read(in_fd, buf, sizeof buf);
+ if (l==-1) goto err;
+ if (l==0) break;
+ if (!WwriteAll(out_fd, buf, l, 0)) goto err;
+ }
+
+ res = true;
+#else
+ void (*old_handler)(int) = signal(SIGBUS, handlerSIGBUS);
+
+ res = copyMMap(in_fd, out_fd);
+
+ signal(SIGBUS, old_handler);
+#endif
+
+ err:
+ if (out_fd!=-1 && close(out_fd)==-1) res=false;
+ if (in_fd!=-1 && close(in_fd)==-1) res=false;
+ return res;
+}
+
+static inline bool
+copyNode(char const UNUSED *src, struct stat const *src_stat,
+ char const *dst)
+{
+ return mknod(dst, src_stat->st_mode & (S_IFMT|S_IWUSR),
+ src_stat->st_rdev)!=-1;
+}
+
+static inline bool
+copyDir(char const UNUSED *src, struct stat const UNUSED *src_stat,
+ char const *dst)
+{
+ return mkdir(dst, 0700)!=-1;
+}
+
+static inline bool
+setModes(char const *path, struct stat const *st)
+{
+ return (lchown(path, st->st_uid, st->st_gid)!=-1 &&
+ (S_ISLNK(st->st_mode) || chmod(path, st->st_mode)!=-1));
+}
+
+
+bool
+Unify_copy(char const *src, struct stat const *src_stat,
+ char const *dst)
+{
+ // skip sockets
+ // TODO: message
+ if (S_ISSOCK(src_stat->st_mode))
+ return true;
+
+ return
+ (((S_ISLNK (src_stat->st_mode) && copyLnk (src, dst)) ||
+ (S_ISREG (src_stat->st_mode) && copyReg (src, src_stat, dst)) ||
+ (S_ISDIR (src_stat->st_mode) && copyDir (src, src_stat, dst)) ||
+ ((S_ISBLK (src_stat->st_mode) ||
+ S_ISCHR (src_stat->st_mode) ||
+ S_ISFIFO(src_stat->st_mode)) && copyNode(src, src_stat, dst))
+ ) &&
+ setModes(dst, src_stat) &&
+ Unify_setTime(dst, src_stat));
+}
--- /dev/null
+// $Id: unify-deunify.c,v 1.2 2004/02/18 04:48:24 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "unify.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <utime.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#define ENSC_WRAPPERS_IO 1
+#include <wrappers.h>
+
+bool
+Unify_deUnify(char const *dst)
+{
+ size_t l = strlen(dst);
+ char tmpfile[l + sizeof(";XXXXXX")];
+ int fd_src, fd_tmp;
+ struct stat st;
+ struct utimbuf utm;
+
+ fd_src = open(dst, O_RDONLY);
+ if (fd_src==-1) {
+ perror("open()");
+ return false;
+ }
+
+ if (fstat(fd_src, &st)==-1) {
+ perror("fstat()");
+ close(fd_src);
+ return false;
+ }
+
+ memcpy(tmpfile, dst, l);
+ memcpy(tmpfile+l, ";XXXXXX", 8);
+ fd_tmp = mkstemp(tmpfile);
+
+ if (fd_tmp==-1) {
+ perror("mkstemp()");
+ tmpfile[0] = '\0';
+ goto err;
+ }
+
+ if (fchown(fd_tmp, st.st_uid, st.st_gid)==-1 ||
+ fchmod(fd_tmp, st.st_mode)==-1) {
+ perror("fchown()/fchmod()");
+ goto err;
+ }
+
+ // todo: acl?
+
+ for (;;) {
+ char buf[0x4000];
+ ssize_t len = read(fd_src, buf, sizeof buf);
+ if (len==-1) {
+ perror("read()");
+ goto err;
+ }
+ if (len==0) break;
+
+ if (!WwriteAll(fd_tmp, buf, len, 0)) goto err;
+ }
+
+ if (close(fd_src)==-1) {
+ perror("close()");
+ goto err;
+ }
+ if (close(fd_tmp)==-1) {
+ perror("close()");
+ goto err;
+ }
+
+ utm.actime = st.st_atime;
+ utm.modtime = st.st_mtime;
+
+ // ALERT: race !!!
+ if (utime(tmpfile, &utm)==-1) {
+ perror("utime()");
+ goto err1;
+ }
+
+ if (unlink(dst)==-1) {
+ perror("unlink()");
+ goto err1;
+ }
+
+ // ALERT: race !!!
+ if (rename(tmpfile, dst)==-1) {
+ perror("FATAL error in rename()");
+ _exit(1);
+ }
+
+ return true;
+
+ err:
+ close(fd_src);
+ close(fd_tmp);
+ err1:
+ if (tmpfile[0]) unlink(tmpfile);
+
+ return false;
+}
--- /dev/null
+// $Id: unify-isiunlinkable.c,v 1.2 2005/03/18 00:22:06 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "unify.h"
+#include "vserver.h"
+
+
+UnifyStatus
+Unify_isIUnlinkable(char const *filename)
+{
+ uint_least32_t const V = VC_IATTR_IUNLINK|VC_IATTR_IMMUTABLE;
+
+ uint_least32_t flags;
+ uint_least32_t mask = V;
+
+ if (vc_get_iattr(filename, 0, &flags, &mask)==-1 || (mask & V) != V)
+ return unifyUNSUPPORTED;
+
+ return (flags & V)==V ? unifyBUSY : unifyUINLINKABLE;
+}
--- /dev/null
+// $Id: unify-settime.c,v 1.2 2004/06/27 13:03:58 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "unify.h"
+#include <utime.h>
+#include <sys/stat.h>
+
+bool
+Unify_setTime(char const *dst, struct stat const *st)
+{
+ struct utimbuf utm;
+
+ // skip symlinks
+ if (S_ISLNK(st->st_mode)) return true;
+
+ utm.actime = st->st_atime;
+ utm.modtime = st->st_mtime;
+ return utime(dst, &utm)!=-1;
+}
+
--- /dev/null
+// $Id: unify-unify.c,v 1.9 2005/03/24 00:12:23 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "unify.h"
+#include "vserver.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <signal.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/stat.h>
+
+bool
+Unify_unify(char const *src, struct stat const UNUSED *src_stat,
+ char const *dst, bool ignore_zero)
+{
+ size_t l = strlen(dst);
+ char tmpfile[l + sizeof(";XXXXXX")];
+ int fd;
+ bool res = false;
+ struct stat st;
+ bool lstat_succeeded;
+ sigset_t mask_new, mask_old;
+ int old_errno;
+
+ // at first, set the ILI flags on 'src'
+ if (vc_set_iattr(src,
+ 0,
+ VC_IATTR_IUNLINK|VC_IATTR_IMMUTABLE,
+ VC_IATTR_IUNLINK|VC_IATTR_IMMUTABLE)==-1) {
+ perror("vc_set_iattr()");
+ return false;
+ }
+
+ lstat_succeeded = lstat(dst, &st)==0;
+
+ sigfillset(&mask_new);
+ if (sigprocmask(SIG_SETMASK, &mask_new, &mask_old)==-1) {
+ perror("sigprocmask()");
+ return false;
+ }
+
+
+ // check if 'dst' already exists
+ // when ignore_zero is true, do not make backups of empty destinations
+ if (lstat_succeeded && (st.st_size>0 || !ignore_zero)) {
+ // now, create a temporary filename
+ memcpy(tmpfile, dst, l);
+ memcpy(tmpfile+l, ";XXXXXX", 8);
+ fd = mkstemp(tmpfile);
+ close(fd);
+
+ if (fd==-1) {
+ perror("mkstemp()");
+ tmpfile[0] = '\0';
+ goto err;
+ }
+
+ // and rename the old file to this name
+
+ // NOTE: this rename() is race-free; when an attacker makes 'tmpfile' a
+ // directory, the operation would fail; when making it a symlink to a file
+ // or directory, the symlink but not the file/directory would be overridden
+ if (rename(dst, tmpfile)==-1) {
+ perror("rename()");
+ goto err;
+ }
+ }
+ else {
+ if (lstat_succeeded) unlink(dst);
+ tmpfile[0] = '\0';
+ }
+
+ // now, link the src-file to dst
+ if (link(src, dst)==-1) {
+ perror("link()");
+
+ unlink(dst);
+ if (tmpfile[0]!='\0' &&
+ rename(tmpfile, dst)==-1) {
+ perror("FATAL error in rename()");
+ _exit(1);
+ }
+ goto err;
+ }
+
+ res = true;
+
+ err:
+ old_errno = errno;
+
+ if (tmpfile[0]!='\0')
+ unlink(tmpfile);
+
+ if (sigprocmask(SIG_SETMASK, &mask_old, 0)==-1)
+ perror("sigprocmask()");
+
+ errno = old_errno;
+ return res;
+}
--- /dev/null
+// $Id: unify.h,v 1.5 2005/03/18 03:55:03 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_UNIFY_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_UNIFY_H
+
+#include <sys/stat.h>
+#include <stdbool.h>
+
+bool
+Unify_unify(char const *src, struct stat const *src_stat,
+ char const *dst, bool ignore_zero) NONNULL((1,2,3));
+
+bool
+Unify_copy(char const *src, struct stat const *src_stat,
+ char const *dst) NONNULL((1,2,3));
+
+bool
+Unify_deUnify(char const *dst) NONNULL((1));
+
+bool
+Unify_setTime(char const *dst, struct stat const *stat) NONNULL((1,2));
+
+
+typedef enum { unifyUNSUPPORTED, unifyUINLINKABLE, unifyBUSY } UnifyStatus;
+
+UnifyStatus
+Unify_isIUnlinkable(char const *filename) NONNULL((1));
+
+#define Unify_isUnified(LHS, RHS) \
+ ((bool)((LHS)->st_dev ==(RHS)->st_dev && \
+ (LHS)->st_ino ==(RHS)->st_ino))
+
+#define Unify_isUnifyable(LHS, RHS) \
+ ((bool)((LHS)->st_dev ==(RHS)->st_dev && \
+ (LHS)->st_ino !=(RHS)->st_ino && \
+ (LHS)->st_mode ==(RHS)->st_mode && \
+ (LHS)->st_uid ==(RHS)->st_uid && \
+ (LHS)->st_gid ==(RHS)->st_gid && \
+ (LHS)->st_size ==(RHS)->st_size && \
+ (LHS)->st_mtime==(RHS)->st_mtime))
+
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_UNIFY_H
--- /dev/null
+// $Id: util-canonify.c,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+
+size_t
+canonifyVserverName(char *name)
+{
+ char *in = name;
+ char *out = name;
+
+ while (*in) {
+ if ((*in>='a' && *in<='z') ||
+ (*in>='A' && *in<='Z') ||
+ (*in>='0' && *in<='9'))
+ *out++ = *in;
+ ++in;
+ }
+ *out = '\0';
+ return out-name;
+}
--- /dev/null
+// $Id: util-cast.h,v 1.1 2004/02/26 13:03:00 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTILVSERVER_LIB_INTERNAL_UTIL_CAST_H
+#define H_UTILVSERVER_LIB_INTERNAL_UTIL_CAST_H
+
+#ifndef __cplusplus
+# define cAsT_(X) (X))
+# define reinterpret_cast(X) ((X) cAsT_
+# define static_cast(X) ((X) cAsT_
+# define const_cast(X) ((X) cAsT_
+#else /* __cplusplus */
+# define reinterpret_cast(X) reinterpret_cast<X>
+# define static_cast(X) static_cast<X>
+# define const_cast(X) const_cast<X>
+#endif
+
+#endif // H_UTILVSERVER_LIB_INTERNAL_UTIL_CAST_H
--- /dev/null
+// $Id: util-commonstrings.h,v 1.1 2004/02/26 13:03:00 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTILVSERVER_LIB_INTERNAL_UTIL_COMMONSTRINGS_H
+#define H_UTILVSERVER_LIB_INTERNAL_UTIL_COMMONSTRINGS_H
+
+#ifndef PACKAGE_BUGREPORT
+# define PACKAGE_BUGREPORT "???"
+#endif
+
+#ifndef VERSION_COPYRIGHT_DISCLAIMER
+# define VERSION_COPYRIGHT_DISCLAIMER \
+ "This program is free software; you may redistribute it under the terms of\n" \
+ "the GNU General Public License. This program has absolutely no warranty.\n"
+#endif
+
+#endif // H_UTILVSERVER_LIB_INTERNAL_UTIL_COMMONSTRINGS_H
--- /dev/null
+// $Id: util-debug.h,v 1.1 2004/04/14 23:22:13 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_UTIL_DEBUG_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_UTIL_DEBUG_H
+
+#ifdef ENSC_ENABLE_DPRINTF
+# include <stdio.h>
+# define DPRINTF(FMT,...) printf(FMT, __VA_ARGS__)
+#else
+# define DPRINTF(FMT,...) do {} while(0)
+#endif
+
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_UTIL_DEBUG_H
--- /dev/null
+// $Id: util-declarecmd.h,v 1.1 2004/02/26 13:03:00 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTILVSERVER_LIB_INTERNAL_UTIL_DECLARECMD_H
+#define H_UTILVSERVER_LIB_INTERNAL_UTIL_DECLARECMD_H
+
+#define VSERVER_DECLARE_CMD(CMD) \
+ char buf[strlen(CMD)+1]; \
+ memcpy(buf, (CMD), strlen(CMD)+1); \
+ CMD = basename(buf);
+
+#endif // H_UTILVSERVER_LIB_INTERNAL_UTIL_DECLARECMD_H
--- /dev/null
+// $Id: util-dimof.h,v 1.1 2004/02/26 13:03:00 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTILVSERVER_LIB_INTERNAL_UTIL_DIMOF_H
+#define H_UTILVSERVER_LIB_INTERNAL_UTIL_DIMOF_H
+
+#define DIM_OF(X) (sizeof(X)/sizeof((X)[0]))
+
+#endif // H_UTILVSERVER_LIB_INTERNAL_UTIL_DIMOF_H
--- /dev/null
+// $Id: util-dotfile.h,v 1.2 2004/03/18 06:06:07 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_UTIL_DOTFILE_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_UTIL_DOTFILE_H
+
+#include <stdbool.h>
+
+static inline UNUSED ALWAYSINLINE bool
+isDotfile(char const *d)
+{
+ return d[0]=='.' && (d[1]=='\0' || (d[1]=='.' && d[2]=='\0'));
+}
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_UTIL_DOTFILE_H
--- /dev/null
+// $Id: util-exitlikeprocess.c,v 1.4 2005/03/22 14:59:46 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include <lib/internal.h>
+
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/resource.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <signal.h>
+#include <sys/resource.h>
+#include <stdio.h>
+
+void
+exitLikeProcess(int pid, char const *cmd, int ret)
+{
+ int status;
+
+ if (wait4(pid, &status, 0,0)==-1) {
+
+ perror("wait()");
+ exit(ret);
+ }
+
+ if (WIFEXITED(status))
+ exit(WEXITSTATUS(status));
+
+ if (WIFSIGNALED(status)) {
+ struct rlimit lim = { 0,0 };
+
+ if (cmd) {
+ char buf[sizeof(int)*3 + 2];
+ size_t l = utilvserver_fmt_uint(buf, pid);
+
+ WRITE_MSG(2, "command '");
+ WRITE_STR(2, cmd);
+ WRITE_MSG(2, "' (pid ");
+ Vwrite (2, buf, l);
+ WRITE_MSG(2, ") exited with signal ");
+ l = utilvserver_fmt_uint(buf, WTERMSIG(status));
+ Vwrite (2, buf, l);
+ WRITE_MSG(2, "; following it...\n");
+ }
+
+ // prevent coredumps which might override the real ones
+ setrlimit(RLIMIT_CORE, &lim);
+
+ kill(getpid(), WTERMSIG(status));
+ exit(1);
+ }
+ else {
+ char buf[sizeof(int)*3 + 2];
+ size_t l = utilvserver_fmt_uint(buf, WTERMSIG(status));
+
+ WRITE_MSG(2, "Unexpected status ");
+ Vwrite (2, buf, l);
+ WRITE_MSG(2, " from '");
+ if (cmd) {
+ WRITE_STR(2, cmd);
+ WRITE_MSG(2, " (pid ");
+ }
+ l = utilvserver_fmt_uint(buf, pid);
+ Vwrite (2, buf, l);
+ if (cmd) WRITE_MSG(2, ")\n");
+ else WRITE_MSG(2, "\n");
+
+ exit(ret);
+ }
+}
--- /dev/null
+// $Id: util-exitlikeprocess.h,v 1.3 2004/05/11 18:25:14 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTILVSERVER_LIB_INTERNAL_UTIL_EXITLIKEPROCESS_H
+#define H_UTILVSERVER_LIB_INTERNAL_UTIL_EXITLIKEPROCESS_H
+
+#include <sys/types.h>
+void exitLikeProcess(pid_t pid, char const /*@null@*/ *cmd, int ret) NORETURN;
+
+#endif // H_UTILVSERVER_LIB_INTERNAL_UTIL_EXITLIKEPROCESS_H
--- /dev/null
+// $Id: util-io.h,v 1.2 2005/03/22 14:59:46 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_UTIL_IO_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_UTIL_IO_H
+
+#include <unistd.h>
+#include <string.h>
+
+inline static void UNUSED
+Vwrite(int fd, char const *buf, size_t len)
+{
+ if (write(fd,buf,len)==-1) { /**/ }
+}
+
+inline static void UNUSED
+writeStr(int fd, char const *cmd)
+{
+ Vwrite(fd, cmd, strlen(cmd));
+}
+
+#define WRITE_MSG(FD,X) Vwrite(FD,X,sizeof(X)-1)
+#define WRITE_STR(FD,X) writeStr(FD,X)
+
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_UTIL_IO_H
--- /dev/null
+// $Id: util-isnumber.c,v 1.1 2005/07/04 22:35:47 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+
+bool
+isNumber(char const *str, signed long *result)
+{
+ char * errptr;
+ signed long val;
+
+ val = strtol(str, &errptr, 0);
+ if (*errptr!='\0' || errptr==str)
+ return false;
+ else {
+ if (result) *result = val;
+ return true;
+ }
+}
--- /dev/null
+// $Id: util-lockfile.c,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util-lockfile.h"
+#include "errinfo.h"
+
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/file.h>
+#include <errno.h>
+
+static volatile sig_atomic_t alarm_flag = 0;
+
+static void
+alarmFunc(int UNUSED sig)
+{
+ alarm_flag = 1;
+ signal(SIGALRM, alarmFunc);
+}
+
+bool
+lockfile(int *fd, char const *filename, int op, long timeout,
+ struct ErrorInformation *err)
+{
+ char const *errstr = 0;
+ void (*old_sighandler)(int) = 0;
+
+ errstr = "open()";
+ *fd = open(filename, O_CREAT|O_RDONLY|O_NOFOLLOW|O_NONBLOCK, 0644);
+ if (*fd==-1) goto err;
+
+ if (timeout!=-1) {
+ errstr = "siginterrupt()";
+ if (siginterrupt(SIGALRM, 1)==-1) goto err;
+
+ errstr = "signal()";
+ old_sighandler = signal(SIGALRM, alarmFunc);
+ if (old_sighandler==SIG_ERR) goto err;
+
+ alarm(timeout);
+ }
+
+ errstr = "flock()";
+ while (flock(*fd, op)==-1) {
+ if ((errno!=EINTR && errno!=EINTR) || alarm_flag) goto err;
+ }
+
+ if (timeout!=-1 && old_sighandler!=0)
+ signal(SIGALRM, old_sighandler);
+
+ errstr = "fcntl()";
+ if (fcntl(*fd, F_SETFD, FD_CLOEXEC)==-1) goto err;
+
+ return true;
+
+ err:
+ if (err) {
+ err->pos = errstr;
+ err->id = errno;
+ }
+ if (timeout!=-1 && old_sighandler!=0)
+ signal(SIGALRM, old_sighandler);
+ if (*fd!=-1) close(*fd);
+ return false;
+}
--- /dev/null
+// $Id: util-lockfile.h,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_UTIL_LOCKFILE_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_UTIL_LOCKFILE_H
+
+#include <stdbool.h>
+
+struct ErrorInformation;
+
+bool lockfile(int *fd, char const *filename, int op,
+ long timeout,
+ struct ErrorInformation *err);
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_UTIL_LOCKFILE_H
--- /dev/null
+// $Id: util-mem.h,v 1.3 2004/07/02 23:45:09 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_UTIL_MEM_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_UTIL_MEM_H
+
+#include <string.h>
+#include <stdlib.h>
+
+inline static void *
+Xmemcpy(void * restrict dst, void const * restrict src, size_t len)
+{
+ return (char *)(memcpy(dst, src, len))+len;
+}
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_UTIL_MEM_H
--- /dev/null
+// $Id: util-perror.h,v 1.2 2004/03/24 01:07:53 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_UTIL_PERROR_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_UTIL_PERROR_H
+
+#define PERROR_U(MSG, ARG0) do { \
+ size_t pu_l1 = strlen(MSG); \
+ size_t pu_l2 = strlen(ARG0); \
+ char pu_buf[pu_l1 + pu_l2 + sizeof("()")]; \
+ memcpy(pu_buf, MSG, pu_l1); \
+ pu_buf[pu_l1] = '('; \
+ memcpy(pu_buf+1+pu_l1, ARG0, pu_l2); \
+ pu_buf[pu_l1+1+pu_l2] = ')'; \
+ pu_buf[pu_l1+2+pu_l2] = '\0'; \
+ perror(pu_buf); \
+ } while (0)
+
+#define PERROR_Q(MSG, ARG0) do { \
+ size_t pq_l = strlen(ARG0); \
+ char pq_buf[pq_l + 3]; \
+ pq_buf[0] = '"'; \
+ memcpy(pq_buf+1, ARG0, pq_l); \
+ pq_buf[pq_l+1] = '"'; \
+ pq_buf[pq_l+2] = '\0'; \
+ PERROR_U(MSG, pq_buf); \
+ } while (0)
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_UTIL_PERROR_H
--- /dev/null
+// $Id: util-safechdir.c,v 1.2 2004/02/19 22:25:50 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <string.h>
+
+int
+safeChdir(char const *path, struct stat const *exp_stat)
+{
+ if (strchr(path, '/')!=0) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ {
+ struct stat now_stat;
+ if (chdir(path)==-1 ||
+ stat(".", &now_stat)==-1) return -1;
+ if (exp_stat->st_dev != now_stat.st_dev ||
+ exp_stat->st_ino != now_stat.st_ino) {
+ // TODO: warning/logging
+ errno = EINVAL;
+ return -1;
+ }
+ }
+
+ return 0;
+}
--- /dev/null
+// $Id: util-safechdir.h,v 1.1 2004/02/18 04:42:38 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_UTIL_SAFECHDIR_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_UTIL_SAFECHDIR_H
+
+struct stat;
+int safeChdir(char const *, struct stat const *exp_stat) NONNULL((1,2));
+
+#define EsafeChdir(PATH,EXP_STAT) \
+ FatalErrnoError(safeChdir(PATH,EXP_STAT)==-1, "safeChdir()")
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_UTIL_SAFECHDIR_H
--- /dev/null
+// $Id: util-unixsock.h,v 1.1 2004/03/05 03:17:39 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_UTIL_UNIXSOCK_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_UTIL_UNIXSOCK_H
+
+#define ENSC_INIT_UNIX_SOCK(ADDR, FILENAME) \
+ (ADDR).sun_family = AF_UNIX; \
+ strncpy((ADDR).sun_path, FILENAME, sizeof((ADDR).sun_path)); \
+ (ADDR).sun_path[sizeof((ADDR).sun_path)-1] = '\0';
+
+#endif // H_UTIL_VSERVER_LIB_INTERNAL_UTIL_UNIXSOCK_H
--- /dev/null
+// $Id: util.h,v 1.6 2005/07/04 22:35:47 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTILVSERVER_LIB_INTERNAL_UTIL_H
+#define H_UTILVSERVER_LIB_INTERNAL_UTIL_H
+
+#include "util-cast.h"
+#include "util-commonstrings.h"
+#include "util-debug.h"
+#include "util-declarecmd.h"
+#include "util-dimof.h"
+#include "util-dotfile.h"
+#include "util-exitlikeprocess.h"
+#include "util-io.h"
+#include "util-lockfile.h"
+#include "util-mem.h"
+#include "util-perror.h"
+#include "util-safechdir.h"
+#include "util-unixsock.h"
+
+bool switchToWatchXid(char const **);
+size_t canonifyVserverName(char *);
+bool isNumber(char const *, signed long *result);
+
+#endif // H_UTILVSERVER_LIB_INTERNAL_UTIL_H
--- /dev/null
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun configure.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+basename="s,^.*/,,g"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+progname=`echo "$progpath" | $SED $basename`
+modename="$progname"
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.5.16
+TIMESTAMP=" (1.1220.2.235 2005/04/25 18:13:26)"
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes.
+if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell, and then maybe $echo will work.
+ exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit $EXIT_SUCCESS
+fi
+
+default_mode=
+help="Try \`$progname --help' for more information."
+magic="%%%MAGIC variable%%%"
+mkdir="mkdir"
+mv="mv -f"
+rm="rm -f"
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+# test EBCDIC or ASCII
+case `echo A|tr A '\301'` in
+ A) # EBCDIC based system
+ SP2NL="tr '\100' '\n'"
+ NL2SP="tr '\r\n' '\100\100'"
+ ;;
+ *) # Assume ASCII based system
+ SP2NL="tr '\040' '\012'"
+ NL2SP="tr '\015\012' '\040\040'"
+ ;;
+esac
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+# We save the old values to restore during execute mode.
+if test "${LC_ALL+set}" = set; then
+ save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+ save_LANG="$LANG"; LANG=C; export LANG
+fi
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" $lt_nl"
+
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+ $echo "$modename: not configured to build any kind of library" 1>&2
+ $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit $EXIT_FAILURE
+fi
+
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+quote_scanset='[[~#^*{};<>?'"'"' ]'
+
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+ win32_libid_type="unknown"
+ win32_fileres=`file -L $1 2>/dev/null`
+ case $win32_fileres in
+ *ar\ archive\ import\ library*) # definitely import
+ win32_libid_type="x86 archive import"
+ ;;
+ *ar\ archive*) # could be an import, or static
+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
+ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+ win32_nmres=`eval $NM -f posix -A $1 | \
+ sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
+ if test "X$win32_nmres" = "Ximport" ; then
+ win32_libid_type="x86 archive import"
+ else
+ win32_libid_type="x86 archive static"
+ fi
+ fi
+ ;;
+ *DLL*)
+ win32_libid_type="x86 DLL"
+ ;;
+ *executable*) # but shell scripts are "executable" too...
+ case $win32_fileres in
+ *MS\ Windows\ PE\ Intel*)
+ win32_libid_type="x86 DLL"
+ ;;
+ esac
+ ;;
+ esac
+ $echo $win32_libid_type
+}
+
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+ if test -n "$available_tags" && test -z "$tagname"; then
+ CC_quoted=
+ for arg in $CC; do
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ CC_quoted="$CC_quoted $arg"
+ done
+ case $@ in
+ # Blanks in the command may have been stripped by the calling shell,
+ # but not from the CC environment variable when configure was run.
+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
+ # Blanks at the start of $base_compile will cause this to fail
+ # if we don't check for them as well.
+ *)
+ for z in $available_tags; do
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+ # Evaluate the configuration.
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+ CC_quoted=
+ for arg in $CC; do
+ # Double-quote args containing other shell metacharacters.
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ CC_quoted="$CC_quoted $arg"
+ done
+ case "$@ " in
+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
+ # The compiler in the base compile command matches
+ # the one in the tagged configuration.
+ # Assume this is the tagged configuration we want.
+ tagname=$z
+ break
+ ;;
+ esac
+ fi
+ done
+ # If $tagname still isn't set, then no tagged configuration
+ # was found and let the user know that the "--tag" command
+ # line option must be used.
+ if test -z "$tagname"; then
+ $echo "$modename: unable to infer tagged configuration"
+ $echo "$modename: specify a tag with \`--tag'" 1>&2
+ exit $EXIT_FAILURE
+# else
+# $echo "$modename: using $tagname tagged configuration"
+ fi
+ ;;
+ esac
+ fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+ f_ex_an_ar_dir="$1"; shift
+ f_ex_an_ar_oldlib="$1"
+
+ $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
+ $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
+ exit $EXIT_FAILURE
+ fi
+}
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+ my_gentop="$1"; shift
+ my_oldlibs=${1+"$@"}
+ my_oldobjs=""
+ my_xlib=""
+ my_xabs=""
+ my_xdir=""
+ my_status=""
+
+ $show "${rm}r $my_gentop"
+ $run ${rm}r "$my_gentop"
+ $show "$mkdir $my_gentop"
+ $run $mkdir "$my_gentop"
+ my_status=$?
+ if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
+ exit $my_status
+ fi
+
+ for my_xlib in $my_oldlibs; do
+ # Extract the objects.
+ case $my_xlib in
+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+ *) my_xabs=`pwd`"/$my_xlib" ;;
+ esac
+ my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
+ my_xdir="$my_gentop/$my_xlib"
+
+ $show "${rm}r $my_xdir"
+ $run ${rm}r "$my_xdir"
+ $show "$mkdir $my_xdir"
+ $run $mkdir "$my_xdir"
+ status=$?
+ if test "$status" -ne 0 && test ! -d "$my_xdir"; then
+ exit $status
+ fi
+ case $host in
+ *-darwin*)
+ $show "Extracting $my_xabs"
+ # Do not bother doing anything if just a dry run
+ if test -z "$run"; then
+ darwin_orig_dir=`pwd`
+ cd $my_xdir || exit $?
+ darwin_archive=$my_xabs
+ darwin_curdir=`pwd`
+ darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
+ darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
+ if test -n "$darwin_arches"; then
+ darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
+ darwin_arch=
+ $show "$darwin_base_archive has multiple architectures $darwin_arches"
+ for darwin_arch in $darwin_arches ; do
+ mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+ cd "$darwin_curdir"
+ $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+ done # $darwin_arches
+ ## Okay now we have a bunch of thin objects, gotta fatten them up :)
+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
+ darwin_file=
+ darwin_files=
+ for darwin_file in $darwin_filelist; do
+ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+ lipo -create -output "$darwin_file" $darwin_files
+ done # $darwin_filelist
+ ${rm}r unfat-$$
+ cd "$darwin_orig_dir"
+ else
+ cd "$darwin_orig_dir"
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ fi # $darwin_arches
+ fi # $run
+ ;;
+ *)
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ ;;
+ esac
+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+ done
+ func_extract_archives_result="$my_oldobjs"
+}
+# End of Shell function definitions
+#####################################
+
+# Darwin sucks
+eval std_shrext=\"$shrext_cmds\"
+
+# Parse our command line options once, thoroughly.
+while test "$#" -gt 0
+do
+ arg="$1"
+ shift
+
+ case $arg in
+ -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ execute_dlfiles)
+ execute_dlfiles="$execute_dlfiles $arg"
+ ;;
+ tag)
+ tagname="$arg"
+ preserve_args="${preserve_args}=$arg"
+
+ # Check whether tagname contains only valid characters
+ case $tagname in
+ *[!-_A-Za-z0-9,/]*)
+ $echo "$progname: invalid tag name: $tagname" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $tagname in
+ CC)
+ # Don't test for the "default" C tag, as we know, it's there, but
+ # not specially marked.
+ ;;
+ *)
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
+ taglist="$taglist $tagname"
+ # Evaluate the configuration.
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
+ else
+ $echo "$progname: ignoring unknown tag $tagname" 1>&2
+ fi
+ ;;
+ esac
+ ;;
+ *)
+ eval "$prev=\$arg"
+ ;;
+ esac
+
+ prev=
+ prevopt=
+ continue
+ fi
+
+ # Have we seen a non-optional argument yet?
+ case $arg in
+ --help)
+ show_help=yes
+ ;;
+
+ --version)
+ $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+ $echo
+ $echo "Copyright (C) 2005 Free Software Foundation, Inc."
+ $echo "This is free software; see the source for copying conditions. There is NO"
+ $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+ exit $?
+ ;;
+
+ --config)
+ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
+ # Now print the configurations for the tags.
+ for tagname in $taglist; do
+ ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
+ done
+ exit $?
+ ;;
+
+ --debug)
+ $echo "$progname: enabling shell trace mode"
+ set -x
+ preserve_args="$preserve_args $arg"
+ ;;
+
+ --dry-run | -n)
+ run=:
+ ;;
+
+ --features)
+ $echo "host: $host"
+ if test "$build_libtool_libs" = yes; then
+ $echo "enable shared libraries"
+ else
+ $echo "disable shared libraries"
+ fi
+ if test "$build_old_libs" = yes; then
+ $echo "enable static libraries"
+ else
+ $echo "disable static libraries"
+ fi
+ exit $?
+ ;;
+
+ --finish) mode="finish" ;;
+
+ --mode) prevopt="--mode" prev=mode ;;
+ --mode=*) mode="$optarg" ;;
+
+ --preserve-dup-deps) duplicate_deps="yes" ;;
+
+ --quiet | --silent)
+ show=:
+ preserve_args="$preserve_args $arg"
+ ;;
+
+ --tag) prevopt="--tag" prev=tag ;;
+ --tag=*)
+ set tag "$optarg" ${1+"$@"}
+ shift
+ prev=tag
+ preserve_args="$preserve_args --tag"
+ ;;
+
+ -dlopen)
+ prevopt="-dlopen"
+ prev=execute_dlfiles
+ ;;
+
+ -*)
+ $echo "$modename: unrecognized option \`$arg'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+
+ *)
+ nonopt="$arg"
+ break
+ ;;
+ esac
+done
+
+if test -n "$prevopt"; then
+ $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+fi
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end. This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+if test -z "$show_help"; then
+
+ # Infer the operation mode.
+ if test -z "$mode"; then
+ $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
+ $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
+ case $nonopt in
+ *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+ mode=link
+ for arg
+ do
+ case $arg in
+ -c)
+ mode=compile
+ break
+ ;;
+ esac
+ done
+ ;;
+ *db | *dbx | *strace | *truss)
+ mode=execute
+ ;;
+ *install*|cp|mv)
+ mode=install
+ ;;
+ *rm)
+ mode=uninstall
+ ;;
+ *)
+ # If we have no mode, but dlfiles were specified, then do execute mode.
+ test -n "$execute_dlfiles" && mode=execute
+
+ # Just use the default operation mode.
+ if test -z "$mode"; then
+ if test -n "$nonopt"; then
+ $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+ else
+ $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+ fi
+ fi
+ ;;
+ esac
+ fi
+
+ # Only execute mode is allowed to have -dlopen flags.
+ if test -n "$execute_dlfiles" && test "$mode" != execute; then
+ $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Change the help message to a mode-specific one.
+ generic_help="$help"
+ help="Try \`$modename --help --mode=$mode' for more information."
+
+ # These modes are in order of execution frequency so that they run quickly.
+ case $mode in
+ # libtool compile mode
+ compile)
+ modename="$modename: compile"
+ # Get the compilation command and the source file.
+ base_compile=
+ srcfile="$nonopt" # always keep a non-empty value in "srcfile"
+ suppress_opt=yes
+ suppress_output=
+ arg_mode=normal
+ libobj=
+ later=
+
+ for arg
+ do
+ case "$arg_mode" in
+ arg )
+ # do not "continue". Instead, add this to base_compile
+ lastarg="$arg"
+ arg_mode=normal
+ ;;
+
+ target )
+ libobj="$arg"
+ arg_mode=normal
+ continue
+ ;;
+
+ normal )
+ # Accept any command-line options.
+ case $arg in
+ -o)
+ if test -n "$libobj" ; then
+ $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ arg_mode=target
+ continue
+ ;;
+
+ -static | -prefer-pic | -prefer-non-pic)
+ later="$later $arg"
+ continue
+ ;;
+
+ -no-suppress)
+ suppress_opt=no
+ continue
+ ;;
+
+ -Xcompiler)
+ arg_mode=arg # the next one goes into the "base_compile" arg list
+ continue # The current "srcfile" will either be retained or
+ ;; # replaced later. I would guess that would be a bug.
+
+ -Wc,*)
+ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+ lastarg=
+ save_ifs="$IFS"; IFS=','
+ for arg in $args; do
+ IFS="$save_ifs"
+
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ lastarg="$lastarg $arg"
+ done
+ IFS="$save_ifs"
+ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
+
+ # Add the arguments to base_compile.
+ base_compile="$base_compile $lastarg"
+ continue
+ ;;
+
+ * )
+ # Accept the current argument as the source file.
+ # The previous "srcfile" becomes the current argument.
+ #
+ lastarg="$srcfile"
+ srcfile="$arg"
+ ;;
+ esac # case $arg
+ ;;
+ esac # case $arg_mode
+
+ # Aesthetically quote the previous argument.
+ lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
+ case $lastarg in
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, and some SunOS ksh mistreat backslash-escaping
+ # in scan sets (worked around with variable expansion),
+ # and furthermore cannot handle '|' '&' '(' ')' in scan sets
+ # at all, so we specify them separately.
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ lastarg="\"$lastarg\""
+ ;;
+ esac
+
+ base_compile="$base_compile $lastarg"
+ done # for arg
+
+ case $arg_mode in
+ arg)
+ $echo "$modename: you must specify an argument for -Xcompile"
+ exit $EXIT_FAILURE
+ ;;
+ target)
+ $echo "$modename: you must specify a target with \`-o'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ *)
+ # Get the name of the library object.
+ [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+ ;;
+ esac
+
+ # Recognize several different file suffixes.
+ # If the user specifies -o file.o, it is replaced with file.lo
+ xform='[cCFSifmso]'
+ case $libobj in
+ *.ada) xform=ada ;;
+ *.adb) xform=adb ;;
+ *.ads) xform=ads ;;
+ *.asm) xform=asm ;;
+ *.c++) xform=c++ ;;
+ *.cc) xform=cc ;;
+ *.ii) xform=ii ;;
+ *.class) xform=class ;;
+ *.cpp) xform=cpp ;;
+ *.cxx) xform=cxx ;;
+ *.f90) xform=f90 ;;
+ *.for) xform=for ;;
+ *.java) xform=java ;;
+ esac
+
+ libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+ case $libobj in
+ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+ *)
+ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ func_infer_tag $base_compile
+
+ for arg in $later; do
+ case $arg in
+ -static)
+ build_old_libs=yes
+ continue
+ ;;
+
+ -prefer-pic)
+ pic_mode=yes
+ continue
+ ;;
+
+ -prefer-non-pic)
+ pic_mode=no
+ continue
+ ;;
+ esac
+ done
+
+ qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
+ case $qlibobj in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qlibobj="\"$qlibobj\"" ;;
+ esac
+ if test "X$libobj" != "X$qlibobj"; then
+ $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
+ exit $EXIT_FAILURE
+ fi
+ objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$obj"; then
+ xdir=
+ else
+ xdir=$xdir/
+ fi
+ lobj=${xdir}$objdir/$objname
+
+ if test -z "$base_compile"; then
+ $echo "$modename: you must specify a compilation command" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Delete any leftover library objects.
+ if test "$build_old_libs" = yes; then
+ removelist="$obj $lobj $libobj ${libobj}T"
+ else
+ removelist="$lobj $libobj ${libobj}T"
+ fi
+
+ $run $rm $removelist
+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+
+ # On Cygwin there's no "real" PIC flag so we must build both object types
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2*)
+ pic_mode=default
+ ;;
+ esac
+ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+ # non-PIC code in shared libraries is not supported
+ pic_mode=default
+ fi
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test "$compiler_c_o" = no; then
+ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+ lockfile="$output_obj.lock"
+ removelist="$removelist $output_obj $lockfile"
+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+ else
+ output_obj=
+ need_locks=no
+ lockfile=
+ fi
+
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test "$need_locks" = yes; then
+ until $run ln "$progpath" "$lockfile" 2>/dev/null; do
+ $show "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test "$need_locks" = warn; then
+ if test -f "$lockfile"; then
+ $echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+ $echo "$srcfile" > "$lockfile"
+ fi
+
+ if test -n "$fix_srcfile_path"; then
+ eval srcfile=\"$fix_srcfile_path\"
+ fi
+ qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
+ case $qsrcfile in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qsrcfile="\"$qsrcfile\"" ;;
+ esac
+
+ $run $rm "$libobj" "${libobj}T"
+
+ # Create a libtool object file (analogous to a ".la" file),
+ # but don't create it if we're doing a dry run.
+ test -z "$run" && cat > ${libobj}T <<EOF
+# $libobj - a libtool object file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+EOF
+
+ # Only build a PIC object if we are building libtool libraries.
+ if test "$build_libtool_libs" = yes; then
+ # Without this assignment, base_compile gets emptied.
+ fbsd_hideous_sh_bug=$base_compile
+
+ if test "$pic_mode" != no; then
+ command="$base_compile $qsrcfile $pic_flag"
+ else
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ fi
+
+ if test ! -d "${xdir}$objdir"; then
+ $show "$mkdir ${xdir}$objdir"
+ $run $mkdir ${xdir}$objdir
+ status=$?
+ if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
+ exit $status
+ fi
+ fi
+
+ if test -z "$output_obj"; then
+ # Place PIC objects in $objdir
+ command="$command -o $lobj"
+ fi
+
+ $run $rm "$lobj" "$output_obj"
+
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ test -n "$output_obj" && $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+ $show "$mv $output_obj $lobj"
+ if $run $mv $output_obj $lobj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Append the name of the PIC object to the libtool object file.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object='$objdir/$objname'
+
+EOF
+
+ # Allow error messages only from the first compilation.
+ if test "$suppress_opt" = yes; then
+ suppress_output=' >/dev/null 2>&1'
+ fi
+ else
+ # No PIC object so indicate it doesn't exist in the libtool
+ # object file.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object=none
+
+EOF
+ fi
+
+ # Only build a position-dependent object if we build old libraries.
+ if test "$build_old_libs" = yes; then
+ if test "$pic_mode" != yes; then
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ else
+ command="$base_compile $qsrcfile $pic_flag"
+ fi
+ if test "$compiler_c_o" = yes; then
+ command="$command -o $obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+ command="$command$suppress_output"
+ $run $rm "$obj" "$output_obj"
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed
+ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+ $show "$mv $output_obj $obj"
+ if $run $mv $output_obj $obj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Append the name of the non-PIC object the libtool object file.
+ # Only append if the libtool object file exists.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object='$objname'
+
+EOF
+ else
+ # Append the name of the non-PIC object the libtool object file.
+ # Only append if the libtool object file exists.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object=none
+
+EOF
+ fi
+
+ $run $mv "${libobj}T" "${libobj}"
+
+ # Unlock the critical section if it was locked
+ if test "$need_locks" != no; then
+ $run $rm "$lockfile"
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool link mode
+ link | relink)
+ modename="$modename: link"
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # which system we are compiling for in order to pass an extra
+ # flag for every libtool invocation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+ # to make a dll which has undefined symbols, in which case not
+ # even a static library is built. For now, we need to specify
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+ ;;
+ *)
+ allow_undefined=yes
+ ;;
+ esac
+ libtool_args="$nonopt"
+ base_compile="$nonopt $@"
+ compile_command="$nonopt"
+ finalize_command="$nonopt"
+
+ compile_rpath=
+ finalize_rpath=
+ compile_shlibpath=
+ finalize_shlibpath=
+ convenience=
+ old_convenience=
+ deplibs=
+ old_deplibs=
+ compiler_flags=
+ linker_flags=
+ dllsearchpath=
+ lib_search_path=`pwd`
+ inst_prefix_dir=
+
+ avoid_version=no
+ dlfiles=
+ dlprefiles=
+ dlself=no
+ export_dynamic=no
+ export_symbols=
+ export_symbols_regex=
+ generated=
+ libobjs=
+ ltlibs=
+ module=no
+ no_install=no
+ objs=
+ non_pic_objects=
+ precious_files_regex=
+ prefer_static_libs=no
+ preload=no
+ prev=
+ prevarg=
+ release=
+ rpath=
+ xrpath=
+ perm_rpath=
+ temp_rpath=
+ thread_safe=no
+ vinfo=
+ vinfo_number=no
+
+ func_infer_tag $base_compile
+
+ # We need to know -static, to get the right output filenames.
+ for arg
+ do
+ case $arg in
+ -all-static | -static)
+ if test "X$arg" = "X-all-static"; then
+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+ $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+ fi
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ else
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ fi
+ build_libtool_libs=no
+ build_old_libs=yes
+ prefer_static_libs=yes
+ break
+ ;;
+ esac
+ done
+
+ # See if our shared archives depend on static archives.
+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+ # Go through the arguments, transforming them on the way.
+ while test "$#" -gt 0; do
+ arg="$1"
+ shift
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
+ ;;
+ *) qarg=$arg ;;
+ esac
+ libtool_args="$libtool_args $qarg"
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ output)
+ compile_command="$compile_command @OUTPUT@"
+ finalize_command="$finalize_command @OUTPUT@"
+ ;;
+ esac
+
+ case $prev in
+ dlfiles|dlprefiles)
+ if test "$preload" = no; then
+ # Add the symbol object into the linking commands.
+ compile_command="$compile_command @SYMFILE@"
+ finalize_command="$finalize_command @SYMFILE@"
+ preload=yes
+ fi
+ case $arg in
+ *.la | *.lo) ;; # We handle these cases below.
+ force)
+ if test "$dlself" = no; then
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ self)
+ if test "$prev" = dlprefiles; then
+ dlself=yes
+ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+ dlself=yes
+ else
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ if test "$prev" = dlfiles; then
+ dlfiles="$dlfiles $arg"
+ else
+ dlprefiles="$dlprefiles $arg"
+ fi
+ prev=
+ continue
+ ;;
+ esac
+ ;;
+ expsyms)
+ export_symbols="$arg"
+ if test ! -f "$arg"; then
+ $echo "$modename: symbol file \`$arg' does not exist"
+ exit $EXIT_FAILURE
+ fi
+ prev=
+ continue
+ ;;
+ expsyms_regex)
+ export_symbols_regex="$arg"
+ prev=
+ continue
+ ;;
+ inst_prefix)
+ inst_prefix_dir="$arg"
+ prev=
+ continue
+ ;;
+ precious_regex)
+ precious_files_regex="$arg"
+ prev=
+ continue
+ ;;
+ release)
+ release="-$arg"
+ prev=
+ continue
+ ;;
+ objectlist)
+ if test -f "$arg"; then
+ save_arg=$arg
+ moreargs=
+ for fil in `cat $save_arg`
+ do
+# moreargs="$moreargs $fil"
+ arg=$fil
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ # If there is no directory component, then add one.
+ case $arg in
+ */* | *\\*) . $arg ;;
+ *) . ./$arg ;;
+ esac
+
+ if test -z "$pic_object" || \
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none && \
+ test "$non_pic_object" = none; then
+ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ dlfiles="$dlfiles $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles="$dlprefiles $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ libobjs="$libobjs $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if test -z "$run"; then
+ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+ exit $EXIT_FAILURE
+ else
+ # Dry-run case.
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+ libobjs="$libobjs $pic_object"
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ fi
+ fi
+ done
+ else
+ $echo "$modename: link input file \`$save_arg' does not exist"
+ exit $EXIT_FAILURE
+ fi
+ arg=$save_arg
+ prev=
+ continue
+ ;;
+ rpath | xrpath)
+ # We need an absolute path.
+ case $arg in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ if test "$prev" = rpath; then
+ case "$rpath " in
+ *" $arg "*) ;;
+ *) rpath="$rpath $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+ *) xrpath="$xrpath $arg" ;;
+ esac
+ fi
+ prev=
+ continue
+ ;;
+ xcompiler)
+ compiler_flags="$compiler_flags $qarg"
+ prev=
+ compile_command="$compile_command $qarg"
+ finalize_command="$finalize_command $qarg"
+ continue
+ ;;
+ xlinker)
+ linker_flags="$linker_flags $qarg"
+ compiler_flags="$compiler_flags $wl$qarg"
+ prev=
+ compile_command="$compile_command $wl$qarg"
+ finalize_command="$finalize_command $wl$qarg"
+ continue
+ ;;
+ xcclinker)
+ linker_flags="$linker_flags $qarg"
+ compiler_flags="$compiler_flags $qarg"
+ prev=
+ compile_command="$compile_command $qarg"
+ finalize_command="$finalize_command $qarg"
+ continue
+ ;;
+ shrext)
+ shrext_cmds="$arg"
+ prev=
+ continue
+ ;;
+ darwin_framework)
+ compiler_flags="$compiler_flags $arg"
+ prev=
+ continue
+ ;;
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
+ fi # test -n "$prev"
+
+ prevarg="$arg"
+
+ case $arg in
+ -all-static)
+ if test -n "$link_static_flag"; then
+ compile_command="$compile_command $link_static_flag"
+ finalize_command="$finalize_command $link_static_flag"
+ fi
+ continue
+ ;;
+
+ -allow-undefined)
+ # FIXME: remove this flag sometime in the future.
+ $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+ continue
+ ;;
+
+ -avoid-version)
+ avoid_version=yes
+ continue
+ ;;
+
+ -dlopen)
+ prev=dlfiles
+ continue
+ ;;
+
+ -dlpreopen)
+ prev=dlprefiles
+ continue
+ ;;
+
+ -export-dynamic)
+ export_dynamic=yes
+ continue
+ ;;
+
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: more than one -exported-symbols argument is not allowed"
+ exit $EXIT_FAILURE
+ fi
+ if test "X$arg" = "X-export-symbols"; then
+ prev=expsyms
+ else
+ prev=expsyms_regex
+ fi
+ continue
+ ;;
+
+ -framework)
+ prev=darwin_framework
+ compiler_flags="$compiler_flags $arg"
+ continue
+ ;;
+
+ -inst-prefix-dir)
+ prev=inst_prefix
+ continue
+ ;;
+
+ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+ # so, if we see these flags be careful not to treat them like -L
+ -L[A-Z][A-Z]*:*)
+ case $with_gcc/$host in
+ no/*-*-irix* | /*-*-irix*)
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ ;;
+ esac
+ continue
+ ;;
+
+ -L*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ dir="$absdir"
+ ;;
+ esac
+ case "$deplibs " in
+ *" -L$dir "*) ;;
+ *)
+ deplibs="$deplibs -L$dir"
+ lib_search_path="$lib_search_path $dir"
+ ;;
+ esac
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ case :$dllsearchpath: in
+ *":$dir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$dir";;
+ esac
+ ;;
+ esac
+ continue
+ ;;
+
+ -l*)
+ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+ case $host in
+ *-*-cygwin* | *-*-pw32* | *-*-beos*)
+ # These systems don't actually have a C or math library (as such)
+ continue
+ ;;
+ *-*-mingw* | *-*-os2*)
+ # These systems don't actually have a C library (as such)
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C and math libraries are in the System framework
+ deplibs="$deplibs -framework System"
+ continue
+ esac
+ elif test "X$arg" = "X-lc_r"; then
+ case $host in
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc_r directly, use -pthread flag.
+ continue
+ ;;
+ esac
+ fi
+ deplibs="$deplibs $arg"
+ continue
+ ;;
+
+ # Tru64 UNIX uses -model [arg] to determine the layout of C++
+ # classes, name mangling, and exception handling.
+ -model)
+ compile_command="$compile_command $arg"
+ compiler_flags="$compiler_flags $arg"
+ finalize_command="$finalize_command $arg"
+ prev=xcompiler
+ continue
+ ;;
+
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+ compiler_flags="$compiler_flags $arg"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ continue
+ ;;
+
+ -module)
+ module=yes
+ continue
+ ;;
+
+ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+ # -r[0-9][0-9]* specifies the processor on the SGI compiler
+ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+ # +DA*, +DD* enable 64-bit mode on the HP compiler
+ # -q* pass through compiler args for the IBM compiler
+ # -m* pass through architecture-specific compiler args for GCC
+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*)
+
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ if test "$with_gcc" = "yes" ; then
+ compiler_flags="$compiler_flags $arg"
+ fi
+ continue
+ ;;
+
+ -shrext)
+ prev=shrext
+ continue
+ ;;
+
+ -no-fast-install)
+ fast_install=no
+ continue
+ ;;
+
+ -no-install)
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ # The PATH hackery in wrapper scripts is required on Windows
+ # in order for the loader to find any dlls it needs.
+ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
+ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
+ fast_install=no
+ ;;
+ *) no_install=yes ;;
+ esac
+ continue
+ ;;
+
+ -no-undefined)
+ allow_undefined=no
+ continue
+ ;;
+
+ -objectlist)
+ prev=objectlist
+ continue
+ ;;
+
+ -o) prev=output ;;
+
+ -precious-files-regex)
+ prev=precious_regex
+ continue
+ ;;
+
+ -release)
+ prev=release
+ continue
+ ;;
+
+ -rpath)
+ prev=rpath
+ continue
+ ;;
+
+ -R)
+ prev=xrpath
+ continue
+ ;;
+
+ -R*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ continue
+ ;;
+
+ -static)
+ # The effects of -static are defined in a previous loop.
+ # We used to do the same as -all-static on platforms that
+ # didn't have a PIC flag, but the assumption that the effects
+ # would be equivalent was wrong. It would break on at least
+ # Digital Unix and AIX.
+ continue
+ ;;
+
+ -thread-safe)
+ thread_safe=yes
+ continue
+ ;;
+
+ -version-info)
+ prev=vinfo
+ continue
+ ;;
+ -version-number)
+ prev=vinfo
+ vinfo_number=yes
+ continue
+ ;;
+
+ -Wc,*)
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ case $flag in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ flag="\"$flag\""
+ ;;
+ esac
+ arg="$arg $wl$flag"
+ compiler_flags="$compiler_flags $flag"
+ done
+ IFS="$save_ifs"
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+ ;;
+
+ -Wl,*)
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ case $flag in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ flag="\"$flag\""
+ ;;
+ esac
+ arg="$arg $wl$flag"
+ compiler_flags="$compiler_flags $wl$flag"
+ linker_flags="$linker_flags $flag"
+ done
+ IFS="$save_ifs"
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+ ;;
+
+ -Xcompiler)
+ prev=xcompiler
+ continue
+ ;;
+
+ -Xlinker)
+ prev=xlinker
+ continue
+ ;;
+
+ -XCClinker)
+ prev=xcclinker
+ continue
+ ;;
+
+ # Some other compiler flag.
+ -* | +*)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+
+ *.$objext)
+ # A standard object.
+ objs="$objs $arg"
+ ;;
+
+ *.lo)
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ # If there is no directory component, then add one.
+ case $arg in
+ */* | *\\*) . $arg ;;
+ *) . ./$arg ;;
+ esac
+
+ if test -z "$pic_object" || \
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none && \
+ test "$non_pic_object" = none; then
+ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ dlfiles="$dlfiles $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles="$dlprefiles $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ libobjs="$libobjs $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if test -z "$run"; then
+ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+ exit $EXIT_FAILURE
+ else
+ # Dry-run case.
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+ libobjs="$libobjs $pic_object"
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ fi
+ fi
+ ;;
+
+ *.$libext)
+ # An archive.
+ deplibs="$deplibs $arg"
+ old_deplibs="$old_deplibs $arg"
+ continue
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
+ if test "$prev" = dlfiles; then
+ # This library was specified with -dlopen.
+ dlfiles="$dlfiles $arg"
+ prev=
+ elif test "$prev" = dlprefiles; then
+ # The library was specified with -dlpreopen.
+ dlprefiles="$dlprefiles $arg"
+ prev=
+ else
+ deplibs="$deplibs $arg"
+ fi
+ continue
+ ;;
+
+ # Some other compiler argument.
+ *)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+ esac # arg
+
+ # Now actually substitute the argument into the commands.
+ if test -n "$arg"; then
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+ done # argument parsing loop
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+ eval arg=\"$export_dynamic_flag_spec\"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+
+ oldlibs=
+ # calculate the name of the file, without its directory
+ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+ libobjs_save="$libobjs"
+
+ if test -n "$shlibpath_var"; then
+ # get the directories listed in $shlibpath_var
+ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+ else
+ shlib_search_path=
+ fi
+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$output_objdir" = "X$output"; then
+ output_objdir="$objdir"
+ else
+ output_objdir="$output_objdir/$objdir"
+ fi
+ # Create the object directory.
+ if test ! -d "$output_objdir"; then
+ $show "$mkdir $output_objdir"
+ $run $mkdir $output_objdir
+ status=$?
+ if test "$status" -ne 0 && test ! -d "$output_objdir"; then
+ exit $status
+ fi
+ fi
+
+ # Determine the type of output
+ case $output in
+ "")
+ $echo "$modename: you must specify an output file" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ *.$libext) linkmode=oldlib ;;
+ *.lo | *.$objext) linkmode=obj ;;
+ *.la) linkmode=lib ;;
+ *) linkmode=prog ;; # Anything else should be a program.
+ esac
+
+ case $host in
+ *cygwin* | *mingw* | *pw32*)
+ # don't eliminate duplications in $postdeps and $predeps
+ duplicate_compiler_generated_deps=yes
+ ;;
+ *)
+ duplicate_compiler_generated_deps=$duplicate_deps
+ ;;
+ esac
+ specialdeplibs=
+
+ libs=
+ # Find all interdependent deplibs by searching for libraries
+ # that are linked more than once (e.g. -la -lb -la)
+ for deplib in $deplibs; do
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ libs="$libs $deplib"
+ done
+
+ if test "$linkmode" = lib; then
+ libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+ # Compute libraries that are listed more than once in $predeps
+ # $postdeps and mark them as special (i.e., whose duplicates are
+ # not to be eliminated).
+ pre_post_deps=
+ if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
+ for pre_post_dep in $predeps $postdeps; do
+ case "$pre_post_deps " in
+ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+ esac
+ pre_post_deps="$pre_post_deps $pre_post_dep"
+ done
+ fi
+ pre_post_deps=
+ fi
+
+ deplibs=
+ newdependency_libs=
+ newlib_search_path=
+ need_relink=no # whether we're linking any uninstalled libtool libraries
+ notinst_deplibs= # not-installed libtool libraries
+ notinst_path= # paths that contain not-installed libtool libraries
+ case $linkmode in
+ lib)
+ passes="conv link"
+ for file in $dlfiles $dlprefiles; do
+ case $file in
+ *.la) ;;
+ *)
+ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ done
+ ;;
+ prog)
+ compile_deplibs=
+ finalize_deplibs=
+ alldeplibs=no
+ newdlfiles=
+ newdlprefiles=
+ passes="conv scan dlopen dlpreopen link"
+ ;;
+ *) passes="conv"
+ ;;
+ esac
+ for pass in $passes; do
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan"; then
+ libs="$deplibs"
+ deplibs=
+ fi
+ if test "$linkmode" = prog; then
+ case $pass in
+ dlopen) libs="$dlfiles" ;;
+ dlpreopen) libs="$dlprefiles" ;;
+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+ esac
+ fi
+ if test "$pass" = dlopen; then
+ # Collect dlpreopened libraries
+ save_deplibs="$deplibs"
+ deplibs=
+ fi
+ for deplib in $libs; do
+ lib=
+ found=no
+ case $deplib in
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ compiler_flags="$compiler_flags $deplib"
+ fi
+ continue
+ ;;
+ -l*)
+ if test "$linkmode" != lib && test "$linkmode" != prog; then
+ $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
+ continue
+ fi
+ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
+ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ for search_ext in .la $std_shrext .so .a; do
+ # Search the libtool library
+ lib="$searchdir/lib${name}${search_ext}"
+ if test -f "$lib"; then
+ if test "$search_ext" = ".la"; then
+ found=yes
+ else
+ found=no
+ fi
+ break 2
+ fi
+ done
+ done
+ if test "$found" != yes; then
+ # deplib doesn't seem to be a libtool library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ else # deplib is a libtool library
+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+ # We need to do some special things here, and not later.
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $deplib "*)
+ if (${SED} -e '2q' $lib |
+ grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ library_names=
+ old_library=
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ for l in $old_library $library_names; do
+ ll="$l"
+ done
+ if test "X$ll" = "X$old_library" ; then # only static version available
+ found=no
+ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$ladir" = "X$lib" && ladir="."
+ lib=$ladir/$old_library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ fi
+ fi
+ ;;
+ *) ;;
+ esac
+ fi
+ fi
+ ;; # -l
+ -L*)
+ case $linkmode in
+ lib)
+ deplibs="$deplib $deplibs"
+ test "$pass" = conv && continue
+ newdependency_libs="$deplib $newdependency_libs"
+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ ;;
+ prog)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ if test "$pass" = scan; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ ;;
+ *)
+ $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
+ ;;
+ esac # linkmode
+ continue
+ ;; # -L
+ -R*)
+ if test "$pass" = link; then
+ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+ # Make sure the xrpath contains only unique directories.
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ fi
+ deplibs="$deplib $deplibs"
+ continue
+ ;;
+ *.la) lib="$deplib" ;;
+ *.$libext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ case $linkmode in
+ lib)
+ valid_a_lib=no
+ case $deplibs_check_method in
+ match_pattern*)
+ set dummy $deplibs_check_method
+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ if eval $echo \"$deplib\" 2>/dev/null \
+ | $SED 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ valid_a_lib=yes
+ fi
+ ;;
+ pass_all)
+ valid_a_lib=yes
+ ;;
+ esac
+ if test "$valid_a_lib" != yes; then
+ $echo
+ $echo "*** Warning: Trying to link with static lib archive $deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because the file extensions .$libext of this argument makes me believe"
+ $echo "*** that it is just a static archive that I should not used here."
+ else
+ $echo
+ $echo "*** Warning: Linking the shared library $output against the"
+ $echo "*** static library $deplib is not portable!"
+ deplibs="$deplib $deplibs"
+ fi
+ continue
+ ;;
+ prog)
+ if test "$pass" != link; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ continue
+ ;;
+ esac # linkmode
+ ;; # *.$libext
+ *.lo | *.$objext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ elif test "$linkmode" = prog; then
+ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+ # If there is no dlopen support or we're linking statically,
+ # we need to preload.
+ newdlprefiles="$newdlprefiles $deplib"
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ newdlfiles="$newdlfiles $deplib"
+ fi
+ fi
+ continue
+ ;;
+ %DEPLIBS%)
+ alldeplibs=yes
+ continue
+ ;;
+ esac # case $deplib
+ if test "$found" = yes || test -f "$lib"; then :
+ else
+ $echo "$modename: cannot find the library \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$ladir" = "X$lib" && ladir="."
+
+ dlname=
+ dlopen=
+ dlpreopen=
+ libdir=
+ library_names=
+ old_library=
+ # If the library was installed with an old release of libtool,
+ # it will not redefine variables installed, or shouldnotlink
+ installed=yes
+ shouldnotlink=no
+ avoidtemprpath=
+
+
+ # Read the .la file
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan" ||
+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+ test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+ fi
+
+ if test "$pass" = conv; then
+ # Only check for convenience libraries
+ deplibs="$lib $deplibs"
+ if test -z "$libdir"; then
+ if test -z "$old_library"; then
+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ # It is a libtool convenience library, so add in its objects.
+ convenience="$convenience $ladir/$objdir/$old_library"
+ old_convenience="$old_convenience $ladir/$objdir/$old_library"
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done
+ elif test "$linkmode" != prog && test "$linkmode" != lib; then
+ $echo "$modename: \`$lib' is not a convenience library" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ continue
+ fi # $pass = conv
+
+
+ # Get the name of the library we link against.
+ linklib=
+ for l in $old_library $library_names; do
+ linklib="$l"
+ done
+ if test -z "$linklib"; then
+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # This library was specified with -dlopen.
+ if test "$pass" = dlopen; then
+ if test -z "$libdir"; then
+ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test -z "$dlname" ||
+ test "$dlopen_support" != yes ||
+ test "$build_libtool_libs" = no; then
+ # If there is no dlname, no dlopen support or we're linking
+ # statically, we need to preload. We also need to preload any
+ # dependent libraries so libltdl's deplib preloader doesn't
+ # bomb out in the load deplibs phase.
+ dlprefiles="$dlprefiles $lib $dependency_libs"
+ else
+ newdlfiles="$newdlfiles $lib"
+ fi
+ continue
+ fi # $pass = dlopen
+
+ # We need an absolute path.
+ case $ladir in
+ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+ *)
+ abs_ladir=`cd "$ladir" && pwd`
+ if test -z "$abs_ladir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
+ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+ abs_ladir="$ladir"
+ fi
+ ;;
+ esac
+ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+
+ # Find the relevant object directory and library name.
+ if test "X$installed" = Xyes; then
+ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ $echo "$modename: warning: library \`$lib' was moved." 1>&2
+ dir="$ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+ dir="$libdir"
+ absdir="$libdir"
+ fi
+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+ else
+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ dir="$ladir"
+ absdir="$abs_ladir"
+ # Remove this search path later
+ notinst_path="$notinst_path $abs_ladir"
+ else
+ dir="$ladir/$objdir"
+ absdir="$abs_ladir/$objdir"
+ # Remove this search path later
+ notinst_path="$notinst_path $abs_ladir"
+ fi
+ fi # $installed = yes
+ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+
+ # This library was specified with -dlpreopen.
+ if test "$pass" = dlpreopen; then
+ if test -z "$libdir"; then
+ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ # Prefer using a static library (so that no silly _DYNAMIC symbols
+ # are required to link).
+ if test -n "$old_library"; then
+ newdlprefiles="$newdlprefiles $dir/$old_library"
+ # Otherwise, use the dlname, so that lt_dlopen finds it.
+ elif test -n "$dlname"; then
+ newdlprefiles="$newdlprefiles $dir/$dlname"
+ else
+ newdlprefiles="$newdlprefiles $dir/$linklib"
+ fi
+ fi # $pass = dlpreopen
+
+ if test -z "$libdir"; then
+ # Link the convenience library
+ if test "$linkmode" = lib; then
+ deplibs="$dir/$old_library $deplibs"
+ elif test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$dir/$old_library $compile_deplibs"
+ finalize_deplibs="$dir/$old_library $finalize_deplibs"
+ else
+ deplibs="$lib $deplibs" # used for prog,scan pass
+ fi
+ continue
+ fi
+
+
+ if test "$linkmode" = prog && test "$pass" != link; then
+ newlib_search_path="$newlib_search_path $ladir"
+ deplibs="$lib $deplibs"
+
+ linkalldeplibs=no
+ if test "$link_all_deplibs" != no || test -z "$library_names" ||
+ test "$build_libtool_libs" = no; then
+ linkalldeplibs=yes
+ fi
+
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+ esac
+ # Need to link against all dependency_libs?
+ if test "$linkalldeplibs" = yes; then
+ deplibs="$deplib $deplibs"
+ else
+ # Need to hardcode shared library paths
+ # or/and link against static libraries
+ newdependency_libs="$deplib $newdependency_libs"
+ fi
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done # for deplib
+ continue
+ fi # $linkmode = prog...
+
+ if test "$linkmode,$pass" = "prog,link"; then
+ if test -n "$library_names" &&
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+ # We need to hardcode the library path
+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+ # Make sure the rpath contains only unique directories.
+ case "$temp_rpath " in
+ *" $dir "*) ;;
+ *" $absdir "*) ;;
+ *) temp_rpath="$temp_rpath $dir" ;;
+ esac
+ fi
+
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath="$compile_rpath $absdir"
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir"
+ esac
+ ;;
+ esac
+ fi # $linkmode,$pass = prog,link...
+
+ if test "$alldeplibs" = yes &&
+ { test "$deplibs_check_method" = pass_all ||
+ { test "$build_libtool_libs" = yes &&
+ test -n "$library_names"; }; }; then
+ # We only need to search for static libraries
+ continue
+ fi
+ fi
+
+ link_static=no # Whether the deplib will be linked statically
+ if test -n "$library_names" &&
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+ if test "$installed" = no; then
+ notinst_deplibs="$notinst_deplibs $lib"
+ need_relink=yes
+ fi
+ # This is a shared library
+
+ # Warn about portability, can't link against -module's on
+ # some systems (darwin)
+ if test "$shouldnotlink" = yes && test "$pass" = link ; then
+ $echo
+ if test "$linkmode" = prog; then
+ $echo "*** Warning: Linking the executable $output against the loadable module"
+ else
+ $echo "*** Warning: Linking the shared library $output against the loadable module"
+ fi
+ $echo "*** $linklib is not portable!"
+ fi
+ if test "$linkmode" = lib &&
+ test "$hardcode_into_libs" = yes; then
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath="$compile_rpath $absdir"
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir"
+ esac
+ ;;
+ esac
+ fi
+
+ if test -n "$old_archive_from_expsyms_cmds"; then
+ # figure out the soname
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+ libname=`eval \\$echo \"$libname_spec\"`
+ # use dlname if we got it. it's perfectly good, no?
+ if test -n "$dlname"; then
+ soname="$dlname"
+ elif test -n "$soname_spec"; then
+ # bleh windows
+ case $host in
+ *cygwin* | mingw*)
+ major=`expr $current - $age`
+ versuffix="-$major"
+ ;;
+ esac
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+
+ # Make a new name for the extract_expsyms_cmds to use
+ soroot="$soname"
+ soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
+ newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
+
+ # If the library has no export list, then create one now
+ if test -f "$output_objdir/$soname-def"; then :
+ else
+ $show "extracting exported symbol list from \`$soname'"
+ save_ifs="$IFS"; IFS='~'
+ cmds=$extract_expsyms_cmds
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Create $newlib
+ if test -f "$output_objdir/$newlib"; then :; else
+ $show "generating import library for \`$soname'"
+ save_ifs="$IFS"; IFS='~'
+ cmds=$old_archive_from_expsyms_cmds
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+ # make sure the library variables are pointing to the new library
+ dir=$output_objdir
+ linklib=$newlib
+ fi # test -n "$old_archive_from_expsyms_cmds"
+
+ if test "$linkmode" = prog || test "$mode" != relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ lib_linked=yes
+ case $hardcode_action in
+ immediate | unsupported)
+ if test "$hardcode_direct" = no; then
+ add="$dir/$linklib"
+ case $host in
+ *-*-sco3.2v5* ) add_dir="-L$dir" ;;
+ *-*-darwin* )
+ # if the lib is a module then we can not link against
+ # it, someone is ignoring the new warnings I added
+ if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
+ $echo "** Warning, lib $linklib is a module, not a shared library"
+ if test -z "$old_library" ; then
+ $echo
+ $echo "** And there doesn't seem to be a static archive available"
+ $echo "** The link will probably fail, sorry"
+ else
+ add="$dir/$old_library"
+ fi
+ fi
+ esac
+ elif test "$hardcode_minus_L" = no; then
+ case $host in
+ *-*-sunos*) add_shlibpath="$dir" ;;
+ esac
+ add_dir="-L$dir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = no; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ relink)
+ if test "$hardcode_direct" = yes; then
+ add="$dir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$dir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case "$libdir" in
+ [\\/]*)
+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ *) lib_linked=no ;;
+ esac
+
+ if test "$lib_linked" != yes; then
+ $echo "$modename: configuration error: unsupported hardcode properties"
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$add_shlibpath"; then
+ case :$compile_shlibpath: in
+ *":$add_shlibpath:"*) ;;
+ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+ esac
+ fi
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+ test -n "$add" && compile_deplibs="$add $compile_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ if test "$hardcode_direct" != yes && \
+ test "$hardcode_minus_L" != yes && \
+ test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+ esac
+ fi
+ fi
+ fi
+
+ if test "$linkmode" = prog || test "$mode" = relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ # Finalize command for both is simple: just hardcode it.
+ if test "$hardcode_direct" = yes; then
+ add="$libdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$libdir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+ esac
+ add="-l$name"
+ elif test "$hardcode_automatic" = yes; then
+ if test -n "$inst_prefix_dir" &&
+ test -f "$inst_prefix_dir$libdir/$linklib" ; then
+ add="$inst_prefix_dir$libdir/$linklib"
+ else
+ add="$libdir/$linklib"
+ fi
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ add_dir="-L$libdir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case "$libdir" in
+ [\\/]*)
+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ fi
+
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ fi
+ fi
+ elif test "$linkmode" = prog; then
+ # Here we assume that one of hardcode_direct or hardcode_minus_L
+ # is not unsupported. This is valid on all known static and
+ # shared platforms.
+ if test "$hardcode_direct" != unsupported; then
+ test -n "$old_library" && linklib="$old_library"
+ compile_deplibs="$dir/$linklib $compile_deplibs"
+ finalize_deplibs="$dir/$linklib $finalize_deplibs"
+ else
+ compile_deplibs="-l$name -L$dir $compile_deplibs"
+ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+ fi
+ elif test "$build_libtool_libs" = yes; then
+ # Not a shared library
+ if test "$deplibs_check_method" != pass_all; then
+ # We're trying link a shared library against a static one
+ # but the system doesn't support it.
+
+ # Just print a warning and add the library to dependency_libs so
+ # that the program can be linked against the static library.
+ $echo
+ $echo "*** Warning: This system can not link to static lib archive $lib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have."
+ if test "$module" = yes; then
+ $echo "*** But as you try to build a module library, libtool will still create "
+ $echo "*** a static module, that should work as long as the dlopening application"
+ $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+ if test -z "$global_symbol_pipe"; then
+ $echo
+ $echo "*** However, this would only work if libtool was able to extract symbol"
+ $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ $echo "*** not find such a program. So, this module is probably useless."
+ $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ else
+ convenience="$convenience $dir/$old_library"
+ old_convenience="$old_convenience $dir/$old_library"
+ deplibs="$dir/$old_library $deplibs"
+ link_static=yes
+ fi
+ fi # link shared/static library?
+
+ if test "$linkmode" = lib; then
+ if test -n "$dependency_libs" &&
+ { test "$hardcode_into_libs" != yes ||
+ test "$build_old_libs" = yes ||
+ test "$link_static" = yes; }; then
+ # Extract -R from dependency_libs
+ temp_deplibs=
+ for libdir in $dependency_libs; do
+ case $libdir in
+ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
+ case " $xrpath " in
+ *" $temp_xrpath "*) ;;
+ *) xrpath="$xrpath $temp_xrpath";;
+ esac;;
+ *) temp_deplibs="$temp_deplibs $libdir";;
+ esac
+ done
+ dependency_libs="$temp_deplibs"
+ fi
+
+ newlib_search_path="$newlib_search_path $absdir"
+ # Link against this library
+ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+ # ... and its dependency_libs
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ newdependency_libs="$deplib $newdependency_libs"
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done
+
+ if test "$link_all_deplibs" != no; then
+ # Add the search paths of all dependency libraries
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) path="$deplib" ;;
+ *.la)
+ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$deplib" && dir="."
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+ absdir="$dir"
+ fi
+ ;;
+ esac
+ if grep "^installed=no" $deplib > /dev/null; then
+ path="$absdir/$objdir"
+ else
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test "$absdir" != "$libdir"; then
+ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+ fi
+ path="$absdir"
+ fi
+ depdepl=
+ case $host in
+ *-*-darwin*)
+ # we do not want to link against static libs,
+ # but need to link against shared
+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+ if test -n "$deplibrary_names" ; then
+ for tmp in $deplibrary_names ; do
+ depdepl=$tmp
+ done
+ if test -f "$path/$depdepl" ; then
+ depdepl="$path/$depdepl"
+ fi
+ # do not add paths which are already there
+ case " $newlib_search_path " in
+ *" $path "*) ;;
+ *) newlib_search_path="$newlib_search_path $path";;
+ esac
+ fi
+ path=""
+ ;;
+ *)
+ path="-L$path"
+ ;;
+ esac
+ ;;
+ -l*)
+ case $host in
+ *-*-darwin*)
+ # Again, we only want to link against shared libraries
+ eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
+ for tmp in $newlib_search_path ; do
+ if test -f "$tmp/lib$tmp_libs.dylib" ; then
+ eval depdepl="$tmp/lib$tmp_libs.dylib"
+ break
+ fi
+ done
+ path=""
+ ;;
+ *) continue ;;
+ esac
+ ;;
+ *) continue ;;
+ esac
+ case " $deplibs " in
+ *" $path "*) ;;
+ *) deplibs="$path $deplibs" ;;
+ esac
+ case " $deplibs " in
+ *" $depdepl "*) ;;
+ *) deplibs="$depdepl $deplibs" ;;
+ esac
+ done
+ fi # link_all_deplibs != no
+ fi # linkmode = lib
+ done # for deplib in $libs
+ dependency_libs="$newdependency_libs"
+ if test "$pass" = dlpreopen; then
+ # Link the dlpreopened libraries before other libraries
+ for deplib in $save_deplibs; do
+ deplibs="$deplib $deplibs"
+ done
+ fi
+ if test "$pass" != dlopen; then
+ if test "$pass" != conv; then
+ # Make sure lib_search_path contains only unique directories.
+ lib_search_path=
+ for dir in $newlib_search_path; do
+ case "$lib_search_path " in
+ *" $dir "*) ;;
+ *) lib_search_path="$lib_search_path $dir" ;;
+ esac
+ done
+ newlib_search_path=
+ fi
+
+ if test "$linkmode,$pass" != "prog,link"; then
+ vars="deplibs"
+ else
+ vars="compile_deplibs finalize_deplibs"
+ fi
+ for var in $vars dependency_libs; do
+ # Add libraries to $var in reverse order
+ eval tmp_libs=\"\$$var\"
+ new_libs=
+ for deplib in $tmp_libs; do
+ # FIXME: Pedantically, this is the right thing to do, so
+ # that some nasty dependency loop isn't accidentally
+ # broken:
+ #new_libs="$deplib $new_libs"
+ # Pragmatically, this seems to cause very few problems in
+ # practice:
+ case $deplib in
+ -L*) new_libs="$deplib $new_libs" ;;
+ -R*) ;;
+ *)
+ # And here is the reason: when a library appears more
+ # than once as an explicit dependence of a library, or
+ # is implicitly linked in more than once by the
+ # compiler, it is considered special, and multiple
+ # occurrences thereof are not removed. Compare this
+ # with having the same library being listed as a
+ # dependency of multiple other libraries: in this case,
+ # we know (pedantically, we assume) the library does not
+ # need to be listed more than once, so we keep only the
+ # last copy. This is not always right, but it is rare
+ # enough that we require users that really mean to play
+ # such unportable linking tricks to link the library
+ # using -Wl,-lname, so that libtool does not consider it
+ # for duplicate removal.
+ case " $specialdeplibs " in
+ *" $deplib "*) new_libs="$deplib $new_libs" ;;
+ *)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$deplib $new_libs" ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ done
+ tmp_libs=
+ for deplib in $new_libs; do
+ case $deplib in
+ -L*)
+ case " $tmp_libs " in
+ *" $deplib "*) ;;
+ *) tmp_libs="$tmp_libs $deplib" ;;
+ esac
+ ;;
+ *) tmp_libs="$tmp_libs $deplib" ;;
+ esac
+ done
+ eval $var=\"$tmp_libs\"
+ done # for var
+ fi
+ # Last step: remove runtime libs from dependency_libs
+ # (they stay in deplibs)
+ tmp_libs=
+ for i in $dependency_libs ; do
+ case " $predeps $postdeps $compiler_lib_search_path " in
+ *" $i "*)
+ i=""
+ ;;
+ esac
+ if test -n "$i" ; then
+ tmp_libs="$tmp_libs $i"
+ fi
+ done
+ dependency_libs=$tmp_libs
+ done # for pass
+ if test "$linkmode" = prog; then
+ dlfiles="$newdlfiles"
+ dlprefiles="$newdlprefiles"
+ fi
+
+ case $linkmode in
+ oldlib)
+ if test -n "$deplibs"; then
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+ fi
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+ fi
+
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs="$output"
+ objs="$objs$old_deplibs"
+ ;;
+
+ lib)
+ # Make sure we only generate libraries of the form `libNAME.la'.
+ case $outputname in
+ lib*)
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ if test "$module" = no; then
+ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test "$need_lib_prefix" != no; then
+ # Add the "lib" prefix for modules if required
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ else
+ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ fi
+ ;;
+ esac
+
+ if test -n "$objs"; then
+ if test "$deplibs_check_method" != pass_all; then
+ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
+ exit $EXIT_FAILURE
+ else
+ $echo
+ $echo "*** Warning: Linking the shared library $output against the non-libtool"
+ $echo "*** objects $objs is not portable!"
+ libobjs="$libobjs $objs"
+ fi
+ fi
+
+ if test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+ fi
+
+ set dummy $rpath
+ if test "$#" -gt 2; then
+ $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+ fi
+ install_libdir="$2"
+
+ oldlibs=
+ if test -z "$rpath"; then
+ if test "$build_libtool_libs" = yes; then
+ # Building a libtool convenience library.
+ # Some compilers have problems with a `.al' extension so
+ # convenience libraries should have the same extension an
+ # archive normally would.
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+ fi
+ else
+
+ # Parse the version information argument.
+ save_ifs="$IFS"; IFS=':'
+ set dummy $vinfo 0 0 0
+ IFS="$save_ifs"
+
+ if test -n "$8"; then
+ $echo "$modename: too many parameters to \`-version-info'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # convert absolute version numbers to libtool ages
+ # this retains compatibility with .la files and attempts
+ # to make the code below a bit more comprehensible
+
+ case $vinfo_number in
+ yes)
+ number_major="$2"
+ number_minor="$3"
+ number_revision="$4"
+ #
+ # There are really only two kinds -- those that
+ # use the current revision as the major version
+ # and those that subtract age and use age as
+ # a minor version. But, then there is irix
+ # which has an extra 1 added just for fun
+ #
+ case $version_type in
+ darwin|linux|osf|windows)
+ current=`expr $number_major + $number_minor`
+ age="$number_minor"
+ revision="$number_revision"
+ ;;
+ freebsd-aout|freebsd-elf|sunos)
+ current="$number_major"
+ revision="$number_minor"
+ age="0"
+ ;;
+ irix|nonstopux)
+ current=`expr $number_major + $number_minor - 1`
+ age="$number_minor"
+ revision="$number_minor"
+ ;;
+ esac
+ ;;
+ no)
+ current="$2"
+ revision="$3"
+ age="$4"
+ ;;
+ esac
+
+ # Check that each of the things are valid numbers.
+ case $current in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $revision in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $age in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ if test "$age" -gt "$current"; then
+ $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Calculate the version variables.
+ major=
+ versuffix=
+ verstring=
+ case $version_type in
+ none) ;;
+
+ darwin)
+ # Like Linux, but with the current version available in
+ # verstring for coding it into the library header
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
+ # Darwin ld doesn't like 0 for these options...
+ minor_current=`expr $current + 1`
+ verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+ ;;
+
+ freebsd-aout)
+ major=".$current"
+ versuffix=".$current.$revision";
+ ;;
+
+ freebsd-elf)
+ major=".$current"
+ versuffix=".$current";
+ ;;
+
+ irix | nonstopux)
+ major=`expr $current - $age + 1`
+
+ case $version_type in
+ nonstopux) verstring_prefix=nonstopux ;;
+ *) verstring_prefix=sgi ;;
+ esac
+ verstring="$verstring_prefix$major.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+ while test "$loop" -ne 0; do
+ iface=`expr $revision - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring_prefix$major.$iface:$verstring"
+ done
+
+ # Before this point, $major must not contain `.'.
+ major=.$major
+ versuffix="$major.$revision"
+ ;;
+
+ linux)
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
+ ;;
+
+ osf)
+ major=.`expr $current - $age`
+ versuffix=".$current.$age.$revision"
+ verstring="$current.$age.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$age
+ while test "$loop" -ne 0; do
+ iface=`expr $current - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring:${iface}.0"
+ done
+
+ # Make executables depend on our current version.
+ verstring="$verstring:${current}.0"
+ ;;
+
+ sunos)
+ major=".$current"
+ versuffix=".$current.$revision"
+ ;;
+
+ windows)
+ # Use '-' rather than '.', since we only want one
+ # extension on DOS 8.3 filesystems.
+ major=`expr $current - $age`
+ versuffix="-$major"
+ ;;
+
+ *)
+ $echo "$modename: unknown library version type \`$version_type'" 1>&2
+ $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
+ major=
+ case $version_type in
+ darwin)
+ # we can't check for "0.0" in archive_cmds due to quoting
+ # problems, so we reset it completely
+ verstring=
+ ;;
+ *)
+ verstring="0.0"
+ ;;
+ esac
+ if test "$need_version" = no; then
+ versuffix=
+ else
+ versuffix=".0.0"
+ fi
+ fi
+
+ # Remove version info from name if versioning should be avoided
+ if test "$avoid_version" = yes && test "$need_version" = no; then
+ major=
+ versuffix=
+ verstring=""
+ fi
+
+ # Check to see if the archive will have undefined symbols.
+ if test "$allow_undefined" = yes; then
+ if test "$allow_undefined_flag" = unsupported; then
+ $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+ build_libtool_libs=no
+ build_old_libs=yes
+ fi
+ else
+ # Don't allow undefined symbols.
+ allow_undefined_flag="$no_undefined_flag"
+ fi
+ fi
+
+ if test "$mode" != relink; then
+ # Remove our outputs, but don't remove object files since they
+ # may have been created when compiling PIC objects.
+ removelist=
+ tempremovelist=`$echo "$output_objdir/*"`
+ for p in $tempremovelist; do
+ case $p in
+ *.$objext)
+ ;;
+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+ if test "X$precious_files_regex" != "X"; then
+ if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+ then
+ continue
+ fi
+ fi
+ removelist="$removelist $p"
+ ;;
+ *) ;;
+ esac
+ done
+ if test -n "$removelist"; then
+ $show "${rm}r $removelist"
+ $run ${rm}r $removelist
+ fi
+ fi
+
+ # Now set the variables for building old libraries.
+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+ oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+ fi
+
+ # Eliminate all temporary directories.
+ for path in $notinst_path; do
+ lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
+ deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
+ dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
+ done
+
+ if test -n "$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ temp_xrpath=
+ for libdir in $xrpath; do
+ temp_xrpath="$temp_xrpath -R$libdir"
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+ dependency_libs="$temp_xrpath $dependency_libs"
+ fi
+ fi
+
+ # Make sure dlfiles contains only unique files that won't be dlpreopened
+ old_dlfiles="$dlfiles"
+ dlfiles=
+ for lib in $old_dlfiles; do
+ case " $dlprefiles $dlfiles " in
+ *" $lib "*) ;;
+ *) dlfiles="$dlfiles $lib" ;;
+ esac
+ done
+
+ # Make sure dlprefiles contains only unique files
+ old_dlprefiles="$dlprefiles"
+ dlprefiles=
+ for lib in $old_dlprefiles; do
+ case "$dlprefiles " in
+ *" $lib "*) ;;
+ *) dlprefiles="$dlprefiles $lib" ;;
+ esac
+ done
+
+ if test "$build_libtool_libs" = yes; then
+ if test -n "$rpath"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+ # these systems don't actually have a c library (as such)!
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C library is in the System framework
+ deplibs="$deplibs -framework System"
+ ;;
+ *-*-netbsd*)
+ # Don't link with libc until the a.out ld.so is fixed.
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *)
+ # Add libc to deplibs on all other systems if necessary.
+ if test "$build_libtool_need_lc" = "yes"; then
+ deplibs="$deplibs -lc"
+ fi
+ ;;
+ esac
+ fi
+
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+ release_save=$release
+ versuffix_save=$versuffix
+ major_save=$major
+ # I'm not sure if I'm treating the release correctly. I think
+ # release should show up in the -l (ie -lgmp5) so we don't want to
+ # add it in twice. Is that correct?
+ release=""
+ versuffix=""
+ major=""
+ newdeplibs=
+ droppeddeps=no
+ case $deplibs_check_method in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+ # implementing what was already the behavior.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $rm conftest.c
+ cat > conftest.c <<EOF
+ int main() { return 0; }
+EOF
+ $rm conftest
+ $LTCC -o conftest conftest.c $deplibs
+ if test "$?" -eq 0 ; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ name="`expr $i : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" -ne "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ newdeplibs="$newdeplibs $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: dynamic linker does not accept needed library $i."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which I believe you do not have"
+ $echo "*** because a test_compile did reveal that the linker did not use it for"
+ $echo "*** its dynamic dependency list that programs get resolved with at runtime."
+ fi
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ else
+ # Error occurred in the first compile. Let's try to salvage
+ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+ name="`expr $i : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" != "0"; then
+ $rm conftest
+ $LTCC -o conftest conftest.c $i
+ # Did it work?
+ if test "$?" -eq 0 ; then
+ ldd_output=`ldd conftest`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ newdeplibs="$newdeplibs $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: dynamic linker does not accept needed library $i."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because a test_compile did reveal that the linker did not use this one"
+ $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+ fi
+ fi
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning! Library $i is needed by this library but I was not able to"
+ $echo "*** make it link in! You will probably need to install it or some"
+ $echo "*** library that it depends on before this library will be fully"
+ $echo "*** functional. Installing it before continuing would be even better."
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ fi
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method
+ file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+ name="`expr $a_deplib : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" != "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null \
+ | grep " -> " >/dev/null; then
+ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+ # We might still enter an endless loop, since a link
+ # loop can be closed while we follow links,
+ # but so what?
+ potlib="$potent_lib"
+ while test -h "$potlib" 2>/dev/null; do
+ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+ case $potliblink in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+ | ${SED} 10q \
+ | $EGREP "$file_magic_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: linker path does not have real file for library $a_deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $echo "*** with $libname but no candidates were found. (...for file magic test)"
+ else
+ $echo "*** with $libname and none of the candidates passed a file format test"
+ $echo "*** using a file magic. Last file checked: $potlib"
+ fi
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ match_pattern*)
+ set dummy $deplibs_check_method
+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+ name="`expr $a_deplib : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test -n "$name" && test "$name" != "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ potlib="$potent_lib" # see symlink-check above in file_magic test
+ if eval $echo \"$potent_lib\" 2>/dev/null \
+ | ${SED} 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: linker path does not have real file for library $a_deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+ else
+ $echo "*** with $libname and none of the candidates passed a file format test"
+ $echo "*** using a regex pattern. Last file checked: $potlib"
+ fi
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ none | unknown | *)
+ newdeplibs=""
+ tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+ -e 's/ -[LR][^ ]*//g'`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ for i in $predeps $postdeps ; do
+ # can't use Xsed below, because $i might contain '/'
+ tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
+ done
+ fi
+ if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \
+ | grep . >/dev/null; then
+ $echo
+ if test "X$deplibs_check_method" = "Xnone"; then
+ $echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+ $echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+ $echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ fi
+ ;;
+ esac
+ versuffix=$versuffix_save
+ major=$major_save
+ release=$release_save
+ libname=$libname_save
+ name=$name_save
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ ;;
+ esac
+
+ if test "$droppeddeps" = yes; then
+ if test "$module" = yes; then
+ $echo
+ $echo "*** Warning: libtool could not satisfy all declared inter-library"
+ $echo "*** dependencies of module $libname. Therefore, libtool will create"
+ $echo "*** a static module, that should work as long as the dlopening"
+ $echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+ $echo
+ $echo "*** However, this would only work if libtool was able to extract symbol"
+ $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ $echo "*** not find such a program. So, this module is probably useless."
+ $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ else
+ $echo "*** The inter-library dependencies that have been dropped here will be"
+ $echo "*** automatically added whenever a program is linked with this library"
+ $echo "*** or is declared to -dlopen it."
+
+ if test "$allow_undefined" = no; then
+ $echo
+ $echo "*** Since this library must not contain undefined symbols,"
+ $echo "*** because either the platform does not support them or"
+ $echo "*** it was explicitly requested with -no-undefined,"
+ $echo "*** libtool will only create a static version of it."
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+
+ # Test again, we may have decided not to build it any more
+ if test "$build_libtool_libs" = yes; then
+ if test "$hardcode_into_libs" = yes; then
+ # Hardcode the library paths
+ hardcode_libdirs=
+ dep_rpath=
+ rpath="$finalize_rpath"
+ test "$mode" != relink && rpath="$compile_rpath$rpath"
+ for libdir in $rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ dep_rpath="$dep_rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ if test -n "$hardcode_libdir_flag_spec_ld"; then
+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+ else
+ eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+ fi
+ fi
+ if test -n "$runpath_var" && test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+ fi
+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+ fi
+
+ shlibpath="$finalize_shlibpath"
+ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+ if test -n "$shlibpath"; then
+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+ fi
+
+ # Get the real and link names of the library.
+ eval shared_ext=\"$shrext_cmds\"
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+
+ if test -n "$soname_spec"; then
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+ if test -z "$dlname"; then
+ dlname=$soname
+ fi
+
+ lib="$output_objdir/$realname"
+ for link
+ do
+ linknames="$linknames $link"
+ done
+
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+ cmds=$export_symbols_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ if len=`expr "X$cmd" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ skipped_export=false
+ else
+ # The command line is too long to execute in one step.
+ $show "using reloadable object file for export list..."
+ skipped_export=:
+ fi
+ done
+ IFS="$save_ifs"
+ if test -n "$export_symbols_regex"; then
+ $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+ $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+ $run eval '$mv "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+ fi
+
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+ fi
+
+ tmp_deplibs=
+ for test_deplib in $deplibs; do
+ case " $convenience " in
+ *" $test_deplib "*) ;;
+ *)
+ tmp_deplibs="$tmp_deplibs $test_deplib"
+ ;;
+ esac
+ done
+ deplibs="$tmp_deplibs"
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $convenience
+ libobjs="$libobjs $func_extract_archives_result"
+ fi
+ fi
+
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ linker_flags="$linker_flags $flag"
+ fi
+
+ # Make a backup of the uninstalled library when relinking
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+ fi
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ eval test_cmds=\"$module_expsym_cmds\"
+ cmds=$module_expsym_cmds
+ else
+ eval test_cmds=\"$module_cmds\"
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ eval test_cmds=\"$archive_expsym_cmds\"
+ cmds=$archive_expsym_cmds
+ else
+ eval test_cmds=\"$archive_cmds\"
+ cmds=$archive_cmds
+ fi
+ fi
+
+ if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ :
+ else
+ # The command line is too long to link in one step, link piecewise.
+ $echo "creating reloadable object files..."
+
+ # Save the value of $output and $libobjs because we want to
+ # use them later. If we have whole_archive_flag_spec, we
+ # want to use save_libobjs as it was before
+ # whole_archive_flag_spec was expanded, because we can't
+ # assume the linker understands whole_archive_flag_spec.
+ # This may have to be revisited, in case too many
+ # convenience libraries get linked in and end up exceeding
+ # the spec.
+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ fi
+ save_output=$output
+ output_la=`$echo "X$output" | $Xsed -e "$basename"`
+
+ # Clear the reloadable object creation command queue and
+ # initialize k to one.
+ test_cmds=
+ concat_cmds=
+ objlist=
+ delfiles=
+ last_robj=
+ k=1
+ output=$output_objdir/$output_la-${k}.$objext
+ # Loop over the list of objects to be linked.
+ for obj in $save_libobjs
+ do
+ eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+ if test "X$objlist" = X ||
+ { len=`expr "X$test_cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len"; }; then
+ objlist="$objlist $obj"
+ else
+ # The command $test_cmds is almost too long, add a
+ # command to the queue.
+ if test "$k" -eq 1 ; then
+ # The first file doesn't have a previous command to add.
+ eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+ else
+ # All subsequent reloadable object files will link in
+ # the last one created.
+ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+ fi
+ last_robj=$output_objdir/$output_la-${k}.$objext
+ k=`expr $k + 1`
+ output=$output_objdir/$output_la-${k}.$objext
+ objlist=$obj
+ len=1
+ fi
+ done
+ # Handle the remaining objects by creating one last
+ # reloadable object file. All subsequent reloadable object
+ # files will link in the last one created.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+
+ if ${skipped_export-false}; then
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+ libobjs=$output
+ # Append the command to create the export file.
+ eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
+ fi
+
+ # Set up a command to remove the reloadable object files
+ # after they are used.
+ i=0
+ while test "$i" -lt "$k"
+ do
+ i=`expr $i + 1`
+ delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
+ done
+
+ $echo "creating a temporary reloadable object file: $output"
+
+ # Loop through the commands generated above and execute them.
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $concat_cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ libobjs=$output
+ # Restore the value of output.
+ output=$save_output
+
+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ fi
+ # Expand the library linking commands again to reset the
+ # value of $libobjs for piecewise linking.
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ cmds=$module_expsym_cmds
+ else
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ cmds=$archive_expsym_cmds
+ else
+ cmds=$archive_cmds
+ fi
+ fi
+
+ # Append the command to remove the reloadable object files
+ # to the just-reset $cmds.
+ eval cmds=\"\$cmds~\$rm $delfiles\"
+ fi
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Restore the uninstalled library and exit
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ # Create links to the real library.
+ for linkname in $linknames; do
+ if test "$realname" != "$linkname"; then
+ $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+ fi
+ done
+
+ # If -module or -export-dynamic was specified, set the dlname.
+ if test "$module" = yes || test "$export_dynamic" = yes; then
+ # On all known operating systems, these are identical.
+ dlname="$soname"
+ fi
+ fi
+ ;;
+
+ obj)
+ if test -n "$deplibs"; then
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+ fi
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+ fi
+
+ case $output in
+ *.lo)
+ if test -n "$objs$old_deplibs"; then
+ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ libobj="$output"
+ obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+ ;;
+ *)
+ libobj=
+ obj="$output"
+ ;;
+ esac
+
+ # Delete the old objects.
+ $run $rm $obj $libobj
+
+ # Objects from convenience libraries. This assumes
+ # single-version convenience libraries. Whenever we create
+ # different ones for PIC/non-PIC, this we'll have to duplicate
+ # the extraction.
+ reload_conv_objs=
+ gentop=
+ # reload_cmds runs $LD directly, so let us get rid of
+ # -Wl from whole_archive_flag_spec
+ wl=
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${obj}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $convenience
+ reload_conv_objs="$reload_objs $func_extract_archives_result"
+ fi
+ fi
+
+ # Create the old-style object.
+ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+ output="$obj"
+ cmds=$reload_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Exit if we aren't doing a library object file.
+ if test -z "$libobj"; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$build_libtool_libs" != yes; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ # $show "echo timestamp > $libobj"
+ # $run eval "echo timestamp > $libobj" || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ if test -n "$pic_flag" || test "$pic_mode" != default; then
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs $reload_conv_objs"
+ output="$libobj"
+ cmds=$reload_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ prog)
+ case $host in
+ *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
+ esac
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+ fi
+
+ if test "$preload" = yes; then
+ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+ test "$dlopen_self_static" = unknown; then
+ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+ fi
+ fi
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ ;;
+ esac
+
+ case $host in
+ *darwin*)
+ # Don't allow lazy linking, it breaks C++ global constructors
+ if test "$tagname" = CXX ; then
+ compile_command="$compile_command ${wl}-bind_at_load"
+ finalize_command="$finalize_command ${wl}-bind_at_load"
+ fi
+ ;;
+ esac
+
+ compile_command="$compile_command $compile_deplibs"
+ finalize_command="$finalize_command $finalize_deplibs"
+
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+ fi
+
+ # Now hardcode the library paths
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ case :$dllsearchpath: in
+ *":$libdir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$libdir";;
+ esac
+ ;;
+ esac
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ compile_rpath="$rpath"
+
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ finalize_rpath="$rpath"
+
+ if test -n "$libobjs" && test "$build_old_libs" = yes; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ fi
+
+ dlsyms=
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ dlsyms="${outputname}S.c"
+ else
+ $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+ fi
+ fi
+
+ if test -n "$dlsyms"; then
+ case $dlsyms in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist="$output_objdir/${outputname}.nm"
+
+ $show "$rm $nlist ${nlist}S ${nlist}T"
+ $run $rm "$nlist" "${nlist}S" "${nlist}T"
+
+ # Parse the name list into a source file.
+ $show "creating $output_objdir/$dlsyms"
+
+ test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
+
+/* External symbol declarations for the compiler. */\
+"
+
+ if test "$dlself" = yes; then
+ $show "generating symbol list for \`$output'"
+
+ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ for arg in $progfiles; do
+ $show "extracting global C symbols from \`$arg'"
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols="$output_objdir/$outputname.exp"
+ $run $rm $export_symbols
+ $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ else
+ $run eval "${SED} -e 's/\([ ][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+ $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+ $run eval 'mv "$nlist"T "$nlist"'
+ fi
+ fi
+
+ for arg in $dlprefiles; do
+ $show "extracting global C symbols from \`$arg'"
+ name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
+ $run eval '$echo ": $name " >> "$nlist"'
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -z "$run"; then
+ # Make sure we have at least an empty file.
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $mv "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+ if grep -v "^: " < "$nlist" |
+ if sort -k 3 </dev/null >/dev/null 2>&1; then
+ sort -k 3
+ else
+ sort +2
+ fi |
+ uniq > "$nlist"S; then
+ :
+ else
+ grep -v "^: " < "$nlist" > "$nlist"S
+ fi
+
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+ else
+ $echo '/* NONE */' >> "$output_objdir/$dlsyms"
+ fi
+
+ $echo >> "$output_objdir/$dlsyms" "\
+
+#undef lt_preloaded_symbols
+
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+"
+
+ case $host in
+ *cygwin* | *mingw* )
+ $echo >> "$output_objdir/$dlsyms" "\
+/* DATA imports from DLLs on WIN32 can't be const, because
+ runtime relocations are performed -- see ld's documentation
+ on pseudo-relocs */
+struct {
+"
+ ;;
+ * )
+ $echo >> "$output_objdir/$dlsyms" "\
+const struct {
+"
+ ;;
+ esac
+
+
+ $echo >> "$output_objdir/$dlsyms" "\
+ const char *name;
+ lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{\
+"
+
+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+
+ $echo >> "$output_objdir/$dlsyms" "\
+ {0, (lt_ptr) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+ fi
+
+ pic_flag_for_symtable=
+ case $host in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
+ esac;;
+ *-*-hpux*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag";;
+ esac
+ esac
+
+ # Now compile the dynamic symbol file.
+ $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+ $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+ # Clean up the generated files.
+ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+ # Transform the symbol file into the correct name.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ ;;
+ *)
+ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ else
+ # We keep going just in case the user didn't refer to
+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
+ # really was required.
+
+ # Nullify the symbol file.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+ fi
+
+ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+ # Replace the output file specification.
+ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ link_command="$compile_command$compile_rpath"
+
+ # We have no uninstalled library dependencies, so finalize right now.
+ $show "$link_command"
+ $run eval "$link_command"
+ status=$?
+
+ # Delete the generated files.
+ if test -n "$dlsyms"; then
+ $show "$rm $output_objdir/${outputname}S.${objext}"
+ $run $rm "$output_objdir/${outputname}S.${objext}"
+ fi
+
+ exit $status
+ fi
+
+ if test -n "$shlibpath_var"; then
+ # We should set the shlibpath_var
+ rpath=
+ for dir in $temp_rpath; do
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*)
+ # Absolute path.
+ rpath="$rpath$dir:"
+ ;;
+ *)
+ # Relative path: add a thisdir entry.
+ rpath="$rpath\$thisdir/$dir:"
+ ;;
+ esac
+ done
+ temp_rpath="$rpath"
+ fi
+
+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+ fi
+ if test -n "$finalize_shlibpath"; then
+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+ fi
+
+ compile_var=
+ finalize_var=
+ if test -n "$runpath_var"; then
+ if test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ if test -n "$finalize_perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ fi
+
+ if test "$no_install" = yes; then
+ # We don't need to create a wrapper script.
+ link_command="$compile_var$compile_command$compile_rpath"
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ # Delete the old output file.
+ $run $rm $output
+ # Link the executable and exit
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+ $echo "$modename: \`$output' will be relinked during installation" 1>&2
+ else
+ if test "$fast_install" != no; then
+ link_command="$finalize_var$compile_command$finalize_rpath"
+ if test "$fast_install" = yes; then
+ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+ else
+ # fast_install is set to needless
+ relink_command=
+ fi
+ else
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+ fi
+ fi
+
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+ # Delete the old output files.
+ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
+
+ # Now create the wrapper script.
+ $show "creating $output"
+
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+ relink_command="$var=\"$var_value\"; export $var; $relink_command"
+ fi
+ done
+ relink_command="(cd `pwd`; $relink_command)"
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Quote $echo for shipping.
+ if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
+ case $progpath in
+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+ esac
+ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+ else
+ qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Only actually do things if our run command is non-null.
+ if test -z "$run"; then
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+ *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
+ esac
+ # test for cygwin because mv fails w/o .exe extensions
+ case $host in
+ *cygwin*)
+ exeext=.exe
+ outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
+ *) exeext= ;;
+ esac
+ case $host in
+ *cygwin* | *mingw* )
+ cwrappersource=`$echo ${objdir}/lt-${outputname}.c`
+ cwrapper=`$echo ${output}.exe`
+ $rm $cwrappersource $cwrapper
+ trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+ cat > $cwrappersource <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+ Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+
+ The $output program cannot be directly executed until all the libtool
+ libraries that it depends on are installed.
+
+ This wrapper executable should never be moved out of the build directory.
+ If it is, it will not operate correctly.
+
+ Currently, it simply execs the wrapper *script* "/bin/sh $output",
+ but could eventually absorb all of the scripts functionality and
+ exec $objdir/$outputname directly.
+*/
+EOF
+ cat >> $cwrappersource<<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef DIR_SEPARATOR
+#define DIR_SEPARATOR '/'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+ defined (__OS2__)
+#define HAVE_DOS_BASED_FILE_SYSTEM
+#ifndef DIR_SEPARATOR_2
+#define DIR_SEPARATOR_2 '\\'
+#endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+ if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+const char *program_name = NULL;
+
+void * xmalloc (size_t num);
+char * xstrdup (const char *string);
+char * basename (const char *name);
+char * fnqualify(const char *path);
+char * strendzap(char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+
+int
+main (int argc, char *argv[])
+{
+ char **newargz;
+ int i;
+
+ program_name = (char *) xstrdup ((char *) basename (argv[0]));
+ newargz = XMALLOC(char *, argc+2);
+EOF
+
+ cat >> $cwrappersource <<EOF
+ newargz[0] = "$SHELL";
+EOF
+
+ cat >> $cwrappersource <<"EOF"
+ newargz[1] = fnqualify(argv[0]);
+ /* we know the script has the same name, without the .exe */
+ /* so make sure newargz[1] doesn't end in .exe */
+ strendzap(newargz[1],".exe");
+ for (i = 1; i < argc; i++)
+ newargz[i+1] = xstrdup(argv[i]);
+ newargz[argc+1] = NULL;
+EOF
+
+ cat >> $cwrappersource <<EOF
+ execv("$SHELL",newargz);
+EOF
+
+ cat >> $cwrappersource <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+ void * p = (void *) malloc (num);
+ if (!p)
+ lt_fatal ("Memory exhausted");
+
+ return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+;
+}
+
+char *
+basename (const char *name)
+{
+ const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ /* Skip over the disk name in MSDOS pathnames. */
+ if (isalpha (name[0]) && name[1] == ':')
+ name += 2;
+#endif
+
+ for (base = name; *name; name++)
+ if (IS_DIR_SEPARATOR (*name))
+ base = name + 1;
+ return (char *) base;
+}
+
+char *
+fnqualify(const char *path)
+{
+ size_t size;
+ char *p;
+ char tmp[LT_PATHMAX + 1];
+
+ assert(path != NULL);
+
+ /* Is it qualified already? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ if (isalpha (path[0]) && path[1] == ':')
+ return xstrdup (path);
+#endif
+ if (IS_DIR_SEPARATOR (path[0]))
+ return xstrdup (path);
+
+ /* prepend the current directory */
+ /* doesn't handle '~' */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal ("getcwd failed");
+ size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
+ p = XMALLOC(char, size);
+ sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
+ return p;
+}
+
+char *
+strendzap(char *str, const char *pat)
+{
+ size_t len, patlen;
+
+ assert(str != NULL);
+ assert(pat != NULL);
+
+ len = strlen(str);
+ patlen = strlen(pat);
+
+ if (patlen <= len)
+ {
+ str += len - patlen;
+ if (strcmp(str, pat) == 0)
+ *str = '\0';
+ }
+ return str;
+}
+
+static void
+lt_error_core (int exit_status, const char * mode,
+ const char * message, va_list ap)
+{
+ fprintf (stderr, "%s: %s: ", program_name, mode);
+ vfprintf (stderr, message, ap);
+ fprintf (stderr, ".\n");
+
+ if (exit_status >= 0)
+ exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+ va_end (ap);
+}
+EOF
+ # we should really use a build-platform specific compiler
+ # here, but OTOH, the wrappers (shell script and this C one)
+ # are only useful if you want to execute the "real" binary.
+ # Since the "real" binary is built for $host, then this
+ # wrapper might as well be built for $host, too.
+ $run $LTCC -s -o $cwrapper $cwrappersource
+ ;;
+ esac
+ $rm $output
+ trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
+
+ $echo > $output "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+ # install mode needs the following variable:
+ notinst_deplibs='$notinst_deplibs'
+else
+ # When we are sourced in execute mode, \$file and \$echo are already set.
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ echo=\"$qecho\"
+ file=\"\$0\"
+ # Make sure echo works.
+ if test \"X\$1\" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+ elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+ # Yippee, \$echo works!
+ :
+ else
+ # Restart under the correct shell, and then maybe \$echo will work.
+ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+ fi
+ fi\
+"
+ $echo >> $output "\
+
+ # Find the directory that this script lives in.
+ thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+ while test -n \"\$file\"; do
+ destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+ # If there was a directory component, then change thisdir.
+ if test \"x\$destdir\" != \"x\$file\"; then
+ case \"\$destdir\" in
+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+ *) thisdir=\"\$thisdir/\$destdir\" ;;
+ esac
+ fi
+
+ file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+ done
+
+ # Try to get the absolute directory name.
+ absdir=\`cd \"\$thisdir\" && pwd\`
+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+ if test "$fast_install" = yes; then
+ $echo >> $output "\
+ program=lt-'$outputname'$exeext
+ progdir=\"\$thisdir/$objdir\"
+
+ if test ! -f \"\$progdir/\$program\" || \\
+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+
+ if test ! -d \"\$progdir\"; then
+ $mkdir \"\$progdir\"
+ else
+ $rm \"\$progdir/\$file\"
+ fi"
+
+ $echo >> $output "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+ else
+ $echo \"\$relink_command_output\" >&2
+ $rm \"\$progdir/\$file\"
+ exit $EXIT_FAILURE
+ fi
+ fi
+
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $rm \"\$progdir/\$program\";
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $rm \"\$progdir/\$file\"
+ fi"
+ else
+ $echo >> $output "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ $echo >> $output "\
+
+ if test -f \"\$progdir/\$program\"; then"
+
+ # Export our shlibpath_var if we have one.
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $echo >> $output "\
+ # Add our own library path to $shlibpath_var
+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+ # Some systems cannot cope with colon-terminated $shlibpath_var
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+ export $shlibpath_var
+"
+ fi
+
+ # fixup the dll searchpath if we need to.
+ if test -n "$dllsearchpath"; then
+ $echo >> $output "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
+
+ $echo >> $output "\
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ # Run the actual program with our arguments.
+"
+ case $host in
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2*)
+ $echo >> $output "\
+ exec \$progdir\\\\\$program \${1+\"\$@\"}
+"
+ ;;
+
+ *)
+ $echo >> $output "\
+ exec \$progdir/\$program \${1+\"\$@\"}
+"
+ ;;
+ esac
+ $echo >> $output "\
+ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
+ exit $EXIT_FAILURE
+ fi
+ else
+ # The program doesn't exist.
+ \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
+ \$echo \"This script is just a wrapper for \$program.\" 1>&2
+ $echo \"See the $PACKAGE documentation for more information.\" 1>&2
+ exit $EXIT_FAILURE
+ fi
+fi\
+"
+ chmod +x $output
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+ esac
+
+ # See if we need to build an old-fashioned archive.
+ for oldlib in $oldlibs; do
+
+ if test "$build_libtool_libs" = convenience; then
+ oldobjs="$libobjs_save"
+ addlibs="$convenience"
+ build_libtool_libs=no
+ else
+ if test "$build_libtool_libs" = module; then
+ oldobjs="$libobjs_save"
+ build_libtool_libs=no
+ else
+ oldobjs="$old_deplibs $non_pic_objects"
+ fi
+ addlibs="$old_convenience"
+ fi
+
+ if test -n "$addlibs"; then
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $addlibs
+ oldobjs="$oldobjs $func_extract_archives_result"
+ fi
+
+ # Do each command in the archive commands.
+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+ cmds=$old_archive_from_new_cmds
+ else
+ # POSIX demands no paths to be encoded in archives. We have
+ # to avoid creating archives with duplicate basenames if we
+ # might have to extract them afterwards, e.g., when creating a
+ # static archive out of a convenience library, or when linking
+ # the entirety of a libtool archive into another (currently
+ # not supported by libtool).
+ if (for obj in $oldobjs
+ do
+ $echo "X$obj" | $Xsed -e 's%^.*/%%'
+ done | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ $echo "copying selected object files to avoid basename conflicts..."
+
+ if test -z "$gentop"; then
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "$mkdir $gentop"
+ $run $mkdir "$gentop"
+ status=$?
+ if test "$status" -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ fi
+
+ save_oldobjs=$oldobjs
+ oldobjs=
+ counter=1
+ for obj in $save_oldobjs
+ do
+ objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ case " $oldobjs " in
+ " ") oldobjs=$obj ;;
+ *[\ /]"$objbase "*)
+ while :; do
+ # Make sure we don't pick an alternate name that also
+ # overlaps.
+ newobj=lt$counter-$objbase
+ counter=`expr $counter + 1`
+ case " $oldobjs " in
+ *[\ /]"$newobj "*) ;;
+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+ esac
+ done
+ $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+ $run ln "$obj" "$gentop/$newobj" ||
+ $run cp "$obj" "$gentop/$newobj"
+ oldobjs="$oldobjs $gentop/$newobj"
+ ;;
+ *) oldobjs="$oldobjs $obj" ;;
+ esac
+ done
+ fi
+
+ eval cmds=\"$old_archive_cmds\"
+
+ if len=`expr "X$cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ cmds=$old_archive_cmds
+ else
+ # the command line is too long to link in one step, link in parts
+ $echo "using piecewise archive linking..."
+ save_RANLIB=$RANLIB
+ RANLIB=:
+ objlist=
+ concat_cmds=
+ save_oldobjs=$oldobjs
+
+ # Is there a better way of finding the last object in the list?
+ for obj in $save_oldobjs
+ do
+ last_oldobj=$obj
+ done
+ for obj in $save_oldobjs
+ do
+ oldobjs="$objlist $obj"
+ objlist="$objlist $obj"
+ eval test_cmds=\"$old_archive_cmds\"
+ if len=`expr "X$test_cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len"; then
+ :
+ else
+ # the above command should be used before it gets too long
+ oldobjs=$objlist
+ if test "$obj" = "$last_oldobj" ; then
+ RANLIB=$save_RANLIB
+ fi
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+ objlist=
+ fi
+ done
+ RANLIB=$save_RANLIB
+ oldobjs=$objlist
+ if test "X$oldobjs" = "X" ; then
+ eval cmds=\"\$concat_cmds\"
+ else
+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+ fi
+ fi
+ fi
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ eval cmd=\"$cmd\"
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$generated"; then
+ $show "${rm}r$generated"
+ $run ${rm}r$generated
+ fi
+
+ # Now create the libtool archive.
+ case $output in
+ *.la)
+ old_library=
+ test "$build_old_libs" = yes && old_library="$libname.$libext"
+ $show "creating $output"
+
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+ relink_command="$var=\"$var_value\"; export $var; $relink_command"
+ fi
+ done
+ # Quote the link command for shipping.
+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+ if test "$hardcode_automatic" = yes ; then
+ relink_command=
+ fi
+
+
+ # Only create the output if not a dry run.
+ if test -z "$run"; then
+ for installed in no yes; do
+ if test "$installed" = yes; then
+ if test -z "$install_libdir"; then
+ break
+ fi
+ output="$output_objdir/$outputname"i
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ *.la)
+ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdependency_libs="$newdependency_libs $libdir/$name"
+ ;;
+ *) newdependency_libs="$newdependency_libs $deplib" ;;
+ esac
+ done
+ dependency_libs="$newdependency_libs"
+ newdlfiles=
+ for lib in $dlfiles; do
+ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdlfiles="$newdlfiles $libdir/$name"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdlprefiles="$newdlprefiles $libdir/$name"
+ done
+ dlprefiles="$newdlprefiles"
+ else
+ newdlfiles=
+ for lib in $dlfiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ newdlfiles="$newdlfiles $abs"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ newdlprefiles="$newdlprefiles $abs"
+ done
+ dlprefiles="$newdlprefiles"
+ fi
+ $rm $output
+ # place dlname in correct position for cygwin
+ tdlname=$dlname
+ case $host,$output,$installed,$module,$dlname in
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+ esac
+ $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+ if test "$installed" = no && test "$need_relink" = yes; then
+ $echo >> $output "\
+relink_command=\"$relink_command\""
+ fi
+ done
+ fi
+
+ # Do a symbolic link so that the libtool archive can be found in
+ # LD_LIBRARY_PATH before the program is installed.
+ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+ ;;
+ esac
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool install mode
+ install)
+ modename="$modename: install"
+
+ # There may be an optional sh(1) argument at the beginning of
+ # install_prog (especially on Windows NT).
+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+ # Allow the use of GNU shtool's install command.
+ $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
+ # Aesthetically quote it.
+ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$arg "
+ arg="$1"
+ shift
+ else
+ install_prog=
+ arg="$nonopt"
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog$arg"
+
+ # We need to accept at least all the BSD install flags.
+ dest=
+ files=
+ opts=
+ prev=
+ install_type=
+ isdir=no
+ stripme=
+ for arg
+ do
+ if test -n "$dest"; then
+ files="$files $dest"
+ dest="$arg"
+ continue
+ fi
+
+ case $arg in
+ -d) isdir=yes ;;
+ -f) prev="-f" ;;
+ -g) prev="-g" ;;
+ -m) prev="-m" ;;
+ -o) prev="-o" ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+ -*) ;;
+
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ prev=
+ else
+ dest="$arg"
+ continue
+ fi
+ ;;
+ esac
+
+ # Aesthetically quote the argument.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog $arg"
+ done
+
+ if test -z "$install_prog"; then
+ $echo "$modename: you must specify an install program" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prev' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -z "$files"; then
+ if test -z "$dest"; then
+ $echo "$modename: no file or destination specified" 1>&2
+ else
+ $echo "$modename: you must specify a destination" 1>&2
+ fi
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Strip any trailing slash from the destination.
+ dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+
+ # Check to see that the destination is a directory.
+ test -d "$dest" && isdir=yes
+ if test "$isdir" = yes; then
+ destdir="$dest"
+ destname=
+ else
+ destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$destdir" = "X$dest" && destdir=.
+ destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+
+ # Not a directory, so check to see that there is only one file specified.
+ set dummy $files
+ if test "$#" -gt 2; then
+ $echo "$modename: \`$dest' is not a directory" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ fi
+ case $destdir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ for file in $files; do
+ case $file in
+ *.lo) ;;
+ *)
+ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ staticlibs=
+ future_libdirs=
+ current_libdirs=
+ for file in $files; do
+
+ # Do each installation.
+ case $file in
+ *.$libext)
+ # Do the static libraries later.
+ staticlibs="$staticlibs $file"
+ ;;
+
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ library_names=
+ old_library=
+ relink_command=
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Add the libdir to current_libdirs if it is the destination.
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+ *) current_libdirs="$current_libdirs $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+ *) future_libdirs="$future_libdirs $libdir" ;;
+ esac
+ fi
+
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+ test "X$dir" = "X$file/" && dir=
+ dir="$dir$objdir"
+
+ if test -n "$relink_command"; then
+ # Determine the prefix the user has applied to our future dir.
+ inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
+
+ # Don't allow the user to place us outside of our expected
+ # location b/c this prevents finding dependent libraries that
+ # are installed to the same prefix.
+ # At present, this check doesn't affect windows .dll's that
+ # are installed into $libdir/../bin (currently, that works fine)
+ # but it's something to keep an eye on.
+ if test "$inst_prefix_dir" = "$destdir"; then
+ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+ else
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+ fi
+
+ $echo "$modename: warning: relinking \`$file'" 1>&2
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ fi
+
+ # See the names of the shared library.
+ set dummy $library_names
+ if test -n "$2"; then
+ realname="$2"
+ shift
+ shift
+
+ srcname="$realname"
+ test -n "$relink_command" && srcname="$realname"T
+
+ # Install the shared library and build the symlinks.
+ $show "$install_prog $dir/$srcname $destdir/$realname"
+ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
+ if test -n "$stripme" && test -n "$striplib"; then
+ $show "$striplib $destdir/$realname"
+ $run eval "$striplib $destdir/$realname" || exit $?
+ fi
+
+ if test "$#" -gt 0; then
+ # Delete the old symlinks, and create new ones.
+ for linkname
+ do
+ if test "$linkname" != "$realname"; then
+ $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ fi
+ done
+ fi
+
+ # Do each command in the postinstall commands.
+ lib="$destdir/$realname"
+ cmds=$postinstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Install the pseudo-library for information purposes.
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ instname="$dir/$name"i
+ $show "$install_prog $instname $destdir/$name"
+ $run eval "$install_prog $instname $destdir/$name" || exit $?
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+ ;;
+
+ *.lo)
+ # Install (i.e. copy) a libtool object.
+
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # Deduce the name of the destination old-style object file.
+ case $destfile in
+ *.lo)
+ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+ ;;
+ *.$objext)
+ staticdest="$destfile"
+ destfile=
+ ;;
+ *)
+ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ # Install the libtool object if requested.
+ if test -n "$destfile"; then
+ $show "$install_prog $file $destfile"
+ $run eval "$install_prog $file $destfile" || exit $?
+ fi
+
+ # Install the old object if enabled.
+ if test "$build_old_libs" = yes; then
+ # Deduce the name of the old-style object file.
+ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+ $show "$install_prog $staticobj $staticdest"
+ $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+
+ *)
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # If the file is missing, and there is a .exe on the end, strip it
+ # because it is most likely a libtool script we actually want to
+ # install
+ stripped_ext=""
+ case $file in
+ *.exe)
+ if test ! -f "$file"; then
+ file=`$echo $file|${SED} 's,.exe$,,'`
+ stripped_ext=".exe"
+ fi
+ ;;
+ esac
+
+ # Do a test to see if this is really a libtool program.
+ case $host in
+ *cygwin*|*mingw*)
+ wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
+ ;;
+ *)
+ wrapper=$file
+ ;;
+ esac
+ if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+ notinst_deplibs=
+ relink_command=
+
+ # To insure that "foo" is sourced, and not "foo.exe",
+ # finese the cygwin/MSYS system by explicitly sourcing "foo."
+ # which disallows the automatic-append-.exe behavior.
+ case $build in
+ *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+ *) wrapperdot=${wrapper} ;;
+ esac
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . ${wrapperdot} ;;
+ *) . ./${wrapperdot} ;;
+ esac
+
+ # Check the variables that should have been set.
+ if test -z "$notinst_deplibs"; then
+ $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ finalize=yes
+ for lib in $notinst_deplibs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ # If there is no directory component, then add one.
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ fi
+ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+ finalize=no
+ fi
+ done
+
+ relink_command=
+ # To insure that "foo" is sourced, and not "foo.exe",
+ # finese the cygwin/MSYS system by explicitly sourcing "foo."
+ # which disallows the automatic-append-.exe behavior.
+ case $build in
+ *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+ *) wrapperdot=${wrapper} ;;
+ esac
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . ${wrapperdot} ;;
+ *) . ./${wrapperdot} ;;
+ esac
+
+ outputname=
+ if test "$fast_install" = no && test -n "$relink_command"; then
+ if test "$finalize" = yes && test -z "$run"; then
+ tmpdir="/tmp"
+ test -n "$TMPDIR" && tmpdir="$TMPDIR"
+ tmpdir="$tmpdir/libtool-$$"
+ save_umask=`umask`
+ umask 0077
+ if $mkdir "$tmpdir"; then
+ umask $save_umask
+ else
+ umask $save_umask
+ $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
+ continue
+ fi
+ file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+ outputname="$tmpdir/$file"
+ # Replace the output file specification.
+ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ ${rm}r "$tmpdir"
+ continue
+ fi
+ file="$outputname"
+ else
+ $echo "$modename: warning: cannot relink \`$file'" 1>&2
+ fi
+ else
+ # Install the binary that we compiled earlier.
+ file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+ fi
+ fi
+
+ # remove .exe since cygwin /usr/bin/install will append another
+ # one anyways
+ case $install_prog,$host in
+ */usr/bin/install*,*cygwin*)
+ case $file:$destfile in
+ *.exe:*.exe)
+ # this is ok
+ ;;
+ *.exe:*)
+ destfile=$destfile.exe
+ ;;
+ *:*.exe)
+ destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
+ ;;
+ esac
+ ;;
+ esac
+ $show "$install_prog$stripme $file $destfile"
+ $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+ test -n "$outputname" && ${rm}r "$tmpdir"
+ ;;
+ esac
+ done
+
+ for file in $staticlibs; do
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+ # Set up the ranlib parameters.
+ oldlib="$destdir/$name"
+
+ $show "$install_prog $file $oldlib"
+ $run eval "$install_prog \$file \$oldlib" || exit $?
+
+ if test -n "$stripme" && test -n "$old_striplib"; then
+ $show "$old_striplib $oldlib"
+ $run eval "$old_striplib $oldlib" || exit $?
+ fi
+
+ # Do each command in the postinstall commands.
+ cmds=$old_postinstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$future_libdirs"; then
+ $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+ fi
+
+ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ test -n "$run" && current_libdirs=" -n$current_libdirs"
+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+ else
+ exit $EXIT_SUCCESS
+ fi
+ ;;
+
+ # libtool finish mode
+ finish)
+ modename="$modename: finish"
+ libdirs="$nonopt"
+ admincmds=
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ for dir
+ do
+ libdirs="$libdirs $dir"
+ done
+
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+ cmds=$finish_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || admincmds="$admincmds
+ $cmd"
+ done
+ IFS="$save_ifs"
+ fi
+ if test -n "$finish_eval"; then
+ # Do the single finish_eval.
+ eval cmds=\"$finish_eval\"
+ $run eval "$cmds" || admincmds="$admincmds
+ $cmds"
+ fi
+ done
+ fi
+
+ # Exit here if they wanted silent mode.
+ test "$show" = : && exit $EXIT_SUCCESS
+
+ $echo "----------------------------------------------------------------------"
+ $echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+ $echo " $libdir"
+ done
+ $echo
+ $echo "If you ever happen to want to link against installed libraries"
+ $echo "in a given directory, LIBDIR, you must either use libtool, and"
+ $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+ $echo "flag during linking and do at least one of the following:"
+ if test -n "$shlibpath_var"; then
+ $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
+ $echo " during execution"
+ fi
+ if test -n "$runpath_var"; then
+ $echo " - add LIBDIR to the \`$runpath_var' environment variable"
+ $echo " during linking"
+ fi
+ if test -n "$hardcode_libdir_flag_spec"; then
+ libdir=LIBDIR
+ eval flag=\"$hardcode_libdir_flag_spec\"
+
+ $echo " - use the \`$flag' linker flag"
+ fi
+ if test -n "$admincmds"; then
+ $echo " - have your system administrator run these commands:$admincmds"
+ fi
+ if test -f /etc/ld.so.conf; then
+ $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+ fi
+ $echo
+ $echo "See any operating system documentation about shared libraries for"
+ $echo "more information, such as the ld(1) and ld.so(8) manual pages."
+ $echo "----------------------------------------------------------------------"
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool execute mode
+ execute)
+ modename="$modename: execute"
+
+ # The first argument is the command name.
+ cmd="$nonopt"
+ if test -z "$cmd"; then
+ $echo "$modename: you must specify a COMMAND" 1>&2
+ $echo "$help"
+ exit $EXIT_FAILURE
+ fi
+
+ # Handle -dlopen flags immediately.
+ for file in $execute_dlfiles; do
+ if test ! -f "$file"; then
+ $echo "$modename: \`$file' is not a file" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ dir=
+ case $file in
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Read the libtool library.
+ dlname=
+ library_names=
+
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Skip this library if it cannot be dlopened.
+ if test -z "$dlname"; then
+ # Warn if it was a shared library.
+ test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+ continue
+ fi
+
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+
+ if test -f "$dir/$objdir/$dlname"; then
+ dir="$dir/$objdir"
+ else
+ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ ;;
+
+ *.lo)
+ # Just add the directory containing the .lo file.
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+ ;;
+
+ *)
+ $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+ continue
+ ;;
+ esac
+
+ # Get the absolute pathname.
+ absdir=`cd "$dir" && pwd`
+ test -n "$absdir" && dir="$absdir"
+
+ # Now add the directory to shlibpath_var.
+ if eval "test -z \"\$$shlibpath_var\""; then
+ eval "$shlibpath_var=\"\$dir\""
+ else
+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+ fi
+ done
+
+ # This variable tells wrapper scripts just to set shlibpath_var
+ # rather than running their programs.
+ libtool_execute_magic="$magic"
+
+ # Check if any of the arguments is a wrapper script.
+ args=
+ for file
+ do
+ case $file in
+ -*) ;;
+ *)
+ # Do a test to see if this is really a libtool program.
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Transform arg to wrapped name.
+ file="$progdir/$program"
+ fi
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+ file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+ args="$args \"$file\""
+ done
+
+ if test -z "$run"; then
+ if test -n "$shlibpath_var"; then
+ # Export the shlibpath_var.
+ eval "export $shlibpath_var"
+ fi
+
+ # Restore saved environment variables
+ if test "${save_LC_ALL+set}" = set; then
+ LC_ALL="$save_LC_ALL"; export LC_ALL
+ fi
+ if test "${save_LANG+set}" = set; then
+ LANG="$save_LANG"; export LANG
+ fi
+
+ # Now prepare to actually exec the command.
+ exec_cmd="\$cmd$args"
+ else
+ # Display what would be done.
+ if test -n "$shlibpath_var"; then
+ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+ $echo "export $shlibpath_var"
+ fi
+ $echo "$cmd$args"
+ exit $EXIT_SUCCESS
+ fi
+ ;;
+
+ # libtool clean and uninstall mode
+ clean | uninstall)
+ modename="$modename: $mode"
+ rm="$nonopt"
+ files=
+ rmforce=
+ exit_status=0
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ for arg
+ do
+ case $arg in
+ -f) rm="$rm $arg"; rmforce=yes ;;
+ -*) rm="$rm $arg" ;;
+ *) files="$files $arg" ;;
+ esac
+ done
+
+ if test -z "$rm"; then
+ $echo "$modename: you must specify an RM program" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ rmdirs=
+
+ origobjdir="$objdir"
+ for file in $files; do
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$dir" = "X$file"; then
+ dir=.
+ objdir="$origobjdir"
+ else
+ objdir="$dir/$origobjdir"
+ fi
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ test "$mode" = uninstall && objdir="$dir"
+
+ # Remember objdir for removal later, being careful to avoid duplicates
+ if test "$mode" = clean; then
+ case " $rmdirs " in
+ *" $objdir "*) ;;
+ *) rmdirs="$rmdirs $objdir" ;;
+ esac
+ fi
+
+ # Don't error if the file doesn't exist and rm -f was used.
+ if (test -L "$file") >/dev/null 2>&1 \
+ || (test -h "$file") >/dev/null 2>&1 \
+ || test -f "$file"; then
+ :
+ elif test -d "$file"; then
+ exit_status=1
+ continue
+ elif test "$rmforce" = yes; then
+ continue
+ fi
+
+ rmfiles="$file"
+
+ case $name in
+ *.la)
+ # Possibly a libtool archive, so verify it.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ . $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+ rmfiles="$rmfiles $objdir/$n"
+ done
+ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+ test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+
+ if test "$mode" = uninstall; then
+ if test -n "$library_names"; then
+ # Do each command in the postuninstall commands.
+ cmds=$postuninstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd"
+ if test "$?" -ne 0 && test "$rmforce" != yes; then
+ exit_status=1
+ fi
+ done
+ IFS="$save_ifs"
+ fi
+
+ if test -n "$old_library"; then
+ # Do each command in the old_postuninstall commands.
+ cmds=$old_postuninstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd"
+ if test "$?" -ne 0 && test "$rmforce" != yes; then
+ exit_status=1
+ fi
+ done
+ IFS="$save_ifs"
+ fi
+ # FIXME: should reinstall the best remaining shared library.
+ fi
+ fi
+ ;;
+
+ *.lo)
+ # Possibly a libtool object, so verify it.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+
+ # Read the .lo file
+ . $dir/$name
+
+ # Add PIC object to the list of files to remove.
+ if test -n "$pic_object" \
+ && test "$pic_object" != none; then
+ rmfiles="$rmfiles $dir/$pic_object"
+ fi
+
+ # Add non-PIC object to the list of files to remove.
+ if test -n "$non_pic_object" \
+ && test "$non_pic_object" != none; then
+ rmfiles="$rmfiles $dir/$non_pic_object"
+ fi
+ fi
+ ;;
+
+ *)
+ if test "$mode" = clean ; then
+ noexename=$name
+ case $file in
+ *.exe)
+ file=`$echo $file|${SED} 's,.exe$,,'`
+ noexename=`$echo $name|${SED} 's,.exe$,,'`
+ # $file with .exe has already been added to rmfiles,
+ # add $file without .exe
+ rmfiles="$rmfiles $file"
+ ;;
+ esac
+ # Do a test to see if this is a libtool program.
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ relink_command=
+ . $dir/$noexename
+
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+ if test "$fast_install" = yes && test -n "$relink_command"; then
+ rmfiles="$rmfiles $objdir/lt-$name"
+ fi
+ if test "X$noexename" != "X$name" ; then
+ rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ $show "$rm $rmfiles"
+ $run $rm $rmfiles || exit_status=1
+ done
+ objdir="$origobjdir"
+
+ # Try to remove the ${objdir}s in the directories where we deleted files
+ for dir in $rmdirs; do
+ if test -d "$dir"; then
+ $show "rmdir $dir"
+ $run rmdir $dir >/dev/null 2>&1
+ fi
+ done
+
+ exit $exit_status
+ ;;
+
+ "")
+ $echo "$modename: you must specify a MODE" 1>&2
+ $echo "$generic_help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ if test -z "$exec_cmd"; then
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$generic_help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+fi # test -z "$show_help"
+
+if test -n "$exec_cmd"; then
+ eval exec $exec_cmd
+ exit $EXIT_FAILURE
+fi
+
+# We need to display help for each of the modes.
+case $mode in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+ --config show all configuration variables
+ --debug enable verbose shell tracing
+-n, --dry-run display commands without modifying any files
+ --features display basic configuration information and exit
+ --finish same as \`--mode=finish'
+ --help display this help message and exit
+ --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
+ --quiet same as \`--silent'
+ --silent don't print informational messages
+ --tag=TAG use configuration variables from tag TAG
+ --version print version information
+
+MODE must be one of the following:
+
+ clean remove files from the build directory
+ compile compile a source file into a libtool object
+ execute automatically set library path, then run a program
+ finish complete the installation of libtool libraries
+ install install libraries or executables
+ link create a library or an executable
+ uninstall remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool@gnu.org>."
+ exit $EXIT_SUCCESS
+ ;;
+
+clean)
+ $echo \
+"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+compile)
+ $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
+ -prefer-pic try to building PIC objects only
+ -prefer-non-pic try to building non-PIC objects only
+ -static always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+ ;;
+
+execute)
+ $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+ -dlopen FILE add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+ ;;
+
+finish)
+ $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges. Use
+the \`--dry-run' option if you just want to see what would be executed."
+ ;;
+
+install)
+ $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command. The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+ ;;
+
+link)
+ $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+ -all-static do not do any dynamic linking at all
+ -avoid-version do not add a version suffix if possible
+ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+ -export-symbols SYMFILE
+ try to export only the symbols listed in SYMFILE
+ -export-symbols-regex REGEX
+ try to export only the symbols matching REGEX
+ -LLIBDIR search LIBDIR for required installed libraries
+ -lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
+ -no-fast-install disable the fast-install mode
+ -no-install link a not-installable executable
+ -no-undefined declare that a library does not refer to external symbols
+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -objectlist FILE Use a list of object files found in FILE to specify objects
+ -precious-files-regex REGEX
+ don't remove output files matching REGEX
+ -release RELEASE specify package release information
+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
+ -static do not do any dynamic linking of libtool libraries
+ -version-info CURRENT[:REVISION[:AGE]]
+ specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename. Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+ ;;
+
+uninstall)
+ $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+*)
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+esac
+
+$echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit $?
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries. Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them. This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration. But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
-## $Id: changelog.am,v 1.1.4.1 2003/11/03 23:11:11 ensc Exp $ ---*- makefile -*---
+## $Id: changelog.am,v 1.3 2003/10/13 19:50:09 ensc Exp $ ---*- makefile -*---
## Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
-dnl $Id: ensc_cflags.m4,v 1.1.4.2 2004/03/04 03:12:34 ensc Exp $
+dnl $Id: ensc_cflags.m4,v 1.3 2004/03/04 03:00:42 ensc Exp $
dnl Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
dnl
-dnl $Id: ensc_changelog.m4,v 1.1.2.1 2003/11/03 23:11:11 ensc Exp $
+dnl $Id: ensc_changelog.m4,v 1.2 2003/11/04 01:31:56 ensc Exp $
dnl Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
dnl
--- /dev/null
+dnl $Id: ensc_cxxcompiler.m4,v 1.3 2005/04/10 00:52:57 ensc Exp $
+
+dnl Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; version 2 of the License.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+AC_DEFUN([ENSC_CXXCOMPILER],
+[
+ AC_REQUIRE([AC_PROG_CXX])
+
+ AC_CACHE_CHECK([whether $CXX is a C++ compiler], [ensc_cv_cxx_cxxcompiler],
+ [
+ AC_LANG_PUSH(C++)
+ AC_COMPILE_IFELSE([
+ #include <ostream>
+ ],
+ [ensc_cv_cxx_cxxcompiler=yes],
+ [ensc_cv_cxx_cxxcompiler=no])
+ AC_LANG_POP(C++)
+ ])
+
+ AM_CONDITIONAL(ENSC_HAVE_CXX_COMPILER,
+ [test x"$ensc_cv_cxx_cxxcompiler" = xyes])
+
+ if test x"$ensc_cv_cxx_cxxcompiler" = xno; then
+ AC_MSG_WARN([*** some programs will not be built because a C++ compiler is lacking])
+ fi
+])
+
+AC_DEFUN([ENSC_C99COMPILER],
+[
+ AC_REQUIRE([AC_PROG_CC])
+
+ AC_CACHE_CHECK([whether $CC is a C99 compiler], [ensc_cv_c99_c99compiler],
+ [
+ AC_LANG_PUSH(C)
+ AC_COMPILE_IFELSE([
+int main(int argc, char *argv[]) {
+ struct { int x; } a = { .x = argc };
+ if (0) return 0;
+ int b;
+}
+ ],
+ [ensc_cv_c99_c99compiler=yes],
+ [ensc_cv_c99_c99compiler=no])
+ AC_LANG_POP(C)
+ ])
+
+ AM_CONDITIONAL(ENSC_HAVE_C99_COMPILER,
+ [test x"$ensc_cv_c99_c99compiler" = xyes])
+
+ if test x"$ensc_cv_c99_c99compiler" = xno; then
+ AC_MSG_WARN([*** some programs will not be built because system is lacking a C99 compiler])
+ fi
+])
--- /dev/null
+dnl $Id: ensc_dietlibc.m4,v 1.15 2005/05/05 19:13:52 ensc Exp $
+
+dnl Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; version 2 of the License.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+AC_DEFUN([_ENSC_DIETLIBC_C99],
+[
+ AH_TEMPLATE([ENSC_DIETLIBC_C99], [Define to 1 if dietlibc supports C99])
+
+ AC_CACHE_CHECK([whether dietlibc supports C99], [ensc_cv_c_dietlibc_c99],
+ [
+ _ensc_dietlibc_c99_old_CFLAGS=$CFLAGS
+ _ensc_dietlibc_c99_old_CC=$CC
+
+ CFLAGS="-std=c99"
+ CC="${DIET:-diet} $CC"
+
+ AC_LANG_PUSH(C)
+ AC_COMPILE_IFELSE([/* */],[
+ AC_COMPILE_IFELSE([
+ #include <stdint.h>
+ #include <sys/cdefs.h>
+ #if defined(inline)
+ # error 'inline' badly defined
+ #endif
+ volatile uint64_t a;
+ ],
+ [ensc_cv_c_dietlibc_c99=yes],
+ [ensc_cv_c_dietlibc_c99=no])],
+ [ensc_cv_c_dietlibc_c99='skipped (compiler does not support C99)'])
+ AC_LANG_POP
+
+ CC=$_ensc_dietlibc_c99_old_CC
+ CFLAGS=$_ensc_dietlibc_c99_old_CFLAGS
+ ])
+
+ if test x"$ensc_cv_c_dietlibc_c99" = xyes; then
+ AC_DEFINE(ENSC_DIETLIBC_C99,1)
+ fi
+])
+
+dnl Usage: ENSC_ENABLE_DIETLIBC(<conditional>[,<min-version>])
+dnl <conditional> ... automake-conditional which will be set when
+dnl dietlibc shall be enabled
+dnl provides:
+dnl * $ENSC_VERSION_DIETLIBC_NUM and
+dnl * $ENSC_VERSION_DIETLIBC
+
+AC_DEFUN([ENSC_ENABLE_DIETLIBC],
+[
+ AC_MSG_CHECKING([whether to enable dietlibc])
+
+ AC_ARG_VAR(DIET, [The 'diet' wrapper (default: diet)])
+ AC_ARG_VAR(DIETFLAGS, [Flags passed to the 'diet' wrapper (default: -O)])
+
+ : ${DIET:=diet}
+ : ${DIETFLAGS=-Os}
+
+ AC_ARG_ENABLE([dietlibc],
+ [AS_HELP_STRING([--disable-dietlibc],
+ [do not use dietlibc resp. enforce its usage
+ (with --enable-dietlibc) (default: autodetect dietlibc)])],
+ [case "$enableval" in
+ (yes) use_dietlibc=forced;;
+ (no) use_dietlibc=forced_no;;
+ (*) AC_MSG_ERROR(['$enableval' is not a valid value for --enable-dietlibc]);;
+ esac],
+ [which "$DIET" >/dev/null 2>/dev/null && use_dietlibc=detected || use_dietlibc=detected_no])
+
+ if test "$use_dietlibc" = detected -a "$2"; then
+ _dietlibc_ver=$($DIET -v 2>&1 | sed '1p;d')
+ _dietlibc_ver=${_dietlibc_ver##*diet version }
+ _dietlibc_ver=${_dietlibc_ver##*dietlibc-}
+ _dietlibc_ver_maj=${_dietlibc_ver%%.*}
+ _dietlibc_ver_min=${_dietlibc_ver##*.}
+ _dietlibc_ver_min=${_dietlibc_ver_min%%[[!0-9]]*}
+ _dietlibc_cmp="$2"
+ _dietlibc_cmp_maj=${_dietlibc_cmp%%.*}
+ _dietlibc_cmp_min=${_dietlibc_cmp##*.}
+
+ ENSC_VERSION_DIETLIBC=$_dietlibc_ver_maj.$_dietlibc_ver_min
+
+ let _dietlibc_ver=_dietlibc_ver_maj*1000+_dietlibc_ver_min 2>/dev/null || _dietlibc_ver=0
+ let _dietlibc_cmp=_dietlibc_cmp_maj*1000+_dietlibc_cmp_min
+
+ test $_dietlibc_ver -ge $_dietlibc_cmp || use_dietlibc=detected_old
+ else
+ ENSC_VERSION_DIETLIBC=
+ _dietlibc_ver=-1
+ fi
+
+ ENSC_VERSION_DIETLIBC_NUM=$_dietlibc_ver
+ ensc_have_dietlibc=no
+
+ case x"$use_dietlibc" in
+ xdetected)
+ AM_CONDITIONAL($1, true)
+ AC_MSG_RESULT([yes (autodetected, $ENSC_VERSION_DIETLIBC)])
+ ensc_have_dietlibc=yes
+ ;;
+ xforced)
+ AM_CONDITIONAL($1, true)
+ AC_MSG_RESULT([yes (forced)])
+ ensc_have_dietlibc=yes
+ ;;
+ xdetected_no)
+ AM_CONDITIONAL($1, false)
+ AC_MSG_RESULT([no (detected)])
+ ;;
+ xdetected_old)
+ AM_CONDITIONAL($1, false)
+ AC_MSG_RESULT([no (too old; $2+ required, $ENSC_VERSION_DIETLIBC found)])
+ ;;
+ xforced_no)
+ AM_CONDITIONAL($1, false)
+ AC_MSG_RESULT([no (forced)])
+ ;;
+ *)
+ AC_MSG_ERROR([internal error, use_dietlibc was "$use_dietlibc"])
+ ;;
+ esac
+
+ if test x"$ensc_have_dietlibc" != xno; then
+ _ENSC_DIETLIBC_C99
+ fi
+])
+
+
+dnl Usage: ENSC_DIETLIBC_SANITYCHECK
+AC_DEFUN([ENSC_DIETLIBC_SANITYCHECK],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([ENSC_ENABLE_DIETLIBC])
+
+ if test "$host_cpu" = x86_64 -a $ENSC_VERSION_DIETLIBC_NUM -le 0027; then
+ AC_MSG_WARN([*** ***])
+ AC_MSG_WARN([*** dietlibc<=0.27 is known to be broken for x86_64 systems ***])
+ AC_MSG_WARN([*** please make sure that at least the environ.S fix is applied ***])
+ AC_MSG_WARN([*** and lib/__nice.c added ***])
+ AC_MSG_WARN([*** ***])
+ fi
+])
--- /dev/null
+dnl $Id: ensc_dietlibc_compat.m4,v 1.4 2005/04/24 20:28:23 ensc Exp $
+
+dnl Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; version 2 of the License.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+AC_DEFUN([ENSC_DIETLIBC_NEED_COMPAT],
+[
+ AC_REQUIRE([ENSC_ENABLE_DIETLIBC])
+ AC_REQUIRE([ENSC_SYSCALL_ALTERNATIVE])
+ AC_CACHE_CHECK([whether dietlibc needs '-lcompat'], [ensc_cv_c_dietlibc_compat],
+ [
+ AC_LANG_PUSH(C)
+ ensc_dietlibc_need_compat_old_CC=$CC
+ CC="${DIET:-diet} $CC"
+ AC_LINK_IFELSE([
+ AC_LANG_PROGRAM([
+#include "$srcdir/lib/syscall-wrap.h"
+#include <errno.h>
+
+#define __NR_foo0 42
+#define __NR_foo1 42
+#define __NR_foo2 42
+#define __NR_foo3 42
+#define __NR_foo4 42
+#define __NR_foo5 42
+inline static _syscall0(int, foo0)
+inline static _syscall1(int, foo1, int, a)
+inline static _syscall2(int, foo2, int, a, int, b)
+inline static _syscall3(int, foo3, int, a, int, b, int, c)
+inline static _syscall4(int, foo4, int, a, int, b, int, c, int, d)
+inline static _syscall5(int, foo5, int, a, int, b, int, c, int, d, int, e)
+],
+ [foo0(); foo1(0); foo2(0,0); foo3(0,0,0); foo4(0,0,0,0); foo5(0,0,0,0,0);])],
+ [ensc_cv_c_dietlibc_compat=no],
+ [ensc_cv_c_dietlibc_compat=yes])
+ CC=$ensc_dietlibc_need_compat_old_CC
+ AC_LANG_POP
+ ])
+
+ if test x"$1" != x; then
+ AM_CONDITIONAL($1, test x"$ensc_cv_c_dietlibc_compat" = xyes)
+ fi
+])
-dnl $Id: ensc_e2fscheck.m4,v 1.1.2.2 2004/02/19 22:56:27 ensc Exp $
+dnl $Id: ensc_e2fscheck.m4,v 1.3 2004/02/19 22:31:04 ensc Exp $
dnl Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
dnl
--- /dev/null
+dnl $Id: ensc_initrddir.m4,v 1.2 2005/03/09 14:42:39 ensc Exp $
+
+dnl Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; version 2 of the License.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+dnl Usage: ENSC_INITRDDIR(<variable>)
+
+AC_DEFUN([ENSC_INITRDDIR],
+[
+ AC_MSG_CHECKING([for initrddir])
+ AC_ARG_WITH([initrddir],
+ [AC_HELP_STRING([--with-initrddir <DIR>],
+ [use <DIR> as directory for SysV init-files (default: $sysconfdir/init.d)])],
+ [case "$withval" in
+ yes|no) AC_MSG_ERROR(['$withval' is not a valid value for '--with-initrddir']);;
+ *) ensc_initrddir=$withval;;
+ esac],
+ [ensc_initrddir='$(sysconfdir)/init.d'])
+
+ if test "$1"; then
+ $1=$ensc_initrddir
+ AC_SUBST($1)
+ fi
+
+ AC_MSG_RESULT($ensc_initrddir)
+])
+
-dnl $Id: ensc_kerneldir.m4,v 1.1.2.3 2004/03/04 03:12:34 ensc Exp $
+dnl $Id: ensc_kerneldir.m4,v 1.3 2004/02/14 01:20:35 ensc Exp $
dnl Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
dnl
--- /dev/null
+dnl $Id: ensc_pathprog.m4,v 1.2 2005/02/02 14:09:28 ensc Exp $
+
+dnl Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; version 2 of the License.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+dnl Usage: ENSC_SET_SEARCHPATH(<PATH>)
+AC_DEFUN([ENSC_SET_SEARCHPATH],
+[
+ ensc_searchpath="$1"
+])
+
+dnl Usage: ENSC_PATHPROG_INIT
+AC_DEFUN([ENSC_PATHPROG_INIT],
+[
+ ENSC_PATHPROG_SED=
+ AC_SUBST([ENSC_PATHPROG_SED])
+])
+
+
+dnl Usage: ENSC_PATHPROG(<VAR>, <PROG>[, <DFLT>, <DESCR>])
+AC_DEFUN([ENSC_PATHPROG],
+[
+ AC_REQUIRE([ENSC_SET_SEARCHPATH])
+ AC_REQUIRE([ENSC_PATHPROG_INIT])
+
+ if test -z "$3"; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt="$3"
+ fi
+
+ AC_PATH_PROGS($1, [$2], [$ensc_dflt], [$ensc_searchpath])
+
+ if test -z "${$1}" && $rq; then
+ if test -z "$4"; then
+ AC_MSG_ERROR([Can not find the '$2' tool within '${ensc_searchpath:-$PATH}'.])
+ else
+ AC_MSG_ERROR([
+Can not find the '$2' tool within '${ensc_searchpath:-$PATH}'.
+$4])
+ fi
+ fi
+
+ test "${$1}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'$1'@!${$1}!g;"
+
+ test "${$1}"])
+
+
+
+dnl Usage: ENSC_PATHPROG_STANDARD_TOOLS)
+AC_DEFUN([ENSC_PATHPROG_STANDARD_TOOLS],
+[
+ ENSC_PATHPROG(AWK, awk)
+ ENSC_PATHPROG(CAT, cat)
+ ENSC_PATHPROG(CHOWN, chown)
+ ENSC_PATHPROG(CMP, cmp)
+ ENSC_PATHPROG(CP, cp)
+ ENSC_PATHPROG(DIRNAME, dirname)
+ ENSC_PATHPROG(EGREP, egrep)
+ ENSC_PATHPROG(ENV, env)
+ ENSC_PATHPROG(GREP, grep)
+ ENSC_PATHPROG(LN, ln)
+ ENSC_PATHPROG(MKDIR, mkdir)
+ ENSC_PATHPROG(MKFIFO, mkfifo)
+ ENSC_PATHPROG(MKTEMP, mktemp)
+ ENSC_PATHPROG(MOUNT, mount)
+ ENSC_PATHPROG(MV, mv)
+ ENSC_PATHPROG(NICE, nice)
+ ENSC_PATHPROG(PS, ps)
+ ENSC_PATHPROG(RM, rm)
+ ENSC_PATHPROG(RMDIR, rmdir)
+ ENSC_PATHPROG(SED, sed)
+ ENSC_PATHPROG(SH, sh)
+ ENSC_PATHPROG(TAC, tac)
+ ENSC_PATHPROG(TAR, tar)
+ ENSC_PATHPROG(TOUCH, touch)
+ ENSC_PATHPROG(TTY, tty)
+ ENSC_PATHPROG(UMOUNT, umount)
+ ENSC_PATHPROG(WC, wc)
+])
+
--- /dev/null
+dnl $Id: ensc_personality.m4,v 1.1 2005/07/15 19:40:15 ensc Exp $
+
+dnl Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; version 2 of the License.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+dnl Usage: ENSC_CHECK_PERSONALITY_FLAGS
+AC_DEFUN([ENSC_CHECK_PERSONALITY_FLAGS],
+[
+ AC_MSG_CHECKING([for declarations in <linux/personality.h>])
+ AC_MSG_RESULT([])
+
+ AC_LANG_PUSH(C)
+ AC_CHECK_DECLS([MMAP_PAGE_ZERO, ADDR_LIMIT_32BIT, SHORT_INODE,
+ WHOLE_SECONDS, STICKY_TIMEOUTS, ADDR_LIMIT_3GB],
+ [],[],
+ [
+#include <linux/personality.h>
+ ])
+
+ AC_CHECK_DECLS([PER_LINUX, PER_LINUX_32BIT, PER_SVR4, PER_SVR3,
+ PER_SCOSVR3, PER_OSR5, PER_WYSEV386, PER_ISCR4,
+ PER_BSD, PER_SUNOS, PER_XENIX, PER_LINUX32,
+ PER_LINUX32_3GB, PER_IRIX32, PER_IRIXN32,
+ PER_IRIX64, PER_RISCOS, PER_SOLARIS, PER_UW7,
+ PER_HPUX, PER_OSF4],
+ [], [],
+ [
+#include <linux/personality.h>
+ ])
+ AC_LANG_POP
+])
+
--- /dev/null
+dnl $Id: ensc_release.m4,v 1.2 2003/12/26 00:22:49 uid68581 Exp $
+
+dnl Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; version 2 of the License.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+dnl Usage: ENSC_RELEASE(<cppflag-variable>)
+dnl <cppflag-variable> ... name of variable which will get the preprocessor
+dnl flags and which will be AC_SUBST'ed
+
+AC_DEFUN([ENSC_RELEASE],
+[
+ AC_MSG_CHECKING([whether to enable release-mode])
+ AC_ARG_ENABLE([release],
+ [AC_HELP_STRING([--enable-release],
+ [enable release mode (default: no)])],
+ [case "$enableval" in
+ yes) ensc_release_mode=yes;;
+ no) ensc_release_mode=no;;
+ *) AC_MSG_ERROR(['$enableval' is not a valid value for '--enable-release']);;
+ esac],
+ [ ensc_release_mode=no ])
+
+ if test x"$ensc_release_mode" = xno; then
+ $1=
+ else
+ $1='-DNDEBUG'
+ fi
+
+ AC_SUBST($1)
+ AC_MSG_RESULT($ensc_release_mode)
+])
-dnl $Id: ensc_syscall.m4,v 1.2.2.2 2004/03/04 03:12:34 ensc Exp $
+dnl $Id: ensc_syscall.m4,v 1.6 2005/05/19 18:04:12 ensc Exp $
dnl Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
dnl
dnl Usage: ENSC_SYSCALL
+AC_DEFUN([ENSC_SYSCALL_ALTERNATIVE],
+[
+ AC_MSG_CHECKING([whether to use alternative _syscallX macros])
+ AC_ARG_ENABLE([alternative-syscalls],
+ [AC_HELP_STRING([--disable-alternative-syscalls],
+ [do not use the alternative _syscallX macros
+ provided by Herbert Poetzl (default: use them)])],
+ [case $enableval in
+ (yes|no) ensc_use_alternative_syscall_macros=$enableval;;
+ (*) AC_MSG_ERROR(['$enableval' is not a valid value for '--disable-alternative-syscalls']);;
+ esac],
+ [ensc_use_alternative_syscall_macros=yes])
+
+ case $ensc_use_alternative_syscall_macros in
+ (yes) AC_DEFINE(ENSC_USE_ALTERNATIVE_SYSCALL_MACROS, 1, [Use alternative _syscallX macros]);;
+ esac
+
+ AC_MSG_RESULT([$ensc_use_alternative_syscall_macros])
+])
+
AC_DEFUN([ENSC_SYSCALL],
[
AC_REQUIRE([ENSC_KERNEL_HEADERS])
+ AC_REQUIRE([ENSC_SYSCALL_ALTERNATIVE])
+
AC_MSG_CHECKING([for syscall(2) invocation method])
AC_ARG_WITH([syscall],
[AC_HELP_STRING([--with-syscall=METHOD],
AC_MSG_RESULT([$with_syscall])
case x"$with_syscall" in
- xauto)
+ (xauto)
AC_CACHE_CHECK([which syscall(2) invocation works], [ensc_cv_test_syscall],
[
AC_LANG_PUSH(C)
- AC_COMPILE_IFELSE([
-#include <asm/unistd.h>
-#include <syscall.h>
+ AC_COMPILE_IFELSE(AC_LANG_SOURCE([
+#include "$srcdir/lib/syscall-wrap.h"
#include <errno.h>
+
#define __NR_foo0 300
#define __NR_foo1 301
#define __NR_foo2 302
foo4(1,2,3,4) || \
foo5(1,2,3,4,5);
}
- ],
+ ]),
[ensc_cv_test_syscall=fast],
[ensc_cv_test_syscall=traditional])
])
with_syscall=$ensc_cv_test_syscall
;;
- xfast|xtraditional)
+ (xfast|xtraditional)
;;
*)
AC_MSG_ERROR(['$with_syscall' is not a valid value for '--with-syscall'])
;;
esac
+ if test x"$with_syscall $ensc_use_alternative_syscall_macros" = 'xfast yes'; then
+ with_syscall='alternative'
+ fi
+
if test x"$with_syscall" = xtraditional; then
AC_DEFINE(ENSC_SYSCALL_TRADITIONAL, 1, [Define to 1 when the fast syscall(2) invocation does not work])
fi
-dnl $Id: ensc_syscallnr.m4,v 1.1.2.5 2004/03/09 04:16:21 ensc Exp $
+dnl $Id: ensc_syscallnr.m4,v 1.6 2004/03/08 19:55:28 ensc Exp $
dnl Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
dnl
-dnl $Id: ensc_uv_vrootdir.m4,v 1.1.2.2 2004/01/26 18:21:28 ensc Exp $
+dnl $Id: ensc_uv_vrootdir.m4,v 1.2 2003/12/26 00:22:49 uid68581 Exp $
dnl Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
dnl
-## $Id: gpgsig.am,v 1.1 2003/09/29 22:01:57 ensc Exp $
+## $Id: gpgsig.am,v 1.2 2004/05/21 15:46:40 ensc Exp $
## Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
gpgsig:
- gpg --armor --detach-sign $(distdir).tar.bz2
+ gpgkey=$(GPG_KEY); \
+ gpg $${gpgkey:+--default-key "$$gpgkey"} --armor --detach-sign $(distdir).tar.bz2
--- /dev/null
+## $Id: install-notify.am,v 1.2 2005/05/05 09:17:41 ensc Exp $
+
+## Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+
+install-exec-hook install-data-hook: install-notify-xtra
+
+
+install-notify-xtra:
+ @echo
+ @echo
+ @echo '***************************'
+ @echo '*'
+ @echo '* NOTE: a plain "make install" installs only the files under $$(prefix)'
+ @echo '* which might be insufficient. To complete the installation,'
+ @echo '* "make install-distribution" should be executed. See README,'
+ @echo '* "Notes for distributors" for details.'
+ @echo '*'
+ @echo '***************************'
+ @echo
+ @echo
+
+
+.PHONY: install-notify-xtra
--- /dev/null
+## $Id: libsel.am,v 1.1 2005/04/10 00:53:56 ensc Exp $
+
+## Copyright (C) 2002,2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+##
+
+
+if !ENSC_USE_DIETLIBC
+nodist_lib_dietlibc_not_enabled_error_a_SOURCES = \
+ lib-dietlibc-not-enabled-error.c
+endif
+
+if !ENSC_USE_GLIBC
+nodist_lib_glibc_not_enabled_error_a_SOURCES = \
+ lib-glibc-not-enabled-error.c
+endif
+
+# if !ENSC_USE_DIETLIBC
+# if !ENSC_USE_GLIBC
+# nodist_lib_nolib_enabled_error_a_SOURCES = \
+# lib-nolib-enabled-error.c
+# endif
+# endif
+
+
+.PHONY: lib-glibc-not-enabled-error.a \
+ lib-glibc-not-enabled-error.c \
+ lib-dietlibc-not-enabled-error.a \
+ lib-dietlibc-not-enabled-error.c \
+ lib-nolib-enabled-error.a \
+ lib-nolib-enabled-error.c
--- /dev/null
+## $Id: pkgconfig.am,v 1.1 2003/10/13 19:50:29 ensc Exp $ ---*- makefile -*---
+
+## Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+##
+
+BAD_INC_PATHS = /usr/include|/usr/local/include
+BAD_LIB_PATHS = /usr/lib
+
+pkgconfdir = $(libdir)/pkgconfig
+pkgconf_DATA = $(addsuffix .pc, $(PKGCONFIG_FILES))
+
+CLEANFILES += $(addsuffix .pc, $(PKGCONFIG_FILES))
+EXTRA_DIST += $(addsuffix .pc.subst, $(PKGCONFIG_FILES))
+
+
+%.pc: %.pc.subst Makefile
+ rm -f $@
+ @case '$(libdir)' in \
+ $(BAD_LIB_PATHS)) libflags=;; \
+ *) libflags='-L$${libdir} ';; \
+ esac; \
+ case '$(pkgincludedir)' in \
+ $(BAD_INC_PATHS)) pkgincflags=;; \
+ *) pkgincflags='-I$${pkgincludedir} ';; \
+ esac; \
+ case '$(includedir)' in \
+ $(BAD_INC_PATHS)) incflags=;; \
+ *) incflags='-I$${includedir} ';; \
+ esac; \
+ sed -e 's!@'PACKAGE'@!$(PACKAGE)!g; \
+ s!@'VERSION'@!$(VERSION)!g; \
+ s!@'prefix'@!$(prefix)!g; \
+ s!@'exec_prefix'@!$(exec_prefix)!g; \
+ s!@'libdir'@!$(libdir)!g; \
+ s!@'includedir'@!$(includedir)!g; \
+ s!@'libflags"@!$${libflags}$(pkgconf_LIBFLAGS)!g;"' \
+ s!@'incflags"@!$${incflags}$(pkgconf_INCFLAGS)!g;"' \
+ s!@'pkgincflags"@!$${pkgincflags}$(pkgconf_PKGINCFLAGS)!g;"' \
+ s!@'pkgincludedir'@!$(pkgincludedir)!g' \
+ $< >$@
+ test -z "$(CHMOD_REFERENCE)" || $(CHMOD_REFERENCE) '$<' '$@'
+ chmod a-w $@
-## $Id: validate.am,v 1.1.4.2 2004/03/04 03:12:34 ensc Exp $ ---*- makefile -*---
+## $Id: validate.am,v 1.3 2004/01/14 00:01:15 ensc Exp $ ---*- makefile -*---
## Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
-## $Id: Makefile-files,v 1.1.4.1 2003/10/30 01:34:24 ensc Exp $ -*- makefile -*-
+## $Id: Makefile-files,v 1.4 2004/03/10 02:30:34 ensc Exp $ -*- makefile -*-
## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
-man_DATMAN = man/chbind.8 \
+man_pages = man/chbind.8 \
man/chcontext.8 \
man/distrib-info.8 \
man/rebootmgr.8 \
man/reducecap.8 \
man/vps.8 \
man/vpstree.8 \
- man/vrpm.8 \
man/vserver-copy.8 \
man/vserver-stat.8 \
man/vserver.8 \
man/vtop.8
+
+man_MANS += $(man_pages)
+EXTRA_DIST += $(man_pages)
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-scriptversion=2003-09-02.23
+scriptversion=2005-02-08.22
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
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 "\
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
Send bug reports to <bug-automake@gnu.org>."
+ exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
+ exit $?
;;
-*)
exit 1
;;
- aclocal*)
+esac
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).
+case "$1" in
+ lex|yacc)
+ # Not GNU programs, they don't have --version.
+ ;;
+
+ tar)
+ if test -n "$run"; then
+ echo 1>&2 "ERROR: \`tar' requires --run"
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ exit 1
+ fi
+ ;;
+
+ *)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running `$TOOL --version' or `$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
fi
+ ;;
+esac
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+ aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
;;
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
;;
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
;;
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}'.
;;
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
;;
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
;;
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
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
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
--- /dev/null
+// $Id: pathconfig.h.pathsubst,v 1.11 2004/08/19 14:06:59 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_PATHCONFIG_H
+#define H_UTIL_VSERVER_PATHCONFIG_H
+
+#define PKGLIBDIR "@PKGLIBDIR@"
+#define SBINDIR "@SBINDIR@"
+#define CONFDIR "@CONFDIR@"
+#define SYSCONFDIR "@SYSCONFDIR@"
+#define LOCKDIR "/var/lock"
+#define PKGLIBDEFAULTDIR PKGLIBDIR "/defaults"
+
+#define DEFAULT_VSERVERDIR "@VSERVERDIR@"
+#define DEFAULT_VSERVERPKGDIR "@VSERVERPKGDIR@"
+#define DEFAULT_PKGSTATEDIR "@PKGSTATEDIR@"
+#define DEFAULT_PKGSTATEREVDIR "@PKGSTATEREVDIR@"
+
+#define MOUNT_PROG "@MOUNT@"
+#define UMOUNT_PROG "@UMOUNT@"
+#define PS_PROG "@PS@"
+
+#define VPKG_PROG PKGLIBDIR "/vpkg"
+#define RESOLVER_PROG PKGLIBDIR "/rpm-fake-resolver"
+
+#define PROG_IP "@IP@"
+#define PROG_MODPROBE "@MODPROBE@"
+#define PROG_NAMEIF "@NAMEIF@"
+#define PROG_VCONFIG "@VCONFIG@"
+
+#define PROG_SECURE_MOUNT PKGLIBDIR "/secure-mount"
+
+#define PATH_VSERVER_START PKGLIBDIR "/vserver.start"
+#define PATH_FUNCTIONS PKGLIBDIR "/functions"
+#define PATH_UTILVSERVER_VARS PKGLIBDIR "/util-vserver-vars"
+
+#endif // H_UTIL_VSERVER_PATHCONFIG_H
-## $Id: Makefile-files,v 1.1.4.3 2003/12/03 00:06:37 ensc Exp $ -*- makefile -*-
+## $Id: Makefile-files,v 1.33 2005/04/28 17:45:34 ensc Exp $ -*- makefile -*-
## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
-scriptscfgdir = $(sbindir)
-
-scripts_src_SCRPTS = scripts/distrib-info \
- scripts/rootshell \
- scripts/save_s_context \
- scripts/vprofile \
- scripts/vserverkillall \
- scripts/vservers.grabinfo.sh \
- scripts/vsysvwrapper
-scripts_gen_SCRPTS =
-
-scripts_src_LEGSCRPTS = scripts/vunify.sh
-scripts_gen_LEGSCRPTS = scripts/vkill
-
-
-scripts_src_PRGS = scripts/vpstree \
- scripts/vrpm \
- scripts/vserver \
- scripts/vserver-copy \
- scripts/vtop
-scripts_gen_PRGS = scripts/vps
-
-scripts_PRGS = $(scripts_src_PRGS) $(scripts_gen_PRGS)
-scripts_SCRPTS = $(scripts_src_SCRPTS) $(scripts_gen_SCRPTS)
-scripts_LEGSCRPTS = $(scripts_src_LEGSCRPTS) $(scripts_gen_LEGSCRPTS)
-scriptscfg_DATA = scripts/util-vserver-vars
-
-scripts_XTRAS = scripts/util-vserver-vars.subst \
- scripts/vkill.subst \
- scripts/vps.subst \
- $(scripts_src_SCRPTS) $(scripts_src_PRGS) \
- $(scripts_src_LEGSCRPTS)
-
-scripts_GENSCRPTS = scripts/util-vserver-vars \
- $(scripts_gen_SCRPTS) $(scripts_gen_PRGS) \
- $(scripts_gen_LEGSCRPTS)
-
-scripts/%: scripts/%.subst
- @mkdir -p $$(dirname '$@')
- sed -e 's!@'PKGLIBDIR'@!$(pkglibdir)!g; \
- s!@'SBINDIR'@!$(sbindir)!g; \
- s!@'VSERVERDIR'@!$(vserverdir)!g' '$<' >'$@.tmp'
- @-chmod --reference='$<' '$@.tmp'
- @-rm -f '$@'
- mv '$@.tmp' '$@'
- @chmod a-w '$@'
+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT += \
+ scripts/vapt-get-worker \
+ scripts/vrpm-worker \
+ scripts/vyum-worker \
+ scripts/vrpm-preload \
+ scripts/save_s_context \
+ scripts/vservers.grabinfo.sh \
+ scripts/vpstree \
+ scripts/vserver-wrapper \
+ scripts/vsysvwrapper \
+ scripts/vtop \
+ scripts/legacy/distrib-info \
+ scripts/legacy/vps \
+ scripts/legacy/save_s_context \
+ scripts/legacy/vserver \
+ scripts/legacy/rootshell \
+ scripts/legacy/vserver-copy \
+ scripts/legacy/vserverkillall
+
+
+scripts_pkglib_src_DTA = scripts/functions \
+ scripts/vserver-build.apt-rpm \
+ scripts/vserver-build.skeleton \
+ scripts/vserver-build.debootstrap \
+ scripts/vserver-build.rpm \
+ scripts/vserver-build.yum \
+ scripts/vserver-build.functions \
+ scripts/vserver-build.functions.apt \
+ scripts/vserver-build.functions.rpm \
+ scripts/vserver-build.functions.pkgmgmt \
+ scripts/vserver-build.functions.yum \
+ scripts/vserver-setup.functions \
+ scripts/vserver.functions \
+ scripts/vserver.start \
+ scripts/vserver.stop \
+ scripts/vserver.suexec
+
+scripts_pkglib_gen_DTA = scripts/util-vserver-vars
+
+scripts_pkglib_src_SCRPTS = scripts/pkgmgmt \
+ scripts/vapt-get-worker \
+ scripts/vpkg \
+ scripts/vrpm-worker \
+ scripts/vrpm-preload \
+ scripts/start-vservers \
+ scripts/vprocunhide \
+ scripts/vserver-build \
+ scripts/vserver-wrapper \
+ scripts/vservers.grabinfo.sh \
+ scripts/vshelper \
+ scripts/vsysvwrapper \
+ scripts/vyum-worker
+
+scripts_legacy_src_SCRPTS = scripts/legacy/save_s_context \
+ scripts/legacy/vserver \
+ scripts/legacy/rootshell \
+ scripts/legacy/distrib-info \
+ scripts/legacy/vserverkillall
+scripts_legacy_gen_SCRPTS = scripts/legacy/vps
+scripts_legacy_src_PRGS = scripts/legacy/vserver-copy
+
+scripts_sbin_src_PRGS = scripts/chcontext \
+ scripts/vapt-get \
+ scripts/vpstree \
+ scripts/vrpm \
+ scripts/vserver \
+ scripts/vsomething \
+ scripts/vtop \
+ scripts/vyum
+
+scripts_sbin_gen_PRGS =
+scripts_sbincfg_gen_DTA =
+
+scripts_subst_SRCS = scripts/util-vserver-vars.pathsubst \
+ scripts/legacy/vps.pathsubst
+
+
+
+sbin_SCRIPTS += $(scripts_sbin_src_PRGS) $(scripts_sbin_gen_PRGS) \
+ $(scripts_legacy_src_PRGS)
+scripts_sbincfg_DTA = $(scripts_sbincfg_gen_DTA)
+pkglib_SCRIPTS += $(scripts_pkglib_src_SCRPTS)
+legacy_SCRIPTS += $(scripts_legacy_src_SCRPTS) $(scripts_legacy_gen_SCRPTS)
+pkglib_DATA += $(scripts_pkglib_src_DTA) $(scripts_pkglib_gen_DTA)
+
+CLEANFILES += $(scripts_pkglib_gen_DTA) \
+ $(scripts_sbin_gen_PRGS) \
+ $(scripts_sbincfg_gen_DTA) \
+ $(scripts_legacy_gen_SCRPTS)
+
+EXTRA_DIST += $(scripts_pkglib_src_DTA) \
+ $(scripts_pkglib_src_SCRPTS) \
+ $(scripts_legacy_src_SCRPTS) \
+ $(scripts_legacy_src_PRGS) \
+ $(scripts_sbin_src_PRGS) \
+ $(scripts_subst_SRCS)
+
+scripts/util-vserver-vars: scripts/.util-vserver-vars.pathsubst.stamp
+scripts/legacy/vps: scripts/legacy/.vps.pathsubst.stamp
--- /dev/null
+#! /bin/bash
+# $Id: chcontext,v 1.19 2005/04/08 19:14:47 ensc Exp $
+
+# Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+function showHelp()
+{
+ echo \
+$"Usage: /usr/sbin/chcontext [--cap [!]<cap_name>] [--secure] [--xid <num>] [--disconnect]
+ [--domainname <name>] [--hostname <name>] [--flag <flags>+]
+ [--silent] [--] command arguments ...
+
+chcontext allocate a new security context and executes
+a command in that context.
+By default, a new/unused context is allocated
+
+--cap CAP_NAME
+ Add a capability from the command. This option may be
+ repeated several time.
+ See /usr/include/linux/capability.h
+ In general, this option is used with the --secure option
+ --secure removes most critical capabilities and --cap
+ adds specific ones.
+
+--cap !CAP_NAME
+ Remove a capability from the command. This option may be
+ repeated several time.
+ See /usr/include/linux/capability.h
+
+--xid num
+ Select the context. On root in context 0 is allowed to
+ select a specific context.
+ Context number 1 is special. It can see all processes
+ in any contexts, but can't kill them though.
+ Option --xid may be repeated several times to specify up to 16 contexts.
+--disconnect
+ Start the command in background and make the process
+ a child of process 1.
+--domainname new_domainname
+ Set the domainname (NIS) in the new security context.
+ Use "none" to unset the domain name.
+--flag
+ Set one flag in the new or current security context. The following
+ flags are supported. The option may be used several time.
+
+ fakeinit: The new process will believe it is process number 1.
+ Useful to run a real /sbin/init in a vserver.
+ lock: The new process is trapped and can't use chcontext anymore.
+ sched: The new process and its children will share a common
+ execution priority.
+ nproc: Limit the number of process in the vserver according to
+ ulimit setting. Normally, ulimit is a per user thing.
+ With this flag, it becomes a per vserver thing.
+ private: No one can join this security context once created.
+ ulimit: Apply the current ulimit to the whole context
+--hostname new_hostname
+ Set the hostname in the new security context
+ This is need because if you create a less privileged
+ security context, it may be unable to change its hostname
+--secure
+ Remove all the capabilities to make a virtual server trustable
+--silent
+ Do not print the allocated context number.
+
+Report bugs to <$PACKAGE_BUGREPORT>."
+ exit $1
+}
+
+function showVersion()
+{
+ echo \
+$"chcontext $PACKAGE_VERSION -- allocates/enters a security context
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2004 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit $1
+}
+
+$_VSERVER_INFO - FEATURE migrate || exec $_CHCONTEXT_COMPAT "$@"
+
+tmp=$(getopt -o + --long cap:,ctx:,xid:,disconnect,domainname:,flag:,hostname:,secure,silent,help,version -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+OPT_CAPS=()
+OPT_CTX=
+OPT_DISCONNECT=
+OPT_FLAGS=()
+OPT_SECURE=
+OPT_SILENT=
+OPT_INITPID=
+
+while true; do
+ case "$1" in
+ --help) showHelp $0 ;;
+ --version) showVersion ;;
+ --cap) OPT_CAPS=( "${OPT_CAPS[@]}" "$2" ); shift;;
+ --ctx|--xid) OPT_CTX=$2; shift;;
+ --disconnect) OPT_DISCONNECT=1;;
+ --domainname) OPT_DOMAINNAME=$2; shift;;
+ --hostname) OPT_HOSTNAME=$2; shift;;
+ --flag)
+ test "$2" != "fakeinit" || OPT_INITPID=--initpid
+ OPT_FLAGS=( "${OPT_FLAGS[@]}" "$2" )
+ shift
+ ;;
+ --secure) OPT_SECURE=1;;
+ --silent) OPT_SILENT=1;;
+ --) shift; break;;
+ *) echo $"chcontext: internal error; arg=='$1'" >&2; exit 1;;
+ esac
+ shift
+done
+
+create_cmd=( $_VCONTEXT --create --silentexist
+ ${OPT_SILENT:+--silent}
+ ${OPT_CTX:+--xid "$OPT_CTX"} )
+
+chain_cmd=()
+
+old_IFS=$IFS
+IFS=,$IFS
+
+test -z "$OPT_DOMAINNAME$OPT_HOSTNAME" || \
+ chain_cmd=( "${chain_cmd[@]}"
+ --
+ $_VUNAME --set --xid self
+ ${OPT_DOMAINNAME:+-t domainname="$OPT_DOMAINNAME"}
+ ${OPT_HOSTNAME:+ -t nodename="$OPT_HOSTNAME"} )
+
+chain_cmd=( "${chain_cmd[@]}"
+ --
+ $_VATTRIBUTE --set
+ ${OPT_CAPS:+--bcap "${OPT_CAPS[*]}"}
+ ${OPT_FLAGS:+--flag "${OPT_FLAGS[*]}"}
+ ${OPT_SECURE:+--secure} )
+
+migrate_cmd=( $_VCONTEXT
+ ${OPT_SILENT:+--silent}
+ ${OPT_DISCONNECT:+--disconnect}
+ $OPT_INITPID )
+
+IFS=$old_IFS
+
+if test -z "$OPT_CTX" || $_VSERVER_INFO -q "$OPT_CTX" XIDTYPE static; then
+ "${create_cmd[@]}" "${chain_cmd[@]}" -- \
+ "${migrate_cmd[@]}" --endsetup --migrate-self -- "$@"
+ rc=$?
+else
+ rc=254
+fi
+
+test "$rc" -ne 254 || exec "${migrate_cmd[@]}" --xid "$OPT_CTX" --migrate -- "$@"
+exit $rc
--- /dev/null
+# $Id: functions,v 1.62 2005/07/03 17:42:49 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+_VS_LOGFILE=
+_VS_ERRFILE=
+
+_VS_NEWLINE='
+'
+declare -r _VS_NEWLINE=${_VS_NEWLINE:0-1}
+declare -r VS_ALLVSERVERS_ARGS=all,marked,unmarked,stopped,running
+
+function findObject
+{
+ local _fo_mod=$1
+ local _fo_var=$2
+ local _fo_file=
+ local _fo_i=X
+ shift 2
+
+ for _fo_i; do
+ test -n "$_fo_i" || continue
+ test ! $_fo_mod "$_fo_i" || { _fo_file=$_fo_i; break; }
+ done
+
+ test -z "$_fo_i" -o -n "$_fo_file" || {
+ echo "Can not find file for '$_fo_var'; aborting"
+ exit 1
+ } >&2
+
+ eval "$_fo_var=\"$_fo_file\""
+}
+
+function findFile
+{
+ findObject -f "$@"
+}
+
+function findDir
+{
+ findObject -d "$@"
+}
+
+function findAndCopy
+{
+ local dst=$1
+ test ! -s "$dst" || return 0
+
+ local tmp
+ shift
+ findFile tmp "$@"
+
+ test -n "$tmp" -a -s "$tmp" || return 0
+ $_CP -af "$tmp" "$dst"
+}
+
+## Usage: isRegularFile <filename> [<mod>]
+function isRegularFile
+{
+ test ${2:--f} "$1" || return 1
+
+ case $1 in
+ (*.rpmsave|*.rpmnew|*.rpmorig|*.cfsaved*|*.~*~) return 1;;
+ esac
+
+ return 0
+}
+
+function getPhysicalDir
+{
+ ( set -P && cd "$1" && pwd )
+}
+
+## Usage: logging <message>
+function logging
+{
+ if test -n "$_VS_LOGFILE"; then
+ echo "$@" >>"$_VS_LOGFILE"
+ else
+ echo "$@"
+ fi
+}
+
+## Usage: warning <message>
+function warning
+{
+ if test -n "$_VS_ERRFILE"; then
+ echo "$@" >>"$_VS_ERRFILE"
+ else
+ echo "$@" >&2
+ fi
+}
+
+## Usage: panic <message>
+function panic
+{
+ if test -n "$_VS_ERRFILE"; then
+ echo "$@" >>"$_VS_ERRFILE"
+ else
+ echo "$@" >&2
+ fi
+
+ exit 1
+}
+
+## Usage: execute <message>
+function execute
+{
+ test -z "${DEBUG_EXEC:-}" || echo "$@"
+ test "${DEBUG_EXEC:-}" = noexec || exec "$@"
+ exit 0
+}
+
+
+## Usage: spawn <message>
+function spawn
+{
+ test -z "${DEBUG_EXEC:-}" || echo "$@"
+ test "${DEBUG_EXEC:-}" = noexec || "$@"
+}
+
+## Usage: isNumber <arg>
+function isNumber
+{
+ local tmp
+ let tmp=$1+0 2>/dev/null || test -z "${1//0/}" -a -n "$1" || return 1
+ return 0
+}
+
+## Usage: hasSubstring <haystack> <needle>+
+function hasSubstring
+{
+ local pat=$1
+ local i
+
+ shift
+
+ for i; do
+ test x"${pat/*$i*/$i}" = x"$i" || continue
+ return 0
+ done
+
+ return 1
+}
+
+## Usage: colorize <style> <command>
+function colorize
+{
+ local style=$1
+ shift
+
+ if ! $_TTY -s; then
+ "$@"
+ else
+ local cfile
+ findFile cfile "$__CONFDIR"/.defaults/styles/"$style" ''
+ if test -n "$cfile"; then
+ $_CAT "$cfile"
+ else
+ case "$style" in
+ (bold) echo -ne "\e[1m";;
+ (emph) echo -ne "\e[34m";;
+ (info) echo -ne "\e[0;34m";;
+ (warn*) echo -ne "\e[1;31m";;
+ (error) echo -ne "\e[1;33;41m";;
+ (*) ;;
+ esac
+ fi
+
+ "$@"
+ echo -ne "\e[m"
+ fi
+}
+
+## Usage: xtermTitle <title>
+function xtermTitle
+{
+ $_TTY -s || return 0
+ echo -ne "\e]0;$@\007"
+}
+
+_VS_LOCKS=''
+## Usage: lock <lockfile> [<timeout>]
+function lock
+{
+ local tmp=$($_MKTEMP /tmp/vserver-lock.XXXXXX)
+ $_RM -f $tmp
+ $_MKFIFO -m600 $tmp
+
+ $_LOCKFILE "$1" $tmp $2 &
+ $_GREP -q true $tmp 2>/dev/null || return 1
+
+ _VS_LOCKS="$! $_VS_LOCKS"
+}
+
+## Usage: unlock [<num>]
+function unlock
+{
+ local num=$1
+ local i
+
+ set -- $_VS_LOCKS
+ while test "$#" -gt 0; do
+ kill -HUP "$1" >/dev/null || :
+ shift
+ test "$num" != 1 || break
+ test -z "$num" || let --num
+ done
+ _VS_LOCKS="$@"
+}
+
+function _pkgMountBindDir()
+{
+ test "$1" != "$2" || return 0
+
+ $_MOUNT -n --bind "$1" "$2"
+}
+
+function _pkgSetVarsBase
+{
+ case "$vserver" in
+ ./*|/*)
+ if test -d "$vserver/vdir"; then
+ BASEDIR=$vserver
+ VDIR=$(getPhysicalDir "$vserver/vdir")
+
+ PKGDIR=$BASEDIR/apps/pkgmgmt
+ test -d "$PKGDIR" || {
+ echo "Can not find configuration-directory for package-managment tools"
+ exit 1
+ } >&2
+ findDir EXECDIR $PKGDIR/execdir /
+ else
+ VDIR=$(getPhysicalDir "$vserver")
+ PKGDIR=
+ fi
+ ;;
+ *)
+ BASEDIR=$__CONFDIR/$vserver
+ test -d "$BASEDIR" || {
+ echo "Can not find configuration-directory"
+ exit 1
+ } >&2
+
+ VDIR=$BASEDIR/vdir
+ test -d "$VDIR" || VDIR=$__DEFAULT_VSERVERDIR/$vserver
+ VDIR=$(getPhysicalDir "$VDIR")
+
+ PKGDIR=$BASEDIR/apps/pkgmgmt
+ test -d "$PKGDIR" || {
+ echo "Can not find configuration-directory for package-managment tools"
+ exit 1
+ } >&2
+
+ findDir EXECDIR $PKGDIR/execdir /
+
+ ;;
+ esac
+
+ if test -z "$WORKAROUND_106057"; then
+ _rpmdb_mntpoint=/dev
+ else
+ _rpmdb_mntpoint=/.rpmdb
+ fi
+}
+
+function _pkgSetVarsRPM
+{
+ if test -n "$PKGDIR"; then
+ findDir RPMETCDIR $PKGDIR/rpmetc $PKGDIR/base/rpm/etc /etc/rpm
+ findDir RPMSTATEDIR $PKGDIR/rpmstate $PKGDIR/base/rpm/state
+
+ findDir RPMLIBDIR $PKGDIR/rpmlib /
+
+ else
+ findDir RPMETCDIR "$VDIR"/etc/rpm /etc/rpm
+ findDir RPMSTATEDIR "$VDIR"/var/lib/rpm
+ RPMLIBDIR=/
+ fi
+
+ RPMSTATEDIR=$(getPhysicalDir "$RPMSTATEDIR")
+ RPMETCDIR=$(getPhysicalDir "$RPMETCDIR")
+}
+
+function _pkgSetVarsApt
+{
+ if test -n "$PKGDIR"; then
+ findDir APTETCDIR $PKGDIR/aptetc $PKGDIR/base/apt/etc /etc/apt
+ findDir APTSTATEDIR $PKGDIR/aptstate $PKGDIR/base/apt/state
+ findDir APTCACHEDIR $PKGDIR/aptcache $PKGDIR/base/apt/cache
+ findDir APTARCHIVDIR $PKGDIR/aptarchives $PKGDIR/base/apt/archives /var/cache/apt/archives
+ else
+ findDir APTETCDIR "$VDIR"/etc/apt /etc/apt
+ findDir APTSTATEDIR "$VDIR"/var/state/apt
+ findDir APTCACHEDIR "$VDIR"/var/cache/apt
+ findDir APTARCHIVDIR "$VDIR"/var/cache/apt/archives /var/cache/apt/archives
+ fi
+
+ findFile APT_CONFIG "$APTETCDIR"/apt.conf ""
+ test -z "$APT_CONFIG" || export APT_CONFIG
+}
+
+function _pkgSetVarsYum
+{
+ if test -n "$PKGDIR"; then
+ findDir YUMETCDIR $PKGDIR/yumetc $PKGDIR/base/yum/etc /etc
+ findDir YUMCACHEDIR $PKGDIR/yumcache $PKGDIR/base/yum/cache
+ else
+ findDir YUMETCDIR "$VDIR"/etc /etc
+ findDir YUMCACHEDIR "$VDIR"/var/cache/yum
+ fi
+}
+
+
+function _pkgMountBase
+{
+ :
+}
+
+function _pkgMountApt
+{
+ :
+}
+
+function _pkgMountYum
+{
+ :
+}
+
+function _pkgMountRPM
+{
+ _pkgMountBindDir "$RPMETCDIR" /etc/rpm
+ test "$RPMLIBDIR" = "/" || _pkgMountBindDir "$RPMLIBDIR" /usr/lib/rpm
+
+ pushd "$VDIR" >/dev/null
+
+ $_SECURE_MOUNT --chroot -n --bind "$RPMSTATEDIR" "$_rpmdb_mntpoint"
+ test -z "$WORKAROUND_106057" || mount -n --bind "$RPMSTATEDIR" "$_rpmdb_mntpoint"
+
+ test -e "$VDIR"/proc/self/status || \
+ $_SECURE_MOUNT --chroot -n -t proc none /proc
+
+ popd >/dev/null
+}
+
+function _pkgSetEnvBase
+{
+ test "$EXECDIR" = "/" || {
+ PATH=$EXECDIR:$PATH
+ LD_LIBRARY_PATH=$EXECDIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
+ }
+
+ export PATH LD_LIBRARY_PATH
+}
+
+function _pkgSetEnvApt
+{
+ :
+}
+
+function _pkgSetEnvYum
+{
+ :
+}
+
+function _pkgSetEnvRPM
+{
+ CUR_VSERVER=$vserver
+ RPM_FAKE_NAMESPACE_MOUNTS=$_rpmdb_mntpoint
+ RPM_BINARY=$_VRPM_PRELOAD
+
+ export CUR_VSERVER RPM_FAKE_NAMESPACE_MOUNTS RPM_BINARY
+}
+
+function pkgInit
+{
+ local i
+ local vserver=$1
+ shift
+
+ _pkgSetVarsBase
+ for i; do
+ case "$i" in
+ rpm) _pkgSetVarsRPM;;
+ apt) _pkgSetVarsApt;;
+ yum) _pkgSetVarsYum;;
+ *) echo "Unknown packaging flavor" >&2; exit 1;;
+ esac
+ done
+
+ _pkgMountBase
+ for i; do
+ case "$i" in
+ rpm) _pkgMountRPM;;
+ apt) _pkgMountApt;;
+ yum) _pkgMountYum;;
+ esac
+ done
+
+ _pkgSetEnvBase
+ for i; do
+ case "$i" in
+ rpm) _pkgSetEnvRPM;;
+ apt) _pkgSetEnvApt;;
+ yum) _pkgSetEnvYum;;
+ esac
+ done
+
+ _PKG_FLAVORS="$@"
+ _PKG_VSERVER=$vserver
+}
+
+function isAvoidNamespace
+{
+ local cfgdir
+
+ $_VSERVER_INFO - FEATURE namespace || return 0
+ cfgdir=$($_VSERVER_INFO "$1" CFGDIR) || return 0
+ test ! -e "$cfgdir"/namespace || return 1
+ test -e "$__CONFDIR"/.defaults/nonamespace -o \
+ -e "$cfgdir"/nonamespace
+}
+
+## Usage: getAllVservers <var> [<KIND>*]
+function getAllVservers
+{
+ local _ga_i
+ declare -a _ga_tmp=()
+
+ for _ga_i in $__CONFDIR/*; do
+ isRegularFile "$_ga_i" -d || continue
+
+ test ! -e "$_ga_i"/disabled || continue
+ test -d "$_ga_i"/vdir || continue
+
+ local _ga_doadd=1
+ local _ga_markfile=$_ga_i/apps/init/mark
+
+ case ${2:-ALL} in
+ (MARKED) test -s "$_ga_markfile" || _ga_doadd=;;
+ (UNMARKED) test ! -s "$_ga_markfile" || _ga_doadd=;;
+ (STOPPED) ! $_VSERVER "$_ga_i" running &>/dev/null || _ga_doadd=;;
+ (RUNNING) $_VSERVER "$_ga_i" running &>/dev/null || _ga_doadd=;;
+ (ALL) ;;
+ (*) panic $"Unknown vserver tagging '$2'";;
+ esac
+
+ test -z "$_ga_doadd" || _ga_tmp=( "${_ga_tmp[@]}" "${_ga_i##$__CONFDIR/}")
+ done
+
+ eval $1='( "${_ga_tmp[@]}" )'
+}
+
+## Usage: getAllVserversByArg <var> <arg>
+function getAllVserversByArg
+{
+ local _gav_mark=
+
+ case $2 in
+ (--all) _gav_mark=ALL;;
+ (--marked) _gav_mark=MARKED;;
+ (--unmarked) _gav_mark=UNMARKED;;
+ (--stopped) _gav_mark=STOPPED;;
+ (--running) _gav_mark=RUNNING;;
+ (*) return 1;;
+ esac
+
+ getAllVservers "$1" "$_gav_mark"
+}
+
+## Usage: _getProcNumberCount <ctx> <var>
+function _getProcNumberCount
+{
+ local _gp_var=$2
+ local _gp_procnr_cnt=0
+
+ # Use /proc/virtual from kernel 2.6 when possible
+ if test -d "/proc/virtual"; then
+ set -- $($_GREP '^PROC:' "/proc/virtual/$1/limit" 2>/dev/null)
+ _gp_procnr_cnt=$2
+ else
+ _gp_procnr_cnt=$($_VPS ax | $_AWK '{print $2}' | $_GREP -x "$1" | $_WC -l )
+ fi
+
+ let _gp_procnr_cnt=_gp_procnr_cnt+0
+ eval $_gp_var=\$_gp_procnr_cnt
+}
+
+## Usage: getVserverCtx <vdir> <result-varname> [<procnumber-varname> [<do-cleanup>]]
+## Returns: 0 iff vserver is running
+function getVserverStatus
+{
+ test -r "$1"/run || return 1
+
+ local _gvs_ctx
+ read _gvs_ctx <"$1"/run
+ eval "$2"=\$_gvs_ctx
+
+ test -n "$3" || return 0
+ local _gvs_tmp
+ _getProcNumberCount "$_gvs_ctx" _gvs_tmp
+ eval "$3"=\$_gvs_tmp
+
+ if test "$_gvs_tmp" = 0; then
+ local runfile=$($_READLINK "$1/run")
+ test -z "$4" || $_RM -f "$runfile"
+ return 1
+ fi
+
+ return 0
+}
+
+## Usage: isCtxRunning <ctx>
+function isCtxRunning
+{
+ local _tmp
+ _getProcNumberCount "$1" _tmp
+ test $_tmp -gt 0
+}
+
+## Usage: isVserverRunning <vdir> [<ctx-varname>]
+function isVserverRunning
+{
+ local _ivr_ctx _ivr_procnum
+
+ getVserverStatus "$1" _ivr_ctx _ivr_procnum 1 || return 1
+ test "$_ivr_procnum" != 0 || return 1
+ test -z "$2" || eval "$2"=\$_ivr_ctx
+ return 0
+}
+
+## Called as 'getFileValue <varname> <filename>+'
+function getFileValue
+{
+ local _gfv_var=$1
+ local _gfv_file
+ shift
+
+ findFile _gfv_file "$@" ''
+ test -n "$_gfv_file" -a -r "$_gfv_file" || return 0
+ eval read "$_gfv_var" <"$_gfv_file"
+}
+
+## Called as 'getFileArray <varname> <filename>'
+function getFileArray
+{
+ test -r "$2" || return 1
+
+ local IFS=$_VS_NEWLINE
+ eval "$1"='( $(< "$2") )'
+}
+
+function checkComponents
+{
+ local i
+ local msg=$1
+ local x_failed=
+
+ shift
+
+ for i; do
+ local failed=
+ case "$i" in
+ (core) test -x "$_CHBIND" || failed=1;;
+ (build) test -x "$_VSERVER_BUILD" || failed=1;;
+ (sysv) test -x "$__INITRDDIR/vserver" || failed=1;;
+ (devel) test -d "$__INCLUDEDIR/vserver.h" || failed=1;;
+ (*) echo "Unknown component '$i'" >&2
+ return false
+ ;;
+ esac
+
+ test -z "$failed" || {
+ echo "$msg: $i"
+ x_failed=1
+ } >&2
+ done
+
+ test -z "$x_failed"
+}
+
+## Usage: isKernelAPI <ver> [<cmp-modifier>]
+function isKernelAPI
+{
+ local api
+ api=$($_VSERVER_INFO - APIVER) || api=0
+ test $[ $api ] -${2:-ge} $[ $1 ]
+}
+
+## Usage: callInNamespace <vserver> <command> <args>*
+function callInNamespace
+{
+ local ctx=
+
+ isAvoidNamespace "$1" || \
+ ctx=$( $_VSERVER_INFO "$1" CONTEXT f ) || ctx=
+
+ shift
+ if test -n "$ctx"; then
+ $_VNAMESPACE --enter "$ctx" -- "$@"
+ else
+ "$@"
+ fi
+}
+
+## Usage: setDefaultTTY <vdir> [<fallback-tty>]
+function setDefaultTTY
+{
+ local cfgdir ttyname
+
+ cfgdir=$($_VSERVER_INFO "$1" APPDIR init) || cfgdir=
+ findObject -e ttyname \
+ ${cfgdir:+"$cfgdir"/tty} \
+ "$__CONFDIR/.defaults/apps/init/tty" \
+ $2 /dev/null
+
+ exec <$ttyname
+ exec &>$ttyname
+}
+
+## Usage: killContext <XID> [<SIG>]
+function killContext
+{
+ local sig=${2:-9}
+
+ #$_VKILL -s STOP --xid "$1" 1 &>/dev/null || :
+ $_VKILL -s "$sig" --xid "$1" 1 &>/dev/null || :
+ $_VKILL -s "$sig" --xid "$1" &>/dev/null || :
+ #$_VKILL -s "$sig" --xid "$1" 1 &>/dev/null || :
+ #$_VKILL -s CONT --xid "$1" 1 &>/dev/null || :
+}
+
+## Usage: pkgmgmt.guessStyle <vserver> <resultvar>
+function pkgmgmt.guessStyle()
+{
+ local _pgs_vdir
+ _pgs_vdir=$($_VSERVER_INFO "$1" VDIR) || {
+ echo $"Can not determine vserver-root" >&2
+ return 1
+ }
+ local _pgs_cfgdir=$($_VSERVER_INFO "$1" APPDIR pkgmgmt) || :
+
+ if test -n "$_pgs_cfgdir" -a -e "$_pgs_cfgdir"/style; then
+ read style <"$_pgs_cfgdir"/style
+ elif test -e "$_pgs_vdir"/etc/redhat-release -o -e "$_pgs_vdir"/etc/fedora-release; then
+ style=redhat
+ elif test -e "$_pgs_vdir"/etc/mandrake-release; then
+ style=mandrake
+ elif test -e "$_pgs_vdir"/etc/debian_version; then
+ style=debian
+ elif test -e "$_pgs_vdir"/etc/SuSE-release; then
+ style=suse
+ else
+ echo $"Can not determine packagemanagement style" >&2
+ return 1
+ fi
+
+ eval $2=\$style
+ return 0
+}
+
+## Usage: pkgmgmt.isInternal <vserver>
+## returns true iff <vserver> is configured for internal packagemanagement
+## A typical application is
+## | is_external=
+## | pkgmgmt.isInternal "$vserver" || is_external=1
+function pkgmgmt.isInternal
+{
+ local cfgdir=$($_VSERVER_INFO "$1" APPDIR pkgmgmt) || :
+
+ test -z "$cfgdir" -o ! -d "$cfgdir" -o -e "$cfgdir"/internal
+}
+
+## Usage: pkgmgmt.isAptAvailable <cfgdir> <vdir> [<is-internal>]
+function pkgmgmt.isAptAvailable
+{
+ local cfgdir="$1"
+ local vdir="$2"
+ local is_internal="$3"
+
+ local have_apt i
+ if test -n "$is_internal"; then
+ have_apt=1
+ test -d "$cfgdir"/base/apt -o -d "$cfgdir"/aptetc || have_apt=
+ else
+ have_apt=
+ for i in /bin /usr/bin /usr/local/bin; do
+ test ! -x "$vdir$i"/apt-get || { have_apt=1; break; }
+ done
+ fi
+
+ test -n "$have_apt" && return 0 || return 1
+}
+
+## Usage: pkgmgmt.isYumAvailable <cfgdir> <vdir> [<is-internal>]
+function pkgmgmt.isYumAvailable
+{
+ local cfgdir="$1"
+ local vdir="$2"
+ local is_internal="$3"
+
+ local have_yum i
+ if test -n "$is_internal"; then
+ have_yum=1
+ test -d "$cfgdir"/base/yum -o -d "$cfgdir"/yumetc || have_yum=
+ else
+ have_yum=
+ for i in /bin /usr/bin /usr/local/bin; do
+ test ! -x "$vdir$i"/yum || { have_yum=1; break; }
+ done
+ fi
+
+ test -n "$have_yum" && return 0 || return 1
+}
+
+
+function vshelper.doSanityCheck
+{
+ local vshelper this_xid i
+ declare -a warnings=()
+ local solution_disable=
+ local solution_sysctl=
+
+ vshelper.isEnabled && vshelper.isEnabled warning || return 0
+
+ this_xid=$($_VSERVER_INFO - XID) ||
+ panic $"Failed to determine current context; aborting..."
+
+ ## Do nothing in other xid's; the helper will be executed in xid 0 only
+ test "$this_xid" = 0 || return 0
+
+ local proc_file=/proc/sys/kernel/vshelper
+
+ if ! test -r "$proc_file"; then
+ vshelper=
+ warnings=( "${warnings[@]}"
+ $"File '$proc_file' does not exist but is required for vshelper setup" )
+ solution_disable=1
+ else
+ vshelper=$(cat "$proc_file")
+
+ $_CMP -s "$vshelper" "$_VSHELPER" || {
+ warnings=( "${warnings[@]}"
+ $"The configured vshelper '$vshelper' does not match the 'vshelper'
+ script of the util-vserver package"
+ )
+ solution_disable=1
+ solution_sysctl=1
+ }
+ fi
+
+ test -d "$__VSHELPERSTATEDIR" || {
+ warnings=( "${warnings[@]}"
+ $"\
+The vshelper state-directory '$__VSHELPERSTATEDIR' does not exist; since
+it is created by 'make install', this indicates a serious problem with
+your util-vserver installation" )
+ solution_disable=1
+ }
+
+ test "${#warnings[@]}" -eq 0 || {
+ warning $"\
+The following problem(s) were encountered while verifying vshelper
+functionality:"
+
+ for i in "${warnings[@]}"; do
+ warning "* $i"
+ done
+
+ warning $"\
+
+To fix this, you can:"
+
+ test -z "$solution_disable" || warning $"\
+* disable vshelper entirely by executing
+ | touch \"$__CONFDIR/.defaults/apps/vshelper/disabled\"
+* disable only this message by executing
+ | touch \"$__CONFDIR/.defaults/apps/vshelper/warning-disabled\""
+
+ test -x "$solution_sysctl" || warning $"\
+* configure the util-vserver vshelper script, e.g. by adding
+ | kernel.vshelper = $_VSHELPER
+ to /etc/sysctl.conf and rebooting the machine, or by executing
+ | echo \"$_VSHELPER\" >$proc_file"
+
+ warning ""
+
+ return 1
+ }
+
+ return 0
+}
+
+## Usage: vshelper.isEnabled [<style>] [<vserver>]
+function vshelper.isEnabled
+{
+ local f=${1:+$1-}disabled
+ test ! -e "$__CONFDIR"/.defaults/apps/vshelper/"$f" || return 1
+ $_VSERVER_INFO - FEATURE vshelper || return 1
+ if test -n "$2"; then
+ local appdir
+ appdir=$($_VSERVER_INFO "$2" APPDIR vshelper) || return 0
+ test -z "$2" -o ! -e "$appdir/$f" || return 1
+ fi
+
+ return 0
+}
+
+## Usage: vshelper.isDebug [<vserver>]
+function vshelper.isDebug
+{
+ test ! -e "$__CONFDIR"/.defaults/apps/vshelper/debug || return 0
+ $_VSERVER_INFO - FEATURE vshelper || return 1
+ if test -n "$1"; then
+ local appdir
+ appdir=$($_VSERVER_INFO "$1" APPDIR vshelper) || return 1
+ test ! -e "$appdir/debug" || return 0
+ fi
+
+ return 1
+}
+
+function vshelper._getHandlerInternal
+{
+ local _vghi_var=$1
+ local _vghi_tmp
+ shift
+ shift ## HACK: see below the note about the 'set -u' mode
+
+ while test "$#" -ge 2; do
+ local _vghi_mod=$1
+ local _vghi_obj=$2
+ shift 2
+
+ test "$_vghi_mod" "$_vghi_obj" || continue
+ case "$_vghi_mod" in
+ (-x)
+ eval $_vghi_var=\$_vghi_obj
+ ;;
+ (-e)
+ read _vghi_tmp <"$_vghi_obj"
+ eval $_vghi_var=:\$_vghi_tmp
+ ;;
+ (*) panic $"Internal error, unexpected modifier '$_vghi_mod'"
+ esac
+ return 0
+ done
+
+ return 1
+}
+
+## Usage: vshelper.getHandler <result-var> <vserver> <action>
+function vshelper.getHandler
+{
+ local _vgh_appdir
+ _vgh_appdir=$($_VSERVER_INFO "$2" APPDIR vshelper) || _vgh_appdir=
+
+ declare -a _vgh_search_list=( X )
+ ## HACK: when we are in 'set -u' mode, empty lists are causing errors
+
+ test -z "$_vgh_appdir" || _vgh_search_list=( "${_vgh_search_list[@]}" -x "$_vgh_appdir/$3" )
+ test -z "$_vgh_appdir" || _vgh_search_list=( "${_vgh_search_list[@]}" -e "$_vgh_appdir/action" )
+ _vgh_search_list=( "${_vgh_search_list[@]}" -x "$__CONFDIR"/.defaults/apps/vshelper/"$3" )
+ _vgh_search_list=( "${_vgh_search_list[@]}" -e "$__CONFDIR"/.defaults/apps/vshelper/action )
+
+ ! vshelper._getHandlerInternal "$1" "${_vgh_search_list[@]}" || return 0
+ eval $1=':restart'
+}
+
+## Usage: vshelper.init <vserver> [<method> <args>*]
+function vshelper.doInit
+{
+ vshelper.isEnabled || return 0
+
+ local xid
+ xid=$($_VSERVER_INFO "$1" CONTEXT false) && test -n "$xid" || {
+ warning $"vshelper.init: can not determine xid of vserver '$vserver'; returned value was '$xid'"
+ return 1
+ }
+
+ local f="$__VSHELPERSTATEDIR/$xid"
+
+ set -C
+ $_RM -f "$f"
+ echo "$1" >"$f"
+ set +C
+
+ if test -n "$2"; then
+ shift 1
+ local i
+ for i; do
+ echo "$i"
+ done
+ else
+ echo "default"
+ fi >>"$f"
+
+ return 0
+}
+
+## Usage: vshelper.doDestroy <vserver> <xid>
+function vshelper.doDestroy
+{
+ vshelper.isEnabled || return 0
+
+ $_RM -f "$__VSHELPERSTATEDIR/$2"
+}
+
+## Usage: vshelper.initSync <vserver> <pipe-varname> [<method>]
+function vshelper.initSync
+{
+ local _vis_tmpdir
+ _vis_tmpdir=$($_MKTEMPDIR /tmp/vserver-stop.XXXXXX) || {
+ warning $"Failed to generate temporary directory for vshelper sync"
+ return 1
+ }
+
+ local _vis_fifo="$_vis_tmpdir"/pipe
+ $_MKFIFO -m700 "$_vis_fifo"
+ vshelper.doInit "$1" "${3:-sync}" "$_vis_fifo"
+ eval $2=\$_vis_fifo
+}
+
+## Usage: vshelper.getSyncTimeout <vserver> <varname>
+function vshelper.getSyncTimeout
+{
+ local _vgst_appdir _vgst_file _vgst_tmp
+ _vgst_appdir=$($_VSERVER_INFO "$1" APPDIR vshelper) || _vgst_appdir=
+
+ findFile _vgst_file ${_vgst_appdir:+"$_vgst_appdir"/sync-timeout} "$__CONFDIR"/.defaults/apps/vshelper/sync-timeout ''
+ test -n "$_vgst_file" || return 1
+ read _vgst_tmp <"$_vgst_file"
+ eval $2=\$_vgst_tmp
+}
+
+
+function _rpmFake.getCapFlags
+{
+ local ctx=$1
+
+ if test -n "$ctx" && ! $_VSERVER_INFO - FEATURE migrate; then
+ set -- $($_CHCONTEXT_COMPAT --xid 1 \
+ $_SH -c "$_CAT /proc/[0-9]*/status | $_EGREP '^(CapBset|s_context|ctxflags)'" | \
+ $_GREP -B 1 -A 1 "^s_context: $ctx " | \
+ $_SED -e '1,3p;d' | $_AWK '{ print $2 }')
+ else
+ set --
+ fi
+
+ if test -n "$3"; then
+ RPM_FAKE_CAP=$[ ~0x$1 ]
+ RPM_FAKE_FLAGS=$3
+ else
+ RPM_FAKE_CAP=$[ ~0xd40c04ff ]
+ RPM_FAKE_FLAGS=4
+ fi
+}
+
+function rpmFake.init
+{
+ local vdir ctx
+
+ vdir=$($_VSERVER_INFO "$1" VDIR) || vdir="$1"
+ ctx=$($_VSERVER_INFO "$1" CONTEXT) || ctx=
+
+ test -d "$vdir" ||
+ panic $"Can not find chroot environment at '$vdir' for '$1'"
+
+ _rpmFake.getCapFlags "$ctx"
+
+ RPM_FAKE_CHROOT=$vdir
+ RPM_FAKE_CTX=$ctx
+}
+
+function rpmFake.exec
+{
+ export RPM_FAKE_CHROOT RPM_FAKE_CTX RPM_FAKE_CAP RPM_FAKE_FLAGS
+
+ LD_PRELOAD=$_RPM_FAKE_SO${LD_PRELOAD:+:$LD_PRELOAD} \
+ exec "$@"
+}
--- /dev/null
+#!/bin/bash
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+# based on distrib-info by Jacques Gelinas
+#
+# 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.
+
+
+# This scripts knows about every possible distribution (well, it should)
+# It is passed a vserver name and a key (a command). The key represent a task.
+# It executes the command and output on stdout.
+# For example
+# distrib-info vserver1 pkgversion
+# If vserver1 is a redhat system, it executes
+# rpm -qa --queryformat "%{name}=%{version}-%{release}
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+
+if [ "$1" = "" ] ; then
+ echo distrib-info vserver-name command [ args ... ] >&2
+ echo Commands are: >&2
+ echo dumpfiles: Shows all files owned by a package >&2
+ echo pkgversion: reports all packages and their version/release >&2
+ echo unifiles: reports all unify-able file of a package >&2
+ exit 1
+fi
+if [ "$1" = "/" ] ; then
+ DISTDIR=/
+ CHROOTCMD=
+elif [ -d "$1" ] ; then
+ DISTDIR=$1
+ CHROOTCMD="$__SBINDIR/chroot $DISTDIR"
+else
+ DISTDIR=$__DEFAULT_VSERVERDIR/$1
+ CHROOTCMD="$__SBINDIR/chroot $DISTDIR"
+fi
+KEY=$2
+shift
+shift
+if [ -f $DIRDIR/etc/redhat-release -o -f $DISTDIR/etc/mandrake-release ] ; then
+ case $KEY in
+ pkgversion)
+ $CHROOTCMD /bin/rpm -qa --queryformat "%{name}=%{version}-%{release}\n"
+ ;;
+ unifiles)
+ # We remove /etc and /var/log to make sure no special file
+ # there will be unified
+ $CHROOTCMD /bin/rpm -ql --dump $* \
+ | $_PARSERPMDUMP /etc/
+ ;;
+ dumpfiles)
+ $CHROOTCMD /bin/rpm -ql $*
+ ;;
+ *)
+ echo unknown request $KEY >&2
+ ;;
+ esac
+else
+ echo Distribution not supported yet >&2
+fi
--- /dev/null
+#!/bin/sh
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+# based on rootshell by Jacques Gelinas
+#
+# 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.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+
+test "$*" || set -- --login
+exec $CHBIND --silent --ip 0.0.0.0 /bin/bash "$@"
+
--- /dev/null
+#!/bin/sh
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+# based on save_s_context by Jacques Gelinas
+#
+# 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.
+
+if [ $# -lt 1 ] ;then
+ echo save_s_context file command
+ echo Save the security context in file and execute a command
+else
+ CTX=`grep ^s_context: /proc/self/status | sed s/s_context:// | (read a b; echo $a)`
+ CTX=`eval expr $CTX + 0`
+ echo S_CONTEXT=$CTX >$1
+ echo S_PROFILE=$PROFILE >>$1
+ shift
+ exec "$@"
+fi
+
+
--- /dev/null
+#!/usr/bin/perl
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+# based on vps by Krischan Jodies
+#
+# 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.
+
+# Wrapper for ps. Adds security context number and name
+# to the PID column.
+#
+# (c) 2002 krischan.jodies@sernet.de
+# version 1.0
+
+# 1.1 Added error messages
+
+if ($ARGV[0] eq "--help") {
+ exec("ps @ARGV");
+ exit;
+}
+
+
+$lockdir = "/var/run/vservers";
+
+$pid_length = 5;
+get_server_names();
+$context=get_context("self");
+
+if ($context == -1) {
+ print "Can not find my security context. Is this a ctx kernel?\n";
+ exit;
+}
+if ($context != 1) {
+ exec("@PKGLIBDIR@/chcontext-compat --silent --ctx 1 $0 @ARGV");
+ print "Can not execute chcontext\n";
+ exit; # not reached
+}
+
+
+if (! open PS, "ps @ARGV|") {
+ print "Can not execute ps\n";
+ exit;
+}
+while (<PS>) {
+ chomp;
+ push @ps,$_;
+}
+
+$header = shift @ps;
+$header =~ /(.*) PID(.+)/;
+$left = $1;
+$right = $2;
+$left_length = length($left);
+print "${left} PID CONTEXT ${right}\n";
+foreach $line (@ps) {
+ $pid = substr $line,$left_length,$pid_length;
+ print substr $line,0,$left_length;
+ print "$pid";
+ $context = get_context($pid);
+ $context_name = getcontextname($context);
+ printf " %-3s %-10s",$context,$context_name;
+ print substr $line,$left_length + $pid_length;
+ print "\n";
+
+}
+
+exit;
+
+sub get_context
+{
+ my $pid = $_[0];
+ $pid =~ s/ //g;
+ open STATUS, "/proc/$pid/status";
+ while (<STATUS>)
+ {
+ chomp;
+ if (/s_context: (\d+)/) {
+ close STATUS;
+ return $1;
+ }
+ }
+ close STATUS;
+ return -1;
+}
+
+sub getcontextname {
+ if (exists $name{$_[0]}) {
+ return $name{$_[0]};
+ }
+ if ($_[0] == 1) {
+ return "ALL_PROCS";
+ }
+ elsif ($_[0] == 0) {
+ return "MAIN";
+ }
+ return "UNKNOWN";
+}
+
+
+sub get_server_names
+{
+ opendir LOCKDIR, "$lockdir";
+ while ($file=readdir(LOCKDIR)) {
+ if (-f "$lockdir/$file") {
+ open FILE, "$lockdir/$file";
+ $file =~ s/(.+)\.ctx/$1/;
+ while (<FILE>) {
+ if (/S_CONTEXT=(\d+)/) {
+ $name{$1} = $file;
+ }
+ }
+ }
+ }
+}
--- /dev/null
+#!/bin/sh
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+# based on vserver by Jacques Gelinas
+#
+# 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.
+
+# This is a script to control a virtual server
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+
+USR_SBIN=$__SBINDIR
+USR_LIB_VSERVER=$__PKGLIBDIR
+DEFAULTPATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
+
+vserver_mknod(){
+ mknod $1 $2 $3 $4
+ chmod $5 $1
+}
+
+mountproc()
+{
+ mkdir -p $1/proc $1/dev/pts
+ if [ ! -d $1/proc/1 ] ; then
+ mount -t proc none $1/proc
+ mount -t devpts -o gid=5,mode=0620 none $1/dev/pts
+ fi
+}
+umountproc()
+{
+ umount $1/proc 2>/dev/null
+ umount $1/dev/pts 2>/dev/null
+}
+
+# Check that the vservers parent directory has permission 000
+# This is the key to avoid chroot escape
+testperm()
+{
+ return
+ PERM=`$_SHOWPERM $__DEFAULT_VSERVERDIR/$1/..`
+ if [ "$PERM" != 000 ] ; then
+ echo
+ echo "**********************************************************"
+ echo $__DEFAULT_VSERVERDIR/$1/.. has insecure permissions.
+ echo A vserver administrator may be able to visit the root server.
+ echo To fix this, do
+ echo " " chmod 000 $__DEFAULT_VSERVERDIR/$1/..
+ echo do it anytime you want, even if vservers are running.
+ echo "**********************************************************"
+ echo
+ fi
+}
+# Set the IP alias needed by a vserver
+ifconfig_iproot()
+{
+ if [ "$NODEV" = "" -a "$IPROOT" != "" -a "$IPROOT" != "0.0.0.0" -a "$IPROOT" != "ALL" ] ;then
+ # A vserver may have more than one IP
+ # The first alias is dev:vserver
+ # and the other are dev:vserver1,2,3 and so on
+ # An IP may hold the device. The following is valid
+ # IPROOT="1.2.4.5 eth1:1.2.3.5"
+ # IPROOTDEV=eth0
+ # The first IP 1.2.3.4 will go on eth0 and the other on eth1
+ # VLAN devices are also supported (eth0.231 for vlan 231)
+ SUFFIX=
+ for oneip in $IPROOT
+ do
+ IPDEV=$IPROOTDEV
+ MASK=$IPROOTMASK
+ BCAST=$IPROOTBCAST
+ # Split the device and IP if available
+ case $oneip in
+ *:*)
+ eval `echo $oneip | tr : ' ' | (read dev ip; echo oneip=$ip; echo IPDEV=$dev)`
+ ;;
+ esac
+ # Split the IP and the netmask if available
+ case $oneip in
+ */*)
+ eval `echo $oneip | tr / ' ' | (read ip msk; echo oneip=$ip; echo MASK=$msk)`
+ eval `$_IFSPEC "" "$oneip" "$MASK" "$BCAST"`
+ ;;
+ esac
+ if [ "$IPDEV" != "" ] ; then
+ case $IPDEV in
+ *.*)
+ if [ ! -f /proc/net/vlan/$IPDEV ] ; then
+ /sbin/vconfig add `echo $IPDEV | tr . ' '`
+ # Put a dummy IP
+ /sbin/ifconfig $IPDEV 127.0.0.1
+ fi
+ ;;
+ esac
+ # Compute the default netmask, if missing
+ eval `$_IFSPEC $IPDEV "$oneip" "$MASK" "$BCAST"`
+ IPROOTMASK=$NETMASK
+ IPROOTBCAST=$BCAST
+ #echo /sbin/ifconfig $IPDEV:$1$SUFFIX $oneip netmask $IPROOTMASK broadcast $IPROOTBCAST
+ /sbin/ifconfig $IPDEV:$1$SUFFIX $oneip netmask $IPROOTMASK broadcast $IPROOTBCAST
+ fi
+ if [ "$SUFFIX" = "" ] ; then
+ SUFFIX=1
+ else
+ SUFFIX=`expr $SUFFIX + 1`
+ fi
+ done
+ fi
+ if [ "$IPROOTBCAST" = "" ] ; then
+ IPROOTBCAST=255.255.255.255
+ fi
+}
+ifconfig_iproot_off()
+{
+ if [ "$NODEV" = "" -a "$IPROOT" != "" -a "$IPROOT" != "0.0.0.0" -a "$IPROOT" != "ALL" -a "$IPROOTDEV" != "" ] ;then
+ SUFFIX=
+ for oneip in $IPROOT
+ do
+ IPDEV=$IPROOTDEV
+ # Split the device and IP if available
+ case $oneip in
+ *:*)
+ eval `echo $oneip | tr : ' ' | (read dev ip; echo IPDEV=$dev)`
+ ;;
+ esac
+ /sbin/ifconfig $IPDEV:$1$SUFFIX down 2>/dev/null
+ if [ "$SUFFIX" = "" ] ; then
+ SUFFIX=1
+ else
+ SUFFIX=`expr $SUFFIX + 1`
+ fi
+ done
+ fi
+}
+# Split an IPROOT definition, trash the devices and
+# compose a set of --ip option for chbind
+setipopt(){
+ RET=
+ IPS="$*"
+ if [ "$IPS" = "" ] ; then
+ IPS=0.0.0.0
+ fi
+ if [ "$1" = "ALL" ] ; then
+ IPS=`$_LISTDEVIP`
+ fi
+ for oneip in $IPS
+ do
+ # Split the device and IP if available
+ case $oneip in
+ *:*)
+ eval `echo $oneip | tr : ' ' | (read dev ip; echo oneip=$ip)`
+ ;;
+ esac
+ #case $oneip in
+ #*/*)
+ # eval `echo $oneip | tr / ' ' | (read ip msk; echo oneip=$ip)`
+ # ;;
+ #esac
+ echo --ip $oneip
+ done
+}
+
+# Extract the initial runlevel from the vserver inittab
+get_initdefault()
+{
+ INITDEFAULT=`grep :initdefault $__DEFAULT_VSERVERDIR/$1/etc/inittab | sed 's/:/ /g' | ( read a level b; echo $level)`
+}
+
+# Read the vserver configuration file, reusing the PROFILE value
+# found in /var/run/vservers
+readlastconf()
+{
+ if [ -f $__PKGSTATEDIR/$1.ctx ] ; then
+ . $__PKGSTATEDIR/$1.ctx
+ if [ "$S_PROFILE" != "" ] ; then
+ export PROFILE=$S_PROFILE
+ fi
+ fi
+ export PROFILE
+ . $__CONFDIR/$1.conf
+}
+usage()
+{
+ echo vserver [ options ] server-name command ...
+ echo
+ echo server-name is a directory in $__DEFAULT_VSERVERDIR
+ echo
+ echo The commands are:
+ echo " build : Create a virtual server by copying the packages"
+ echo " of the root server"
+ echo " enter : Enter in the virtual server context and starts a shell"
+ echo " Same as \"vserver name exec /bin/sh\""
+ echo " exec : Exec a command in the virtual server context"
+ echo " suexec : Exec a command in the virtual server context uid"
+ echo " service : Control a service inside a vserver"
+ echo " vserver name service service-name start/stop/restart/status"
+ echo " start : Starts the various services in the vserver, runlevel 3"
+ echo " stop : Ends all services and kills the remaining processes"
+ echo " running : Tells if a virtual server is running"
+ echo " It returns proper exit code, so you can use it as a test"
+ echo " status : Tells some information about a vserver"
+ echo " chkconfig : It turns a server on or off in a vserver"
+ echo
+ echo "--nodev : Do not configure the IP aliases of the vserver"
+ echo " Useful to enter a vserver without enabling its network"
+ echo " and avoiding conflicts with another copy of this vserver"
+ echo " running elsewhere"
+ echo "--silent : No informative messages about vserver context and IP numbers"
+ echo " Useful when you want to redirect the output"
+}
+
+calculateCaps()
+{
+ local f
+ for f in "$@"; do
+ case $f in
+ !CAP_SYS_CHROOT)
+ CHROOTOPT=--nochroot
+ ;;
+ *)
+ CAPS="$CAPS --cap $f"
+ ;;
+ esac
+ done
+}
+
+SILENT=
+NODEV=
+while true
+do
+ if [ "$1" = "--silent" ] ; then
+ SILENT=--silent
+ shift
+ elif [ "$1" = "--nodev" ] ; then
+ NODEV=--nodev
+ shift
+ else
+ break
+ fi
+done
+# Setup the default ulimit for a vserver
+setdefulimit(){
+ # File handle are limited to half of the current system limit
+ # Virtual memory is limited to the ram size
+ NFILE=`cat /proc/sys/fs/file-max`
+ NFILE=`expr $NFILE / 2`
+ VMEM=`cat /proc/meminfo | grep MemTotal | (read a b c; echo $b)`
+ # Disabled for now, we need a different to set the security
+ # context limit than fiddling with ulimit
+ #ulimit -H -n $NFILE -v $VMEM
+}
+if [ $# -lt 2 ] ; then
+ usage
+elif [ "$2" = "build" ] ; then
+ # Either the directory does not exist or is empty
+ NBSUB=`ls $__DEFAULT_VSERVERDIR/$1 2>/dev/null | grep -v lost+found | wc -l`
+ NBSUB=`expr $NBSUB`
+ if [ "$NBSUB" != 0 ] ; then
+ echo Virtual server $__DEFAULT_VSERVERDIR/$1 already exist
+ else
+ if [ ! -d $__DEFAULT_VSERVERDIR ] ; then
+ mkdir $__DEFAULT_VSERVERDIR || exit 1
+ chmod 000 $__DEFAULT_VSERVERDIR
+ echo Directory $__DEFAULT_VSERVERDIR was created with permissions 000
+ fi
+ mkdir -p $__DEFAULT_VSERVERDIR/$1 || exit 1
+ chmod 755 $__DEFAULT_VSERVERDIR/$1
+ if test "$UTIL_VSERVER_AVOID_COPY"; then
+ mkdir -p $__DEFAULT_VSERVERDIR/$1/{etc/rc.d/init.d,sbin,var/run,var/log}
+ else
+ cp -ax /sbin /bin /etc /usr /var /lib $__DEFAULT_VSERVERDIR/$1/. || exit 1
+ fi
+ cd $__DEFAULT_VSERVERDIR/$1 || exit 1
+ rm -fr lib/modules/*
+ rm -f var/spool/mail/*
+ rm -f `find var/run -type f`
+ rm -f `find var/log -type f`
+ touch var/log/wtmp
+ rm -f var/lock/subsys/*
+ rm -f etc/cron.d/kmod
+ mkdir proc tmp home root boot
+ test -f /root/.bashrc && cp -a /root/.bashrc root/.
+ test -f /root/.bash_profile && cp -a /root/.bash_profile root/.
+ chmod 1777 tmp
+ chmod 750 root
+ # Create a minimal dev so the virtual server can't grab
+ # more privileges
+ mkdir dev dev/pts
+ vserver_mknod dev/null c 1 3 666
+ vserver_mknod dev/zero c 1 5 666
+ vserver_mknod dev/full c 1 7 666
+ vserver_mknod dev/random c 1 8 644
+ vserver_mknod dev/urandom c 1 9 644
+ vserver_mknod dev/tty c 5 0 666
+ vserver_mknod dev/ptmx c 5 2 666
+ touch dev/hdv1
+ # Turn off some service useless on a vserver
+ # vserver_turnoff apmd network autofs dhcpd gpm ipchains iptables \
+ # irda isdn keytable kudzu linuxconf-setup netfs nfs nfslock \
+ # pcmcia portmap pppoe random rawdevices rhnsd rstatd ruserd \
+ # rwalld rwhod sendmail smb snmpd v_httpd h_xinetd v_sshd vservers \
+ # xfs ypbind xinetd
+ (
+ cd etc/init.d 2>/dev/null || cd etc/rc.d/init.d
+ for serv in *
+ do
+ case $serv in
+ *.bak|*~|functions|killall|halt|single)
+ ;;
+ *)
+ #$USR_LIB_VSERVER/capchroot $__DEFAULT_VSERVERDIR/$1 /sbin/chkconfig --level 2345 $serv off
+ $0 --silent $1 chkconfig --level 2345 $serv off
+ ;;
+ esac
+ done
+ )
+ rm -f etc/rc.d/rc6.d/S*reboot
+ # Create a dummy /etc/fstab and /etc/mtab to please
+ # df and linuxconf. We use hdv1, which does not exist
+ # to remind the admin that it is not the real drive
+ echo /dev/hdv1 / ext2 defaults 1 1 >etc/fstab
+ echo /dev/hdv1 / ext2 rw 0 0 >etc/mtab
+ # Install the vreboot utility
+ cp -a "$_VREBOOT" sbin/.
+ ln -sf vreboot sbin/vhalt
+
+ echo Directory $__DEFAULT_VSERVERDIR/$1 has been populated
+ if [ ! -d $__CONFDIR ] ; then
+ mkdir $__CONFDIR
+ chmod 600 $__CONFDIR
+ echo Directory $__CONFDIR has been created
+ fi
+ if [ ! -f $__CONFDIR/$1.conf ] ; then
+ CONF=$__CONFDIR/$1.conf
+ cat >$CONF <<-EOF
+if [ "$PROFILE" = "" ] ; then
+ PROFILE=prod
+fi
+# Select the IP number assigned to the virtual server
+# This IP must be one IP of the server, either an interface
+# or an IP alias
+# A vserver may have more than one IP. Separate them with spaces.
+# do not forget double quotes.
+# Some examples:
+# IPROOT="1.2.3.4 2.3.4.5"
+# IPROOT="eth0:1.2.3.4 eth1:2.3.4.5"
+# If the device is not specified, IPROOTDEV is used
+case \$PROFILE in
+prod)
+ IPROOT=1.2.3.4
+ # The netmask and broadcast are computed by default from IPROOTDEV
+ #IPROOTMASK=
+ #IPROOTBCAST=
+ # You can define on which device the IP alias will be done
+ # The IP alias will be set when the server is started and unset
+ # when the server is stopped
+ #IPROOTDEV=eth0
+ # You can set a different host name for the vserver
+ # If empty, the host name of the main server is used
+ S_HOSTNAME=
+ ;;
+backup)
+ IPROOT=1.2.3.4
+ #IPROOTMASK=
+ #IPROOTBCAST=
+ #IPROOTDEV=eth0
+ S_HOSTNAME=
+ ;;
+esac
+# Uncomment the onboot line if you want to enable this
+# virtual server at boot time
+#ONBOOT=yes
+# You can set a different NIS domain for the vserver
+# If empty, the current on is kept
+# Set it to "none" to have no NIS domain set
+S_DOMAINNAME=
+# You can set the priority level (nice) of all process in the vserver
+# Even root won't be able to raise it
+S_NICE=
+# You can set various flags for the new security context
+# lock: Prevent the vserver from setting new security context
+# sched: Merge scheduler priority of all processes in the vserver
+# so that it acts a like a single one.
+# nproc: Limit the number of processes in the vserver according to ulimit
+# (instead of a per user limit, this becomes a per vserver limit)
+# private: No other process can join this security context. Even root
+# Do not forget the quotes around the flags
+S_FLAGS="lock nproc"
+# You can set various ulimit flags and they will be inherited by the
+# vserver. You enter here various command line argument of ulimit
+# ULIMIT="-HS -u 200"
+# The example above, combined with the nproc S_FLAGS will limit the
+# vserver to a maximum of 200 processes
+ULIMIT="-HS -u 1000"
+# You can set various capabilities. By default, the vserver are run
+# with a limited set, so you can let root run in a vserver and not
+# worry about it. He can't take over the machine. In some cases
+# you can to give a little more capabilities (such as CAP_NET_RAW)
+# S_CAPS="CAP_NET_RAW"
+S_CAPS=""
+# Select an unused context (this is optional)
+# The default is to allocate a free context on the fly
+# In general you don't need to force a context
+#S_CONTEXT=
+ EOF
+ echo $CONF has been created. Look at it\!
+ fi
+ fi
+elif [ ! -f $__CONFDIR/$1.conf ] ; then
+ echo No configuration for this vserver: $__CONFDIR/$1.conf
+ exit 1
+elif [ ! -d $__DEFAULT_VSERVERDIR/$1/. ] ; then
+ echo No directory for this vserver: $__DEFAULT_VSERVERDIR/$1
+ exit 1
+elif [ "$2" = "start" ] ; then
+ echo Starting the virtual server $1
+ testperm $1
+ if ! $0 $1 running
+ then
+ test -x $__CONFDIR/$1.sh && $__CONFDIR/$1.sh pre-start $1
+ IPROOT=
+ IPROOTMASK=
+ IPROOTBCAST=
+ IPROOTDEV=
+ S_NICE=
+ S_FLAGS=
+ . $__CONFDIR/$1.conf
+ export PROFILE
+ ifconfig_iproot $1
+ cd $__DEFAULT_VSERVERDIR/$1 || exit 1
+
+ if [ "$PROFILE" != "" ] ; then
+ echo export PROFILE=$PROFILE >etc/PROFILE
+ fi
+
+ rm -f `find var/run -type f`
+ touch var/run/utmp
+ chgrp ${UTMP_GROUP:-utmp} var/run/utmp
+ chmod 0664 var/run/utmp
+ rm -f var/lock/subsys/*
+ mountproc $__DEFAULT_VSERVERDIR/$1
+ CTXOPT=
+ HOSTOPT=
+ DOMAINOPT=
+ NICECMD=
+ FLAGS=
+ CAPS=
+ get_initdefault $1
+ STARTCMD="/etc/rc.d/rc $INITDEFAULT"
+ if [ -x $__DEFAULT_VSERVERDIR/$1/etc/init.d/rc ] ; then
+ STARTCMD="/etc/init.d/rc $INITDEFAULT"
+ elif [ -x $__DEFAULT_VSERVERDIR/$1/usr/bin/emerge ] ; then
+ STARTCMD="/sbin/rc default"
+ elif [ -x $__DEFAULT_VSERVERDIR/$1/etc/rc.d/rc.M ] ; then
+ STARTCMD="/etc/rc.d/rc.M"
+ fi
+
+ DISCONNECT=
+ FAKEINIT=
+ for f in $S_FLAGS dummy
+ do
+ case $f in
+ dummy)
+ ;;
+
+ minit)
+ FAKEINIT=true
+ FLAGS="$FLAGS --flag fakeinit"
+ STARTCMD=/sbin/minit-start
+ DISCONNECT=--disconnect
+ ;;
+
+ fakeinit)
+ FAKEINIT=true
+ FLAGS="$FLAGS --flag $f"
+ STARTCMD=/sbin/init
+ DISCONNECT=--disconnect
+ ;;
+ *)
+ FLAGS="$FLAGS --flag $f"
+ ;;
+ esac
+ done
+ if [ "$FAKEINIT" = "" ] ; then
+ $USR_LIB_VSERVER/fakerunlevel $INITDEFAULT var/run/utmp
+ fi
+
+ calculateCaps $S_CAPS
+
+ if [ "$S_CONTEXT" != "" ] ; then
+ CTXOPT="--ctx $S_CONTEXT"
+ fi
+ if [ "$S_HOSTNAME" != "" ] ; then
+ HOSTOPT="--hostname $S_HOSTNAME"
+ export HOSTNAME=$S_HOSTNAME
+ fi
+ if [ "$S_DOMAINNAME" != "" ] ; then
+ DOMAINOPT="--domainname $S_DOMAINNAME"
+ fi
+ if [ "$S_NICE" != "" ] ; then
+ NICECMD="nice -$S_NICE"
+ fi
+ mkdir -p $__PKGSTATEDIR
+ chmod 700 $__PKGSTATEDIR
+ setdefulimit
+ if [ "$ULIMIT" != "" ] ; then
+ ulimit $ULIMIT
+ fi
+ #echo FLAGS=$FLAGS
+ #echo CAPS=$CAPS
+ # We switch to /vservers/$1 now, because after the
+ # security context switch /vservers directory becomes a dead zone.
+ cd $__DEFAULT_VSERVERDIR/$1
+ IPOPT=`setipopt $IPROOT`
+ export PATH=$DEFAULTPATH
+ $NICECMD $_CHBIND $SILENT $IPOPT --bcast $IPROOTBCAST \
+ $_CHCONTEXT_COMPAT $SILENT $DISCONNECT $CAPS $FLAGS $CTXOPT $HOSTOPT $DOMAINOPT --secure \
+ $_SAVE_S_CONTEXT $__PKGSTATEDIR/$1.ctx \
+ $_CAPCHROOT $CHROOTOPT . $STARTCMD
+ sleep 2
+ test ! -x $__CONFDIR/$1.sh || $__CONFDIR/$1.sh post-start $1
+ fi
+elif [ "$2" = "running" ] ; then
+ if [ ! -f $__PKGSTATEDIR/$1.ctx ] ; then
+ echo Server $1 is not running
+ exit 1
+ else
+ . $__PKGSTATEDIR/$1.ctx
+ NB=$($USR_SBIN/vps ax | awk '{print $2}' | grep \^$S_CONTEXT\$ | wc -l)
+ #NB=`$_CHCONTEXT_COMPAT --silent --ctx $S_CONTEXT ps ax | wc -l`
+ #NB=`eval expr $NB + 0`
+ if [ "$NB" -gt 0 ] ; then
+ echo Server $1 is running
+ exit 0
+ else
+ echo Server $1 is not running
+ exit 1
+ fi
+ fi
+elif [ "$2" = "status" ] ; then
+ if $0 $1 running
+ then
+ . $__PKGSTATEDIR/$1.ctx
+ NB=$($USR_SBIN/vps ax | awk '{print $2}' | grep \^$S_CONTEXT\$ | wc -l)
+ echo $NB processes running
+ echo Vserver uptime: `$USR_LIB_VSERVER/filetime $__PKGSTATEDIR/$1.ctx`
+ fi
+elif [ "$2" = "stop" ] ; then
+ echo Stopping the virtual server $1
+ IPROOT=
+ IPROOTMASK=
+ IPROOTBCAST=
+ IPROOTDEV=
+ CAPS=
+ IS_MINIT=
+ readlastconf $1
+ if $0 $1 running
+ then
+ test -x $__CONFDIR/$1.sh && $__CONFDIR/$1.sh pre-stop $1
+ ifconfig_iproot $1
+ cd $__DEFAULT_VSERVERDIR/$1
+ mountproc $__DEFAULT_VSERVERDIR/$1
+ # The fakeinit flag tell us how to turn off the server
+ get_initdefault $1
+ export PREVLEVEL=$INITDEFAULT
+ STOPCMD="/etc/rc.d/rc 6"
+ if [ -x $__DEFAULT_VSERVERDIR/$1/etc/init.d/rc ] ; then
+ STOPCMD="/etc/init.d/rc 6"
+ elif [ -x $__DEFAULT_VSERVERDIR/$1/usr/bin/emerge ] ; then
+ STOPCMD="/sbin/rc shutdown"
+ elif [ -x $__DEFAULT_VSERVERDIR/$1/etc/rc.d/rc.6 ] ; then
+ STOPCMD="/etc/rc.d/rc.6"
+ fi
+
+ for f in $S_FLAGS dummy
+ do
+ case $f in
+ minit)
+ IS_MINIT=1
+ FLAGS="$FLAGS --flag fakeinit"
+ STOPCMD="/sbin/minit-stop"
+ ;;
+
+ fakeinit)
+ FLAGS="$FLAGS --flag $f"
+ STOPCMD="/sbin/init 6"
+ ;;
+ *)
+ ;;
+ esac
+ done
+
+ calculateCaps $S_CAPS
+
+ cd $__DEFAULT_VSERVERDIR/$1
+ IPOPT=`setipopt $IPROOT`
+ export PATH=$DEFAULTPATH
+ $_CHBIND $SILENT $IPOPT --bcast $IPROOTBCAST \
+ $_CHCONTEXT_COMPAT $SILENT $CAPS --secure --ctx $S_CONTEXT \
+ $_CAPCHROOT . $STOPCMD
+
+ if test "$IS_MINIT"; then
+ echo "Waiting for minit finish-signal"
+ dd if=var/run/minit-stop of=/dev/zero bs=1 count=1 &>/dev/null
+ sleep 1
+ else
+ echo sleeping 5 seconds
+ sleep 5
+ fi
+
+ echo Killing all processes
+ $_CHBIND --silent $IPOPT --bcast $IPROOTBCAST \
+ $_CHCONTEXT_COMPAT $CAPS --secure --silent --ctx $S_CONTEXT \
+ $_VSERVERKILLALL
+ fi
+ # We umount anyway, because "enter" establish the mount
+ # but when you exit, the server is considered not running
+ umountproc $__DEFAULT_VSERVERDIR/$1
+ cd /
+ test -x $__CONFDIR/$1.sh && $__CONFDIR/$1.sh post-stop $1
+ ifconfig_iproot_off $1
+elif [ "$2" = "restart" ] ; then
+ if $0 $1 running
+ then
+ $0 $1 stop
+ $0 $1 start
+ fi
+elif [ "$2" = "suexec" ] ; then
+ if [ -z "$3" ] ; then
+ echo "Missing user!" >&2
+ echo "vserver vserver-name suexec user command [ args ... ]" >&2
+ exit 1
+ elif [ -z "$4" ] ; then
+ echo "Missing command and arguments!" >&2
+ echo "vserver vserver-name suexec user command [ args ... ]" >&2
+ exit 1
+ else
+ IPROOT=
+ IPROOTMASK=
+ IPROOTBCAST=
+ IPROOTDEV=
+ readlastconf $1
+ . $__CONFDIR/$1.conf
+ cd $__DEFAULT_VSERVERDIR/$1
+ ifconfig_iproot $1
+ mountproc $__DEFAULT_VSERVERDIR/$1
+ PS1="[\u@vserver:$1 \W]"
+ export PS1
+ VSERVER=$1
+ USERID=$3
+ shift; shift; shift
+ CAPS=
+ for f in $S_CAPS dummy
+ do
+ case $f in
+ dummy)
+ ;;
+ !CAP_SYS_CHROOT)
+ CHROOTOPT=--nochroot
+ ;;
+ *)
+ CAPS="$CAPS --cap $f"
+ ;;
+ esac
+ done
+ FLAGS=
+ for f in $S_FLAGS dummy
+ do
+ case $f in
+ minit)
+ FLAGS="$FLAGS --flag fakeinit"
+ ;;
+
+ dummy)
+ ;;
+ *)
+ FLAGS="$FLAGS --flag $f"
+ ;;
+ esac
+ done
+ setdefulimit
+ if [ "$ULIMIT" != "" ] ; then
+ ulimit $ULIMIT
+ fi
+ if $0 $VSERVER running >/dev/null
+ then
+ . $__PKGSTATEDIR/$VSERVER.ctx
+ cd $__DEFAULT_VSERVERDIR/$VSERVER
+ IPOPT=`setipopt $IPROOT`
+ export PATH=$DEFAULTPATH
+ exec $_CHBIND $SILENT $IPOPT --bcast $IPROOTBCAST \
+ $_CHCONTEXT_COMPAT $SILENT $FLAGS $CAPS --secure --ctx $S_CONTEXT \
+ $_CAPCHROOT --suid $USERID . "$@"
+ else
+ test -x $__CONFDIR/$1.sh && $__CONFDIR/$1.sh pre-start $1
+ CTXOPT=
+ HOSTOPT=
+ DOMAINOPT=
+ if [ "$S_CONTEXT" != "" ] ; then
+ CTXOPT="--ctx $S_CONTEXT"
+ fi
+ if [ "$S_HOSTNAME" != "" ] ; then
+ HOSTOPT="--hostname $S_HOSTNAME"
+ export HOSTNAME=$S_HOSTNAME
+ fi
+ if [ "$S_DOMAINNAME" != "" ] ; then
+ DOMAINOPT="--domainname $S_DOMAINNAME"
+ fi
+ mkdir -p $__PKGSTATEDIR
+ cd $__DEFAULT_VSERVERDIR/$VSERVER
+ IPOPT=`setipopt $IPROOT`
+ export PATH=$DEFAULTPATH
+ exec $_CHBIND $SILENT $IPOPT --bcast $IPROOTBCAST \
+ $_CHCONTEXT_COMPAT $SILENT $FLAGS $CAPS --secure $CTXOPT $HOSTOPT $DOMAINOPT \
+ $_SAVE_S_CONTEXT $__PKGSTATEDIR/$VSERVER.ctx \
+ $_CAPCHROOT --suid $USERID $CHROOTOPT . "$@"
+ fi
+ fi
+elif [ "$2" = "exec" ] ; then
+ VSERV=$1
+ shift; shift
+ exec $0 $NODEV $SILENT $VSERV suexec root "$@"
+elif [ "$2" = "enter" ] ; then
+ testperm $1
+ exec $0 $NODEV $SILENT $1 exec /bin/bash -login
+elif [ "$2" = "service" ] ; then
+ VSERVER=$1
+ shift
+ shift
+ exec $0 $NODEV $SILENT $VSERVER exec /sbin/service "$@"
+elif [ "$2" = "chkconfig" ] ; then
+ VSERVER=$1
+ shift
+ shift
+ if [ "$1" = "--level" ] ; then
+ shift
+ LEVELS=$1
+ shift
+ fi
+ if [ $# != 2 -a ! -x $__DEFAULT_VSERVERDIR/$VSERVER/sbin/chkconfig ] ; then
+ echo Invalid argument, expected vserver name chkconfig [ --level nnn ] service on\|off
+ elif [ -x $__DEFAULT_VSERVERDIR/$VSERVER/sbin/chkconfig ] ; then
+ exec $0 --silent $VSERVER exec /sbin/chkconfig "$@"
+ elif [ -x $__DEFAULT_VSERVERDIR/$VSERVER/usr/sbin/update-rc.d ] ; then
+ if [ "$2" = "on" -o "$2" = "start" ] ; then
+ $0 --silent $VSERVER exec /usr/sbin/update-rc.d -f $1 remove >/dev/null
+ exec $0 --silent $VSERVER exec /usr/sbin/update-rc.d $1 start 80 2 3 4 5 . stop 20 0 1 6 . >/dev/null
+ elif [ "$2" = "off" -o "$2" = "stop" ] ; then
+ $0 --silent $VSERVER exec /usr/sbin/update-rc.d -f $1 remove >/dev/null
+ exec $0 --silent $VSERVER exec /usr/sbin/update-rc.d $1 stop 20 0 1 2 3 4 5 6 . >/dev/null
+ else
+ echo vserver chkconfig: Expecting on or off
+ fi
+ else
+ echo chkconfig functionality is not available on this
+ echo vserver distribution.
+ echo Looked for /sbin/chkconfig and /usr/sbin/update-rc.d
+ fi
+else
+ echo Command unknown $2
+ echo
+ usage
+fi
+
--- /dev/null
+#!/bin/bash
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+# based on vserver-copy by Mark Lawrence <nomad@null.net>
+#
+# 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.
+
+# Copy/Sync a virtual host from one machine to another
+#
+# History:
+#
+# 2003-04-04: Version 0.4 - Mark lawrence
+# - Set "ONBOOT=no" in the destination .conf file when --startstop
+# is not used, in case the destination roothost reboots. We don't
+# want two copies of a vserver running at the same time.
+#
+# 2003-03-04: Version 0.3 - Mark lawrence
+# - Changed all checks for [ "" != "$var" ] into [ -n|-z "$var" ]. "" doesn't
+# seem to work for bash on the Sparc architecture.
+# - Changed $ssh variable into $shcmd.
+#
+# 2003-02-23: Version 0.2 - Mark Lawrence
+# - Set ONBOOT to "no" in the original .conf file when the "-s" flag is
+# used so that if/when you reboot the source roothost you don't have the
+# same vserver and IP address running on two machines.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+
+VERSION="0.4"
+umask 022
+me=${0##*/}
+
+
+### Helper functions ###
+
+# Save stdin and stdout for later use
+exec 3>&1
+exec 4>&2
+
+noninteractive () {
+ exec &> /dev/null
+}
+
+interactive () {
+ exec 1>&3
+ exec 2>&4
+}
+
+info () {
+ ! $quiet && echo "I: $me: $1" >&3
+}
+
+warn () {
+ ! $quiet && echo "W: $me: $1" >&4
+}
+
+error () {
+ ! $quiet && echo "E: $me: $2" >&4
+ exit $1
+}
+
+
+### Usage/Info functions ###
+
+usage () {
+ cat <<EOF 1>&2
+Usage: $me [-hVvqidrRs] vserver newname
+ $me [-hVvqidrRs] vserver host:[newname]
+EOF
+}
+
+full_usage () {
+ usage
+ cat <<EOF
+
+$me uses rsync to make a copy of a vserver. If the destination
+name contains a host specification the vserver will be synchronised to
+the remote destination over ssh/rsh.
+
+This can be used on a running vserver to make a warm backup. With the -s
+flag a vserver can even be operationally moved to different hardware within
+seconds.
+
+The -i and -d flags can be used to minimally reconfigure the destination
+vserver (rewrites /etc/vservers/newname.conf and $__DEFAULT_VSERVERDIR/newname/etc/hosts)
+
+Options:
+ -h, --help this help
+ -V, --version copyright and version information
+ -v, --verbose show all output
+ -q, --quiet direct all output to /dev/null (no password
+ prompt for logins on remote hosts!)
+ -d, --domain [string] new dns domain (must be used with -i)
+ -i, --ip [addr] new IP address (must be used with -d)
+ -r, --vsroot location of "/vserver/" directory
+ -R, --rsh use rsh (instead of default ssh) for
+ network transport
+ -s, --stopstart stop the local vserver before copying and start
+ it on the destination host afterwards
+
+EOF
+}
+
+full_version () {
+ cat <<EOF
+$me version $VERSION
+Copyright (c) 2002 Mark Lawrence <nomad@null.net>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+EOF
+}
+
+
+### Default values and Command line options ###
+
+stopstart=(false)
+verbose=(false)
+quiet=(false)
+shcmd="ssh"
+rsflag="-e"
+rsh=(false)
+colon=":"
+domain=""
+ip=""
+vsroot=$__DEFAULT_VSERVERDIR
+
+if [ $# -eq 0 ]; then # Script invoked with no command-line args?
+ usage
+ exit 1
+fi
+
+temp=$(getopt -o hVvqd:i:rRs --long help,version,verbose,quiet,domain:,ip:,vsroot,rsh,stopstart, -n $me -- "$@")
+
+if [ $? -ne 0 ]; then
+ echo " (See -h for help)"
+ exit 1
+fi
+
+# Note the quotes around `$temp': they are essential!
+eval set -- "$temp"
+
+while true; do
+ case "$1" in
+ -h|--help) full_usage
+ exit 1
+ ;;
+ -V|--version) full_version
+ exit 1
+ ;;
+ -v|--verbose) verbose=(true)
+ shift
+ ;;
+ -q|--quiet) quiet=(true)
+ shift
+ ;;
+ -d|--domain) domain="$2"
+ shift 2
+ ;;
+ -i|--ip) ip="$2"
+ shift 2
+ ;;
+ -r|--vsroot) vsroot="$2"
+ shift 2
+ ;;
+ -R|--rsh) rsh=(true)
+ shift
+ ;;
+ -s|--stopstart) stopstart=(true)
+ shift
+ ;;
+ --) shift
+ break
+ ;;
+ *) echo "Internal error!"
+ exit 1
+ ;;
+ esac
+done
+
+if [ $# -ne 2 ]; then
+ usage
+ exit 1
+fi
+
+
+### ###
+
+# By default we are reasonably quiet (ouput only via info, warn & error)
+if $verbose; then
+ interactive
+else
+ noninteractive
+fi
+
+now=$(date)
+info "called on $(hostname) at $now"
+
+
+vserver=$1
+vconf=/etc/vservers/$vserver.conf
+vroot=$vsroot/$vserver
+
+if $rsh; then
+ shcmd="rsh"
+fi
+
+if (echo $2 | grep '^[a-z][a-z0-9]\+$'); then
+ dhost=""
+ newname=$2
+ shcmd=""
+ rsflag=""
+ colon=""
+ if $rsh; then
+ warn "rsh is set but not used for a local copy"
+ fi
+elif (echo $2 | grep '^[a-z].*[a-z0-9]:$'); then
+ dhost=${2/:/}
+ newname=$vserver
+elif (echo $2 | grep '^[a-z].*[a-z0-9]:[a-z].*[a-z0-9]$'); then
+ dhost=${2/:*/}
+ newname=${2/*:/}
+else
+ error 1 "Second argument must be of the form \"[host:]name\" or \"host:\""
+fi
+
+target=$vsroot/$newname
+targetconf=/etc/vservers/$newname.conf
+
+
+### Perform some sanity checks ###
+
+if [ ! -d $vroot ]; then
+ error 1 "Directory \"$vroot\" does not exist"
+fi
+
+if [ ! -e $vconf ]; then
+ error 1 "Vserver file \"$vconf\" does not exist"
+fi
+
+if [ -z "$dhost" ] && [ "$vserver" == "$newname" ]; then
+ error 1 "Source and destination names cannot be the same on the localhost"
+fi
+
+if [ -n "$dhost" ] && ! (host $dhost | grep 'has address'); then
+ warn "$dhost does not resolve into an IP address"
+fi
+
+if [ \( -n "$ip" -a -z "$domain" \) -o \
+ \( -z "$ip" -a -n "$domain" \) ]
+then
+ error 1 "Both IP address and domain must be specified together"
+fi
+
+if [ -n "$ip" ] && \
+! (echo $ip | grep '^[0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{3\}$' ); then
+ error 1 "\"$ip\" is not a valid IP address"
+fi
+
+# This works both locally and remote
+if ($shcmd $dhost $__SBINDIR/vserver $newname running | grep 'is running'); then
+ warn "destination vserver \"$newname\" is running"
+ error 1 "Cannot copy over a running vserver"
+fi
+
+
+### Do the copy ###
+
+info "Attempting to copy $vserver to $dhost$colon$newname"
+
+if $stopstart; then
+ info "Stopping virtual server \"$vserver\" on localhost"
+ $__SBINDIR/vserver $vserver stop
+fi
+
+info "Syncing directories"
+# trailing slashes very important in the rsync!
+if ! rsync -avxz $rsflag $shcmd $vroot/ $dhost$colon$target/; then
+ error 1 "rsync failed"
+fi
+
+if [ -n "$ip" -a -n "$domain" ]; then
+ # Insert the new IPROOT/S_HOSTNAME values into the config file
+ info "Modifying $targetconf"
+ tmpf=$(tempfile)
+ if (sed -e "s/^S_HOSTNAME=.*/S_HOSTNAME=\"$newname\"/" \
+ -e "s/^IPROOT=.*/IPROOT=\"$ip\"/" $vconf > $tmpf)
+ then
+ if ! rsync -v $rsflag $shcmd $tmpf $dhost$colon$targetconf; then
+ error $? "vserver config file copy/change failed"
+ fi
+
+ else
+ warn "Unable to reconfigure virtual server config file"
+ fi
+
+ # create a new /etc/hostname
+ info "Creating hostname file"
+ echo $newname > $tmpf
+ if ! rsync -v $rsflag $shcmd $tmpf $dhost$colon$target/etc/hostname; then
+ error 1 "vserver /etc/hostname copy failed"
+ fi
+
+ info "Creating /etc/hosts"
+ cat << EOF > $tmpf
+# /etc/hosts (automatically generated by $me)
+
+127.0.0.1 localhost
+$ip $newname.$domain $newname
+
+# The following lines are desirable for IPv6 capable hosts
+
+::1 ip6-localhost ip6-loopback
+fe00::0 ip6-localnet
+ff00::0 ip6-mcastprefix
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
+ff02::3 ip6-allhosts
+EOF
+
+ # copy /etc/hosts
+ if ! rsync -v $rsflag $shcmd $tmpf $dhost$colon$target/etc/hosts; then
+ error 1 "vserver /etc/hosts copy failed"
+ fi
+ rm -f $tmpf
+
+else
+ if ! $stopstart; then
+ # Make sure that this vserver doesn't start on the
+ # destination host if it reboots
+ tmpf=$(tempfile)
+ sed -e 's/^ONBOOT=.*/ONBOOT=no/' $vconf > $tmpf
+ vconf=$tmpf
+ fi
+
+ # copy newname.conf unchanged
+ info "Copying $targetconf"
+ if ! rsync -v $rsflag $shcmd $vconf $dhost$colon$targetconf; then
+ error 1 "vserver config file copy/change failed"
+ fi
+
+ rm -f $tmpf
+fi
+
+
+if $stopstart; then
+ info "Starting virtual server \"$vserver\" on $dhost"
+ $shcmd $dhost $__SBINDIR/vserver $vserver start
+ if ($shcmd $dhost $__SBINDIR/vserver $vserver running | \
+ grep 'not running'); then
+ error 1 "Virtual server \"$vserver\" failed to start on $dhost"
+ fi
+
+ # Make sure that we don't start the original on next boot
+ tmpf=$(tempfile)
+ sed -e 's/^ONBOOT=.*/ONBOOT=no/' $vconf > $tmpf
+ mv $tmpf $vconf
+fi
+
+exit 0
--- /dev/null
+#!/bin/sh
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+# based on vserverkillall by Jacques Gelinas
+#
+# 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.
+
+# This script kills all process it can finds
+# Only useful if you are using a security context.
+# It does nothing in context 0
+USR_LIB_VSERVER=/usr/lib/util-vserver
+CTX=`grep ^s_context /proc/self/status | sed s/s_context:// | (read a b; echo $a)`
+CTX=`eval expr $CTX + 0`
+if [ "$CTX" = 0 ] ; then
+ echo Running in security context 0, do nothing
+else
+ cd /proc
+ for SIG in -TERM -TERM -TERM -9
+ do
+ ONE=0
+ for dir in *
+ do
+ case $dir in
+ 1)
+ ;;
+ $$)
+ ;;
+ [1-9]*)
+ ONE=1
+ echo kill $SIG "`$USR_LIB_VSERVER/readlink /proc/$dir/exe`"[$dir]
+ kill $SIG $dir
+ ;;
+ *)
+ ;;
+ esac
+ done
+ if [ "$ONE" = 0 ] ; then
+ break
+ fi
+ sleep 1
+ done
+ # Kill the fakeinit process. It is shown as process one, but can't
+ # be killed this way
+ INITPID=`cat /proc/self/status | grep initpid: | (read a b; expr $b)`
+ if [ "$INITPID" != "0" ] ; then
+ echo kill init, pid $INITPID
+ kill -9 $INITPID
+ fi
+fi
+
+
--- /dev/null
+#!/bin/bash
+# $Id: pkgmgmt,v 1.13 2005/07/03 17:43:34 ensc Exp $
+
+# Copyright (C) 2004,2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT"
+. "$__PKGLIBDIR/vserver.functions"
+
+function showHelp()
+{
+ echo \
+$"Usage: $0 --externalize|--internalize [-y] [--] <vserver-name>
+
+Report bugs to <$PACKAGE_BUGREPORT>."
+ exit 0
+}
+
+function showVersion()
+{
+ echo $"\
+vpkg $PACKAGE_VERSION -- shows information about packages in vservers
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2004,2005 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit 0
+}
+
+function init()
+{
+ if test -z "$WORKAROUND_106057"; then
+ rpmdb_mntpoint=/dev
+ else
+ rpmdb_mntpoint=/.rpmdb
+ fi
+ pkgmgmt.initVariables
+}
+
+function _createDirs()
+{
+ for i; do
+ test -n "$i" || continue
+ mkdir -p -m755 "$i"
+ done
+}
+
+function _copySecure()
+{
+ local chroot=$1
+ local srcdir=$2
+ local dstdir=$3
+
+
+ ( cd "$srcdir" && tar chf - '.' ) | \
+ ( cd "$chroot" && $_EXEC_CD "$dstdir" $_TAR xf - )
+}
+
+function _copySecureRev()
+{
+ local chroot=$1
+ local srcdir=$2
+ local dstdir=$3
+
+ ( cd "$chroot" && $_EXEC_CD "$srcdir" $_TAR cf - '.' ) | \
+ ( cd "$dstdir" && tar xf - )
+}
+
+## Usage: _substFile <filename> <sed-expression>
+function _substFile()
+{
+ local file=$1
+ local expr=$2
+
+ $_CHROOT_SH testfile "$file" || return 0
+
+ local tmp=$($_MKTEMP /tmp/pkgmgmt_subst.XXXXXX)
+ trap "$_RM -f $tmp" EXIT
+
+ $_CHROOT_SH cat "$file" | \
+ $_SED -e "$expr" >$tmp
+
+ $_CHROOT_SH cat "$file" | $_CMP -s $tmp - || \
+ $_CHROOT_SH truncate "$file" <$tmp
+
+ $_RM -f $tmp
+}
+
+function _hashAuto()
+{
+ local file=$1
+ local hash=$2
+
+ $_CHROOT_SH testfile "$file" || return 0
+
+ local tmp=$($_MKTEMP /tmp/apt.conf.XXXXXX)
+ trap "$_RM -f $tmp" EXIT
+
+ $_CHROOT_SH cat "$file" | \
+ $_SED -e "s|^\([^$hash].*@autogenerated@\)|$hash$hash\1|" >$tmp
+
+ $_CHROOT_SH cat "$file" | $_CMP -s $tmp - || \
+ $_CHROOT_SH truncate "$file" <$tmp
+
+ $_RM -f $tmp
+}
+
+function _unhashAuto()
+{
+ test -e "$1" || return 0
+
+ local hash=$2
+ local tmp=$($_MKTEMP /tmp/apt.conf.XXXXXX)
+ trap "$_RM -f $tmp" EXIT
+
+ $_SED -e "s|^$hash$hash\(.*@autogenerated@\)|\1|" "$1" >$tmp
+ $_CMP -s "$tmp" "$1" || \
+ $_CAT "$tmp" >"$1"
+
+ $_RM -f $tmp
+}
+
+function _mountFilesystemsInternal()
+{
+ local fstab="$1"
+ test -e "$fstab" || return 0
+ shift
+
+ pushd "$vdir" >/dev/null
+ "$@" $_SECURE_MOUNT -n -a --chroot --fstab "$fstab"
+ popd >/dev/null
+}
+
+function _mountFilesystems()
+{
+ local cfgdir
+ cfgdir=$($_VSERVER_INFO "$1" CFGDIR) || {
+ echo "Can not determine configuration directory for '$1'; ..." >&2
+ return 1
+ }
+ test -n "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$1"
+
+ _mountFilesystemsInternal "$cfgdir"/fstab $_CHBIND "${CHBIND_OPTS[@]}" || return 1
+ _mountFilesystemsInternal "$cfgdir"/fstab.local $_CHBIND "${CHBIND_OPTS[@]}" || return 1
+}
+
+function _umountFilesystems()
+{
+ local cfgdir
+ cfgdir=$($_VSERVER_INFO "$1" CFGDIR) || {
+ echo "Can not determine configuration directory for '$1'; ..." >&2
+ return 1
+ }
+ local vdir=$cfgdir/vdir
+ local is_ok=1
+ test -n "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$1"
+
+ pushd "$vdir/" >/dev/null || return 1
+ _umountVserverInternal "$cfgdir"/fstab.local || is_ok=
+ _umountVserverInternal "$cfgdir"/fstab $_CHBIND "${CHBIND_OPTS[@]}" || is_ok=
+ popd >/dev/null || return 1
+
+ test -n "$is_ok"
+}
+
+# Usage: verifyInternalPackages <vserver> <style>
+function verifyInternalPackages()
+{
+ local pkgs res=0
+ local ERR="\
+The following errors occured while trying to internalize the
+packagemanagement:
+"
+
+ case $2 in
+ (RH) pkgs=$(vrpm "$1" -- -q --qf '---%{NAME}---\n' rpm apt yum "${YUM_RELEASEPKGS[@]}")
+ hasSubstring "$pkgs" ---rpm--- || {
+ warning "$ERR
+* The vserver does not seem to have the 'rpm' package which is required
+ for internal package management. It is suggested to install it before
+ continuing."
+ res=1
+ ERR=
+ }
+
+ hasSubstring "$pkgs" ---apt--- ---yum--- || {
+ warning "$ERR
+* The vserver does not seem to have a depsolver like 'apt' or 'yum'
+ installed. It is suggested to install such a program before setting
+ up internal package management."
+ res=1
+ ERR=
+ }
+
+ test -n "$have_apt" || test -z "$have_yum" || \
+ hasSubstring "$pkgs" "${YUM_RELEASEPKGS[@]}" || {
+ warning "$ERR
+* yum requires a special package which describes the version of the
+ distribution. Such a package could not be found within the vserver
+ so please install it before continuing. Usually, this package is
+ named 'redhat-release' of 'fedora-release'."
+ res=1
+ ERR=
+ }
+ ;;
+ esac
+
+ return $res
+}
+
+function processVserver_RH()
+{
+ local vserver=$1
+ local is_internalize=$2
+ local have_apt
+ local cfgdir
+ local i
+
+ cfgdir=$($_VSERVER_INFO "$vserver" APPDIR pkgmgmt) || \
+ cfgdir=$($_VSERVER_INFO "$vserver" APPDIR)/pkgmgmt
+
+ ## Figure out the environment....
+ have_apt=1
+ have_yum=1
+ pkgmgmt.isAptAvailable "$cfgdir" "$vdir" "$is_internalize" || have_apt=
+ pkgmgmt.isYumAvailable "$cfgdir" "$vdir" "$is_internalize" || have_yum=
+
+ local APTETCDIR=
+ local APTSTATEDIR=
+ local APTCACHEDIR=
+ local APTARCHIVDIR=
+ local RPMETCDIR=
+ local RPMSTATEDIR=
+
+ ## Create directories and assign variables where configuration
+ ## can/will be found on the host
+ if test -n "$is_internalize"; then
+ verifyInternalPackages "$vserver" RH || test -n "$IS_FORCE" ||
+ panic "
+Can not continue; use '--force' to override this check"
+
+ pushd "$vdir" >/dev/null
+
+ test ! -L var/lib/rpm || {
+ $_EXEC_CD /var/lib $_RM rpm &&
+ $_EXEC_CD /var/lib $_MKDIR -m755 rpm &&
+ $_EXEC_CD /var/lib $_CHOWN rpm:rpm rpm ||
+ :
+ } </dev/null 2>/dev/null
+
+ for i in var/cache/apt/{,archives/{,partial},genpkglist,gensrclist} \
+ var/state/{,apt/{,lists/{,partial}}} \
+ etc/apt etc/rpm; do
+ test -d "$i" ||
+ $_EXEC_CD /$(dirname "$i") $_MKDIR -m755 $(basename "$i") || :
+ done #2>/dev/null
+
+ popd >/dev/null
+
+ if test -n "$have_apt"; then
+ findDir APTETCDIR "$cfgdir"/aptetc "$cfgdir"/base/apt/etc /etc/apt /
+ fi
+
+ findDir RPMETCDIR "$cfgdir"/rpmetc "$cfgdir"/base/rpm/etc /etc/rpm /
+ findDir RPMSTATEDIR "$cfgdir"/rpmstate "$cfgdir"/base/rpm/state
+ else
+ mkdir -m755 -p "$cfgdir"
+ local need_base=
+
+ if test -n "$have_apt"; then
+ findDir APTETCDIR "$cfgdir"/aptetc "$cfgdir"/base/apt/etc /
+ findDir APTSTATEDIR "$cfgdir"/aptstate "$cfgdir"/base/apt/state /
+ findDir APTCACHEDIR "$cfgdir"/aptcache "$cfgdir"/base/apt/cache /
+ findDir APTARCHIVDIR "$cfgdir"/aptarchives "$cfgdir"/base/apt/archives /
+
+ test "$APTETCDIR" != / || APTETCDIR=$cfgdir/base/apt/etc
+ test "$APTSTATEDIR" != / || APTSTATEDIR=$cfgdir/base/apt/state
+ test "$APTCACHEDIR" != / || APTCACHEDIR=$cfgdir/base/apt/cache
+ test "$APTARCHIVDIR" != / || APTARCHIVDIR=$cfgdir/base/apt/archive
+
+ test -d "$cfgdir"/aptetc -a -d "$cfgdir"/aptstate -a \
+ -d "$cfgdir"/aptcache -a -d "$cfgdir"/aptarchives || need_base=1
+ fi
+
+ findDir RPMETCDIR "$cfgdir"/rpmetc "$cfgdir"/base/rpm/etc /
+ findDir RPMSTATEDIR "$cfgdir"/rpmstate "$cfgdir"/base/rpm/state /
+
+ test "$RPMETCDIR" != / || RPMETCDIR=$cfgdir/base/rpm/etc
+ test "$RPMSTATEDIR" != / || RPMSTATEDIR=$cfgdir/base/rpm/state
+
+ test -d "$cfgdir"/rpmetc -a -d "$cfgdir"/rpmstate || need_base=1
+ test ! -e "$cfgdir"/base || need_base=
+
+ test -z "$need_base" || ln -s "$PKGCFGDIR" "$cfgdir"/base
+
+ mkdir -m755 -p "$PKGCFGDIR"
+ _createDirs "$APTETCDIR" "$APTSTATEDIR" "$APTCACHEDIR" "$APTARCHIVDIR" \
+ "$RPMETCDIR" "$RPMSTATEDIR"
+ fi
+
+ ## Copy the files...
+ if test -n "$is_internalize"; then
+ if test -n "$have_apt"; then
+ _copySecure "$vdir" "$APTETCDIR" /etc/apt
+ pushd "$vdir" >/dev/null
+ _hashAuto /etc/apt/apt.conf '/'
+ popd >/dev/null
+ fi
+
+ _copySecure "$vdir" "$RPMETCDIR" /etc/rpm
+ _copySecure "$vdir" "$RPMSTATEDIR" /var/lib/rpm
+
+ pushd "$vdir" >/dev/null
+ ## remove %_dbpath settings
+ _substFile /etc/rpm/macros '/^%_dbpath[ \t].*/D'
+ popd >/dev/null
+ else
+ if test -n "$have_apt"; then
+ _copySecureRev "$vdir" /etc/apt "$APTETCDIR"
+ _unhashAuto "$APTETCDIR"/apt.conf '/'
+ fi
+
+ _copySecureRev "$vdir" /etc/rpm "$RPMETCDIR"
+ _copySecureRev "$vdir" /var/lib/rpm "$RPMSTATEDIR"
+
+ echo -e "%_dbpath\t\t$rpmdb_mntpoint" >>$RPMETCDIR/macros
+ fi
+
+ ## Cleanups...
+ if test -n "$is_internalize"; then
+ :
+ else
+ tmpdir=$($_MKTEMPDIR /var/tmp/pgmgmt.XXXXXX)
+ trap "$_RM -rf $tmpdir" EXIT
+ pushd "$vdir" >/dev/null
+ $_EXEC_CD /var/lib $_MV rpm $tmpdir/
+ $_EXEC_CD /var/lib $_LN_S "$rpmdb_mntpoint" rpm
+ $_RM -rf $tmpdir
+ fi
+
+ ## Finish it...
+ if test -n "$is_internalize"; then
+ $_TOUCH "$cfgdir"/internal
+ else
+ $_RM -f "$cfgdir"/internal
+ fi
+}
+
+function processVserver_Debian()
+{
+ local vserver=$1
+ local is_internalize=$2
+
+ if test -n "$is_internalize"; then
+ echo $"Debian vservers should be internalized everytime; do not know how to handle '$vserver'" >&2
+ else
+ echo $"External packagemanagement is not supported for Debian vserver" >&2
+ fi
+
+ return 1
+}
+
+function processVserver()
+{
+ local vserver=$1
+ local is_external=
+ local skip=1
+ local vdir
+
+ ! $_VSERVER_INFO -q "$vserver" RUNNING || {
+ echo $"Can not operate on running vservers; please stop '$vserver' and retry again..."
+ return 1
+ } >&2
+
+ vdir=$($_VSERVER_INFO "$vserver" VDIR) && test -d "$vdir" || {
+ echo $"Vserver '$vserver' does not seem to exist; skipping it..."
+ return 1
+ } >&2
+
+ pkgmgmt.isInternal "$vserver" || is_external=1
+
+ case "$is_external"X"$IS_INTERNALIZE"X"$IS_EXTERNALIZE" in
+ (*X1X1) echo $"Can not externalize and internalize at the same time";;
+ (*XX) echo $"No operation specified; try '--help' for more information";;
+ (1XX1) echo $"Vserver '$vserver' has already external packagemanagment; skipping it...";;
+ (X1X) echo $"Vserver '$vserver' has already internal packagemanagment; skipping it...";;
+ (*) skip=
+ esac >&2
+
+ test -z "$skip" || return 1
+
+ local style
+ _mountFilesystems "$vserver" || return 1
+ pkgmgmt.guessStyle "$vserver" style || return 1
+
+ case "$style" in
+ (redhat|mandrake) processVserver_RH "$vserver" "$IS_INTERNALIZE";;
+ (debian) processVserver_Debian "$vserver" "$IS_INTERNALIZE";;
+ (*)
+ echo $"Vserver style '$style' is not supported for packagemanagment" >&2
+ return 1
+ esac
+
+ _umountFilesystems "$vserver" || return 1
+}
+
+tmp=$(getopt -o y --long debug,externalize,internalize,help,version,force -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+IS_EXTERNALIZE=
+IS_INTERNALIZE=
+IS_YES=
+IS_FORCE=
+
+while true; do
+ case "$1" in
+ (--help) showHelp $0;;
+ (--version) showVersion;;
+ (--debug) set -x;;
+ (--externalize) IS_EXTERNALIZE=1;;
+ (--internalize) IS_INTERNALIZE=1;;
+ (--force) IS_FORCE=1;;
+ (-y) IS_YES=1;;
+ (--) shift; break;;
+ (*) echo $"vserver: internal error; arg=='$1'" >&2; exit 1;;
+ esac
+ shift
+done
+
+test -n "$1" || {
+ echo $"No vserver specified; try '--help' for more information"
+ exit 1
+} >&2
+
+
+set -e
+init
+
+ok=1
+passed=
+for i; do
+ processVserver "$i" && passed=1 || ok=
+done
+
+test -z "$ok" || exit 0
+test -z "$passed" || exit 1
+exit 2
--- /dev/null
+#! /bin/bash
+
+# Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+# Usage: start-vservers [-c <CFGDIR>] [-m <MARK>] [-j <NUM>] [--start|--stop|--status|--condrestart|--restart] [--test] [--all] [--debug] -- <name>+
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+### Some local functions
+
+function showHelp()
+{
+ echo \
+$"Usage: $(basename $0) [-c <CFGDIR>] [-m <MARK>] [-j <NUM] [--test]
+ [--start|--stop] [--all|--[un]marked|--running|--stopped] -- <name>+
+
+Please report bugs to $PACKAGE_BUGREPORT"
+ exit 0
+}
+
+
+function showVersion()
+{
+ echo \
+$"start-vserver $PACKAGE_VERSION -- starts/stops a bunch of vservers
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2004 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit 0
+}
+
+function verifyVserver()
+{
+ true
+}
+
+###
+
+set +e
+
+
+tmp=$(getopt -o c:j:m: \
+ --long debug,help,version,start,stop,test,$VS_ALLVSERVERS_ARGS \
+ -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+declare -a tmp_vservers=()
+declare -r TAB=$(echo -en "\t")
+OPTION_MARK=
+OPTION_PARALLEL=99
+OPTION_DEBUG=
+NOOPTION_DEBUG=1
+
+case "`basename $0`" in
+ start-*) OPTION_FLAVOR=start;;
+ stop-*) OPTION_FLAVOR=stop;;
+ *) OPTION_FLAVOR=;;
+esac
+
+while true; do
+ getAllVserversByArg tmp_vservers "$1" || \
+ case "$1" in
+ (--help) showHelp $0 ;;
+ (--version) showVersion $0 ;;
+ (-c) CONFDIR=$2; shift;;
+ (-m) OPTION_MARK=$2; shift;;
+ (-j) OPTION_PARALLEL=$2; shift;;
+ (--start) OPTION_FLAVOR=start;;
+ (--stop) OPTION_FLAVOR=stop;;
+ (--debug) OPTION_DEBUG=1; NOOPTION_DEBUG=; set -x;;
+ (--) shift; break;;
+ (*) echo $"$0: internal error; arg=='$1'" >&2; exit 1;;
+ esac
+ shift
+done
+
+test -n "$OPTION_FLAVOR" || {
+ echo "$0: unknown invocation method; aborting..." >&2
+ exit 1
+}
+
+vservers=( "$@" "${tmp_vservers[@]}" )
+
+orig_vservers=$vservers
+i=${#vservers[*]}
+
+while test $i -gt 0; do
+ let --i
+ d=$__CONFDIR/${vservers[$i]}/apps/init
+ f=$d/mark
+ { test -n "$OPTION_MARK" -a -r "$f" && grep -qx "$OPTION_MARK" "$f"; } || \
+ { test -z "$OPTION_MARK" && test ! -e "$f"; } || \
+ unset vservers[$i]
+done
+
+makedir=$($_MKTEMPDIR /tmp/vserver-init.XXXXXX)
+okfile=$($_MKTEMP /tmp/vserver-init.XXXXXX)
+passedfile=$($_MKTEMP /tmp/vserver-init.XXXXXX)
+trap "$_RM -rf $makedir $resultfile $passedfile" EXIT
+
+test_cmd=false
+case "$OPTION_FLAVOR" in
+ start) test_cmd="${_VSERVER} --silent '\$*' status";;
+ stop) test_cmd="! ${_VSERVER} --silent '\$*' status";;
+esac
+
+{
+ cat <<EOF
+.%.stamp:
+${TAB}$test_cmd || { \
+${TAB}echo -n '.' >>$passedfile ; \
+${TAB}$_VSERVER --defaulttty --sync ${OPTION_DEBUG:+--debug} "\$*" ${OPTION_FLAVOR}; }
+${TAB}echo -n '.' >>$okfile
+${TAB}@touch "\$@"
+EOF
+
+ echo -ne "all:\t"
+ for i in "${vservers[@]}"; do
+ echo -n ".$i.stamp "
+ done
+ echo
+} >$makedir/Makefile
+
+for i in "${vservers[@]}"; do
+ d="$__CONFDIR/$i"/apps/init
+ echo "$i"
+ test -e "$d"/depends || continue
+ cat "$d"/depends
+done | sort -u | while read vserver; do
+ d="$__CONFDIR/$vserver"/apps/init
+
+ case "$OPTION_FLAVOR" in
+ start)
+ if test -e "$d"/depends; then
+ echo -ne ".$vserver.stamp:\t"
+ cat "$d"/depends | while read dep; do
+ verifyVserver "$dep"
+ echo -n ".$dep.stamp "
+ done
+ echo
+ fi >>$makedir/Makefile
+ ;;
+ stop)
+ if test -e "$d"/depends; then
+ cat "$d"/depends | while read dep; do
+ verifyVserver "$dep"
+ echo -ne ".$dep.stamp:\t.$vserver.stamp"
+ done
+ echo
+ fi >>$makedir/Makefile
+ esac
+done
+
+#cat $makedir/Makefile
+make -k ${NOOPTION_DEBUG:+-s} ${OPTION_PARALLEL:+-j$OPTION_PARALLEL} -C $makedir
+
+test -s "$passedfile" || exit 0
+test -s "$okfile" || exit 1
+$_CMP -s "$passedfile" "$okfile" || exit 2
+exit 0
--- /dev/null
+# $Id: util-vserver-vars.pathsubst,v 1.49 2005/07/03 17:43:55 ensc Exp $ --*- sh -*--
+
+PACKAGE='@PACKAGE@'
+PACKAGE_BUGREPORT='@PACKAGE_BUGREPORT@'
+PACKAGE_NAME='@PACKAGE_NAME@'
+PACKAGE_STRING='@PACKAGE_STRING@'
+PACKAGE_TARNAME='@PACKAGE_TARNAME@'
+PACKAGE_VERSION='@PACKAGE_VERSION@'
+
+__CONFDIR='@CONFDIR@'
+__INCLUDEDIR='@INCLUDEDIR@'
+__INITRDDIR='@INITRDDIR@'
+__LEGACYDIR="@LEGACYDIR@"
+__LIBDIR='@LIBDIR@'
+__LOCKDIR="/var/lock"
+__PKGLIBDIR='@PKGLIBDIR@'
+__PKGSTATEDIR="@PKGSTATEDIR@"
+__PKGSTATEREVDIR="@PKGSTATEREVDIR@"
+__SBINDIR='@SBINDIR@'
+__SYSCONFDIR='@SYSCONFDIR@'
+__VSHELPERSTATEDIR="@VSHELPERSTATEDIR@"
+
+__DISTRIBDIR="$__PKGLIBDIR/distributions"
+__PKGLIBDEFAULTDIR="$__PKGLIBDIR/defaults"
+__RUNDIR="$__PKGSTATEDIR"
+
+__DEFAULT_VSERVERDIR='@VSERVERDIR@'
+__DEFAULT_VSERVERPKGDIR='@VSERVERPKGDIR@'
+
+_CAPCHROOT="$__PKGLIBDIR/capchroot"
+_CHAINECHO="$__PKGLIBDIR/chain-echo"
+_CHBIND="$__SBINDIR/chbind"
+_CHCONTEXT="$__SBINDIR/chcontext"
+_CHCONTEXT_COMPAT="$__PKGLIBDIR/chcontext-compat"
+_CHECK_UNIXFILE="$__PKGLIBDIR/check-unixfile"
+_CHROOT_SH="$__PKGLIBDIR/chroot-sh"
+_EXEC_CD="$__SBINDIR/exec-cd"
+_EXEC_ULIMIT="$__PKGLIBDIR/exec-ulimit"
+_FAKE_RUNLEVEL="$__PKGLIBDIR/fakerunlevel"
+_FILETIME="$__PKGLIBDIR/filetime"
+_IFSPEC="$__LEGACYDIR/ifspec"
+_INITSYNC_MINIT_START=:
+_KEEP_CTX_ALIVE="$__PKGLIBDIR/keep-ctx-alive"
+_LIB_FUNCTIONS="$__PKGLIBDIR/functions"
+_LIB_VSERVER_SETUP_FUNCTIONS="$__PKGLIBDIR/vserver-setup.functions"
+_LIB_VSERVER_BUILD_FUNCTIONS="$__PKGLIBDIR/vserver-build.functions"
+_LIB_VSERVER_BUILD_FUNCTIONS_APT="$__PKGLIBDIR/vserver-build.functions.apt"
+_LIB_VSERVER_BUILD_FUNCTIONS_RPM="$__PKGLIBDIR/vserver-build.functions.rpm"
+_LIB_VSERVER_BUILD_FUNCTIONS_YUM="$__PKGLIBDIR/vserver-build.functions.yum"
+_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT="$__PKGLIBDIR/vserver-build.functions.pkgmgmt"
+_LISTDEVIP="$__LEGACYDIR/listdevip"
+_LOCKFILE="$__PKGLIBDIR/lockfile"
+_MASK2PREFIX="$__PKGLIBDIR/mask2prefix"
+_PARSERPMDUMP="$__LEGACYDIR/parserpmdump"
+_PKGMGMT="$__PKGLIBDIR/pkgmgmt"
+_READLINK="$__PKGLIBDIR/readlink"
+_REBOOTMGR="$__LEGACYDIR/rebootmgr"
+_RPM_FAKE_SO="$__PKGLIBDIR/rpm-fake.so"
+_SAVE_S_CONTEXT="$__LEGACYDIR/save_s_context"
+_SAVE_CTXINFO="$__PKGLIBDIR/save_ctxinfo"
+_SECURE_MOUNT="$__PKGLIBDIR/secure-mount"
+_SETATTR="$__SBINDIR/setattr"
+_SHOWPERM="$__LEGACYDIR/showperm"
+_START_VSERVERS="$__PKGLIBDIR/start-vservers"
+_VAPT_GET="$__SBINDIR/vapt-get"
+_VAPT_GET_WORKER="$__PKGLIBDIR/vapt-get-worker"
+_VATTRIBUTE="$__SBINDIR/vattribute"
+_VCONTEXT="$__SBINDIR/vcontext"
+_VHASHIFY="$__PKGLIBDIR/vhashify"
+_VKILL="$__SBINDIR/vkill"
+_VLIMIT="$__SBINDIR/vlimit"
+_VNAMESPACE="$__SBINDIR/vnamespace"
+_VPKG="$__PKGLIBDIR/vpkg"
+_VPROCUNHIDE="$__PKGLIBDIR/vprocunhide"
+_VPS="$__SBINDIR/vps"
+_VREBOOT="$__LEGACYDIR/vreboot"
+_VRPM="$__SBINDIR/vrpm"
+_VRPM_PRELOAD="$__PKGLIBDIR/vrpm-preload"
+_VRPM_WORKER="$__PKGLIBDIR/vrpm-worker"
+_VSCHED="$__SBINDIR/vsched"
+_VSERVER="$__SBINDIR/vserver"
+_VSERVER_LEGACY="$__LEGACYDIR/vserver"
+_VSERVER_BUILD="$__PKGLIBDIR/vserver-build"
+_VSERVER_INFO="$__SBINDIR/vserver-info"
+_VSERVERKILLALL="$__LEGACYDIR/vserverkillall"
+_VSHELPER="$__PKGLIBDIR/vshelper"
+_VSHELPER_SYNC="$__PKGLIBDIR/vshelper-sync"
+_VSOMETHING="$__SBINDIR/vsomething"
+_VWAIT="$__SBINDIR/vwait"
+_VUNAME="$__SBINDIR/vuname"
+_VUNIFY="$__PKGLIBDIR/vunify"
+_VYUM="$__SBINDIR/vyum"
+_VYUM_WORKER="$__PKGLIBDIR/vyum-worker"
+
+_AWK="@AWK@"
+_CAT="@CAT@"
+_CHOWN="@CHOWN@"
+_CMP="@CMP@"
+_CP="@CP@"
+_DIRNAME="@DIRNAME@"
+_EGREP="@EGREP@"
+_ENV="@ENV@"
+_GREP="@GREP@"
+_IP="@IP@"
+_IPTABLES="@IPTABLES@"
+_LN="@LN@"
+_LN_S="$_LN -s"
+_MKDIR="@MKDIR@"
+_MKFIFO="@MKFIFO@"
+_MKTEMP="@MKTEMP@"
+_MKTEMPDIR="$_MKTEMP -d"
+_MODPROBE="@MODPROBE@"
+_MOUNT="@MOUNT@"
+_MV="@MV@"
+_NAMEIF="@NAMEIF@"
+_NICE="@NICE@"
+_NOHUP="@NOHUP@"
+_RM="@RM@"
+_RMDIR="@RMDIR@"
+_RMMOD="@RMMOD@"
+_SED="@SED@"
+_SH="@SH@"
+_TAC="@TAC@"
+_TAR="@TAR@"
+_TOUCH="@TOUCH@"
+_TTY="@TTY@"
+_UMOUNT="@UMOUNT@"
+_VCONFIG="@VCONFIG@"
+_WC="@WC@"
+_WGET="@WGET@"
+
+# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=106057
+WORKAROUND_106057=1
+# /var/lib/rpm is hardcoded into apt-get which does not honor the
+# %_dbpath variable therefore
+# http://distro2.conectiva.com.br/pipermail/apt-rpm/2003-October/001985.html
+WORKAROUND_APT_DBPATH=1
--- /dev/null
+#! /bin/bash
+# $Id: vapt-get,v 1.14 2005/01/27 21:24:44 ensc Exp $
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+
+function showHelp()
+{
+ echo \
+$"Usage: $0 <vserver-name>* [--all] -- <params>+
+
+Report bugs to <$PACKAGE_BUGREPORT>."
+ exit $1
+}
+
+function showVersion()
+{
+ echo \
+$"vapt-get $PACKAGE_VERSION -- apt-get for vservers
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2003 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit $1
+}
+
+is_quiet=
+declare -a vservers=()
+
+while test "$#" -ge 1; do
+ case "$1" in
+ --) shift; break;;
+ --help) showHelp 0;;
+ --quiet|-q) is_quiet=1 ;;
+ --all)
+ getAllVservers tmp
+ vservers=( "${vservers[@]}" "${tmp[@]}" )
+ ;;
+ --version)
+ showVersion 0;;
+ *) vservers=( "${vservers[@]}" "$1" )
+ esac
+ shift
+done
+
+test "$#" -ge 1 || showHelp 1 >&2
+test "${#vservers[@]}" -ne 1 || is_quiet=1
+
+cnt=0
+res=255
+for i in "${vservers[@]}"; do
+ cnt=$[ cnt + 1 ]
+
+ test -n "$is_quiet" || {
+ colorize bold echo -n "vaptget: operating on vserver "
+ colorize bold colorize emph echo "$i"
+ xtermTitle "vaptget: operating on vserver '$i' [$cnt/${#vservers[@]}]"
+ }
+
+ if pkgmgmt.isInternal "$i"; then
+ $_VSERVER "$i" exec apt-get "$@"
+ else
+ callInNamespace "$i" \
+ "$_VNAMESPACE" --new -- "$_VAPT_GET_WORKER" "$i" "$@"
+ fi
+ res=$?
+
+ test $res -eq 0 -o -n "$is_quiet" || {
+ colorize error echo -n $"vapt-get failed on vserver '$i' with errorcode $res"
+ echo
+ }
+
+ test -n "$is_quiet" || echo
+done
+
+test "$cnt" -ge 0 || echo "No vservers specified" >&2
+exit $res
--- /dev/null
+#! /bin/bash
+# $Id: vapt-get-worker,v 1.8 2005/02/25 21:51:02 ensc Exp $
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+set -e
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+
+function createAptFileSys()
+{
+ mkdir -p /var/state/apt/lists/partial
+ mkdir -p /var/cache/apt/archives/partial
+}
+
+vserver="$1"
+shift
+
+pkgInit "$vserver" rpm apt
+
+createAptFileSys
+
+test -z "$_APT_GET" || {
+ warning $"The environment variable \$_APT_GET is not supported anymore; please use \$APT_GET instead of"
+ ${APT_GET:=$_APT_GET}
+}
+
+exec ${_APT_GET:-apt-get} \
+ -o "RPM::RootDir=$VDIR" \
+ -o "Dir=$VDIR" \
+ -o "Dir::State=$APTSTATEDIR" \
+ -o "Dir::Cache=$APTCACHEDIR" \
+ -o "Dir::Cache::archives=$APTARCHIVDIR" \
+ -o "Dir::Bin::rpm=$RPM_BINARY" \
+ -o "Dir::Etc=$APTETCDIR" \
+ -o "RPM::Order=true" \
+ -o "RPM::PM=external" \
+ "$@"
--- /dev/null
+#!/bin/bash
+# $Id: vpkg,v 1.11 2005/03/18 00:23:02 ensc Exp $
+
+# Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+function showHelp()
+{
+ echo \
+$"Usage: $0 <vserver-name> <tag>
+
+Report bugs to <$PACKAGE_BUGREPORT>."
+ exit 0
+}
+
+function showVersion()
+{
+ echo $"\
+vpkg $PACKAGE_VERSION -- shows information about packages in vservers
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2004 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit 0
+}
+
+
+case "$1" in
+ (--help) showHelp $(basename $0);;
+ (--version) showVersion ;;
+esac
+
+test "$1" -a "$2" || {
+ echo $"No vserver and/or tag given; use '--help' for more information" >&2
+ exit 1
+}
+
+vserver=$1
+tag=$2
+shift 2
+
+case "$tag" in
+ get-conffiles|install) ;;
+ *) echo $"Unsupport tag '$tag'" >&2; exit 1;;
+esac
+
+cfgdir=$($_VSERVER_INFO "$vserver" APPDIR pkgmgmt) || :
+vdir=$($_VSERVER_INFO "$1" VDIR) || :
+
+style=
+is_external=
+pkgmgmt.guessStyle "$vserver" style || exit 2
+pkgmgmt.isInternal "$vserver" || is_external=1
+
+cmd=()
+
+case "$style" in
+ (redhat|mandrake)
+ rpm_param=
+ apt_param=
+ case "$tag" in
+ ## rpm outputs sometimes '(contains no files)', so return
+ ## only the valid output
+ (get-conffiles)
+ rpm_param=( -qac --pipe "$_SED '\!^/!p;d'" );;
+ (install)
+ rpm_param=( -Uvh "$@" )
+ apt_param=( install "$@" )
+ ;;
+ esac
+
+ if test -n "$is_external"; then
+ have_apt=1
+ test -d "$cfgdir"/base/apt -o -d "$cfgdir"/aptetc || have_apt=
+ else
+ have_apt=
+ for i in /bin /usr/bin /usr/local/bin; do
+ test ! -x "$vdir$i"/apt-get || { have_apt=1; break; }
+ done
+ fi
+
+ if test -n "$is_external"; then
+ if test "$have_apt" -a "$apt_param"; then
+ cmd=( "$_VAPT_GET" "$vserver" -- "${apt_param[@]}" )
+ else
+ cmd=( "$_VRPM" "$vserver" -- "${rpm_param[@]}" )
+ fi
+ else
+ if test "$have_apt" -a "$apt_param"; then
+ cmd=( "$_VSERVER" --silent "$vserver" exec apt-get "${apt_param[@]}" )
+ else
+ cmd=( "$_VSERVER" --silent "$vserver" exec rpm "${rpm_param[@]}" )
+ fi
+ fi
+ ;;
+ (debian)
+ case "$tag" in
+ (get-conffiles)
+ cmd=( sh -c "cat /var/lib/dpkg/info/*.conffiles 2>/dev/null" )
+ ;;
+ (install)
+ cmd=( apt-get install "$@" )
+ ;;
+ esac
+
+ if test -n "$is_external"; then
+ echo $"'external' packagemanagement is not supported for Debian" >&2
+ exit 1
+ else
+ cmd=( "$_VSERVER" --silent "$vserver" exec "${cmd[@]}" )
+ fi
+ ;;
+ (*)
+ echo $"Packagemanagement is not supported for '$style' style" >&2
+ exit 2
+ ;;
+esac
+
+export LANG=C
+exec "${cmd[@]}"
--- /dev/null
+#!/bin/bash
+# $Id: vprocunhide,v 1.8 2005/04/10 00:55:51 ensc Exp $
+#
+# Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+function showHelp()
+{
+ echo $\
+"Usage: vprocunhide
+
+Return values:
+ 0 ... no errors
+ 1 ... configuration error
+ 2 ... some files were changed but errors occured on other ones
+ 3 ... operation failed on every file
+
+Report bugs to <$PACKAGE_BUGREPORT>."
+ exit 0
+}
+
+function showVersion()
+{
+ echo \
+$"vprocunhide $PACKAGE_VERSION -- unhides /proc entries
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2004 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit 0
+}
+
+
+while test -n "$1"; do
+ case "$1" in
+ --help) showHelp;;
+ --version) showVersion;;
+ esac
+done
+
+findFile UNHIDEFILE \
+ "$__CONFDIR"/.defaults/apps/vprocunhide/files \
+ "$__PKGLIBDEFAULTDIR"/vprocunhide-files
+
+ok=1
+passed=
+while read filename; do
+ params=()
+
+ case "$filename" in
+ (\#*) continue;;
+ (\~*) params=( --admin --watch --hide ); filename=${filename#\~};;
+ (-*) params=( --admin --hide ); filename=${filename#-};;
+ (:*) params=( --watch --hide ); filename=${filename#:};;
+ (!*) params=( --hide ); filename=${filename#!};;
+ (+*) params=( --!hide ); filename=${filename#+};;
+ (*) params=( --!hide );;
+ esac
+
+ case "$filename" in
+ (*/) params=( "${params[@]}" -R );;
+ (*) ;;
+ esac
+
+ set -- $filename
+ test -e "$1" || continue
+
+ $_SETATTR -x "${params[@]}" "$@" && passed=1 || ok=
+done <"$UNHIDEFILE"
+
+test -n "$ok" && exit 0 || \
+test -n "$passed" && exit 2 || \
+exit 3
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#Presents the processes running in all virtual servers
-: ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars}
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
test -e "$UTIL_VSERVER_VARS" || {
- echo "Can not find util-vserver installation; aborting..."
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
exit 1
}
. "$UTIL_VSERVER_VARS"
-exec $SBINDIR/chcontext --silent --ctx 1 pstree $*
-
-
+exec $__SBINDIR/chcontext --silent --ctx 1 pstree "$@"
-#!/bin/sh
+#! /bin/bash
+# $Id: vrpm,v 1.13 2005/01/27 21:24:44 ensc Exp $
# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-# based on vrpm by Jacques Gelinas
#
# 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.
+# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-# Wrapper to update/install package in many vservers at once
-
-: ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars}
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
test -e "$UTIL_VSERVER_VARS" || {
- echo "Can not find util-vserver installation; aborting..."
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
exit 1
}
. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
-usage(){
- echo vrpm: Install/Updates packages in several vservers at once
- echo vrpm vservers ... -- rpm options and packages
- echo vrpm \[--unify\] ALL -- rpm options and packages
- echo vrpm \[--unify\] server1 server2 -- -Uvh package.rpm
- echo
- echo vrpm is executed in the root server
- echo "--unify run vunify on the vserver for the updated packages"
+function showHelp()
+{
+ echo \
+$"Usage: $0 <vserver-name>* [--all] [--quiet|-q] [--help] [--version] [--unify] -- <rpm-params>+
+
+Report bugs to <$PACKAGE_BUGREPORT>."
+
+ exit $1
}
-UNIFY=no
-if [ "$1" = "--unify" ] ; then
- UNIFY=yes
- shift
-fi
-if [ $# = 0 ] ; then
- usage
-else
- SERVERS=
- while [ $# -gt 0 -a "$1" != "--" ]
- do
- if [ "$1" = "ALL" ] ; then
- SERVERS=`cd $VROOTDIR && ls`
- else
- SERVERS="$SERVERS $1"
- fi
- shift
- done
- if [ "$1" != "--" ] ; then
- usage
- elif [ "$SERVERS" = "" ] ; then
- echo no server specified
- echo
- usage
- else
- shift
- for serv in $SERVERS
- do
- # We try to run the rpm command in the same security
- # context than the vserver, if running.
- # This way, process operations will be done in the proper
- # context
- # If the vserver is not running, chcontext will
- # pick an unused one.
- CTXOPT=""
- CTXFILE=/var/run/vservers/$serv.ctx
- if [ -f $CTXFILE ] ; then
- source $CTXFILE
- CTXOPT="--ctx $S_CONTEXT"
- fi
- #echo rpm --root $VROOTDIR/$serv $*
- echo Updating server $serv
- $SBINDIR/chcontext --silent $CTXOPT rpm --root $VROOTDIR/$serv $*
- done
- if [ "$UNIFY" = "yes" ] ; then
- PACKAGES=
- for pkg in $*
- do
- case $pkg in
- -*)
- # RPM options ?
- ;;
- --*)
- # RPM options ?
- ;;
- *)
- pkg=`rpm -qp $pkg --queryformat %{name}`
- PACKAGES="$PACKAGES $pkg"
- ;;
- esac
- done
- echo Unification
- $PKGLIBDIR/vunify --excldir /var/log $SERVERS -- $PACKAGES
- fi
- fi
-fi
-
+function showVersion()
+{
+ echo \
+$"vrpm $PACKAGE_VERSION -- rpm for vservers
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2003 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+
+ exit $1
+}
+
+do_unify=
+is_quiet=
+declare -a vservers=()
+
+while test "$#" -ge 1; do
+ case "$1" in
+ --quiet|-q)
+ is_quiet=1
+ ;;
+ --all)
+ getAllVservers tmp
+ vservers=( "${vservers[@]}" "${tmp[@]}" )
+ ;;
+ --unify)
+ do_unify=1
+ ;;
+ --)
+ shift; break;;
+ --help)
+ showHelp 0;;
+ --version)
+ showVersion 0;;
+ *) vservers=( "${vservers[@]}" "$1" )
+ esac
+ shift
+done
+
+test "$#" -ge 1 || showHelp 1 >&2
+test "${#vservers[@]}" -ne 1 || is_quiet=1
+
+cnt=0
+res=255
+
+for i in "${vservers[@]}"; do
+ cnt=$[ cnt + 1 ]
+
+ test -n "$is_quiet" || {
+ colorize bold echo -n "vrpm: operating on vserver "
+ colorize bold colorize emph echo "$i"
+ xtermTitle "vrpm: operating on vserver '$i' [$cnt/${#vservers[@]}]"
+ }
+
+ if pkgmgmt.isInternal "$i"; then
+ $_VSERVER "$i" exec rpm "$@"
+ else
+ callInNamespace "$i" \
+ "$_VNAMESPACE" --new -- "$_VRPM_WORKER" "$i" "$@"
+ fi
+ res=$?
+
+ test $res -eq 0 -o "$is_quiet" || {
+ colorize error echo -n $"vrpm failed on vserver '$i' with errorcode $res"
+ echo
+ }
+
+ test -n "$is_quiet" || echo
+done
+
+test -z "$do_unify" || echo "unify currently unsupported" >&2
+test "$cnt" -ge 0 || echo "No vservers specified" >&2
+exit $res
--- /dev/null
+#! /bin/bash
+# $Id: vrpm-preload,v 1.12 2005/01/27 21:24:44 ensc Exp $
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+set -e
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+for bin in `which rpm` /bin/rpm /usr/lib/rpm/rpm${RPM_FLAVOR:-i} ""; do
+ ldd "$bin" &>/dev/null && break
+done
+
+test -x "$bin" ||
+ panic $"No dynamically linked rpm binary found; exiting..."
+
+rpmFake.init "$CUR_VSERVER"
+rpmFake.exec "$bin" "$@"
--- /dev/null
+#! /bin/bash
+# $Id: vrpm-worker,v 1.5 2004/04/08 06:05:06 ensc Exp $
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+set -e
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+vserver=$1
+shift
+
+pkgInit "$vserver" rpm
+
+exec $RPM_BINARY --root "$VDIR" "$@"
-#!/bin/bash
+#! /bin/bash
+# $Id: vserver,v 1.30 2005/04/28 18:03:42 ensc Exp $
-# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-# based on vserver by Jacques Gelinas
+# Copyright (C) 2003,2004,2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
# 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.
+# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-# This is a script to control a virtual server
+# set -e
-: ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars}
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
test -e "$UTIL_VSERVER_VARS" || {
- echo "Can not find util-vserver installation; aborting..."
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
exit 1
}
. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
-USR_SBIN=$SBINDIR
-USR_LIB_VSERVER=$PKGLIBDIR
+### Some local functions
-VSERVER_CMD=$USR_SBIN/vserver
-CHBIND_CMD=$USR_SBIN/chbind
-CHCONTEXT_CMD=$USR_SBIN/chcontext
-SAVE_S_CONTEXT_CMD=$USR_LIB_VSERVER/save_s_context
-CAPCHROOT_CMD=$USR_LIB_VSERVER/capchroot
-VSERVERKILLALL_CMD=$USR_LIB_VSERVER/vserverkillall
-DEFAULTPATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
+function showHelp()
+{
+ echo \
+$"Usage: $(basename $0) [-s|--sync] [-v|--verbose] [--silent]
+ [--] <vserver> <command> <args>*
-vserver_mknod(){
- mknod $1 $2 $3 $4
- chmod $5 $1
-}
+<vserver> is the name of a vserver.
-mountproc()
-{
- mkdir -p $1/proc $1/dev/pts
- if [ ! -d $1/proc/1 ] ; then
- mount -t proc none $1/proc
- mount -t devpts -o gid=5,mode=0620 none $1/dev/pts
- fi
-}
-umountproc()
-{
- umount $1/proc 2>/dev/null
- umount $1/dev/pts 2>/dev/null
-}
+Possible commands are:
+ start [--rescue] [--rescue-cmd <cmd>]
+ ... starts the specified vserver
+ stop ... stops the specified vserver
+ restart ... restarts the specified vserver; this is the subsequent
+ execution of a synchronized 'stop' and a 'start'
+ condrestart ... restarts the vserver when it is running already
+ suexec <user> <shell-command> <args*>
+ ... executes a command as the specified user in the vserver
+ exec <shell-command> <args*>
+ ... executes a command as root in the vserver
+ enter ... executes the configured shell in the vserver
+ chkconfig <chkconfig-options*>
+ ... modifies the init-system; currently, only Red Hat's
+ chkconfig is supported
+ running ... succeeds iff the vserver is running
+ status ... gives out some human readable status information about
+ the vserver, and succeeds iff the vserver is running
-# Check that the vservers parent directory has permission 000
-# This is the key to avoid chroot escape
-testperm()
-{
- return
- PERM=`$USR_LIB_VSERVER/showperm $VROOTDIR/$1/..`
- if [ "$PERM" != 000 ] ; then
- echo
- echo "**********************************************************"
- echo $VROOTDIR/$1/.. has insecure permissions.
- echo A vserver administrator may be able to visit the root server.
- echo To fix this, do
- echo " " chmod 000 $VROOTDIR/$1/..
- echo do it anytime you want, even if vservers are running.
- echo "**********************************************************"
- echo
- fi
-}
-# Set the IP alias needed by a vserver
-ifconfig_iproot()
-{
- if [ "$NODEV" = "" -a "$IPROOT" != "" -a "$IPROOT" != "0.0.0.0" -a "$IPROOT" != "ALL" ] ;then
- # A vserver may have more than one IP
- # The first alias is dev:vserver
- # and the other are dev:vserver1,2,3 and so on
- # An IP may hold the device. The following is valid
- # IPROOT="1.2.4.5 eth1:1.2.3.5"
- # IPROOTDEV=eth0
- # The first IP 1.2.3.4 will go on eth0 and the other on eth1
- # VLAN devices are also supported (eth0.231 for vlan 231)
- SUFFIX=
- for oneip in $IPROOT
- do
- IPDEV=$IPROOTDEV
- MASK=$IPROOTMASK
- BCAST=$IPROOTBCAST
- # Split the device and IP if available
- case $oneip in
- *:*)
- eval `echo $oneip | tr : ' ' | (read dev ip; echo oneip=$ip; echo IPDEV=$dev)`
- ;;
- esac
- # Split the IP and the netmask if available
- case $oneip in
- */*)
- eval `echo $oneip | tr / ' ' | (read ip msk; echo oneip=$ip; echo MASK=$msk)`
- eval `$USR_LIB_VSERVER/ifspec "" "$oneip" "$MASK" "$BCAST"`
- ;;
- esac
- if [ "$IPDEV" != "" ] ; then
- case $IPDEV in
- *.*)
- if [ ! -f /proc/net/vlan/$IPDEV ] ; then
- /sbin/vconfig add `echo $IPDEV | tr . ' '`
- # Put a dummy IP
- /sbin/ifconfig $IPDEV 127.0.0.1
- fi
- ;;
- esac
- # Compute the default netmask, if missing
- eval `$USR_LIB_VSERVER/ifspec $IPDEV "$oneip" "$MASK" "$BCAST"`
- IPROOTMASK=$NETMASK
- IPROOTBCAST=$BCAST
- #echo /sbin/ifconfig $IPDEV:$1$SUFFIX $oneip netmask $IPROOTMASK broadcast $IPROOTBCAST
- /sbin/ifconfig $IPDEV:$1$SUFFIX $oneip netmask $IPROOTMASK broadcast $IPROOTBCAST
- fi
- if [ "$SUFFIX" = "" ] ; then
- SUFFIX=1
- else
- SUFFIX=`expr $SUFFIX + 1`
- fi
- done
- fi
- if [ "$IPROOTBCAST" = "" ] ; then
- IPROOTBCAST=255.255.255.255
- fi
-}
-ifconfig_iproot_off()
-{
- if [ "$NODEV" = "" -a "$IPROOT" != "" -a "$IPROOT" != "0.0.0.0" -a "$IPROOT" != "ALL" -a "$IPROOTDEV" != "" ] ;then
- SUFFIX=
- for oneip in $IPROOT
- do
- IPDEV=$IPROOTDEV
- # Split the device and IP if available
- case $oneip in
- *:*)
- eval `echo $oneip | tr : ' ' | (read dev ip; echo IPDEV=$dev)`
- ;;
- esac
- /sbin/ifconfig $IPDEV:$1$SUFFIX down 2>/dev/null
- if [ "$SUFFIX" = "" ] ; then
- SUFFIX=1
- else
- SUFFIX=`expr $SUFFIX + 1`
- fi
- done
- fi
-}
-# Split an IPROOT definition, trash the devices and
-# compose a set of --ip option for chbind
-setipopt(){
- RET=
- IPS="$*"
- if [ "$IPS" = "" ] ; then
- IPS=0.0.0.0
- fi
- if [ "$1" = "ALL" ] ; then
- IPS=`$USR_LIB_VSERVER/listdevip`
- fi
- for oneip in $IPS
- do
- # Split the device and IP if available
- case $oneip in
- *:*)
- eval `echo $oneip | tr : ' ' | (read dev ip; echo oneip=$ip)`
- ;;
- esac
- #case $oneip in
- #*/*)
- # eval `echo $oneip | tr / ' ' | (read ip msk; echo oneip=$ip)`
- # ;;
- #esac
- echo --ip $oneip
- done
+ build <buildopts>*
+ ... builds a new vserver from scratch
+
+ unify [-R]
+ ... (de)unify vserver
+
+ pkg install <pkg>
+ ... installs package(s) in the vserver
+
+ apt-get,apt-config,apt-cache <apt-opts>*
+ ... execute the apt-* command for the given vserver
+ rpm <rpm-opts>*
+ ... execute the rpm command for the given vserver
+
+ pkgmgmt externalize|internalize [-y]
+ ... externalize or internalize the package-management for the
+ given vserver. 'Externalize' means that package metadata
+ and management tools (apt-get,rpm) are living in the host,
+ while 'internalize' means that data and programs from the
+ vserver will be used.
+
+ unify <vunify-opts>*
+ ... unify the vserver with its reference vserver(s).
+
+
+Please report bugs to $PACKAGE_BUGREPORT"
+ exit 0
}
-# Extract the initial runlevel from the vserver inittab
-get_initdefault()
+function showVersion()
{
- INITDEFAULT=`grep :initdefault $VROOTDIR/$1/etc/inittab | sed 's/:/ /g' | ( read a level b; echo $level)`
+ echo \
+$"vserver $PACKAGE_VERSION -- manages the state of vservers
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2003,2004,2005 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit 0
}
-# Read the vserver configuration file, reusing the PROFILE value
-# found in /var/run/vservers
-readlastconf()
+function suexec()
{
- if [ -f /var/run/vservers/$1.ctx ] ; then
- . /var/run/vservers/$1.ctx
- if [ "$S_PROFILE" != "" ] ; then
- export PROFILE=$S_PROFILE
- fi
- fi
- export PROFILE
- . /etc/vservers/$1.conf
+ . $__PKGLIBDIR/vserver.suexec
}
-usage()
+
+function restart()
{
- echo vserver [ options ] server-name command ...
- echo
- echo server-name is a directory in $VROOTDIR
- echo
- echo The commands are:
- echo " build : Create a virtual server by copying the packages"
- echo " of the root server"
- echo " enter : Enter in the virtual server context and starts a shell"
- echo " Same as \"vserver name exec /bin/sh\""
- echo " exec : Exec a command in the virtual server context"
- echo " suexec : Exec a command in the virtual server context uid"
- echo " service : Control a service inside a vserver"
- echo " vserver name service service-name start/stop/restart/status"
- echo " start : Starts the various services in the vserver, runlevel 3"
- echo " stop : Ends all services and kills the remaining processes"
- echo " running : Tells if a virtual server is running"
- echo " It returns proper exit code, so you can use it as a test"
- echo " status : Tells some information about a vserver"
- echo " chkconfig : It turns a server on or off in a vserver"
- echo
- echo "--nodev : Do not configure the IP aliases of the vserver"
- echo " Useful to enter a vserver without enabling its network"
- echo " and avoiding conflicts with another copy of this vserver"
- echo " running elsewhere"
- echo "--silent : No informative messages about vserver context and IP numbers"
- echo " Useful when you want to redirect the output"
+ "${SELF[@]}" --sync "$vserver" stop
+ exec "${SELF[@]}" "$vserver" start
}
-calculateCaps()
+function msg()
{
- local f
- for f in "$@"; do
- case $f in
- !CAP_SYS_CHROOT)
- CHROOTOPT=--nochroot
- ;;
- *)
- CAPS="$CAPS --cap $f"
- ;;
- esac
- done
+ test -z "$OPTION_SILENT" || return 0
+ echo "$@"
}
-SILENT=
-NODEV=
-while true
-do
- if [ "$1" = "--silent" ] ; then
- SILENT=--silent
- shift
- elif [ "$1" = "--nodev" ] ; then
- NODEV=--nodev
- shift
- else
- break
- fi
+### main starts here
+
+set +e
+
+OPTIONS_ORIG=( "$@" )
+tmp=$(getopt -o +sv --long nonamespace,--nonamespace,--insecure,defaulttty,help,debug,version,sync,verbose,silent -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+OPTION_FORCE_SYNC=
+OPTION_VERBOSE=
+OPTION_SILENT=
+OPTION_DEBUG=
+OPTION_NONAMESPACE=
+OPTION_INSECURE=
+OPTION_DEFAULTTTY=
+
+while true; do
+ case "$1" in
+ (--help) showHelp $0 ;;
+ (--version) showVersion ;;
+ (--debug) OPTION_DEBUG=$1; set -x;;
+ (-v|--verbose) OPTION_VERBOSE=$1;;
+ (-s|--sync) OPTION_FORCE_SYNC=$1;;
+ (--silent) OPTION_SILENT=$1;;
+ (----nonamespace)OPTION_NONAMESPACE=$1;;
+ (--defaulttty) OPTION_DEFAULTTTY=$1;;
+ (----insecure) OPTION_INSECURE=1;;
+ (--) shift; break;;
+ (*) echo $"vserver: internal error; arg=='$1'" >&2; exit 1;;
+ esac
+ shift
done
-# Setup the default ulimit for a vserver
-setdefulimit(){
- # File handle are limited to half of the current system limit
- # Virtual memory is limited to the ram size
- NFILE=`cat /proc/sys/fs/file-max`
- NFILE=`expr $NFILE / 2`
- VMEM=`cat /proc/meminfo | grep MemTotal | (read a b c; echo $b)`
- # Disabled for now, we need a different to set the security
- # context limit than fiddling with ulimit
- #ulimit -H -n $NFILE -v $VMEM
-}
-if [ $# -lt 2 ] ; then
- usage
-elif [ "$2" = "build" ] ; then
- # Either the directory does not exist or is empty
- NBSUB=`ls $VROOTDIR/$1 2>/dev/null | grep -v lost+found | wc -l`
- NBSUB=`expr $NBSUB`
- if [ "$NBSUB" != 0 ] ; then
- echo Virtual server $VROOTDIR/$1 already exist
- else
- if [ ! -d $VROOTDIR ] ; then
- mkdir $VROOTDIR || exit 1
- chmod 000 $VROOTDIR
- chattr +t $VROOTDIR
- echo Directory $VROOTDIR was created with permissions 000
- fi
- mkdir -p $VROOTDIR/$1 || exit 1
- chattr -t $VROOTDIR/$1
- chmod 755 $VROOTDIR/$1
- if test "$UTIL_VSERVER_AVOID_COPY"; then
- mkdir -p $VROOTDIR/$1/{etc/rc.d/init.d,sbin,var/run,var/log}
- else
- cp -ax /sbin /bin /etc /usr /var /lib $VROOTDIR/$1/. || exit 1
- fi
- cd $VROOTDIR/$1 || exit 1
- rm -fr lib/modules/*
- rm -f var/spool/mail/*
- rm -f `find var/run -type f`
- rm -f `find var/log -type f`
- touch var/log/wtmp
- rm -f var/lock/subsys/*
- rm -f etc/cron.d/kmod
- mkdir proc tmp home root boot
- test -f /root/.bashrc && cp -a /root/.bashrc root/.
- test -f /root/.bash_profile && cp -a /root/.bash_profile root/.
- chmod 1777 tmp
- chmod 750 root
- # Create a minimal dev so the virtual server can't grab
- # more privileges
- mkdir dev dev/pts
- vserver_mknod dev/null c 1 3 666
- vserver_mknod dev/zero c 1 5 666
- vserver_mknod dev/full c 1 7 666
- vserver_mknod dev/random c 1 8 644
- vserver_mknod dev/urandom c 1 9 644
- vserver_mknod dev/tty c 5 0 666
- vserver_mknod dev/ptmx c 5 2 666
- touch dev/hdv1
- # Create a dummy /etc/fstab and /etc/mtab to please
- # df and linuxconf. We use hdv1, which does not exist
- # to remind the admin that it is not the real drive
- echo /dev/hdv1 / ext2 defaults 1 1 >etc/fstab
- echo /dev/hdv1 / ext2 rw 0 0 >etc/mtab
- # Install the vreboot utility
- cp -a $USR_LIB_VSERVER/vreboot sbin/.
- ln -sf vreboot sbin/vhalt
-
- echo Directory $VROOTDIR/$1 has been populated
- if [ ! -d /etc/vservers ] ; then
- mkdir /etc/vservers
- chmod 600 /etc/vservers
- echo Directory /etc/vservers has been created
- fi
- if [ ! -f /etc/vservers/$1.conf ] ; then
- CONF=/etc/vservers/$1.conf
- cat >$CONF <<-EOF
-if [ "$PROFILE" = "" ] ; then
- PROFILE=prod
+
+OPTION_ALL=( $OPTION_SILENT $OPTION_VERBOSE $OPTION_DEBUG $OPTION_DEFAULTTTY )
+SELF=( "$0" "${OPTION_ALL[@]}" )
+
+vserver=$1
+cmd=$2
+
+test "$cmd" != build || { shift 2; exec "$_VSERVER_BUILD" -n "$vserver" "$@"; }
+
+
+allow_legacy=
+
+case "$vserver" in
+ (./*) VSERVER_DIR=`pwd`/$vserver;;
+ (/*) VSERVER_DIR=$vserver;;
+ (*) VSERVER_DIR=$__CONFDIR/$vserver
+ allow_legacy=1
+ ;;
+esac
+
+if test -n "$allow_legacy"; then
+ do_legacy=
+ test ! -e "$VSERVER_DIR/legacy" || do_legacy=1
+ test -d "$VSERVER_DIR" -o ! -e "$__CONFDIR/$vserver.conf" || do_legacy=1
+
+ test -z "$do_legacy" || {
+ echo $"WARNING: can not find configuration, assuming legacy method" >&2
+ exec "$_VSERVER_LEGACY" "$@"
+ }
fi
-# Select the IP number assigned to the virtual server
-# This IP must be one IP of the server, either an interface
-# or an IP alias
-# A vserver may have more than one IP. Separate them with spaces.
-# do not forget double quotes.
-# Some examples:
-# IPROOT="1.2.3.4 2.3.4.5"
-# IPROOT="eth0:1.2.3.4 eth1:2.3.4.5"
-# If the device is not specified, IPROOTDEV is used
-case \$PROFILE in
-prod)
- IPROOT=1.2.3.4
- # The netmask and broadcast are computed by default from IPROOTDEV
- #IPROOTMASK=
- #IPROOTBCAST=
- # You can define on which device the IP alias will be done
- # The IP alias will be set when the server is started and unset
- # when the server is stopped
- #IPROOTDEV=eth0
- # You can set a different host name for the vserver
- # If empty, the host name of the main server is used
- S_HOSTNAME=
+
+test -d "$VSERVER_DIR" || {
+ echo $"\
+Can not find a vserver-setup at '$VSERVER_DIR/'.
+
+Possible solutions:
+* fix the spelling of the '$vserver' vserver name
+* read 'vserver $vserver build --help' about ways to create a new vserver
+* see 'vserver --help' for the syntax of this command
+"
+ exit 5
+} >&2
+
+if test -e "$VSERVER_DIR"/name; then
+ read VSERVER_NAME <"$VSERVER_DIR"/name
+else
+ VSERVER_NAME=$(basename "$VSERVER_DIR")
+fi
+
+test "$2" != start -o -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \
+ exec $_VNAMESPACE --new -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}"
+
+. $__PKGLIBDIR/vserver.functions
+case "$2" in
+ (start|stop)
+ shift 2
+ . $__PKGLIBDIR/vserver.$cmd
;;
-backup)
- IPROOT=1.2.3.4
- #IPROOTMASK=
- #IPROOTBCAST=
- #IPROOTDEV=eth0
- S_HOSTNAME=
+ (suexec|restart)
+ shift 2
+ $cmd "$@"
+ ;;
+ (condrestart)
+ test ! isVserverRunning "$VSERVER_DIR" || restart
+ ;;
+ (exec)
+ shift 2
+ suexec root "$@"
+ ;;
+ (chkconfig)
+ shift 2
+ suexec root chkconfig "$@"
+ ;;
+ (enter)
+ getEnterShell "$VSERVER_DIR"
+ suexec root "${ENTER_SHELL[@]}"
+ ;;
+ (running)
+ isVserverRunning "$VSERVER_DIR"
+ ;;
+
+ (unify)
+ shift 2
+ exec $_VUNIFY "$@" "$vserver"
+ ;;
+
+ (hashify)
+ shift 2
+ exec $_VHASHIFY "$@" "$vserver"
;;
-esac
-# Uncomment the onboot line if you want to enable this
-# virtual server at boot time
-#ONBOOT=yes
-# You can set a different NIS domain for the vserver
-# If empty, the current on is kept
-# Set it to "none" to have no NIS domain set
-S_DOMAINNAME=
-# You can set the priority level (nice) of all process in the vserver
-# Even root won't be able to raise it
-S_NICE=
-# You can set various flags for the new security context
-# lock: Prevent the vserver from setting new security context
-# sched: Merge scheduler priority of all processes in the vserver
-# so that it acts a like a single one.
-# nproc: Limit the number of processes in the vserver according to ulimit
-# (instead of a per user limit, this becomes a per vserver limit)
-# private: No other process can join this security context. Even root
-# Do not forget the quotes around the flags
-S_FLAGS="lock nproc"
-# You can set various ulimit flags and they will be inherited by the
-# vserver. You enter here various command line argument of ulimit
-# ULIMIT="-HS -u 200"
-# The example above, combined with the nproc S_FLAGS will limit the
-# vserver to a maximum of 200 processes
-ULIMIT="-HS -u 1000"
-# You can set various capabilities. By default, the vserver are run
-# with a limited set, so you can let root run in a vserver and not
-# worry about it. He can't take over the machine. In some cases
-# you can to give a little more capabilities (such as CAP_NET_RAW)
-# S_CAPS="CAP_NET_RAW"
-S_CAPS=""
-# Select an unused context (this is optional)
-# The default is to allocate a free context on the fly
-# In general you don't need to force a context
-#S_CONTEXT=
- EOF
- echo $CONF has been created. Look at it\!
- fi
- # Turn off some service useless on a vserver
- # vserver_turnoff apmd network autofs dhcpd gpm ipchains iptables \
- # irda isdn keytable kudzu linuxconf-setup netfs nfs nfslock \
- # pcmcia portmap pppoe random rawdevices rhnsd rstatd ruserd \
- # rwalld rwhod sendmail smb snmpd v_httpd h_xinetd v_sshd vservers \
- # xfs ypbind xinetd
- (
- cd etc/init.d 2>/dev/null || cd etc/rc.d/init.d
- for serv in *
- do
- case $serv in
- *.bak|*~|functions|killall|halt|single)
- ;;
- *)
- #$USR_LIB_VSERVER/capchroot $VROOTDIR/$1 /sbin/chkconfig --level 2345 $serv off
- $0 --silent $1 chkconfig --level 2345 $serv off
- ;;
- esac
- done
- )
- rm -f etc/rc.d/rc6.d/S*reboot
- fi
-elif [ ! -f /etc/vservers/$1.conf ] ; then
- echo No configuration for this vserver: /etc/vservers/$1.conf
- exit 1
-elif [ ! -d $VROOTDIR/$1/. ] ; then
- echo No directory for this vserver: $VROOTDIR/$1
- exit 1
-elif [ "$2" = "start" ] ; then
- echo Starting the virtual server $1
- testperm $1
- if ! $VSERVER_CMD $1 running
- then
- test -x /etc/vservers/$1.sh && /etc/vservers/$1.sh pre-start $1
- IPROOT=
- IPROOTMASK=
- IPROOTBCAST=
- IPROOTDEV=
- S_NICE=
- S_FLAGS=
- . /etc/vservers/$1.conf
- export PROFILE
- ifconfig_iproot $1
- cd $VROOTDIR/$1 || exit 1
-
- if [ "$PROFILE" != "" ] ; then
- echo export PROFILE=$PROFILE >etc/PROFILE
- fi
-
- rm -f `find var/run -type f`
- touch var/run/utmp
- chgrp ${UTMP_GROUP:-utmp} var/run/utmp
- chmod 0664 var/run/utmp
- rm -f var/lock/subsys/*
- mountproc $VROOTDIR/$1
- CTXOPT=
- HOSTOPT=
- DOMAINOPT=
- NICECMD=
- FLAGS=
- CAPS=
- get_initdefault $1
- STARTCMD="/etc/rc.d/rc $INITDEFAULT"
- if [ -x $VROOTDIR/$1/etc/init.d/rc ] ; then
- STARTCMD="/etc/init.d/rc $INITDEFAULT"
- elif [ -x $VROOTDIR/$1/usr/bin/emerge ] ; then
- STARTCMD="/sbin/rc default"
- elif [ -x $VROOTDIR/$1/etc/rc.d/rc.M ] ; then
- STARTCMD="/etc/rc.d/rc.M"
- fi
-
- DISCONNECT=
- FAKEINIT=
- for f in $S_FLAGS dummy
- do
- case $f in
- dummy)
- ;;
-
- minit)
- FAKEINIT=true
- FLAGS="$FLAGS --flag fakeinit"
- STARTCMD=/sbin/minit-start
- DISCONNECT=--disconnect
- ;;
-
- fakeinit)
- FAKEINIT=true
- FLAGS="$FLAGS --flag $f"
- STARTCMD=/sbin/init
- DISCONNECT=--disconnect
- ;;
- *)
- FLAGS="$FLAGS --flag $f"
- ;;
- esac
- done
- if [ -n "$S_START" ] ; then
- STARTCMD=$S_START
- fi
- if [ "$FAKEINIT" = "" ] ; then
- $USR_LIB_VSERVER/fakerunlevel $INITDEFAULT var/run/utmp
- fi
-
- calculateCaps $S_CAPS
-
- if [ "$S_CONTEXT" != "" ] ; then
- CTXOPT="--ctx $S_CONTEXT"
- fi
- if [ "$S_HOSTNAME" != "" ] ; then
- HOSTOPT="--hostname $S_HOSTNAME"
- export HOSTNAME=$S_HOSTNAME
- fi
- if [ "$S_DOMAINNAME" != "" ] ; then
- DOMAINOPT="--domainname $S_DOMAINNAME"
- fi
- if [ "$S_NICE" != "" ] ; then
- NICECMD="nice -$S_NICE"
- fi
- mkdir -p /var/run/vservers
- chmod 700 /var/run/vservers
- setdefulimit
- if [ "$ULIMIT" != "" ] ; then
- ulimit $ULIMIT
- fi
- #echo FLAGS=$FLAGS
- #echo CAPS=$CAPS
- # We switch to $VROOTDIR/$1 now, because after the
- # security context switch $VROOTDIR directory becomes a dead zone.
- cd $VROOTDIR/$1
- IPOPT=`setipopt $IPROOT`
- export PATH=$DEFAULTPATH
- $NICECMD $CHBIND_CMD $SILENT $IPOPT --bcast $IPROOTBCAST \
- $CHCONTEXT_CMD $SILENT $DISCONNECT $CAPS $FLAGS $CTXOPT $HOSTOPT $DOMAINOPT --secure \
- $SAVE_S_CONTEXT_CMD /var/run/vservers/$1.ctx \
- $CAPCHROOT_CMD $CHROOTOPT . $STARTCMD
- sleep 2
- test -x /etc/vservers/$1.sh && /etc/vservers/$1.sh post-start $1
- fi
-elif [ "$2" = "running" ] ; then
- if [ ! -f /var/run/vservers/$1.ctx ] ; then
- echo Server $1 is not running
- exit 1
- else
- . /var/run/vservers/$1.ctx
- NB=$($USR_SBIN/vps ax | awk '{print $2}' | grep \^$S_CONTEXT\$ | wc -l)
- #NB=`$CHCONTEXT_CMD --silent --ctx $S_CONTEXT ps ax | wc -l`
- #NB=`eval expr $NB + 0`
- if [ "$NB" -gt 0 ] ; then
- echo Server $1 is running
- exit 0
- else
- echo Server $1 is not running
- exit 1
- fi
- fi
-elif [ "$2" = "status" ] ; then
- if $0 $1 running
- then
- . /var/run/vservers/$1.ctx
- NB=$($USR_SBIN/vps ax | awk '{print $2}' | grep \^$S_CONTEXT\$ | wc -l)
- echo $NB processes running
- echo Vserver uptime: `$USR_LIB_VSERVER/filetime /var/run/vservers/$1.ctx`
- fi
-elif [ "$2" = "stop" ] ; then
- echo Stopping the virtual server $1
- IPROOT=
- IPROOTMASK=
- IPROOTBCAST=
- IPROOTDEV=
- CAPS=
- IS_MINIT=
- readlastconf $1
- if $VSERVER_CMD $1 running
- then
- test -x /etc/vservers/$1.sh && /etc/vservers/$1.sh pre-stop $1
- ifconfig_iproot $1
- cd $VROOTDIR/$1
- mountproc $VROOTDIR/$1
- # The fakeinit flag tell us how to turn off the server
- get_initdefault $1
- export PREVLEVEL=$INITDEFAULT
- STOPCMD="/etc/rc.d/rc 6"
- if [ -x $VROOTDIR/$1/etc/init.d/rc ] ; then
- STOPCMD="/etc/init.d/rc 6"
- elif [ -x $VROOTDIR/$1/usr/bin/emerge ] ; then
- STOPCMD="/sbin/rc shutdown"
- elif [ -x $VROOTDIR/$1/etc/rc.d/rc.6 ] ; then
- STOPCMD="/etc/rc.d/rc.6"
- fi
-
- for f in $S_FLAGS dummy
- do
- case $f in
- minit)
- IS_MINIT=1
- FLAGS="$FLAGS --flag fakeinit"
- STOPCMD="/sbin/minit-stop"
- ;;
-
- fakeinit)
- FLAGS="$FLAGS --flag $f"
- STOPCMD="/sbin/init 6"
- ;;
- *)
- ;;
- esac
- done
-
- if [ -n "$S_STOP" ] ; then
- STOPCMD=$S_STOP
- fi
- calculateCaps $S_CAPS
-
- cd $VROOTDIR/$1
- IPOPT=`setipopt $IPROOT`
- export PATH=$DEFAULTPATH
- $CHBIND_CMD $SILENT $IPOPT --bcast $IPROOTBCAST \
- $CHCONTEXT_CMD $SILENT $CAPS --secure --ctx $S_CONTEXT \
- $CAPCHROOT_CMD . $STOPCMD
-
- if test "$IS_MINIT"; then
- echo "Waiting for minit finish-signal"
- dd if=var/run/minit-stop of=/dev/zero bs=1 count=1 &>/dev/null
- sleep 1
- else
- echo sleeping 5 seconds
- sleep 5
- fi
-
- echo Killing all processes
- $CHBIND_CMD --silent $IPOPT --bcast $IPROOTBCAST \
- $CHCONTEXT_CMD $CAPS --secure --silent --ctx $S_CONTEXT \
- $VSERVERKILLALL_CMD
- fi
- # We umount anyway, because "enter" establish the mount
- # but when you exit, the server is considered not running
- umountproc $VROOTDIR/$1
- cd /
- test -x /etc/vservers/$1.sh && /etc/vservers/$1.sh post-stop $1
- ifconfig_iproot_off $1
-elif [ "$2" = "restart" ] ; then
- if $0 $1 running
- then
- $0 $1 stop
- $0 $1 start
- fi
-elif [ "$2" = "suexec" ] ; then
- if [ -z "$3" ] ; then
- echo "Missing user!" >&2
- echo "vserver vserver-name suexec user command [ args ... ]" >&2
- exit 1
- elif [ -z "$4" ] ; then
- echo "Missing command and arguments!" >&2
- echo "vserver vserver-name suexec user command [ args ... ]" >&2
- exit 1
- else
- IPROOT=
- IPROOTMASK=
- IPROOTBCAST=
- IPROOTDEV=
- readlastconf $1
- . /etc/vservers/$1.conf
- cd $VROOTDIR/$1
- ifconfig_iproot $1
- mountproc $VROOTDIR/$1
- PS1="[\u@vserver:$1 \W]"
- export PS1
- VSERVER=$1
- USERID=$3
- shift; shift; shift
- CAPS=
- for f in $S_CAPS dummy
- do
- case $f in
- dummy)
- ;;
- !CAP_SYS_CHROOT)
- CHROOTOPT=--nochroot
- ;;
- *)
- CAPS="$CAPS --cap $f"
- ;;
- esac
- done
- FLAGS=
- for f in $S_FLAGS dummy
- do
- case $f in
- minit)
- FLAGS="$FLAGS --flag fakeinit"
- ;;
-
- dummy)
- ;;
- *)
- FLAGS="$FLAGS --flag $f"
- ;;
- esac
- done
- setdefulimit
- if [ "$ULIMIT" != "" ] ; then
- ulimit $ULIMIT
- fi
- if $0 $VSERVER running >/dev/null
- then
- . /var/run/vservers/$VSERVER.ctx
- cd $VROOTDIR/$VSERVER
- IPOPT=`setipopt $IPROOT`
- export PATH=$DEFAULTPATH
- exec $CHBIND_CMD $SILENT $IPOPT --bcast $IPROOTBCAST \
- $CHCONTEXT_CMD $SILENT $FLAGS $CAPS --secure --ctx $S_CONTEXT \
- $CAPCHROOT_CMD --suid $USERID . "$@"
- else
- test -x /etc/vservers/$1.sh && /etc/vservers/$1.sh pre-start $1
- CTXOPT=
- HOSTOPT=
- DOMAINOPT=
- if [ "$S_CONTEXT" != "" ] ; then
- CTXOPT="--ctx $S_CONTEXT"
- fi
- if [ "$S_HOSTNAME" != "" ] ; then
- HOSTOPT="--hostname $S_HOSTNAME"
- export HOSTNAME=$S_HOSTNAME
- fi
- if [ "$S_DOMAINNAME" != "" ] ; then
- DOMAINOPT="--domainname $S_DOMAINNAME"
- fi
- mkdir -p /var/run/vservers
- cd $VROOTDIR/$VSERVER
- IPOPT=`setipopt $IPROOT`
- export PATH=$DEFAULTPATH
- exec $CHBIND_CMD $SILENT $IPOPT --bcast $IPROOTBCAST \
- $CHCONTEXT_CMD $SILENT $FLAGS $CAPS --secure $CTXOPT $HOSTOPT $DOMAINOPT \
- $SAVE_S_CONTEXT_CMD /var/run/vservers/$VSERVER.ctx \
- $CAPCHROOT_CMD --suid $USERID $CHROOTOPT . "$@"
- fi
- fi
-elif [ "$2" = "exec" ] ; then
- VSERV=$1
- shift; shift
- exec $0 $NODEV $SILENT $VSERV suexec root "$@"
-elif [ "$2" = "enter" ] ; then
- testperm $1
- exec $0 $NODEV $SILENT $1 exec /bin/bash -login
-elif [ "$2" = "service" ] ; then
- VSERVER=$1
- shift
- shift
- exec $0 $NODEV $SILENT $VSERVER exec /sbin/service "$@"
-elif [ "$2" = "chkconfig" ] ; then
- VSERVER=$1
- LEVELS=()
- shift
- shift
- if [ "$1" = "--level" ] ; then
- LEVELS=( --level "$2" )
- shift 2
- fi
- if [ $# != 2 -a ! -x $VROOTDIR/$VSERVER/sbin/chkconfig ] ; then
- echo Invalid argument, expected vserver name chkconfig [ --level nnn ] service on\|off
- elif [ -x $VROOTDIR/$VSERVER/sbin/chkconfig ] ; then
- exec $0 --silent $VSERVER exec /sbin/chkconfig "${LEVELS[@]}" "$@"
- elif [ -x $VROOTDIR/$VSERVER/usr/sbin/update-rc.d ] ; then
- if [ "$2" = "on" -o "$2" = "start" ] ; then
- $0 --silent $VSERVER exec /usr/sbin/update-rc.d -f $1 remove >/dev/null
- exec $0 --silent $VSERVER exec /usr/sbin/update-rc.d $1 start 80 2 3 4 5 . stop 20 0 1 6 . >/dev/null
- elif [ "$2" = "off" -o "$2" = "stop" ] ; then
- $0 --silent $VSERVER exec /usr/sbin/update-rc.d -f $1 remove >/dev/null
- exec $0 --silent $VSERVER exec /usr/sbin/update-rc.d $1 stop 20 0 1 2 3 4 5 6 . >/dev/null
- else
- echo vserver chkconfig: Expecting on or off
- fi
+ (pkg)
+ shift 2
+ exec $_VPKG "$vserver" "$@"
+ ;;
+
+ (pkgmgmt)
+ op=$3
+ shift 3
+ exec $_VNAMESPACE --new -- $_PKGMGMT ${op:+--$op} "$@" -- "$vserver"
+ ;;
+
+ (apt-get|apt-config|apt-cache)
+ export _APT_GET=$2
+ shift 2
+ exec $_VAPT_GET -- "$@"
+ ;;
+ (rpm)
+ exec $_VRPM -- "$@"
+ ;;
+
+ (status)
+ if getVserverStatus "$VSERVER_DIR" ctx procnum; then
+ msg $"Vserver '$vserver' is running at context '$ctx'"
+
+ if test "$2" = status; then
+ msg $"Number of processes: " $procnum
+ msg $"Uptime: " $("$_FILETIME" "$VSERVER_DIR/run")
+ fi
+ exit 0
else
- echo chkconfig functionality is not available on this
- echo vserver distribution.
- echo Looked for /sbin/chkconfig and /usr/sbin/update-rc.d
+ msg $"Vserver '$vserver' is stopped"
+ exit 3
fi
-else
- echo Command unknown $2
- echo
- usage
-fi
-
+ ;;
+ (*)
+ echo $"Usage: $0 {start|stop|suexec|restart|condrestart|exec|enter|chkconfig|running|status}" >&2
+ exit 2
+ ;;
+esac
--- /dev/null
+#! /bin/bash
+# $Id: vserver-build,v 1.20 2005/07/03 17:45:43 ensc Exp $
+
+# Copyright (C) 2003,2004,2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+. "$_LIB_VSERVER_SETUP_FUNCTIONS"
+. "$_LIB_VSERVER_BUILD_FUNCTIONS"
+
+### Some local functions
+
+function showHelp()
+{
+ echo \
+$"Usage: $(basename $0) -m <method> -n <name> --force <cfg-options>*
+ --rootdir <dir> --pkgbase <dir> [--] <method-args>*
+
+Options:
+ --force ... remove/rename already existing vservers with the same
+ name
+ --keep ... do not delete generated files and directories when
+ build of vserver failed.
+ -m <method> ... use method <method>; see below for possible values
+ --rootdir <dir>
+ ... [default: $__DEFAULT_VSERVERDIR]
+ --pkgbase <dir>
+ ... [default: $__DEFAULT_VSERVERPKGDIR]
+
+cfg-options are: $SETUP_HELPMSG
+
+Possible methods are:
+ legacy ... the \"old\" copy-all-from-host method, which requires the
+ old legacy vserver-legacy script; with this method the
+ cfg-options will be ignored
+ copy ... the copy-all-from-host method which uses the recent
+ configuration scheme
+ apt-rpm ... -- -d <distribution>
+ ... installs the base-packages of the given distribution with
+ help of 'vapt-get'
+ yum ... -- -d <distribution>
+ ... installs the base-packages of the given distribution with
+ help of 'vyum'
+ rpm ... -- [-d <distribution>] --empty|([--force] [--nodeps] <manifest>)+
+ ... installs lists of rpm-packages
+ skeleton ... -- [<cmd> <args>*]
+ ... installs a minimal skeleton filesystem, creates the
+ configuration file and calls an optional command then
+ debootstrap ... -- -d <distribution> [-m <mirror>] [-- <debootstrap-options>*]
+ bootstraps the vserver with Debian's 'debootstrap' package
+
+Please report bugs to $PACKAGE_BUGREPORT"
+ exit 0
+}
+
+function showVersion()
+{
+ echo \
+$"vserver-build $PACKAGE_VERSION -- initializes a vserver
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2003,2004,2005 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit 0
+}
+
+### main starts here
+
+set -e
+
+declare -a default_opts=()
+test -n "$NO_DEFAULT_OPTS" || getFileArray default_opts "$__CONFDIR/.defaults/apps/build/options" || :
+
+tmp=$(getopt -o +m:n: --long keep,force,debug,help,version,rootdir:,pkgbase:,$SETUP_OPTIONS -n "$(basename $0)" -- \
+ "${default_opts[@]}" "$@") || exit 1
+eval set -- "$tmp"
+
+VSERVER_NAME=
+OPTION_FORCE=
+OPTION_DEBUG=0
+OPTION_KEEP=
+
+while true; do
+ case "$1" in
+ (--help) showHelp $0 ;;
+ (--version) showVersion ;;
+ (--force) OPTION_FORCE=1;;
+ (--keep) OPTION_KEEP=1;;
+ (--debug) let ++OPTION_DEBUG; set -x;;
+ (--rootdir) ROOTDIR=$2; shift;;
+ (--pkgbase) PKGCFGBASE=$2; shift;;
+ (-m) method=$2; shift;;
+ (-n) VSERVER_NAME=$2; shift;;
+ (--) shift; break;;
+ (*)
+ { setup_setOption2 "$1" "$2" && shift; } || \
+ panic $"vserver-build: internal error."
+ ;;
+ esac
+ shift
+done
+
+test -n "$VSERVER_NAME" ||
+ panic $"Name of vserver not specified"
+
+setup_setDefaults "$VSERVER_NAME"
+
+case x"$method" in
+ (xlegacy) exec $_VSERVER_LEGACY "$VSERVER_NAME" build "$@" ;;
+ (xapt-rpm|xcopy|xskeleton|xdebootstrap|xyum|xrpm)
+ . $__PKGLIBDIR/vserver-build.$method
+ ;;
+ (x) panic $"No build-method specified";;
+ (*) panic $"Unknown build-method '$method'";;
+esac
--- /dev/null
+# $Id: vserver-build.apt-rpm,v 1.15 2005/07/03 13:17:38 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+tmp=$(getopt -o +d: --long debug -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_RPM"
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_APT"
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT"
+
+while true; do
+ case "$1" in
+ (-d) DISTRIBUTION=$2; shift;;
+ (--debug) set -x;;
+ (--) shift; break ;;
+ (*) echo "vserver-build.apt-rpm: internal error: unrecognized option '$1'" >&2
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+getDistribution
+
+base.init
+
+pkgmgmt.initVariables
+rpm.initVariables
+apt.initVariables
+
+base.initFilesystem "$OPTION_FORCE"
+pkgmgmt.initFilesystem "$OPTION_FORCE"
+rpm.initFilesystem
+apt.initFilesystem
+
+setup_writeOption "$VSERVER_NAME"
+setup_writeInitialFstab
+
+test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
+rpm.initDB "$SETUP_CONFDIR"
+rpm.importGPGPubKeys "$SETUP_CONFDIR" \
+ "$__CONFDIR/.distributions/$DISTRIBUTION/pubkeys" \
+ "$__CONFDIR/.distributions/.common/pubkeys" \
+ "$__DISTRIBDIR/$DISTRIBUTION/pubkeys"
+
+$_VAPT_GET "$SETUP_CONFDIR" -- update
+apt.installBasePackages "$SETUP_CONFDIR" "$PKGINSTALLDIR"
+$_VAPT_GET "$SETUP_CONFDIR" -- dist-upgrade -y
+$_VAPT_GET "$SETUP_CONFDIR" -- clean
+test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
+
+base.setSuccess
--- /dev/null
+# $Id: vserver-build.debootstrap,v 1.13 2005/07/04 18:14:29 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+function cleanUp
+{
+ test ! -d "$workdir" || $_RM -rf "$workdir"
+}
+
+function init
+{
+ workdir=
+ mirror=
+ trap "cleanUp" EXIT
+}
+
+function initVariables
+{
+ base.init
+
+ test -n "${mirror-unset}" || {
+ local aux
+ findFile aux "$__CONFDIR"/.defaults/apps/debootstrap/mirror ''
+ test -z "$aux" || read mirror <"$aux"
+ }
+}
+
+function initFilesystem
+{
+ base.initFilesystem "$1"
+
+ mkdir -p "$SETUP_CONFDIR"/apps/pkgmgmt
+ touch "$SETUP_CONFDIR"/apps/pkgmgmt/internal
+}
+
+function findDebootstrap
+{
+ pushd . &>/dev/null
+ DEBOOTSTRAP=$(which debootstrap 2>/dev/null) || {
+ dir=$($_MKTEMPDIR /var/tmp/debootstrap.XXXXXX)
+ workdir=$dir
+ dst=$dir/debootstrap.deb
+
+ findFile DEBOOTSTRAP_URI "$__CONFDIR"/.defaults/apps/debootstrap/uri "$__PKGLIBDEFAULTDIR"/debootstrap.uri
+ read tmp <$DEBOOTSTRAP_URI
+ case "$tmp" in
+ (/*) ln -s "$tmp" "$dst";;
+ (http://*|ftp://*)
+ echo $"\
+Could not find local version of 'debootstrap'; downloading it from
+${tmp}..."
+ $_WGET -nv -O "$dst" "$tmp" || {
+ $_CAT <<EOF >&2
+ERROR: Could not download the debootstrap package from
+
+ $dst
+
+Usually, this means that Debian released a new version which is unknown
+to util-vserver and removed the known ones. To fix this, go to
+
+ http://ftp.debian.org/debian/pool/main/d/debootstrap/
+
+(or a nearby mirror) and search the URL for the most recent *.deb
+package matching your platform. Then, put this URL into
+
+ $__CONFDIR/.defaults/apps/debootstrap/uri
+
+and retry the vserver-build command again.
+EOF
+ exit 1
+ }
+ ;;
+ (*) echo $"Unsupported URI scheme '$tmp'" >&2
+ exit 1;;
+ esac
+ cd $dir
+ ar x "$dst"
+ tar xzf data.tar.gz
+ export DEBOOTSTRAP_DIR=`pwd`/usr/lib/debootstrap
+ DEBOOTSTRAP=`pwd`/usr/sbin/debootstrap
+ }
+ popd &>/dev/null
+
+ test -x "$DEBOOTSTRAP" || { echo $"Can not find debootstrap at '$DEBOOTSTRAP'" >&2; exit 1; }
+}
+
+function fixupDebian
+{
+ $_RM -rf "$1"/dev
+ $_MV "$1"/dev.X "$1"/dev
+}
+
+
+### main starts here <---
+
+
+tmp=$(getopt -o '+d:m:' --long debug -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+init
+
+while true; do
+ case "$1" in
+ -d) DISTRIBUTION=$2; shift;;
+ -m) mirror=$2; shift;;
+ --debug) set -x;;
+ --) shift; break ;;
+ *) echo "vserver-build.debootstrap: internal error: unrecognized option '$1'" >&2
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+getDistribution
+
+initVariables
+initFilesystem "$OPTION_FORCE"
+
+setup_writeOption "$VSERVER_NAME"
+setup_writeInitialFstab
+
+findDebootstrap
+
+test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
+mv "$VDIR"/dev "$VDIR"/dev.X
+"$DEBOOTSTRAP" "$@" "$DISTRIBUTION" "$VDIR" "$mirror" || : ## HACK: ignore all errors...
+fixupDebian "$VDIR"
+test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
+
+base.setSuccess
--- /dev/null
+# $Id: vserver-build.functions,v 1.18 2005/07/04 22:38:42 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+# Expected environment:
+# $VSERVER_NAME ... name of vserver
+
+ROOTDIR=
+ROOTDIR_REL=
+VSERVERDIRNAME=
+
+VDIR=
+
+_DEV_FILE=
+_EXEC_DIR=
+
+BUILD_INITPRE=
+BUILD_INITPOST=
+
+__BASE_GENERATED_FILES=()
+__BASE_SUCCESS=
+
+function makeDevEntry
+{
+ local dst=$1/$2
+ case "$3" in
+ (c|b) mknod -m$6 "$dst" $3 $4 $5;;
+ (d) mkdir -p -m$4 "$dst";;
+ (f) touch "$dst"
+ chmod $4 "$dst"
+ ;;
+ (*) echo "Unknown dev-entry mode '$3'" >&2
+ false
+ ;;
+ esac
+}
+
+function populateDirectory
+{
+ local dst=$1
+ local i
+
+ shift
+ for i; do
+ local file=
+
+ for file in "$i"/*; do
+ isRegularFile "$file" || continue
+
+ cp -a "$file" "$dst/"
+ done
+ done
+}
+
+function _setRootDir
+{
+ test -z "$ROOTDIR" || return 0
+
+ for item in "\"$__CONFDIR/.defaults/vdirbase\" 1" "$__DEFAULT_VSERVERDIR"; do
+ eval set -- "$item"
+ ROOTDIR=$1
+ ROOTDIR_REL=$2
+ test ! -d "$ROOTDIR" || break
+ done
+
+ test -d "$ROOTDIR" || {
+ echo "Root-directory '$ROOTDIR' does not exist or is invalid" >&2
+ exit 1
+ }
+}
+
+function _setVserverDir
+{
+ test -z "$VSERVERDIRNAME" || return 0
+ VSERVERDIRNAME="$VSERVER_NAME"
+}
+
+function _setVdir
+{
+ VDIR="$ROOTDIR/$VSERVERDIRNAME"
+}
+
+function say
+{
+ test -z "$OPTION_SILENT" || return 0
+ echo "$@"
+}
+
+function _renameVserverCfg
+{
+ local suffix=.~$(date +'%s')~
+ local i
+
+ for i in "$VDIR" "$SETUP_CONFDIR"; do
+ test ! -e "$i" || {
+ mv "$i" "$i$suffix"
+ say "Renamed '$i' to '$i$suffix'"
+ }
+ done
+}
+
+
+## Usage: getDistribution [<default>]
+function getDistribution
+{
+ test -z "$DISTRIBUTION" || return 0
+
+ if test -e /etc/fedora-release; then
+ set -- $(cat /etc/fedora-release)
+ DISTRIBUTION=fdr$4
+ elif test -e /etc/redhat-release; then
+ set -- $(cat /etc/redhat-release)
+ DISTRIBUTION=rh$5
+ elif test -e /etc/debian_version; then
+ set -- $(cat /etc/debian_version)
+ DISTRIBUTION=deb$1
+ elif test -e /etc/SuSE-release; then
+ set -- $(cat /etc/SuSE-release)
+ DISTRIBUTION=suse$3
+ elif test -e /etc/gentoo-release; then
+ set -- $(cat /etc/gentoo-release)
+ DISTRIBUTION=gentoo$5
+ elif test -e /etc/slackware-release; then
+ set -- $(cat /etc/slackware-release)
+ DISTRIBUTION=slackware$2
+ elif test -n "$1"; then
+ DISTRIBUTION=$1
+ else
+ echo \
+"Can not determine distribution; please specify it manually
+with the '-d' option" >&2
+ exit 1
+ fi >&2
+}
+
+function base._addGeneratedFile
+{
+ __BASE_GENERATED_FILES=( "${__BASE_GENERATED_FILES[@]}" "$@" )
+}
+
+## Usage: initFilesystem [force]
+function base.initFilesystem
+{
+ test -z "$1" || _renameVserverCfg
+ test ! -d "$VDIR" -a ! -d "$SETUP_CONFDIR" || {
+ echo \
+"vserver-topdirectory '$VDIR' and/or configuration at '$SETUP_CONFDIR'
+exist already; please try to use '--force', or remove them manually"
+>&2
+ exit 1
+ } >&2
+
+ mkdir -p -m755 "$VDIR"
+ chattr -t "$VDIR"
+ base._addGeneratedFile "$VDIR"
+
+ mkdir -p -m755 "$SETUP_CONFDIR"/apps "$VDIR"/{dev/pts,etc}
+ base._addGeneratedFile "$SETUP_CONFDIR"
+
+ ln -s "$VDIR" "$SETUP_CONFDIR/vdir"
+
+ local spec
+ while read spec; do
+ makeDevEntry "$VDIR"/dev $spec
+ done <$_DEV_FILE
+
+ mkdir -p "$VDIR"/proc
+ findAndCopy "$VDIR"/etc/hosts "$__CONFDIR"/.defaults/files/hosts "$__CONFDIR/.distributions/$DISTRIBUTION"/files/hosts \
+ "$__DISTRIBDIR/$DISTRIBUTION"/files/hosts "$__DISTRIBDIR"/defaults/files/hosts ""
+
+ for i in nsswitch.conf krb5.conf krb.conf krb.realms ldap.conf localtime resolv.conf; do
+ findAndCopy "$VDIR"/etc/$i "$__CONFDIR/.defaults/files/$i" "$__CONFDIR/.distributions/$DISTRIBUTION/files/$i" ""
+ done
+}
+
+function base._initVariables
+{
+ _setRootDir
+ _setVserverDir
+ _setVdir
+
+ findFile _DEV_FILE "$__CONFDIR/.distributions/$DISTRIBUTION/devs" "$__DISTRIBDIR/$DISTRIBUTION/devs" "$__DISTRIBDIR/defaults/devs"
+ findDir _EXECDIR "$__CONFDIR/.distributions/$DISTRIBUTION/execdir" "$__DISTRIBDIR/$DISTRIBUTION/execdir" /
+ findFile BUILD_INITPRE "$__CONFDIR/.distributions/$DISTRIBUTION/initpre" "$__DISTRIBDIR/$DISTRIBUTION/initpre" ""
+ findFile BUILD_INITPOST "$__CONFDIR/.distributions/$DISTRIBUTION/initpost" "$__DISTRIBDIR/$DISTRIBUTION/initpost" ""
+}
+
+function base.__cleanup
+{
+ test -z "$OPTION_KEEP" || return 0
+ test -z "$__BASE_SUCCESS" || return 0
+
+ echo rm -rf "${__BASE_GENERATED_FILES[@]}"
+}
+
+function base.init
+{
+ test -z "$SETUP_CONTEXT" || ! $_VSERVER_INFO -q "$SETUP_CONTEXT" RUNNING || \
+ panic $"\
+Context '$SETUP_CONTEXT' is already in use. Please select another one."
+
+ trap "base.__cleanup" EXIT
+ base._initVariables
+}
+
+function base.setSuccess
+{
+ __BASE_SUCCESS=1
+}
--- /dev/null
+# $Id: vserver-build.functions.apt,v 1.8 2005/04/16 21:20:45 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+function apt.installBasePackages
+{
+ local name="$1"
+ local dir="$2"
+
+ test "$dir" != / || return 0
+ for filelist in "$dir"/*; do
+ isRegularFile "$filelist" || continue
+ local idx=0
+ local can_fail=false
+ local flags=
+
+ set -- $(<$filelist)
+ while test "$#" -gt 0; do
+ case "$1" in
+ --reinstall) flags='--reinstall';;
+ --can-fail) can_fail=true;;
+ *) break;;
+ esac
+ shift
+ done
+ "$_VAPT_GET" "$name" -- install -y $flags $* || $can_fail
+ done
+}
+
+function apt.initVariables
+{
+ findFile APTCONFDEFAULT \
+ "$__CONFDIR/.distributions/$DISTRIBUTION/apt.conf" \
+ "$__CONFDIR/.defaults/apps/pkgmgmt/apt.conf" \
+ "$__DISTRIBDIR/$DISTRIBUTION/apt.conf" \
+ "$__DISTRIBDIR/defaults/apt.conf" \
+ ''
+
+ findFile APTVENDORDEFAULT \
+ "$__CONFDIR/.distributions/$DISTRIBUTION/vendor.conf" \
+ "$__CONFDIR/.defaults/apps/pkgmgmt/vendor.conf" \
+ /etc/apt/vendors.list \
+ "$__DISTRIBDIR/$DISTRIBUTION/vendor.conf" \
+ "$__DISTRIBDIR/defaults/vendor.conf" \
+ ''
+}
+
+function apt.initFilesystem
+{
+ mkdir -p "$PKGCFGDIR"/apt/{etc/sources.list.d,etc/vendors.list.d,etc/apt.conf.d,archives/partial,cache,state/lists/partial}
+
+ populateDirectory "$PKGCFGDIR/apt/etc" \
+ "$__DISTRIBDIR/defaults/apt" \
+ "$__DISTRIBDIR/$DISTRIBUTION/apt" \
+ "$__CONFDIR/.distributions/$DISTRIBUTION/apt"
+
+ local f="$PKGCFGDIR"/apt/etc/apt.conf
+ if test -e "$f"; then
+ $_SED -e "s!@APTETCDIR@!$PKGCFGDIR/apt/etc!g" "$f" >"$f.tmp"
+ $_CMP -s "$f" "$f.tmp" || $_CAT "$f.tmp" >"$f"
+ $_RM -f "$f.tmp"
+ fi
+
+ test -z "$APTCONFDEFAULT" || \
+ $_LN_S "$APTCONFDEFAULT" "$PKGCFGDIR"/apt/etc/apt.conf.d/default.conf
+
+ test -z "$APTVENDORDEFAULT" || \
+ $_LN_S "$APTVENDORDEFAULT" "$PKGCFGDIR"/apt/etc/vendors.list.d/default.conf
+}
--- /dev/null
+# $Id: vserver-build.functions.pkgmgmt,v 1.9 2005/06/30 06:16:41 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+PKGCFGBASE=
+PKGCFGBASE_REL=
+YUM_RELEASEPKGS=( {redhat,fedora}-release )
+
+function pkgmgmt._setPkgCfgBase
+{
+ test -z "$PKGCFGBASE" || return 0
+
+ for item in "\"$__CONFDIR/.defaults/apps/pkgmgmt/base\" 1" ${ROOTDIR:+"$ROOTDIR/.pkg"} "$__DEFAULT_VSERVERPKGDIR"; do
+ eval set -- "$item"
+ PKGCFGBASE=$1
+ PKGCFGBASE_REL=$2
+ test ! -d "$PKGCFGBASE" || break
+ done
+
+ test -d "$PKGCFGBASE" || {
+ echo "pkgcfgbase-dir '$PKGCFGBASE' does not exist or is invalid" >&2
+ exit 1
+ }
+}
+
+function pkgmgmt._setPkgCfg
+{
+ pkgmgmt._setPkgCfgBase
+
+ test -z "$PKGCFGDIR" || return 0
+ PKGCFGDIR="$PKGCFGBASE/$VSERVERDIRNAME"
+}
+
+function pkgmgmt._renameVserverPkgCfg
+{
+ local suffix=.~$(date +'%s')~
+ local i
+
+ for i in "$PKGCFGDIR"; do
+ test ! -e "$i" || {
+ mv "$i" "$i$suffix"
+ say "Renamed '$i' to '$i$suffix'"
+ }
+ done
+}
+
+function pkgmgmt.initFilesystem
+{
+ test -z "$1" || pkgmgmt._renameVserverPkgCfg
+ test ! -d "$PKGCFGDIR" || {
+ echo $\
+"vserver pkgmgmt-directory exists already; please try to use
+'--force'; or remove it manually" >&2
+ exit 1
+ }
+
+ mkdir -p "$PKGCFGDIR"
+ base._addGeneratedFile "$PKGCFGDIR"
+
+ mkdir -p "${SETUP_CONFDIR:?}"/apps/pkgmgmt
+
+ test -z "$PKGCFGDIR" || {
+ ln -s "$PKGCFGDIR" "$SETUP_CONFDIR/apps/pkgmgmt/base"
+
+ test "$_EXECDIR" = / || ln -s "${_EXECDIR:?}" "$SETUP_CONFDIR/apps/pkgmgmt/execdir"
+ }
+
+}
+
+function pkgmgmt.initVariables
+{
+ pkgmgmt._setPkgCfg
+ findDir PKGINSTALLDIR "$__CONFDIR/.distributions/$DISTRIBUTION/pkgs" "$__DISTRIBDIR/$DISTRIBUTION/pkgs" /
+}
--- /dev/null
+# $Id: vserver-build.functions.rpm,v 1.8 2005/04/16 21:20:45 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+RPMDB_PATH=
+RPMLIBDIR=
+
+function rpm.importGPGPubKeys
+{
+ local dst=$1
+ local pkgs
+ declare -a pkgs
+ local i
+
+ shift
+ for i; do
+ local file=
+ for file in "$i"/*; do
+ isRegularFile "$file" || continue
+
+ pkgs=( "${pkgs[@]}" "$file" )
+ done
+ done
+
+ test -n "$pkgs" || return 0
+ "$_VRPM" "$dst" -- --import "${pkgs[@]}"
+}
+
+function rpm.initVariables
+{
+ test -n "$WORKAROUND_106057" && \
+ RPMDB_PATH=/.rpmdb || \
+ RPMDB_PATH=/dev
+
+ findDir RPMLIBDIR "$__CONFDIR/.distributions/$DISTRIBUTION/rpmlib" "$__DISTRIBDIR/$DISTRIBUTION/rpmlib" /
+}
+
+function rpm.initFilesystem
+{
+ test -z "$WORKAROUND_106057" || mkdir -p "$RPMDB_PATH"
+ mkdir -p "$VDIR$RPMDB_PATH"
+
+ test -z "$WORKAROUND_APT_DBPATH" || {
+ mkdir -p "$VDIR/var/lib"
+ ln -s "$RPMDB_PATH" "$VDIR/var/lib/rpm"
+ }
+
+ mkdir -p "$PKGCFGDIR"/rpm/{etc,state}
+ populateDirectory "$PKGCFGDIR/rpm/etc" \
+ "$__DISTRIBDIR/defaults/rpm" \
+ "$__DISTRIBDIR/$DISTRIBUTION/rpm" \
+ "$__CONFDIR/.distributions/$DISTRIBUTION/rpm"
+
+ echo "%_dbpath $RPMDB_PATH" >>"$PKGCFGDIR/rpm/etc/macros"
+
+ test "$RPMLIBDIR" = / || ln -s "$RPMLIB" "$SETUP_CONFDIR/apps/pkgmgmt/rpmlib"
+}
+
+function rpm.initDB
+{
+ RPM_FLAVOR=d "$_VRPM" "$1" -- --initdb
+}
+
+
+
+## Usage: rpmlist.install <vserver> <basedir> <tmpfile> <listfile> <rpm-options>*
+function rpmlist.install()
+{
+ local cfgdir=$1
+ local basedir=$2
+ local manifest=$3
+ local listfile=$4
+ shift 4
+
+ while read; do
+ case x"$REPLY" in
+ (x|\#*) continue;;
+ esac
+
+ echo "$basedir/$REPLY"
+ done >"$manifest" <"$listfile"
+
+ test "$OPTION_DEBUG" -eq 0 || cat "$manifest"
+ test ! -s "$manifest" || $_VRPM "$cfgdir" -- -U "$@" "$manifest"
+}
+
+
+## Usage: rpmlist.initByDistribution <result-var> <distribution>
+function rpmlist.initByDistribution()
+{
+ local _rlid_listdir
+ declare -a _rlid_res=()
+
+
+ findDir _rlid_listdir "$__CONFDIR/.distributions/$2/rpmlist.d" \
+ "$__DISTRIBDIR/$2/rpmlist.d" \
+ ''
+
+ test -d "$_rlid_listdir" || return 0
+
+ local _rlid_lst
+ for _rlid_lst in "$_rlid_listdir"/*.lst; do
+ isRegularFile "$_rlid_lst" || continue
+
+ local _rlid_opts=${_rlid_lst%%lst}cmd
+ declare -a _rlid_tmp=()
+
+ test ! -e "$_rlid_opts" || getFileArray _rlid_tmp "$_rlid_opts"
+ _rlid_res=( "${_rlid_res[@]}" "${_rlid_tmp[@]}" "$_rlid_lst" )
+ done
+
+ eval "$1"='( "${_rlid_res[@]}" )'
+}
--- /dev/null
+# $Id: vserver-build.functions.yum,v 1.5 2005/04/16 21:20:45 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+function yum.installBasePackages
+{
+ local name="$1"
+ local dir="$2"
+
+ test "$dir" != / || return 0
+ for filelist in "$dir"/*; do
+ isRegularFile "$filelist" || continue
+ local idx=0
+ local can_fail=false
+ local flags=
+
+ set -- $(<$filelist)
+ while test "$#" -gt 0; do
+ case "$1" in
+ --reinstall) flags='';;
+ --can-fail) can_fail=true;;
+ *) break;;
+ esac
+ shift
+ done
+ "$_VYUM" "$name" -- -y install $flags $* || $can_fail
+ done
+}
+
+function yum.initVariables
+{
+ findDir YUMREPOSDEFAULT \
+ "$__CONFDIR/.distributions/$DISTRIBUTION/yum.repos.d" \
+ "$__DISTRIBDIR/$DISTRIBUTION/yum.repos.d" \
+ ''
+}
+
+function yum.__substituteConf
+{
+ local f=$1
+ local prefix=$2
+
+ if test -e "$f"; then
+ $_SED -e "s!@YUMETCDIR@!$prefix$PKGCFGDIR/yum/etc!g;
+ s!@YUMCACHEDIR@!$prefix$PKGCFGDIR/yum/cache!g;
+ s!@YUMLOGDIR@!$prefix$PKGCFGDIR/yum!g;
+ s!@YUMLOCKDIR@!$prefix$PKGCFGDIR/yum!g;
+ " "$f" >"$f.tmp"
+ $_CMP -s "$f" "$f.tmp" || $_CAT "$f.tmp" >"$f"
+ $_RM -f "$f.tmp"
+ fi
+}
+
+function yum.initFilesystem
+{
+ mkdir -p "$PKGCFGDIR"/yum/{etc,cache}
+
+ populateDirectory "$PKGCFGDIR/yum/etc" \
+ "$__DISTRIBDIR/defaults/yum" \
+ "$__DISTRIBDIR/$DISTRIBUTION/yum" \
+ "$__CONFDIR/.distributions/$DISTRIBUTION/yum"
+
+ ## workaround for yum's automatism to search the configuration in the chroot
+
+ local f0="$PKGCFGDIR"/yum/etc/yum.conf
+ local f1="$PKGCFGDIR"/yum/etc/yum-hack.conf
+ cp -a "$f0" "$f1"
+
+ yum.__substituteConf "$f0" 'hostfs://'
+ yum.__substituteConf "$f1" '/../../../../../../../../../../../../'
+
+ test -z "$YUMREPOSDEFAULT" -o -e "$PKGCFGDIR/yum/etc/yum.repos.d" || \
+ $_LN_S "$YUMREPOSDEFAULT" "$PKGCFGDIR/yum/etc/yum.repos.d"
+}
--- /dev/null
+# $Id: vserver-build.rpm,v 1.6 2005/07/03 13:17:38 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+tmp=$(getopt -o +d:b:e --long debug,empty -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_RPM"
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT"
+
+set -e
+
+
+BASEDIR=$(pwd)
+DISTRIBUTION=
+EMPTY=
+
+echo "$@"
+
+while true; do
+ case "$1" in
+ (-d) DISTRIBUTION=$2; shift;;
+ (-b) BASEDIR=$2; shift;;
+ (-e|--empty) EMPTY=1;;
+ (--debug) set -x;;
+ (--) shift; break ;;
+ (*) echo "vserver-build.rpm: internal error: unrecognized option '$1'" >&2
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+
+####### some basic initializations
+
+getDistribution "template"
+
+base.init
+pkgmgmt.initVariables
+rpm.initVariables
+
+if test -z "$EMPTY" -a "$#" -eq 0; then
+ rpmlist.initByDistribution rpm_lists "$DISTRIBUTION"
+ set -- "${rpm_lists[@]}"
+fi
+
+test -n "$EMPTY" -o "$#" -gt 0 || \
+ panic $"\
+No rpm-lists specified and no list found for distribution '$DISTRIBUTION'.
+When this is really indented, please use the '--empty' option."
+
+rpm_dflt_opts=()
+test "$OPTION_DEBUG" -lt 2 || rpm_dflt_opts=( "${rpm_dflt_opts[@]}" -v )
+test "$OPTION_DEBUG" -lt 3 || rpm_dflt_opts=( "${rpm_dflt_opts[@]}" -v )
+test -n "$OPTION_SILENT" || rpm_dflt_opts=( "${rpm_dflt_opts[@]}" -vh )
+
+
+###### init the filesystem
+
+base.initFilesystem "$OPTION_FORCE"
+pkgmgmt.initFilesystem "$OPTION_FORCE"
+rpm.initFilesystem
+
+setup_writeOption "$VSERVER_NAME"
+setup_writeInitialFstab
+
+
+# when basedir is a non-local location, rpm will download it into the
+# current directory. Therefore, create and go into a temporay directory
+# before doing the operations.
+tmpdir=$($_MKTEMPDIR /var/tmp/vserver-build.rpm.XXXXXX)
+manifest=$($_MKTEMP /tmp/vserver-build.rpm.manifest.XXXXXX)
+trap "rm -rf $tmpdir $manifest" EXIT
+cd "$tmpdir"
+
+
+###### do the real work
+
+test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
+rpm.initDB "$SETUP_CONFDIR"
+rpm.importGPGPubKeys "$SETUP_CONFDIR" \
+ "$__CONFDIR/.distributions/$DISTRIBUTION/pubkeys" \
+ "$__CONFDIR/.distributions/.common/pubkeys" \
+ "$__DISTRIBDIR/$DISTRIBUTION/pubkeys"
+
+opts=()
+for i; do
+ case "$i" in
+ (--force|--nodeps) opts=( "${opts[@]}" "$i" ); continue;;
+ esac
+
+ rpmlist.install "$VSERVER_NAME" "$BASEDIR" "$manifest" "$i" "${rpm_dflt_opts[@]}" "${opts[@]}"
+ opts=()
+done
+
+test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
+
+base.setSuccess
--- /dev/null
+# $Id: vserver-build.skeleton,v 1.5 2005/06/30 06:13:09 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+tmp=$(getopt -o '+d:' --long debug,pkgmgmt -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT"
+
+DISTRIBUTION=:
+use_pkgmgmt=
+while true; do
+ case "$1" in
+ -d) DISTRIBUTION=$2; shift;;
+ --debug) set -x;;
+ --pkgmgmt) use_pkgmgmt=1;;
+ --) shift; break ;;
+ *) echo "vserver-build.skeleton: internal error: unrecognized option '$1'" >&2
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+getDistribution
+
+base.init
+test -z "$use_pkgmgmt" || pkgmgmt.initVariables
+
+base.initFilesystem "$OPTION_FORCE"
+test -z "$use_pkgmgmt" || pkgmgmt.initFilesystem "$OPTION_FORCE"
+
+
+setup_writeOption "$VSERVER_NAME"
+setup_writeInitialFstab
+
+test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
+test -z "$1" || "$@"
+test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
--- /dev/null
+# $Id: vserver-build.yum,v 1.5 2005/06/30 06:13:09 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+tmp=$(getopt -o +d: --long debug -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_RPM"
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_YUM"
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT"
+
+while true; do
+ case "$1" in
+ (-d) DISTRIBUTION=$2; shift;;
+ (--debug) set -x;;
+ (--) shift; break ;;
+ (*) echo "vserver-build.yum-rpm: internal error: unrecognized option '$1'" >&2
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+getDistribution
+
+base.init
+pkgmgmt.initVariables
+rpm.initVariables
+yum.initVariables
+
+base.initFilesystem "$OPTION_FORCE"
+pkgmgmt.initFilesystem "$OPTION_FORCE"
+rpm.initFilesystem
+yum.initFilesystem
+
+setup_writeOption "$VSERVER_NAME"
+setup_writeInitialFstab
+
+test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
+rpm.initDB "$SETUP_CONFDIR"
+rpm.importGPGPubKeys "$SETUP_CONFDIR" \
+ "$__CONFDIR/.distributions/$DISTRIBUTION/pubkeys" \
+ "$__CONFDIR/.distributions/.common/pubkeys" \
+ "$__DISTRIBDIR/$DISTRIBUTION/pubkeys"
+yum.installBasePackages "$SETUP_CONFDIR" "$PKGINSTALLDIR"
+$_VYUM "$SETUP_CONFDIR" -- clean all
+test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
+
+base.setSuccess
--- /dev/null
+# $Id: vserver-setup.functions,v 1.18 2005/02/25 23:32:02 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+SETUP_HOSTNAME=
+SETUP_NETDEV=
+SETUP_NETMASK=
+SETUP_NETPREFIX=
+SETUP_NETBCAST=
+SETUP_LOCKFILE=
+SETUP_CONFDIR=
+SETUP_CONTEXT=
+SETUP_INITSTYLE=
+
+declare -a SETUP_INTERFACES=()
+declare -a SETUP_FLAGS=()
+
+declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:"
+declare -r SETUP_HELPMSG=$"
+ --context ... the static context of the vserver [default: none; a dynamic
+ context will be assumed]
+ --confdir ... [default: $__CONFDIR/<name>]
+ --lockfile <filename>
+ ... [default: $__RUNDIR/<name>]
+ --hostname <hostname>
+ --netdev <device>
+ --netbcast <broadcast>
+ --netmask <netmask>|--netprefix <prefixlen>
+ ... sets the default netmask (a.b.c.d quadruple) or prefixlen
+ (length of the interface)
+ --interface [<name-suffix>=][<device>:]<ip>[/<mask|prefixlen>]
+ ... declares an network-interface; this option can be specified
+ multiple times
+ --flags <flags>+
+ ... sets comma-separated list of flags; possible flags are
+ lock: Prevent the vserver from setting new security context
+ sched: Merge scheduler priority of all processes in the
+ vserver so that it acts a like a single
+ one (kernel 2.4 only).
+ nproc: Limit the number of processes in the vserver
+ according to ulimit (instead of a per user limit,
+ this becomes a per vserver limit)
+ private: No other process can join this security context.
+ Even root
+ --initstyle <style>
+ ... configures the initstyle (e.g. minit,sysv,plain)
+"
+
+function setup_setOption2
+{
+ case "$1" in
+ (--context) SETUP_CONTEXT=$2;;
+ (--confdir) SETUP_CONFDIR=$2;;
+ (--lockfile) SETUP_LOCKFILE=$2;;
+ (--hostname) SETUP_HOSTNAME=$2;;
+ (--netdev) SETUP_NETDEV=$2;;
+ (--netmask) SETUP_NETMASK=$2;;
+ (--netprefix) SETUP_NETPREFIX=$2;;
+ (--netbcast) SETUP_NETBCAST=$2;;
+ (--interface) SETUP_INTERFACES=( "${SETUP_INTERFACES[@]}" "$2" );;
+ (--initstyle) SETUP_INITSTYLE=$2;;
+ (--flags) old_IFS=$IFS
+ IFS=,
+ set -- $2
+ SETUP_FLAGS=( "${SETUP_FLAGS[@]}" "$@" )
+ IFS=$old_IFS
+ ;;
+ (*) return 1;;
+ esac
+
+ return 0
+}
+
+function _setup_writeSingleOption
+{
+ test -z "$1" || echo "$1" >"$2"
+}
+
+function _setup_writeInterface
+{
+ local vdir=$1
+ local idx=$2
+ local tmp=$3
+
+ local name=${tmp%%=*}
+ test "$name" != "$tmp" || name=
+
+ tmp=${tmp##${name}=}
+ local dev=${tmp%%:*}
+ test "$dev" != "$tmp" || dev=
+
+ tmp=${tmp##${dev}:}
+ local mask=${tmp##*/}
+ test "$mask" != "$tmp" || mask=
+
+ local ip=${tmp%%/${mask}}
+
+ local prefix=
+ test "${mask%%.*}" != "$mask" || {
+ prefix=$mask
+ mask=
+ }
+
+ d=$vdir/interfaces/$idx
+ mkdir "$d"
+
+ _setup_writeSingleOption "$name" $d/name
+ _setup_writeSingleOption "$dev" $d/dev
+ _setup_writeSingleOption "$ip" $d/ip
+ _setup_writeSingleOption "$mask" $d/mask
+ _setup_writeSingleOption "$prefix" $d/prefix
+
+ test -n "$dev" -o -n "$SETUP_NETDEV" || \
+ echo $"No device specified for interface '$idx'; do not forget to set the 'nodev' option" >&2
+}
+
+function setup_setDefaults
+{
+ : ${SETUP_CONFDIR:=$__CONFDIR/$1}
+ : ${SETUP_LOCKFILE:=$__RUNDIR/$1}
+ findFile SETUP_FSTAB "$__CONFDIR"/.defaults/fstab "$__PKGLIBDEFAULTDIR"/fstab
+}
+
+function setup_writeOption
+{
+ local name=$1
+ local cfgdir=${SETUP_CONFDIR:?}
+ local i
+
+ mkdir -p "$cfgdir"/interfaces "$cfgdir"/apps/init "$cfgdir"/uts
+
+ _setup_writeSingleOption "$name" "$cfgdir"/name
+ _setup_writeSingleOption "$SETUP_CONTEXT" "$cfgdir"/context
+ _setup_writeSingleOption "$SETUP_HOSTNAME" "$cfgdir"/uts/nodename
+ _setup_writeSingleOption "$SETUP_NETDEV" "$cfgdir"/interfaces/dev
+ _setup_writeSingleOption "$SETUP_NETMASK" "$cfgdir"/interfaces/mask
+ _setup_writeSingleOption "$SETUP_NETPREFIX" "$cfgdir"/interfaces/prefix
+ _setup_writeSingleOption "$SETUP_NETBCAST" "$cfgdir"/interfaces/bcast
+ _setup_writeSingleOption "$SETUP_INITSTYLE" "$cfgdir"/apps/init/style
+
+ local idx=0
+ for i in "${SETUP_INTERFACES[@]}"; do
+ _setup_writeInterface "$cfgdir" $idx "$i"
+ let ++idx
+ done
+
+ test -z "$SETUP_FLAGS" || for i in "${SETUP_FLAGS[@]}"; do
+ echo "$i"
+ done >"$cfgdir"/flags
+
+ ln -s "$SETUP_LOCKFILE" "$cfgdir"/run
+}
+
+function setup_writeInitialFstab
+{
+ cat "${SETUP_FSTAB:?}" >"${SETUP_CONFDIR:?}"/fstab
+}
+
+function setup_test
+{
+ SETUP_INTERFACES=()
+
+ setup_setOption2 --interface foo0=eth0:1.2.3.4/1
+ setup_setOption2 --interface foo1=eth0:1.2.3.4/255.255.248.0
+ setup_setOption2 --interface foo2=eth0:1.2.3.4
+ setup_setOption2 --interface foo3=1.2.3.4
+ setup_setOption2 --interface foo4=1.2.3.4/1
+ setup_setOption2 --interface eth0:1.2.3.4
+ setup_setOption2 --interface eth0:1.2.3.4/1
+ setup_setOption2 --interface 1.2.3.4
+ setup_setOption2 --interface 1.2.3.4/1
+
+ setup_writeOption xx
+}
--- /dev/null
+#! /bin/bash
+
+# Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+
+test -n "$MARK" || MARK=default
+: ${LOCKFILE:=vservers-$MARK}
+: ${NUMPARALLEL:=6}
+
+
+if test -e /etc/init.d/functions; then
+ . /etc/init.d/functions
+ lockfile=/var/lock/subsys/$LOCKFILE
+else
+ success() { echo .; }
+ passed() { echo .; }
+ failure() { echo ERROR; }
+ lockfile=/var/run/$LOCKFILE
+fi
+
+
+function _tellResult()
+{
+ local rc=$1
+ case "$rc" in
+ (0) success;;
+ (2) passed; rc=0;;
+ (*) failure;;
+ esac
+ echo
+ return $rc
+}
+
+function start()
+{
+ echo -n $"Starting vservers of type '$MARK'..."
+ $_START_VSERVERS -m "$MARK" -j "$NUMPARALLEL" --all --start
+ _tellResult $?
+ local rc=$?
+ test "$rc" -ne 0 || touch "$lockfile"
+ return $rc
+}
+
+function stop()
+{
+ echo -n $"Stopping vservers of type '$MARK'..."
+ $_START_VSERVERS -m "$MARK" -j "$NUMPARALLEL" --all --stop
+ _tellResult $?
+ local rc=$?
+ $_RM -f "$lockfile"
+ return $rc
+}
+
+function restart()
+{
+ stop
+ start
+}
+
+case "$1" in
+ start|stop|restart) $1;;
+ condrestart)
+ test -f $lockfile && restart || :
+ ;;
+ status)
+ test -f $lockfile && {
+ echo $"vservers of type '$MARK' were started"
+ exit 0
+ }
+ echo $"vservers of type '$MARK' are not started"
+ exit 1
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|condrestart|status}"
+ exit 2
+ ;;
+esac
--- /dev/null
+# $Id: vserver.functions,v 1.57 2005/07/03 17:47:06 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+## Expected env:
+# $VSERVER_DIR ... path to vserver-cfg dir
+# $VSERVER_NAME ... name of vserver
+
+declare -a NICE_CMD=()
+declare -a CHBIND_OPTS=()
+declare -a CAP_OPTS=()
+declare -a CHCONTEXT_INIT_OPTS=()
+declare -a CHCONTEXT_FLAG_OPTS=()
+declare -a CHCONTEXT_OPTS=()
+declare -a CAPCHROOT_OPTS=()
+declare -a INTERFACES=()
+
+declare -a INITCMD_RESCUE=( /bin/sleep 900 )
+declare -a INITCMD_START=()
+declare -a INITCMD_START_SYNC=()
+declare -a INITCMD_STOP=()
+declare -a INITCMD_STOP_SYNC=()
+declare -a INITCMD_PREPARE=()
+declare -a INITKILL_SEQ=()
+declare -a ENTER_SHELL=()
+
+declare -a OPTS_VCONTEXT_CREATE=()
+declare -a OPTS_VCONTEXT_MIGRATE=()
+declare -a OPTS_VCONTEXT_ENTER=()
+declare -a OPTS_VATTRIBUTE=( --flag fakeinit )
+declare -a OPTS_VSCHED=()
+
+declare -a STOPCMD_PREPARE=()
+
+declare -a VSERVER_EXTRA_CMDS=()
+
+INIT_RESCUE=
+VSHELPER_SYNC_TIMEOUT=30
+USE_VNAMESPACE=
+INTERFACE_CMDS_IDX=0
+RUNLEVEL_START=
+RUNLEVEL_STOP=
+_HAVE_INTERFACE_OPTIONS=
+_HAVE_CHBIND_OPTIONS=
+_NEED_VSHELPER_SYNC=
+_IS_FAKEINIT=
+
+INITSTYLE=sysv
+
+S_CONTEXT=
+
+SILENT_OPT=
+
+: ${VSERVER_NAME:=$(basename "$VSERVER_DIR")}
+
+if test -e "$VSERVER_DIR"/noisy -o -n "$OPTION_VERBOSE"; then
+ SILENT_OPT=
+else
+ SILENT_OPT='--silent'
+fi
+
+function _generateChbindOptions
+{
+ local vdir="$1"
+ local i
+ local bcast=
+
+ test -n "$_HAVE_INTERFACE_OPTIONS" || _generateInterfaceOptions "$vdir"
+
+ local f=$vdir/interfaces/bcast
+ getFileValue bcast "$f"
+
+ CHBIND_OPTS=( $SILENT_OPT ${bcast:+--bcast "$bcast"} )
+
+ for i in "${INTERFACES[@]}"; do
+ CHBIND_OPTS=( "${CHBIND_OPTS[@]}" --ip "$i" )
+ done
+
+ _HAVE_CHBIND_OPTIONS=1
+}
+
+function _generateNiceCommand
+{
+ local vdir=$1
+ local nice
+
+ test -r "$vdir/nice" || return 0;
+ read nice <"$vdir"/nice
+
+ NICE_CMD=( $_NICE -$nice )
+}
+
+
+function _generatePersonalityOptions
+{
+ local vdir="$1"
+ local f="$vdir"/personality
+ local type flags
+
+ test -s "$f" || return 0
+
+ {
+ local delim tmp
+
+ read type
+ while read tmp; do
+ case x$tmp in
+ (x\#*|x) ;;
+ (*) flags=$flags$delim$tmp
+ delim=,
+ ;;
+ esac
+ done
+ } <"$f"
+
+ OPTS_VCONTEXT_ENTER=( "${OPTS_VCONTEXT_ENTER[@]}"
+ --personality-type "$type"
+ ${flags:+--personality-flags "$flags"} )
+}
+
+function _generateCCapabilityOptions
+{
+ local vdir=$1
+ local cap
+ local f="$vdir"/ccapabilities
+
+ test -e "$f" || return 0
+ while read cap; do
+ case x"$cap" in
+ (x|x\#) ;;
+ (*) OPTS_VATTRIBUTE=( "${OPTS_VATTRIBUTE[@]}" --ccap "$cap" );;
+ esac
+ done <"$f"
+}
+
+function _generateBCapabilityOptions
+{
+ local vdir=$1
+ local cap
+ local f="$vdir"/bcapabilities
+
+ test -e "$f" || return 0
+ while read cap; do
+ case x"$cap" in
+ (x|x\#) ;;
+ (*) OPTS_VATTRIBUTE=( "${OPTS_VATTRIBUTE[@]}" --bcap "$cap" );;
+ esac
+ done <"$f"
+}
+
+function _generateCapabilityOptions
+{
+ local vdir=$1
+ local cap
+
+ _generateBCapabilityOptions "$vdir"
+ _generateCCapabilityOptions "$vdir"
+
+ test -e "$vdir"/capabilities || return 0
+
+ CAP_OPTS=()
+ CAPCHROOT_OPTS=()
+
+ while read cap; do
+ case x"$cap" in
+ (x|x\#) ;;
+ (!CAP_SYSCHROOT)
+ CAP_OPTS=( "${CAP_OPTS[@]}" --cap "$cap" )
+ CAPCHROOT_OPTS=( "${CAPCHROOT_OPTS[@]}" --nochroot )
+ ;;
+ (*)
+ CAP_OPTS=( "${CAP_OPTS[@]}" --cap "$cap" )
+ ;;
+ esac
+ done <"$vdir"/capabilities
+}
+
+function getEnterShell
+{
+ local vdir=$1
+ local shell_file
+
+ ENTER_SHELL=()
+
+ getFileValue ENTER_SHELL "$vdir"/shell "$__CONFDIR"/.defaults/shell
+
+ test -n "$ENTER_SHELL" || {
+ local i
+ for i in "/bin/bash -login" "/bin/sh -l" /bin/csh; do
+ set -- $i
+ test -x "$vdir/vdir/$1" || continue
+ ENTER_SHELL=( "$@" )
+ break
+ done
+ }
+}
+
+## Usage: sendKillSequence <ctx> <signal> [<wait> <signal>]*
+function sendKillSequence
+{
+ local ctx=$1
+ local wait=
+ shift
+
+ while isCtxRunning "$ctx"; do
+ test -z "$wait" || sleep "$wait"
+
+ killContext "$ctx" "$1"
+ test -n "$2" || break
+ wait="$2"
+ shift 2
+ done
+}
+
+function _generateInitOptions
+{
+ local vdir=$1
+ local cfgdir=$vdir/apps/init
+ local i f
+
+ INITCMD_START=()
+ INITCMD_STOP=()
+ INITCMD_START_SYNC=()
+ INITCMD_STOP_SYNC=()
+ INITCMD_PREPARE=()
+ STOPCMD_PREPARE=()
+
+ INITKILL_SEQ=( 15 5 9 )
+ CHCONTEXT_INIT_OPTS=()
+
+
+ getFileValue INITSTYLE "$cfgdir"/style
+ getFileValue RUNLEVEL_START "$cfgdir"/runlevel
+ getFileValue RUNLEVEL_START "$cfgdir"/runlevel.start
+ getFileValue RUNLEVEL_STOP "$cfgdir"/runlevel.stop
+ getFileArray INITKILL_SEQ "$cfgdir"/killseq || :
+
+ case x"$INITSTYLE" in
+ (xrescue)
+ INITCMD_START=( "${INITCMD_RESCUE[@]}" )
+ INITCMD_STOP=( /sbin/killall5 )
+ _IS_FAKEINIT=1
+ _NEED_VSHELPER_SYNC=
+ ;;
+
+ (xsysv)
+ test -n "$RUNLEVEL_START" || RUNLEVEL_START=3
+ test -n "$RUNLEVEL_STOP" || RUNLEVEL_STOP=6
+
+ for i in /etc/init.d/rc /etc/rc.d/rc; do
+ test -x "$vdir/vdir/$i" || continue
+ INITCMD_START=( "$i" "$RUNLEVEL_START" )
+ INITCMD_STOP=( "$i" "$RUNLEVEL_STOP" )
+ done
+ INITCMD_PREPARE=( $_FAKE_RUNLEVEL "$RUNLEVEL_START" /var/run/utmp )
+ ;;
+
+ (xplain)
+ INITCMD_START=( /sbin/init )
+ INITCMD_STOP=( /sbin/init )
+ _IS_FAKEINIT=1
+ _NEED_VSHELPER_SYNC=1
+ test -z "$RUNLEVEL_START" || INITCMD_START=( "${INITCMD_START[@]}" "$RUNLEVEL_START" )
+ test -z "$RUNLEVEL_STOP" || INITCMD_STOP=( "${INITCMD_STOP[@]}" "$RUNLEVEL_STOP" )
+ ;;
+
+ (xminit)
+ INITCMD_START=( /sbin/minit-start )
+ INITCMD_STOP=( /sbin/minit-stop )
+ _IS_FAKEINIT=1
+ INITCMD_START_SYNC=( "$_INITSYNC_MINIT_START" "$vdir" )
+ _NEED_VSHELPER_SYNC=1
+ test -z "$RUNLEVEL_START" || INITCMD_START=( "${INITCMD_START[@]}" "$RUNLEVEL_START" )
+ test -z "$RUNLEVEL_STOP" || INITCMD_STOP=( "${INITCMD_STOP[@]}" "$RUNLEVEL_STOP" )
+ ! isNumber "${RUNLEVEL_START:-3}" || INITCMD_PREPARE=( $_FAKE_RUNLEVEL "${RUNLEVEL_START:-3}" /var/run/utmp )
+ ;;
+
+ (xgentoo)
+ INITCMD_START=( /sbin/rc default )
+ INITCMD_STOP=( /sbin/rc shutdown )
+ ;;
+
+ (x) ;;
+ (*) echo "Unknown init-style '$INITSTYLE'; aborting" >&2;
+ exit 1;;
+ esac
+
+ if test x"$INITSTYLE" != xrescue; then
+ getFileArray INITCMD_START "$cfgdir"/cmd.start || :
+ getFileArray INITCMD_STOP "$cfgdir"/cmd.stop || :
+ getFileArray INITCMD_START_SYNC "$cfgdir"/cmd.start-sync || :
+ getFileArray INITCMD_STOP_SYNC "$cfgdir"/cmd.stop-sync || :
+ getFileArray INITCMD_PREPARE "$cfgdir"/cmd.prepare || :
+ fi
+
+ test -n "$OPTION_FORCE_SYNC" -o -e "$cfgdir"/sync || {
+ INITCMD_START_SYNC=()
+ INITCMD_STOP_SYNC=()
+ _NEED_VSHELPER_SYNC=
+ }
+
+ if vshelper.isEnabled; then
+ vshelper.getSyncTimeout "$vdir" VSHELPER_SYNC_TIMEOUT || :
+ else
+ _NEED_VSHELPER_SYNC=
+ fi
+}
+
+function _generateFlagOptions
+{
+ local vdir=$1
+
+ CHCONTEXT_FLAG_OPTS=()
+
+ test ! -e "$vdir"/flags || \
+ while read flag; do
+ case x"$flag" in
+ (x|x\#) ;;
+ (xnamespace) ;;
+ (xfakeinit)
+ _IS_FAKEINIT=1
+ ;;
+ (*)
+ OPTS_VATTRIBUTE=( "${OPTS_VATTRIBUTE[@]}" --flag "$flag" )
+ CHCONTEXT_FLAG_OPTS=( "${CHCONTEXT_FLAG_OPTS[@]}"
+ --flag "$flag" )
+ ;;
+ esac
+ done <"$vdir"/flags
+
+ isAvoidNamespace "$vdir" || {
+ USE_VNAMESPACE=1
+ CHCONTEXT_FLAG_OPTS=( "${CHCONTEXT_FLAG_OPTS[@]}" --flag namespace )
+ }
+}
+
+function _generateChcontextOptions
+{
+ local vdir=$1
+ local ctx hostname domainname
+ local cap_opts
+ local flag
+
+ {
+ read ctx <"$vdir"/context || :
+ ## LEGACY ALERT
+ read hostname <"$vdir"/uts/nodename || read hostname <"$vdir"/hostname || :
+ read domainname <"$vdir"/uts/domainname || read domainname <"$vdir"/domainname || :
+ } 2>/dev/null
+
+ test -z "$S_CONTEXT" || ctx=$S_CONTEXT
+
+ _generateCapabilityOptions "$vdir"
+ _generateFlagOptions "$vdir"
+
+ CHCONTEXT_OPTS=( $SILENT_OPT \
+ "${CHCONTEXT_FLAG_OPTS[@]}" \
+ "${CAP_OPTS[@]}" \
+ --secure
+ ${ctx:+--ctx "$ctx"} \
+ ${hostname:+--hostname "$hostname"} \
+ ${domainname:+--domainname "$domainname"} )
+
+ OPTS_VCONTEXT_CREATE=( $SILENT_OPT \
+ ${ctx:+--xid "$ctx"} )
+ ## put '--secure' at front so that it can be overridden
+ OPTS_VATTRIBUTE=( --secure "${OPTS_VATTRIBUTE[@]}" )
+}
+
+function _generateScheduleOptions
+{
+ local vdir=$1
+ local f="$vdir"/schedule
+ test -e "$f" || return 0
+
+ local fill_rate interval tokens tokens_min tokens_max prio_bias
+ {
+ {
+ read fill_rate && \
+ read interval && \
+ read tokens && \
+ read tokens_min && \
+ read tokens_max && \
+ read prio_bias || prio_bias=
+ } <"$f"
+ } 2>/dev/null
+
+ test -n "$prio_bias" || {
+ echo $"Bad content in '$f'; aborting..." >&2
+ false
+ }
+
+ OPTS_VSCHED=( --fill-rate "$fill_rate" --interval "$interval" \
+ --tokens "$tokens" --tokens_min "$tokens_min" \
+ --tokens_max "$tokens_max" --priority-bias "$prio_bias" )
+}
+
+function _getInterfaceValue
+{
+ local _giv_val=$1
+ local _giv_dflt=$2
+ shift 2
+
+ local _giv_i
+ local _giv_tmp
+
+ for _giv_i; do
+ read _giv_tmp <"$_giv_i/$_giv_val" && break || :
+ done 2>/dev/null
+
+ : ${_giv_tmp:=$_giv_dflt}
+ eval $_giv_val=\$_giv_tmp
+}
+
+## Usage: _transformMask2Prefix <result-varname> <prefix> <mask>
+function _transformMask2Prefix
+{
+ local _tm2p_tmp=$2
+
+ test -n "$_tm2p_tmp" || {
+ $_MASK2PREFIX "$3" || _tm2p_tmp=$?
+ }
+
+ eval $1=\$_tm2p_tmp
+ return 0
+}
+
+function _addInterfaceCmd
+{
+ eval INTERFACE_CMDS_${INTERFACE_CMDS_IDX}='( "$@" )'
+ let ++INTERFACE_CMDS_IDX
+}
+
+## Usage: _generateMac <var> <iface> <ctx>
+function _generateMac
+{
+ isNumber "$2" || {
+ echo $"Interface basename '$iface' must be either a number, or the mac must be configured explicitly" >&2
+ return 1
+ }
+
+ eval $1=$(printf "f0:ff:%02x:%02x:%02x:%02x" $[ (~($2>>8)) & 0xff ] $[ ($2 & 0xff) ] $[ ($3>>8) & 0xff ] $[ $3 & 0xff ])
+}
+
+## Usage: _processSingleInterface <interface-directory>
+function _processSingleInterface
+{
+ local iface=$1
+
+ local ip
+ local dev
+ local prefix
+ local mask
+ local bcast
+ local name
+ local scope
+ local mac
+ local extip
+ local up="up"
+
+ _getInterfaceValue ip '' "$iface"
+ _getInterfaceValue extip '' "$iface" "$iface/.."
+ _getInterfaceValue dev '' "$iface" "$iface/.."
+ _getInterfaceValue prefix '' "$iface" "$iface/.."
+ _getInterfaceValue mask '' "$iface" "$iface/.."
+ _getInterfaceValue bcast '' "$iface" "$iface/.."
+ _getInterfaceValue name '' "$iface"
+ _getInterfaceValue scope '' "$iface" "$iface/.."
+ _getInterfaceValue mac '' "$iface"
+
+ test -n "$ip" || { echo $"Can not read ip for '$iface'" >&2; return 1; }
+ test -n "$dev" -o -e "$iface"/nodev || {
+ echo $"No device specified for '$iface'" >&2
+ return 1;
+ }
+
+ test ! -e "$iface"/down || up=
+
+ while true; do
+ _transformMask2Prefix prefix "$prefix" "$mask"
+ INTERFACES=( "${INTERFACES[@]}" "$ip${prefix:+/$prefix}" )
+
+ test ! -e "$iface"/nodev || break
+ ## LEGACY ALERT
+ test ! -e "$iface"/only_ip || break
+
+ case "$dev" in
+ (*.*)
+ test -d /proc/net/vlan || {
+ echo -e $"VLAN device-name used, but vlan subsystem not enabled.\nTry to execute 'modprobe 8021q' before starting the vservers" >&2
+ return 1
+ }
+ test -f /proc/net/vlan || {
+ _addInterfaceCmd VCONFIG ${dev/./ }
+ _addInterfaceCmd IP_ADDR 127.0.0.1/8 broadcast 127.255.255.255 dev "$dev"
+ _addInterfaceCmd IP_LINK "$dev" $up
+ }
+ ;;
+ esac
+
+ if ! test -e "$iface"/indirect; then
+ _addInterfaceCmd IP_ADDR "$ip${prefix:+/$prefix}" broadcast ${bcast:-+} ${name:+label "$dev:$name"} dev "$dev"
+ #_addInterfaceCmd IP_ROUTE "$ip${prefix:+/$prefix}" dev "$dev"
+ _addInterfaceCmd IP_LINK "$dev" $up
+ elif ! test -n "$ctx"; then
+ echo $"Using 'dummy' (indirect) for interface '$dev' requires a fixed context number; dynamic ctx are not supported" >&2
+ return 1
+ else
+ test -z "$mac" || _generateMac mac "$(basename $iface)" "$ctx" || return 1
+ _addInterfaceCmd MODPROBE dummy "$dev"
+ _addInterfaceCmd IP_LINK dev dummy0 address "$mac"
+ _addInterfaceCmd NAMEIF "$dev" "$mac"
+ _addInterfaceCmd IP_ADDR "$ip${prefix:+/$prefix}" dev "$dev"
+ test -z "$extip" || _addInterfaceCmd IPTABLES "$ip${prefix:+/$prefix}" ${name:+label "$dev:$name"} "$ctx" "$extip"
+ fi
+
+ break
+ done
+}
+
+## Usage: _generateInterfaceOptions <vserver-directory>
+function _generateInterfaceOptions
+{
+ local iface
+ local ctx
+
+ test ! -e "$1"/context || read ctx <"$1"/context
+
+ for iface in "$1/interfaces/"*; do
+ test -d "$iface" || continue
+ test ! -e "$iface"/disabled || continue
+
+ _processSingleInterface "$iface"
+ done
+ _HAVE_INTERFACE_OPTIONS=1
+}
+
+function enableInterfaces
+{
+ local i=0
+ declare -a var
+
+ lock "$__LOCKDIR"/vserver.interfaces
+
+ while test $i -lt $INTERFACE_CMDS_IDX; do
+ eval var='( "${INTERFACE_CMDS_'$i'[@]}" )'
+ local type=${var[0]}
+ unset var[0]
+
+ set -- "${var[@]}"
+ case "$type" in
+ IPTABLES) ;; ## TODO
+ MODPROBE)
+ local mod=$1
+ local name=$2
+ shift 2
+ $_MODPROBE ${name:+-o "$name"} "$mod" "$@"
+ ;;
+ NAMEIF) $_NAMEIF "$@";;
+ VCONFIG) $_VCONFIG add "$@";;
+ IP_ADDR) $_IP addr add "$@";;
+ IP_ADDR_FLUSH) $_IP addr flush "$@";;
+ IP_LINK) $_IP link set "$@";;
+ IP_ROUTE) $_IP route add "$@";;
+ *) echo "Unknown interface-command type '$type'" >&2; false;;
+ esac
+
+ let ++i
+ done
+
+ unlock 1
+}
+
+function disableInterfaces
+{
+ test -n "$_HAVE_INTERFACE_OPTIONS" || _generateInterfaceOptions "$1"
+
+ local i=$INTERFACE_CMDS_IDX
+ declare -a var
+
+ lock "$__LOCKDIR"/vserver.interfaces
+
+ while test $i -gt 0; do
+ let --i || :
+
+ eval var='( "${INTERFACE_CMDS_'$i'[@]}" )'
+ local type=${var[0]}
+ unset var[0]
+
+ set -- "${var[@]}"
+ case "$type" in
+ IPTABLES) ;; ## TODO
+ MODPROBE) $_RMMOD "${2:-$1}";;
+ NAMEIF) ;;
+ VCONFIG) $_VCONFIG rem "$@";;
+ IP_ADDR) $_IP addr del "$@";;
+ IP_ADDR_FLUSH) ;;
+ IP_LINK) ;; ## Ignore the link-down command for now
+ IP_ROUTE) $_IP route del "$@";;
+ *) echo "Unknown interface-command type '$type'" >&2; false;;
+ esac
+ done
+
+ unlock 1
+}
+
+## Usage: prepareInit <vserver-directory>
+function prepareInit
+{
+ pushd "$1/vdir" >/dev/null
+ case "$INITSTYLE" in
+ sysv)
+ { find var/run ! -type d -print0; \
+ find var/lock ! -type d -print0; } | xargs -0r $_CHROOT_SH rm
+ ;;
+ plain)
+ $_CHROOT_SH rm .autofsck forcefsck 2>/dev/null || :
+ : | $_CHROOT_SH truncate fastboot 2>/dev/null || :
+ ;;
+ minit)
+ ;;
+ esac
+ "${INITCMD_PREPARE[@]}"
+ popd >/dev/null
+}
+
+## Usage: prepareInit <vserver-directory>
+function prepareStop
+{
+ pushd "$1/vdir" >/dev/null
+ case "$INITSTYLE" in
+ (sysv)
+ export PREVLEVEL=$RUNLEVEL_START # required by Debian's initscripts
+ ;;
+ esac
+ "${STOPCMD_PREPARE[@]}"
+ popd >/dev/null
+}
+
+
+function generateOptions
+{
+ _generateInterfaceOptions "$1"
+ test -n "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$1"
+ _generateNiceCommand "$1"
+ _generateInitOptions "$1"
+ _generateChcontextOptions "$1"
+ _generateScheduleOptions "$1"
+ _generatePersonalityOptions "$1"
+
+ if test -n "$_IS_FAKEINIT"; then
+ CHCONTEXT_INIT_OPTS=( --disconnect --flag fakeinit )
+ OPTS_VCONTEXT_MIGRATE=( "${OPTS_VCONTEXT_MIGRATE[@]}" --initpid --disconnect )
+ fi
+}
+
+function _mountVserverInternal
+{
+ local fstab="$1"
+ local xflag=
+
+ test -e "$fstab" || return 0
+ shift
+
+ pushd "$vdir" >/dev/null
+ # check whether / is mounted readonly or whether there is special
+ # magic regarding the mtab file; when etc/mtab can not be touched,
+ # add the '-n' flag to mount
+ test -w etc -o -w etc/mtab || xflag=-n
+ "$@" $_SECURE_MOUNT -a $xflag --chroot --fstab "$fstab" --rootfs no
+ popd >/dev/null
+}
+
+function mountRootFS
+{
+ local cfgdir=$1
+ local vdir=$1/vdir
+ local fstab="$cfgdir"/fstab
+ local xflag=
+
+ test -e "$fstab" || return 0
+ pushd "$vdir" >/dev/null
+ # check whether / is mounted readonly or whether there is special
+ # magic regarding the mtab file; when etc/mtab can not be touched,
+ # add the '-n' flag to mount
+ test -w etc -o -w etc/mtab || xflag=-n
+ $_SECURE_MOUNT -a $xflag --chroot --fstab "$fstab" --rootfs only -n
+ popd >/dev/null
+}
+
+function mountVserver
+{
+ local cfgdir=$1
+ local ns_opt=$2
+ local vdir=$1/vdir
+ local mtab_src
+
+ test -e "$cfgdir"/fstab -o \
+ -e "$cfgdir"/fstab.local -o \
+ -e "$cfgdir"/fstab.remote || return 0
+
+ findObject -r mtab_src "$cfgdir"/apps/init/mtab "$__CONFDIR"/.defaults/init/mtab "$__PKGLIBDEFAULTDIR"/mtab /dev/null
+
+ pushd "$vdir" >/dev/null
+ $_CHROOT_SH truncate /etc/mtab <"$mtab_src"
+ popd >/dev/null
+
+ test -n "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$cfgdir"
+
+ test -z "$NAMESPACE_CLEANUP" || isAvoidNamespace "$cfgdir" || \
+ $_VNAMESPACE --cleanup
+
+ _mountVserverInternal "$cfgdir"/fstab
+ _mountVserverInternal "$cfgdir"/fstab.local
+ _mountVserverInternal "$cfgdir"/fstab.remote $_CHBIND "${CHBIND_OPTS[@]}"
+
+ isAvoidNamespace "$cfgdir" || \
+ $_SECURE_MOUNT --rbind -n "$vdir" "/"
+}
+
+function _umountVserverInternal
+{
+ local fstab="$1"
+ test -e "$fstab" || return 0
+ shift
+
+ $_TAC "$fstab" | {
+ is_ok=1
+ while read src dst tmp; do
+ test -n "$tmp" || continue
+ case x"$src" in
+ (x\#*) continue;;
+ esac
+
+
+ "$@" $_EXEC_CD "$dst" $_UMOUNT -lfn . || is_ok=
+ done
+ test -n "$is_ok"
+ }
+}
+
+function umountVserver
+{
+ local cfgdir=$1
+ local vdir=$1/vdir
+ local is_ok=1
+
+ isAvoidNamespace "$cfgdir" || return 0
+ test -e "$cfgdir"/fstab -o \
+ -e "$cfgdir"/fstab.local || return 0
+ test -n "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$cfgdir"
+
+ pushd "$vdir/" >/dev/null || return 1
+ _umountVserverInternal "$cfgdir"/fstab.local || is_ok=
+ _umountVserverInternal "$cfgdir"/fstab $_CHBIND "${CHBIND_OPTS[@]}" || is_ok=
+ popd >/dev/null || return 1
+
+ test -n "$is_ok"
+}
+
+## Usage: waitForSync <vserver> <context> <vshelper-fifo-varname>
+function initSync
+{
+ local _is_meth=sync
+ test -n "$_NEED_VSHELPER_SYNC" && \
+ ! $_VSERVER_INFO - FEATURE vwait || _is_meth=async
+
+ vshelper.initSync "$1" "$3" "$_is_meth"
+}
+
+## Usage: initWait <vserver> <context> <vwait-tmpdir-varname>
+function initWait
+{
+ if $_VSERVER_INFO - FEATURE vwait; then
+ local _is_tmpdir
+ _is_tmpdir=$($_MKTEMPDIR /tmp/vwaitstat.XXXXXX)
+
+ $_NOHUP $_VWAIT --timeout "$VSHELPER_SYNC_TIMEOUT" \
+ --terminate --status-fd 3 "$2" \
+ >>$_is_tmpdir/out 2>$_is_tmpdir/err 3>$_is_tmpdir/fifo &
+
+ echo "$!" >$_is_tmpdir/pid
+ eval "$3"=$_is_tmpdir
+ fi
+}
+
+
+## Usage: _waitForVWait <fifo> <pid>
+function _waitForVWait
+{
+ declare -a status
+ wait "$2" || :
+ getFileArray status "$1"
+ set -- ${status[0]}
+
+ case "$1" in
+ (ERROR) warning $"\
+'vwait' exited with error '$2' which indicates that vserver could not
+be stopped properly"
+ ;;
+ (FINISHED) ;;
+ (KILLED) warning $"\
+A timeout occured while waiting for the vserver to finish and it was
+killed by sending a SIGKILL signal. Please investigate the reasons
+and/or increase the timeout in apps/vshelper/sync-timeout."
+ ;;
+ (TIMEOUT|\?\?\?|*) warning $"\
+internal error: 'vwait' exited with an unexpected status '$1'; I will
+try to continue but be prepared for unexpected events."
+ ;;
+ esac
+
+ return 0
+}
+
+## Usage: waitForSync <vserver> [<vshelper-fifo>] [<vwait-statdir>]
+function waitForSync
+{
+ local cfgdir=$1
+ local fifo=$2
+ local vwait_statdir=$3
+ local vwait_pid=$4
+
+ if test -d "$vwait_statdir"; then
+ _waitForVWait "$vwait_statdir/fifo" "$( <$vwait_statdir/pid )"
+ elif test -n "$_NEED_VSHELPER_SYNC"; then
+ $_VSHELPER_SYNC "$fifo" "$VSHELPER_SYNC_TIMEOUT" || \
+ warning $"\
+A timeout or other error occured while waiting for the synchronization
+signal from vserver '$VSERVER_NAME'.
+The vserver will be killed nevertheless..."
+ elif test "${#INITCMD_STOP_SYNC[@]}" -ne 0; then
+ "${INITCMD_STOP_SYNC[@]}" || \
+ warning $"\
+Stop-synchronization for vserver '$VSERVER_NAME' failed. The vserver
+will be killed nevertheless..."
+ fi
+
+ test -z "$OPTION_FORCE_SYNC" -a ! -e "$cfgdir"/sync ||
+ sleep 1
+}
+
+function _sourceWrap
+{
+ local vdir name flavor start i already_handled base
+ . "$@"
+}
+
+## Usage: execScriptlets <vserver-cfgdir> <vserver-name> <script-flavor>
+function execScriptlets
+{
+ declare -r vdir=$1
+ declare -r name=$2
+ declare -r flavor=$3
+ local base i
+
+ for base in "$vdir"/scripts "$__CONFDIR"/.defaults/scripts; do
+ local DONT_SKIP_DEFAULTS=
+ local already_handled=
+
+ for i in "$base/$flavor" "$base/$flavor.d"/*; do
+ isRegularFile "$i" || continue
+ test -r "$i" || continue
+
+ already_handled=1
+ local start=
+ test -x "$i" || start=_sourceWrap
+ $start "$i" "$flavor" "$name"
+ done
+
+ test -z "$already_handled" -o -n "$DONT_SKIP_DEFAULTS" || break
+ done
+}
+
+
+function sanityCheck
+{
+ declare -r cfgdir=$1
+
+ ! test -e "$cfgdir"/fstab.local ||
+ warning $"\
+WARNING: 'fstab' will *not* be executed in the network context of the
+ vserver anymore. Therefore, 'fstab.local' has the same functionality
+ and is obsoleted. When you need the old behaviour, put the mounts
+ into 'fstab.remote'"
+
+ ! test -e "$cfgdir"/hostname -a ! -L "$cfgdir"/hostname ||
+ warning $"\
+WARNING: The hostname is now configured in 'uts/nodename' but not in
+ 'hostname'."
+
+ ! test -e "$cfgdir"/domainname -a ! -L "$cfgdir"/domainname ||
+ warning $"\
+WARNING: The domainname is now configured in 'uts/domainname' but not
+ in 'domainname'." >&2
+
+
+ local i
+ for i in "$cfgdir"/interfaces/*/only_ip; do
+ if test -e "$i"; then
+ local iface
+ iface=${i##$cfgdir/interfaces/}
+ iface=${iface%%/only_ip}
+ warning $"\
+WARNING: The 'only_ip' flag for interface '$iface' is deprecated; use
+ 'nodev' instead of"
+ fi
+ done
+
+ find "$cfgdir" -type f -exec "$_CHECK_UNIXFILE" '{}' ';'
+
+ vshelper.doSanityCheck
+
+ $_VSERVER_INFO - VERIFYCAP ||
+ panic $"capabilities are not enabled in kernel-setup"
+
+ $_VSERVER_INFO - VERIFYPROC ||
+ panic $"\
+/proc/uptime can not be accessed. Usually, this is caused by
+procfs-security. Please read the FAQ for more details
+http://www.linux-vserver.org/index.php?page=Linux-Vserver+FAQ"
+}
--- /dev/null
+# $Id: vserver.start,v 1.45 2005/07/15 19:01:06 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+
+lock "$__LOCKDIR"/vserver."$($_VSERVER_INFO "$VSERVER_DIR" CANONIFY)".startup
+
+if isVserverRunning "$VSERVER_DIR"; then
+ warning $"vserver '$VSERVER_NAME' already running"
+ exit 0
+fi
+
+function cleanup()
+{
+ set +e
+
+ test -z "$startsync_pipe" || $_RM -f "$startsync_pipe"
+ test -z "$is_started" || { unlock; return 0; }
+
+ if test -n "$is_configured" -a -z "$is_executed"; then
+ warning $"
+An error occured while executing the vserver startup sequence; when
+there are no other messages, it is very likely that the init-script
+(${INITCMD_START[@]}) failed.
+
+Common causes are:
+* /etc/rc.d/rc on Fedora Core 1 and RH9 fails always; the 'apt-rpm' build
+ method knows how to deal with this, but on existing installations,
+ appending 'true' to this file will help."
+ fi
+
+ if test -n "$is_executed"; then
+ warning $"
+An error occured after executing the vserver startup sequence. This
+means that some processes may exist in the created context and the
+manual execution of
+
+ $_VSERVER '$VSERVER_DIR' stop
+
+is recommended to fix this."
+ else
+ warning $"
+
+Failed to start vserver '$VSERVER_NAME'"
+ fi
+
+ test -n "$OPTION_DEBUG" || exec 2>/dev/null >/dev/null
+ test -z "$is_mounted" || umountVserver "$VSERVER_DIR" || :
+ test -z "$have_interfaces" || disableInterfaces "$VSERVER_DIR" || :
+
+ unlock || :
+}
+
+is_configured=
+is_executed=
+is_started=
+is_mounted=
+is_vshelper_init=
+have_interfaces=
+startsync_pipe=
+
+while test "$#" -gt 0; do
+ case "$1" in
+ (--rescue) INITSTYLE=rescue;;
+ (--rescue-cmd) INITCMD_RESCUE=( $2 ); shift;;
+ (*) panic $"vserver ... start: unknown option '$1'";;
+ esac
+ shift
+done
+
+set -e
+trap "cleanup" EXIT
+
+sanityCheck "$VSERVER_DIR"
+
+mountRootFS "$VSERVER_DIR"
+generateOptions "$VSERVER_DIR"
+
+pushd "$VSERVER_DIR" >/dev/null
+execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" prepre-start
+popd >/dev/null
+
+enableInterfaces "$VSERVER_DIR" && have_interfaces=1
+
+mountVserver "$VSERVER_DIR" && is_mounted=1
+prepareInit "$VSERVER_DIR"
+
+pushd "$VSERVER_DIR"/vdir/ >/dev/null
+execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" pre-start
+popd >/dev/null
+
+test -z "$OPTION_DEFAULTTTY" || setDefaultTTY "$VSERVER_DIR"
+
+pushd "$VSERVER_DIR"/vdir/ >/dev/null
+is_configured=1
+if $_VSERVER_INFO - FEATURE migrate; then
+ ${NICE_CMD[@]} \
+ $_CHBIND "${CHBIND_OPTS[@]}" -- \
+ $_EXEC_ULIMIT "$VSERVER_DIR"/ulimits \
+ $_VCONTEXT --create "${OPTS_VCONTEXT_CREATE[@]}" -- \
+ ${USE_VNAMESPACE:+$_VNAMESPACE --set -- } \
+ $_VLIMIT --dir "$VSERVER_DIR"/rlimits --missingok -- \
+ $_VSCHED --xid self "${OPTS_VSCHED[@]}" -- \
+ $_VUNAME --xid self --dir "$VSERVER_DIR"/uts --missingok -- \
+ "${VSERVER_EXTRA_CMDS[@]}" \
+ $_VUNAME --xid self --set -t context="$VSERVER_DIR" -- \
+ $_VATTRIBUTE --set "${OPTS_VATTRIBUTE[@]}" -- \
+ $_SAVE_CTXINFO "$VSERVER_DIR" \
+ $_ENV -i -- \
+ $_VCONTEXT --migrate-self --endsetup --chroot $SILENT_OPT \
+ "${OPTS_VCONTEXT_MIGRATE[@]}" "${OPTS_VCONTEXT_ENTER[@]}" -- \
+ "${INITCMD_START[@]}"
+else
+ if test -n "$_IS_FAKEINIT"; then
+ startsync_pipe=$($_MKTEMP /tmp/vserver-start.XXXXXX)
+ $_RM -f "$startsync_pipe"
+ $_MKFIFO -m600 "$startsync_pipe" ## safe, since mkfifo does not follow symlinks
+ fi
+
+ ${NICE_CMD[@]} \
+ $_CHBIND "${CHBIND_OPTS[@]}" \
+ $_EXEC_ULIMIT "$VSERVER_DIR/ulimits" \
+ $_CHCONTEXT_COMPAT "${CHCONTEXT_OPTS[@]}" "${CHCONTEXT_INIT_OPTS[@]}" \
+ $_SAVE_CTXINFO "$VSERVER_DIR" \
+ $_ENV -i -- \
+ $_CHAINECHO "${_IS_FAKEINIT:+$startsync_pipe}" "" \
+ $_CAPCHROOT "${CAPCHROOT_OPTS[@]}" . \
+ "${INITCMD_START[@]}"
+
+ ## the additional synchronization step is needed since vshelper.doInit
+ ## below might be executed before needed context information were
+ ## saved by $_SAVE_CTXINFO
+ ${_IS_FAKEINIT:+cat "$startsync_pipe"} >/dev/null
+fi
+is_executed=1
+
+"${INITCMD_START_SYNC[@]}"
+popd >/dev/null
+
+pushd "$VSERVER_DIR"/vdir/ >/dev/null
+execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" post-start
+popd >/dev/null
+
+is_vshelper_init=1
+! vshelper.isEnabled "" "$VSERVER_DIR" || vshelper.doInit "$VSERVER_DIR"
+
+is_started=1
--- /dev/null
+# $Id: vserver.stop,v 1.29 2005/06/30 06:17:58 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+
+lock "$__LOCKDIR"/vserver."$($_VSERVER_INFO "$VSERVER_DIR" CANONIFY)".startup
+
+if ! isVserverRunning "$VSERVER_DIR" S_CONTEXT; then
+ warning $"vserver '$VSERVER_NAME' is not running" >&2
+ test -n "$OPTION_DEBUG" || exec 2>/dev/null >/dev/null
+ umountVserver "$VSERVER_DIR" || :
+ disableInterfaces "$VSERVER_DIR" || :
+ unlock
+ exit 0
+fi
+
+function cleanup
+{
+ set +e
+ unlock
+
+ test ! -p "$sync_fifo" || {
+ $_RM -f "$sync_fifo"
+ $_RMDIR $($_DIRNAME "$sync_fifo")
+ }
+
+ test ! -d "$vwait_statdir" ||
+ $_RM -rf "$vwait_statdir"
+}
+
+vwait_statdir=
+vwait_pid=
+sync_fifo=
+trap "cleanup" EXIT
+
+OPTION_FORCE_SYNC=1
+
+set -e
+generateOptions "$VSERVER_DIR"
+set +e
+
+vshelper.doDestroy "$VSERVER_DIR" "$S_CONTEXT"
+initSync "$VSERVER_DIR" "$S_CONTEXT" sync_fifo
+prepareStop "$VSERVER_DIR"
+
+cd "$VSERVER_DIR"/vdir/
+execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" pre-stop
+cd "$VSERVER_DIR"/vdir/
+
+test -z "$OPTION_DEFAULTTTY" || setDefaultTTY "$VSERVER_DIR"
+
+fail=
+initWait "$VSERVER_DIR" "$S_CONTEXT" vwait_statdir
+if test -n "$_IS_FAKEINIT" && \
+ $_VSERVER_INFO - FEATURE vkill; then
+ $_VKILL -s INT --xid "$S_CONTEXT" -- 1 || fail=1
+ ## HACK: remove the 'initpid' stuff above when PID virtualization
+ ## is implemented
+elif $_VSERVER_INFO - FEATURE migrate; then
+ "${NICE_CMD[@]}" \
+ ${USE_VNAMESPACE:+$_VNAMESPACE --enter "$S_CONTEXT" -- } \
+ $_VCONTEXT $SILENT_OPT --migrate --chroot --xid "$S_CONTEXT" -- \
+ "${INITCMD_STOP[@]}" || fail=1
+else
+ "${NICE_CMD[@]}" \
+ "$_CHBIND" "${CHBIND_OPTS[@]}" \
+ "$_EXEC_ULIMIT" "$VSERVER_DIR/ulimits" \
+ ${USE_VNAMESPACE:+$_VNAMESPACE --enter "$S_CONTEXT"} \
+ $_CHCONTEXT_COMPAT "${CHCONTEXT_OPTS[@]}" \
+ "$_CAPCHROOT" "${CAPCHROOT_OPTS[@]}" "." \
+ "${INITCMD_STOP[@]}" || fail=1
+fi
+
+test -n "$fail" || waitForSync "$VSERVER_DIR" "$sync_fifo" "$vwait_statdir"
+
+vshelper.doDestroy "$VSERVER_DIR" "$S_CONTEXT"
+sendKillSequence "$S_CONTEXT" "${INITKILL_SEQ[@]}"
+
+## Small hack... isVserverRunning removes stale runfiles as a sideeffect
+! isVserverRunning "$VSERVER_DIR" || \
+ echo $"Vserver '$VSERVER_DIR' still running unexpectedly; please investigate it manually..." >&2
+
+execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" post-stop
+
+umountVserver "$VSERVER_DIR" || :
+disableInterfaces "$VSERVER_DIR"
+
+execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" postpost-stop
--- /dev/null
+# $Id: vserver.suexec,v 1.14 2005/07/15 19:01:06 ensc Exp $ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+is_stopped=
+isVserverRunning "$VSERVER_DIR" S_CONTEXT || is_stopped=1
+test -z "$is_stopped" -o "$OPTION_INSECURE" || {
+ echo $"'vserver ... suexec' is supported for running vservers only; aborting..." >&2
+ exit 1
+}
+generateOptions "$VSERVER_DIR"
+
+user=$1
+shift
+
+cd "$VSERVER_DIR"/vdir/
+
+if $_VSERVER_INFO - FEATURE migrate; then
+ if test -z "$is_stopped"; then
+ exec \
+ $_CHBIND "${CHBIND_OPTS[@]}" \
+ $_EXEC_ULIMIT "$VSERVER_DIR/ulimits" \
+ ${USE_VNAMESPACE:+$_VNAMESPACE --enter "$S_CONTEXT" -- } \
+ $_VCONTEXT $SILENT_OPT --migrate --chroot \
+ --xid "$S_CONTEXT" --uid "$user" "${OPTS_VCONTEXT_ENTER[@]}" -- \
+ "$@"
+ else
+ exec \
+ $_CHBIND "${CHBIND_OPTS[@]}" \
+ $_EXEC_ULIMIT "$VSERVER_DIR/ulimits" \
+ $_VCONTEXT --create "${OPTS_VCONTEXT_CREATE[@]}" -- \
+ $_VUNAME --xid self --dir "$VSERVER_DIR"/uts --missingok -- \
+ $_VUNAME --xid self --set -t context="$VSERVER_DIR" -- \
+ $_VCONTEXT --migrate-self --endsetup --chroot $SILENT_OPT -- \
+ "$@"
+ fi
+else
+ exec \
+ "${NICE_CMD[@]}" \
+ "$_CHBIND" "${CHBIND_OPTS[@]}" \
+ "$_EXEC_ULIMIT" "$VSERVER_DIR/ulimits" \
+ ${USE_VNAMESPACE:+$_VNAMESPACE --enter "$S_CONTEXT" --} \
+ $_CHCONTEXT_COMPAT "${CHCONTEXT_OPTS[@]}" -- \
+ "$_CAPCHROOT" "${CAPCHROOT_OPTS[@]}" --suid "$user" . \
+ "$@"
+fi
# Produce some XML statistics about vservers
-: ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars}
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
test -e "$UTIL_VSERVER_VARS" || {
- echo "Can not find util-vserver installation; aborting..."
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
exit 1
}
. "$UTIL_VSERVER_VARS"
-cd $VROOTDIR
+cd $__DEFAULT_VSERVERDIR
for vserv in *
do
if [ -f /etc/vservers/$vserv.conf ] ; then
esac
done
echo " <status>"
- $SBINDIR/vserver $vserv status
+ $_VSERVER $vserv status
echo " </status>"
echo "</m:vserver>"
fi
--- /dev/null
+#! /usr/lib/util-vserver/sigexec /bin/bash
+
+# Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+## Usage: vshelper <xid> <action> <args>
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+function showHelp
+{
+ echo $"\
+Usage: vshelper <xid> <event> <args>*
+
+Report bugs to <$PACKAGE_BUGREPORT>."
+ exit 0
+}
+
+function showVersion
+{
+ echo $"\
+vshelper $PACKAGE_VERSION -- userspace reboot helper
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2004 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit 0
+}
+
+function doInternalMethod
+{
+ local method=$1
+ case "$method" in
+ (restart)
+ case "$ACTION" in
+ (restart)
+ logging $"Restarting vserver '$VSERVER'"
+ spawn killContext "$XID"
+ execute $_VSERVER --defaulttty "$VSERVER" restart
+ ;;
+ (halt|poweroff)
+ logging $"Stopping vserver '$VSERVER'"
+ spawn killContext "$XID"
+ execute $_VSERVER --defaulttty "$VSERVER" stop
+ ;;
+ (swsusp)
+ ## TODO: any senseful action here? Perhaps shutdown scheduler for it?
+ exit 0
+ ;;
+ (restart2) ;;
+ (*)
+ warning $"Unknown action '$ACTION' for vserver '$VSERVER'"
+ exit 1
+ esac
+ ;;
+
+ (async)
+ spawn killContext "$XID"
+ ;;
+
+ (sync)
+ local f=${METHOD_ARGS[0]}
+ test -n "$f" ||
+ panic $"Insufficent arguments for method '$method' and vserver '$VSERVER'"
+
+ test -p "$f" ||
+ panic $"File '$f' which is required for synchronisation of vserver '$VSERVER' is not a pipe"
+
+ spawn killContext "$XID"
+ echo "$ACTION" >"$f"
+ ;;
+
+ (*)
+ local script
+ findObject -x script "$__CONFDIR"/.defaults/apps/vshelper-methods/"$method" "$__PKGLIBDIR"/vshelper-methods/"$method" ''
+
+ test -n '$script' || {
+ warning $"No handler for internal method '$method' found"
+ exit 1
+ }
+
+ export VSERVER
+ execute "$script" "${ARGS[@]}"
+ esac
+}
+
+function doDefaultMethod
+{
+ local handler
+
+ vshelper.getHandler handler "$VSERVER" "$ACTION" || {
+ warning $"No handler configured for action '$ACTION' on vserver '$VSERVER'"
+ exit 1
+ }
+
+ case "$handler" in
+ (/*) execute "$handler" "${ARGS[@]}";;
+ (:*) doInternalMethod "${handler##:}" "$@";;
+ esac
+}
+
+#===========
+
+test "$1" != '--version' || showVersion
+test "$1" != '--help' || showHelp
+
+if ! tty -s; then
+ findObject -e _VS_LOGFILE "$__CONFDIR"/.defaults/apps/vshelper/logfile /dev/null
+ findObject -e _VS_ERRFILE "$__CONFDIR"/.defaults/apps/vshelper/logfile /dev/null
+
+ exec </dev/null
+ exec >>$_VS_LOGFILE
+ exec 2>>$_VS_ERRFILE
+fi
+
+logging "$(date): vshelper $*"
+
+test "$#" -ge 2 ||
+ panic $"vshelper called with missing arguments; try '--help' for more information"
+
+
+vshelper.isEnabled || exit 0
+! vshelper.isDebug || set -x
+
+set -eu
+
+if $_VSERVER_INFO - FEATURE vshelper0; then
+ declare -r XID=$1
+ declare -r ACTION=$2
+elif $_VSERVER_INFO - FEATURE vshelper; then
+ declare -r ACTION=$1
+ declare -r XID=$2
+else
+ panic $"vshelper functionality not supported by kernel"
+fi
+
+findObject -x delegate "$__CONFDIR"/.defaults/apps/vshelper-delegate/"$ACTION" "$__PKGLIBDIR"/vshelper-delegate/"$ACTION" ''
+test -e "$delegate" && exec -a "$ACTION" "$delegate" "$@"
+
+this_xid=$($_VSERVER_INFO - XID)
+pxid=
+responsible_xid=$XID
+while true; do
+ pxid=$($_VSERVER_INFO "$responsible_xid" PXID) || break
+ test "$pxid" -ne "$this_xid" || break
+ responsible_xid=$pxid
+done
+
+vserver_id=$($_VSERVER_INFO "$responsible_xid" ID) ||
+ panic $"No responsible vserver found for xid '$responsible_xid' ($XID); aborting..."
+
+test "$XID" = "$responsible_xid" || {
+ logging "Giving 'vshelper' task for '$XID' to parent vserver '$vserver_id' ($responsible_xid)"
+ execute $_VSERVER "$vserver_id" exec $_VSHELPER "$@"
+}
+
+#===========
+
+ARGS=( "$@" )
+
+declare -a state
+getFileArray state "$__VSHELPERSTATEDIR/$XID" && test ${#state[@]} -ge 2 || {
+ logging "'vshelper' not configured for xid '$XID'"
+ exit 0
+}
+
+declare -r VSERVER=${state[0]}
+
+cfg_xid=$($_VSERVER_INFO "${state[0]}" CONTEXT false) ||
+ panic $"Configured vserver '$VSERVER' does not seem to run; aborting..."
+
+test "$cfg_xid" = "$XID" ||
+ panic $"Configured ($cfg_xid) and actual ($XID) xid for vserver '$VSERVER' are mismatching; aborting..."
+
+cur_xid=$($_VSERVER_INFO "$VSERVER" CONTEXT false) ||
+ panic $"Vserver '$VSERVER' with '$XID' does not seem to run; strange..."
+
+test "$cur_xid" = "$XID" ||
+ panic $"Expected ($XID) and actual ($cur_xid) xid for vserver '$VSERVER' are mismatching; strange..."
+
+
+method=${state[1]}
+if test "${#state[@]}" -gt 2; then
+ unset state[0] state[1]
+ declare -ra METHOD_ARGS=( "${state[@]}" )
+else
+ declare -ra METHOD_ARGS=()
+fi
+
+case "$method" in
+ (default) doDefaultMethod "$@";;
+ (sync|async) doInternalMethod "$method" "$@";;
+ (*) panic $"Unknown method '$method' used by vserver '$VSERVER'";;
+esac
--- /dev/null
+#! /bin/bash
+# $Id: vsomething,v 1.3 2005/04/24 20:30:55 ensc Exp $
+
+# Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+
+function showHelp()
+{
+ echo \
+$"Usage: $0 [--quiet|-q] [--debug] <cmd> [--] <vserver-name>* [--all] -- <params>+
+
+Execute <cmd> <vserver> <params>* foreach vserver.
+
+Report bugs to <$PACKAGE_BUGREPORT>."
+ exit 0
+}
+
+function showVersion()
+{
+ echo \
+$"vsomething $PACKAGE_VERSION -- execute something for a set of vservers
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2005 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit 0
+}
+
+
+is_quiet=
+declare -a vservers=()
+
+tmp=$(getopt -o +q --long help,version,debug,quiet -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+while true; do
+ case "$1" in
+ (--help) showHelp $0 ;;
+ (--version) showVersion ;;
+ (--debug) set -x;;
+ (--quiet|-q) is_quiet=1 ;;
+ (--) shift; break;;
+ (*) echo $"vserver: internal error; arg=='$1'" >&2; exit 1;;
+ esac
+ shift
+done
+
+test "$#" -ge 1 || \
+ panic $"vsomething: no operation specified; try '--help' for more information"
+
+cmd=$1
+title=${VSOMETHING_TITLE:-$cmd}
+shift
+
+while test "$#" -ge 1; do
+ if getAllVserversByArg tmp "$1"; then
+ vservers=( "${vservers[@]}" "${tmp[@]}" )
+ else
+ case "$1" in
+ (--) shift; break;;
+ (*) vservers=( "${vservers[@]}" "$1" )
+ esac
+ fi
+ shift
+done
+
+
+test "${#vservers[@]}" -ne 1 || is_quiet=1
+
+
+cnt=0
+res=255
+for i in "${vservers[@]}"; do
+ cnt=$[ cnt + 1 ]
+
+ test -n "$is_quiet" || {
+ colorize bold echo -n "$title: operating on vserver "
+ colorize bold colorize emph echo "$i"
+ xtermTitle "$title: operating on vserver '$i' [$cnt/${#vservers[@]}]"
+ }
+
+ if test -n "$VSOMETHING_PKGMGMT"; then
+ if pkgmgmt.isInternal "$i"; then
+ $_VSERVER "$i" exec "$cmd" "$@"
+ else
+ callInNamespace "$i" \
+ "$_VNAMESPACE" --new -- "$VSOMETHING_WORKER" "$i" "$@"
+ fi
+ else
+ "$cmd" "$i" "$@"
+ fi
+
+ res=$?
+
+ test $res -eq 0 -o -n "$is_quiet" || {
+ colorize error echo -n $"$title failed on vserver '$i' with errorcode $res"
+ echo
+ }
+
+ test -n "$is_quiet" || echo
+done
+
+test "$cnt" -ge 0 || warning $"No vservers specified"
+exit $res
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Helper script for all the v_xxx scripts
-: ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars}
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
test -e "$UTIL_VSERVER_VARS" || {
- echo "Can not find util-vserver installation; aborting..."
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
exit 1
}
. "$UTIL_VSERVER_VARS"
if [ $# = 0 ] ; then
echo vsysvwrapper service_name >&2
+ exit 6
else
SERVICE=$1
shift
do
IPOPT="$IPOPT --ip $oneip"
done
- echo exec $SBINDIR/chbind $IPOPT /etc/init.d/$SERVICE $*
- exec $SBINDIR/chbind $IPOPT /etc/init.d/$SERVICE $*
+ echo exec $CHBIND $IPOPT /etc/init.d/$SERVICE "$@"
+ exec $CHBIND $IPOPT /etc/init.d/$SERVICE "$@"
fi
-
-
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#Presents the processes running in all virtual servers
-: ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars}
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
test -e "$UTIL_VSERVER_VARS" || {
- echo "Can not find util-vserver installation; aborting..."
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
exit 1
}
. "$UTIL_VSERVER_VARS"
-exec $SBINDIR/chcontext --silent --ctx 1 top $*
+exec $__SBINDIR/chcontext --silent --ctx 1 top "$@"
--- /dev/null
+#! /bin/bash
+# $Id: vyum,v 1.2 2005/03/02 01:24:44 ensc Exp $
+
+# Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+
+function showHelp()
+{
+ echo \
+$"Usage: $0 <vserver-name>* [--all] -- <params>+
+
+Report bugs to <$PACKAGE_BUGREPORT>."
+ exit 0
+}
+
+function showVersion()
+{
+ echo \
+$"vyum $PACKAGE_VERSION -- yum for vservers
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2005 Enrico Scholz
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit 0
+}
+
+tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+declare -a send_through yum_opts
+
+while true; do
+ case "$1" in
+ (--help) showHelp $0 ;;
+ (--version) showVersion ;;
+ (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;;
+ (--quiet|-q) send_through=( "${send_through[@]}" "$1" );;
+ (--all) yum_opts=( "${yum_opts[@]}" "$1" );;
+ (--) shift; break;;
+ (*) echo $"vyum: internal error; arg=='$1'" >&2; exit 1;;
+ esac
+ shift
+done
+
+VSOMETHING_TITLE=vyum
+VSOMETHING_WORKER=$_VYUM_WORKER
+VSOMETHING_PKGMGMT=1
+
+export VSOMETHING_TITLE VSOMETHING_WORKER VSOMETHING_PKGMGMT
+
+test ${#yum_opts[@]} -eq 0 || yum_opts=( "${yum_opts[@]}" -- )
+exec $_VSOMETHING "${send_through[@]}" yum "${yum_opts[@]}" "$@"
--- /dev/null
+#! /bin/bash
+# $Id: vyum-worker,v 1.5 2005/04/08 19:18:06 ensc Exp $
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#
+# 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.
+#
+# 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.
+
+set -e
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+vserver=$1
+shift
+
+pkgInit "$vserver" rpm yum
+rpmFake.init "$vserver"
+
+test -z "$_YUM" || {
+ warning $"The environment variable \$_YUM is not supported anymore; please use \$YUM instead of"
+ ${YUM:=$_YUM}
+}
+
+yum=${YUM:-yum}
+conf=yum.conf
+case $(yum --version) in
+ (2.[0123]*)
+ python -c 'import yum,sys; sys.exit(not hasattr(yum.config.yumconf, "getRootedPath"))' &>/dev/null || {
+ warning "\
+You are using a version of yum which is insecure and broken in chroot
+related operations; either apply the patches shipped in the 'contrib/'
+directory of util-vserver, or ask the author of yum to apply them
+(preferred).
+
+In the meantime, 'vyum' will continue with dirty hacks which might not
+work when the vserver is running and local DOS attacks are possible.
+
+Execution will continue in 5 seconds..."
+ sleep 5
+ conf=yum-hack.conf
+ }
+ ;;
+esac
+
+rpmFake.exec $yum \
+ -c "$YUMETCDIR/${YUM_CONF:-$conf}" \
+ --installroot="$VDIR" \
+ "$@"
-## $Id: Makefile-files,v 1.1.4.8 2004/02/09 23:18:59 ensc Exp $ -*- makefile -*-
+## $Id: Makefile-files,v 1.70 2005/07/02 09:17:55 ensc Exp $ -*- makefile -*-
-## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+## Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
## 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
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
-src_HDRS = src/vutil.h src/vutil.p \
- src/ext2fs.h
-
-src_pkglib_SCRPTS = src/setattr
-src_pkglib_PRGS = src/capchroot \
- src/fakerunlevel \
- src/filetime \
- src/ifspec \
- src/listdevip \
- src/parserpmdump \
- src/readlink \
- src/showattr \
- src/showperm \
- src/vbuild \
- src/vcheck \
- src/vreboot \
- src/vunify
-
-src_sbin_PRGS = src/chbind \
- src/chcontext \
- src/rebootmgr \
- src/reducecap \
- src/vlimit \
- src/vdu \
- src/vfiles \
- src/vkill \
- src/vserver-stat
-
-src_GENFILES = src/setattr
-
-src_capchroot_SOURCES = src/capchroot.c
-src_capchroot_LDADD = lib/libvserver.a
-
-src_chbind_SOURCES = src/chbind.c
-src_chbind_LDADD = lib/libvserver.a
-
-src_chcontext_SOURCES = src/chcontext.c
-src_chcontext_LDADD = lib/libvserver.a
+src_sbin_CXX_PROGS =
+src_pkglib_CXX_PROGS =
+
+src_pkglib_C99_PROGS = src/vunify src/vcopy
+
+
+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT += \
+ src/parserpmdump \
+ src/showperm \
+ src/vbuild \
+ src/vcheck \
+ src/vreboot \
+ src/save_ctxinfo \
+ src/mask2prefix \
+ src/ifspec \
+ src/rebootmgr \
+ src/vdu \
+ src/vfiles
+
+DIETPROGS += src/chcontext-compat \
+ src/capchroot \
+ src/chain-echo \
+ src/check-unixfile \
+ src/chroot-sh \
+ src/filetime \
+ src/lockfile \
+ src/readlink \
+ src/secure-mount \
+ src/save_ctxinfo \
+ src/mask2prefix \
+ src/chbind \
+ src/exec-cd \
+ src/fakerunlevel \
+ src/keep-ctx-alive \
+ src/exec-ulimit \
+ src/vps \
+ src/lsxid \
+ src/chxid \
+ src/reducecap \
+ src/showattr \
+ src/setattr \
+ src/sigexec \
+ src/vattribute \
+ src/vlimit \
+ src/vnamespace \
+ src/vunify \
+ src/vuname \
+ src/rpm-fake-resolver \
+ src/vcontext \
+ src/vcopy \
+ src/vkill \
+ src/vsched \
+ src/vshelper-sync \
+ src/vrsetup \
+ src/vserver-stat \
+ src/vserver-info \
+ src/vdlimit \
+ src/vwait
+
+if ENSC_CAN_BEECRYPT_WITH_DIETLIBC
+DIETPROGS += src/vhashify
+endif
+
+noinst_HEADERS += src/capability-compat.h \
+ src/util.h \
+ src/fstool.h \
+ src/compat-pivot_root.h \
+ src/stack-start.h \
+ src/vcopy-init.hc \
+ src/vunify.h \
+ src/vunify-init.hc \
+ src/vhashify.h \
+ src/vhashify-init.hc \
+ src/vserver-visitdir.hc \
+ src/context-sync.hc
+
+pkglib_PROGRAMS += src/capchroot \
+ src/chain-echo \
+ src/chcontext-compat \
+ src/check-unixfile \
+ src/chroot-sh \
+ src/fakerunlevel \
+ src/filetime \
+ src/keep-ctx-alive \
+ src/lockfile \
+ src/readlink \
+ src/save_ctxinfo \
+ src/secure-mount \
+ src/mask2prefix \
+ src/exec-ulimit \
+ src/rpm-fake-resolver \
+ src/vshelper-sync \
+ src/sigexec \
+ $(src_pkglib_C99_X_PROGS) \
+ $(src_pkglib_CXX_X_PROGS)
+
+if ENSC_HAVE_C99_COMPILER
+if ENSC_HAVE_BEECRYPT
+pkglib_PROGRAMS += src/vhashify
+endif ENSC_HAVE_BEECRYPT
+endif ENSC_HAVE_C99_COMPILER
+
+legacy_PROGRAMS += src/ifspec \
+ src/listdevip \
+ src/parserpmdump \
+ src/rebootmgr \
+ src/showperm \
+ src/vreboot
+
+pkglib_LTLIBRARIES += src/rpm-fake.la
+
+sbin_PROGRAMS += src/chbind \
+ src/exec-cd \
+ src/lsxid \
+ src/chxid \
+ src/vps \
+ src/showattr \
+ src/setattr \
+ src/reducecap \
+ src/vdu \
+ src/vattribute \
+ src/vcontext \
+ src/vlimit \
+ src/vkill \
+ src/vnamespace \
+ src/vrsetup \
+ src/vsched \
+ src/vserver-stat \
+ src/vserver-info \
+ src/vuname \
+ src/vwait \
+ $(src_sbin_CXX_X_PROGS)
+
+if ENSC_HAVE_C99_COMPILER
+sbin_PROGRAMS += src/vdlimit
+endif
+
+
+src_capchroot_SOURCES = src/capchroot.c
+src_capchroot_LDADD = $(VSERVER_LDADDS)
+src_capchroot_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_chbind_SOURCES = src/chbind.c
+src_chbind_LDADD = $(VSERVER_LDADDS)
+src_chbind_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_chcontext_compat_SOURCES = src/chcontext.c
+src_chcontext_compat_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_chcontext_compat_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_vcontext_SOURCES = src/vcontext.c
+src_vcontext_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_vcontext_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_vsched_SOURCES = src/vsched.c
+src_vsched_LDADD = $(VSERVER_LDADDS)
+src_vsched_LDFLAGS = $(VSERVER_LDFLGS)
-src_fakerunlevel_SOURCES = src/fakerunlevel.c
src_filetime_SOURCES = src/filetime.c
+src_filetime_LDADD = $(VSERVER_LDADDS)
+src_filetime_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_chain_echo_SOURCES = src/chain-echo.c
+src_chroot_sh_SOURCES = src/chroot-sh.c
+src_exec_cd_SOURCES = src/exec-cd.c
+src_fakerunlevel_SOURCES = src/fakerunlevel.c
src_ifspec_SOURCES = src/ifspec.c
src_listdevip_SOURCES = src/listdevip.c
+src_lockfile_SOURCES = src/lockfile.c
src_parserpmdump_SOURCES = src/parserpmdump.c
src_readlink_SOURCES = src/readlink.c
-
src_rebootmgr_SOURCES = src/rebootmgr.c
-src_rebootmgr_CPPFLAGS = $(AM_CPPFLAGS) -DSBINDIR=\"$(sbindir)\" -DVROOTDIR=\"$(vserverdir)\"
+src_exec_ulimit_SOURCES = src/exec-ulimit.c
+src_vshelper_sync_SOURCES = src/vshelper-sync.c
src_reducecap_SOURCES = src/reducecap.c
-src_reducecap_LDADD = lib/libvserver.a
-
-src_vlimit_SOURCES = src/vlimit.c
-src_vlimit_LDADD = lib/libvserver.a
+src_reducecap_LDADD = $(VSERVER_LDADDS)
+src_reducecap_LDFLAGS = $(VSERVER_LDFLGS)
src_vkill_SOURCES = src/vkill.c
-src_vkill_LDADD = lib/libvserver.a
+src_vkill_LDADD = $(VSERVER_LDADDS)
+src_vkill_LDFLAGS = $(VSERVER_LDFLGS)
src_vkill_CPPFLAGS = $(AM_CPPFLAGS) -DLEGACYDIR=\"$(legacydir)\"
-src_showattr_SOURCES = src/showattr.c
-src_showperm_SOURCES = src/showperm.c
-src_vbuild_SOURCES = src/vbuild.cc src/vutil.cc
-src_vdu_SOURCES = src/vdu.c
-src_vfiles_SOURCES = src/vfiles.cc src/vutil.cc
-src_vreboot_SOURCES = src/vreboot.c
+src_vlimit_SOURCES = src/vlimit.c
+src_vlimit_LDADD = $(VSERVER_LDADDS)
+src_vlimit_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_save_ctxinfo_SOURCES = src/save_ctxinfo.c
+src_save_ctxinfo_LDADD = $(VSERVER_LDADDS)
+src_save_ctxinfo_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_vdu_SOURCES = src/vdu.c
+src_vreboot_SOURCES = src/vreboot.c
+
+src_secure_mount_SOURCES = src/secure-mount.c
+src_secure_mount_LDADD = $(VSERVER_LDADDS)
+src_secure_mount_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_vattribute_SOURCES = src/vattribute.c
+src_vattribute_LDADD = $(VSERVER_LDADDS)
+src_vattribute_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_vnamespace_SOURCES = src/vnamespace.c
+src_vnamespace_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_vnamespace_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_rpm_fake_resolver_SOURCES = src/rpm-fake-resolver.c
+src_rpm_fake_resolver_LDADD = $(VSERVER_LDADDS)
+src_rpm_fake_resolver_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_mask2prefix_SOURCES = src/mask2prefix.c
+
+src_vps_SOURCES = src/vps.c
+src_vps_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_vps_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_vserver_info_SOURCES = src/vserver-info.c
+src_vserver_info_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_vserver_info_LDFLAGS = $(VSERVER_LDFLGS)
src_vserver_stat_SOURCES = src/vserver-stat.c
-src_vserver_stat_LDADD = lib/libvserver.a
+src_vserver_stat_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS) $(LIBENSCVECTOR)
+src_vserver_stat_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_lsxid_SOURCES = src/fstool.c src/lsxid.c
+src_lsxid_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS) $(LIBENSCVECTOR)
+src_lsxid_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_chxid_SOURCES = src/fstool.c src/chxid.c
+src_chxid_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_chxid_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_showattr_SOURCES = src/fstool.c src/showattr.c
+src_showattr_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_showattr_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_setattr_SOURCES = src/fstool.c src/setattr.c
+src_setattr_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_setattr_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_keep_ctx_alive_SOURCES = src/keep-ctx-alive.c
+src_keep_ctx_alive_LDADD = $(VSERVER_LDADDS)
+src_keep_ctx_alive_LDFLAGS = $(VSERVER_LDFLGS)
+
+
+src_vcopy_SOURCES = src/vcopy.c
+src_vcopy_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_vcopy_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_vunify_SOURCES = src/vunify.c
+src_vunify_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
+src_vunify_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_vhashify_SOURCES = src/vhashify.c
+if ENSC_CAN_BEECRYPT_WITH_DIETLIBC
+src_vhashify_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS)
+src_vhashify_LDFLAGS = $(VSERVER_LDFLGS)
+else
+src_vhashify_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt
+src_vhashify_LDFLAGS =
+endif
+
+src_vuname_SOURCES = src/vuname.c
+src_vuname_LDADD = $(VSERVER_LDADDS)
+src_vuname_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_rpm_fake_la_SOURCES = src/rpm-fake.c
+src_rpm_fake_la_CFLAGS = $(AM_CFLAGS)
+src_rpm_fake_la_LDFLAGS = -module -avoid-version -rpath $(pkglibdir)
+src_rpm_fake_la_LIBADD = $(LIBVSERVER_GLIBC) -ldl
+
+src_vdlimit_SOURCES = src/vdlimit.c
+src_vdlimit_LDADD = $(VSERVER_LDADDS)
+src_vdlimit_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_vwait_SOURCES = src/vwait.c
+src_vwait_LDADD = $(VSERVER_LDADDS)
+src_vwait_LDFLAGS = $(VSERVER_LDFLGS)
+
+EXTRA_PROGRAMS += $(src_sbin_CXX_PROGS) $(src_pkglib_CXX_PROGS)
+
+TESTS_ENVIRONMENT += srctestsuitedir=$(top_builddir)/src/testsuite
-src_vunify_SOURCES = src/vunify.cc src/vutil.cc
-src_vunify_CPPFLAGS = $(AM_CPPFLAGS) -DVROOTDIR=\"$(vserverdir)\"
-src_vcheck_SOURCES = src/vcheck.cc src/vutil.cc
+if ENSC_HAVE_C99_COMPILER
+src_sbin_C99_X_PROGS = $(src_sbin_C99_PROGS)
+src_pkglib_C99_X_PROGS = $(src_pkglib_C99_PROGS)
+else
+src_sbin_C99_X_PROGS =
+src_pkglib_C99_X_PROGS =
+endif
-#install-data-hook: $(DESTDIR)$(pkglibdir)/setattr
+if ENSC_HAVE_CXX_COMPILER
+src_sbin_CXX_X_PROGS = $(src_sbin_CXX_PROGS)
+src_pkglib_CXX_X_PROGS = $(src_pkglib_CXX_PROGS)
+else
+src_sbin_CXX_X_PROGS =
+src_pkglib_CXX_X_PROGS =
+endif
-#$(DESTDIR)$(pkglibdir)/setattr:
-# ln -s showattr '$@'
+install-exec-hook: src_install_exec_hook
-src/setattr$(EXEEXT): src/showattr$(EXEEXT)
- @rm -f '$@'
- ln -s showattr$(EXEEXT) '$@'
+src_install_exec_hook:
+ -rm -f $(DESTDIR)$(pkglibdir)/rpm-fake.a $(DESTDIR)$(pkglibdir)/rpm-fake.la
-## Local Variables:
-## compile-command: "make -C .. -k"
-## End:
+include $(top_srcdir)/src/testsuite/Makefile-files
--- /dev/null
+// $Id: capability-compat.h,v 1.1 2005/01/27 20:38:12 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef HAVE_SYS_CAPABILITY_H
+# include <sys/capability.h>
+#else
+# include <linux/capability.h>
+
+extern int capget (struct __user_cap_header_struct *, struct __user_cap_data_struct *);
+extern int capset (struct __user_cap_header_struct *, struct __user_cap_data_struct *);
+
+#endif
-// $Id: capchroot.c,v 1.1.4.2 2003/11/28 23:08:43 ensc Exp $
+// $Id: capchroot.c,v 1.7 2004/03/24 01:41:28 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on capchroot.cc by Jacques Gelinas
system call is executed, it (option) remove the CAP_SYS_CHROOT
capability. Then it executes its argument
*/
+
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
+
+#include "vserver.h"
+#include "util.h"
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdbool.h>
#include <stdlib.h>
+#include <getopt.h>
+#include <libgen.h>
-#include "linuxcaps.h"
-#include "vserver.h"
+#define ENSC_WRAPPERS_PREFIX "capchroot: "
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_VSERVER 1
+#include <wrappers.h>
-int main (int argc, char *argv[])
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+#define CMD_NOCHROOT 0x2000
+#define CMD_SUID 0x2001
+
+int wrapper_exit_code = 255;
+
+static struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "nochroot", no_argument, 0, CMD_NOCHROOT },
+ { "suid", required_argument, 0, CMD_SUID },
+ {0,0,0,0}
+};
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ VSERVER_DECLARE_CMD(cmd);
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " --nochroot [--suid <user>] [--] <directory> <command> <args>*\n"
+ "\n"
+ "Options:\n"
+ " --nochroot ... remove the CAP_SYS_CHROOT capability\n"
+ " after the chroot system call.\n"
+ " --suid <user> ... switch to a different user (in the vserver\n"
+ " context) before executing the command.\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+static void
+showVersion()
{
- if (argc < 3){
- fprintf (stderr,"capchroot version %s\n",VERSION);
- fprintf (stderr
- ,"capchroot --nochroot directory [ --suid user ] command argument\n"
- "\n"
- "--nochroot remove the CAP_SYS_CHROOT capability\n"
- " after the chroot system call.\n"
- "--suid switch to a different user (in the vserver context)\n"
- " before executing the command.\n");
- }else{
- const char *uid = NULL;
- bool nochroot = false;
- int dir;
- for (dir=1; dir<argc; dir++){
- const char *arg = argv[dir];
- if (arg[0] != '-' && arg[1] != '-'){
- break;
- }else if (strcmp(arg,"--nochroot")==0){
- nochroot = true;
- }else if (strcmp(arg,"--suid")==0){
- dir++;
- uid = argv[dir];
- }
-
- }
- // We resolve the UID before doing the chroot.
- // If we do the getpwnam after the chroot, we will end
- // up loading shared object from the vserver.
- // This is causing two kind of problem: Incompatibilities
- // and also a security flaw. The shared objects in the vserver
- // may be tweaked to get control of the root server ...
- getpwnam ("root");
- if (chroot(argv[dir]) == -1){
- fprintf (stderr,"Can't chroot to directory %s (%s)\n",argv[dir]
- ,strerror(errno));
- }else{
- struct passwd *p = NULL;
- int cmd = dir + 1;
-
- if (nochroot){
- vc_new_s_context (-2,1<<CAP_SYS_CHROOT,0);
- }
-
- if (uid != NULL && strcmp(uid,"root")!=0){
- p = getpwnam(uid);
- if (p == NULL){
- fprintf (stderr,"User not found: %s\n",uid);
- exit (-1);
- }
- }
- if (p != NULL) {
- setgroups (0,NULL);
- setgid(p->pw_gid);
- setuid(p->pw_uid);
- }
- if (cmd >= argc){
- fprintf (stderr,"capchroot: No command to execute, do nothing\n");
- }else{
- execvp (argv[cmd],argv+cmd);
- fprintf (stderr,"Can't execute %s (%s)\n",argv[cmd]
- ,strerror(errno));
- }
- }
- }
- return -1;
+ WRITE_MSG(1,
+ "capchroot " VERSION " -- a capability aware chroot\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static void
+setUser(char const *user)
+{
+ struct passwd *p = 0;
+ if (user!=0 && strcmp(user, "root")!=0) {
+ errno = 0;
+ p = getpwnam(user);
+ if (p==0) {
+ if (errno==0) errno = ENOENT;
+ PERROR_Q(ENSC_WRAPPERS_PREFIX "getpwnam", user);
+ exit(wrapper_exit_code);
+ }
+ }
+
+ if (p!=0) {
+ Esetgroups(1, &p->pw_gid);
+ Esetgid(p->pw_gid);
+ Esetuid(p->pw_uid);
+
+ if (getuid()!=p->pw_uid || getgid()!=p->pw_gid) {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "Something went wrong while changing uid; expected uid/gid do not match the actual one\n");
+ exit(wrapper_exit_code);
+ }
+ }
}
+
+int main (int argc, char *argv[])
+{
+ bool nochroot = false;
+ char const * suid_user = 0;
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_NOCHROOT : nochroot = true; break;
+ case CMD_SUID : suid_user = optarg; break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+ if (optind==argc)
+ WRITE_MSG(2, "No directory specified; try '--help' for more information\n");
+ else if (optind+1==argc)
+ WRITE_MSG(2, "No command specified; try '--help' for more information\n");
+ else {
+ // We resolve the UID before doing the chroot.
+ // If we do the getpwnam after the chroot, we will end
+ // up loading shared object from the vserver.
+ // This is causing two kind of problem: Incompatibilities
+ // and also a security flaw. The shared objects in the vserver
+ // may be tweaked to get control of the root server ...
+ getpwnam("root");
+ Echroot(argv[optind]);
+ if (nochroot)
+ Evc_new_s_context(VC_SAMECTX, 1<<VC_CAP_SYS_CHROOT,0);
+ setUser(suid_user);
+ EexecvpD(argv[optind+1], argv+optind+1);
+ }
+
+ return EXIT_FAILURE;
+}
--- /dev/null
+// $Id: chain-echo.c,v 1.1 2004/04/20 17:54:40 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+#include "util.h"
+
+#include <errno.h>
+#include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#define ENSC_WRAPPERS_PREFIX "chain-echo: "
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_IO 1
+#include <wrappers.h>
+
+int wrapper_exit_code = 255;
+
+static void
+showHelp(char const *cmd)
+{
+ WRITE_MSG(1, "Usage: ");
+ WRITE_STR(1, cmd);
+ WRITE_MSG(1,
+ " [--] <file> <data> <command> <args>*\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(0);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "chain-echo " VERSION " -- puts data into a file within a command-chain\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+int main(int argc, char *argv[])
+{
+ int idx = 1;
+ int fd;
+
+ if (argc>=2) {
+ if (strcmp(argv[1], "--help") ==0) showHelp(argv[0]);
+ if (strcmp(argv[1], "--version")==0) showVersion();
+ if (strcmp(argv[1], "--") ==0) ++idx;
+ }
+
+ if (argc<idx+3) {
+ WRITE_MSG(2, "Not enough parameters; use '--help' for more information\n");
+ return wrapper_exit_code;
+ }
+
+ if (argv[idx][0]=='\0')
+ fd = 1;
+ else {
+ fd = Eopen(argv[idx], O_WRONLY|O_NOFOLLOW, 0600);
+ Efcntl(fd, F_SETFD, FD_CLOEXEC);
+ }
+
+ if (argv[idx+1][0]!='\0')
+ EwriteAll(fd, argv[idx+1], strlen(argv[idx+1]));
+
+ Eexecv(argv[idx+2], argv+idx+2);
+}
-// $Id: chbind.c,v 1.1.4.1 2003/10/14 00:42:32 ensc Exp $
+// $Id: chbind.c,v 1.9 2004/03/16 14:30:10 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on chbind.cc by Jacques Gelinas
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
+
+#include "vserver.h"
+#include "util.h"
#include <stdio.h>
#include <stdlib.h>
#include <netdb.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
-#include <netinet/in.h>
#include <net/if.h>
#include <unistd.h>
#include <errno.h>
+#include <getopt.h>
+#include <fcntl.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
-#include "vserver.h"
+#define ENSC_WRAPPERS_PREFIX "chbind: "
+#define ENSC_WRAPPERS_IO 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include "wrappers.h"
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+
+#define CMD_SILENT 0x2000
+#define CMD_IP 0x2001
+#define CMD_BCAST 0x2002
+
+int wrapper_exit_code = 255;
+
+
+static struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "silent", no_argument, 0, CMD_SILENT },
+ { "ip", required_argument, 0, CMD_IP },
+ { "bcast", required_argument, 0, CMD_BCAST },
+ { 0,0,0,0 }
+};
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage:\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [--silent] [--ip <ip_num>[/<mask>]] [--bcast <broadcast>] [--] <commands> <args>*\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
+}
-static void usage()
+static void
+showVersion()
{
- fprintf (stderr,"chbind version %s\n",VERSION);
- fprintf (stderr,"chbind [ --silent ] [ --ip ip_num[/mask] ] [ --bcast broadcast ] command argument\n");
- exit (-1);
+ WRITE_MSG(1,
+ "chbind " VERSION " -- bind to an ip and execute a program\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003,2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
}
/*
Return != 0 if the device exist.
*/
-static int chbind_devexist (const char *dev)
+static bool
+existsDevice(char const *dev_raw)
{
- int ret = 0;
- FILE *fin = fopen ("/proc/net/dev","r");
- if (fin != NULL){
- int len = strlen(dev);
- char buf[1000];
- fgets(buf,sizeof(buf)-1,fin); // Skip one line
- while (fgets(buf,sizeof(buf)-1,fin)!=NULL){
- const char *pt = strstr(buf,dev);
- if (pt != NULL && pt[len] == ':'){
- ret = 1;
- break;
- }
- }
- fclose (fin);
- }
- return ret;
-}
+ size_t buf_size=8192;
+ char dev[strlen(dev_raw)+2];
+
+ strcpy(dev, dev_raw);
+ strcat(dev, ":");
+ for (;;) {
+ char buf[buf_size];
+ char * pos;
+ bool too_small;
+ int fd=open("/proc/net/dev", O_RDONLY);
+
+ if (fd==-1) return false;
+ too_small = EreadAll(fd, buf, buf_size);
+ close(fd);
+ if (too_small) {
+ buf_size *= 2;
+ continue;
+ }
+
+ pos = strstr(buf, dev);
+ return (pos && (pos==buf || pos[-1]==' ' || pos[-1]=='\n'));
+ }
+}
static int ifconfig_ioctl(
int fd,
*/
int ifconfig_getaddr (
const char *ifname,
- unsigned long *addr,
- unsigned long *mask,
- unsigned long *bcast)
+ uint32_t *addr,
+ uint32_t *mask,
+ uint32_t *bcast)
{
int ret = -1;
- if (chbind_devexist(ifname)){
+ if (existsDevice(ifname)){
int skfd = socket(AF_INET, SOCK_DGRAM, 0);
*addr = 0;
*bcast = 0xffffffff;
return ret;
}
+static void
+readIP(char const *str, struct vc_ip_mask_pair *ip, uint32_t *bcast)
+{
+ if (ifconfig_getaddr(str, &ip->ip, &ip->mask, bcast)==-1) {
+ char *pt;
+ char tmpopt[strlen(str)+1];
+ struct hostent *h;
+
+ strcpy(tmpopt,str);
+ pt = strchr(tmpopt,'/');
+
+ if (pt==0)
+ ip->mask = ntohl(0xffffff00);
+ else {
+ *pt++ = '\0';
+
+ // Ok, we have a network size, not a netmask
+ if (strchr(pt,'.')==0) {
+ int sz = atoi(pt);
+ ;
+ for (ip->mask = 0; sz>0; --sz) {
+ ip->mask >>= 1;
+ ip->mask |= 0x80000000;
+ }
+ ip->mask = ntohl(ip->mask);
+ }
+ else {
+ struct hostent *h = gethostbyname (pt);
+ if (h==0) {
+ WRITE_MSG(2, "Invalid netmask '");
+ WRITE_STR(2, pt);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+
+ memcpy (&ip->mask, h->h_addr, sizeof(ip->mask));
+ }
+ }
+ h = gethostbyname (tmpopt);
+ if (h==0) {
+ WRITE_MSG(2, "Invalid IP number or host name '");
+ WRITE_STR(2, tmpopt);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+ memcpy (&ip->ip, h->h_addr,sizeof(ip->ip));
+ }
+}
+
+static void
+readBcast(char const *str, uint32_t *bcast)
+{
+ uint32_t tmp;
+ if (ifconfig_getaddr(str, &tmp, &tmp, bcast)==-1){
+ struct hostent *h = gethostbyname (str);
+ if (h==0){
+ WRITE_MSG(2, "Invalid broadcast number '");
+ WRITE_STR(2, optarg);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+ memcpy (bcast, h->h_addr,sizeof(*bcast));
+ }
+}
int main (int argc, char *argv[])
{
- int ret = -1;
- int silent = 0;
- int i;
- struct vc_ip_mask_pair ips[16];
- int nbaddrs = 0;
- unsigned long bcast = 0xffffffff;
- for (i=1; i<argc; i++){
- const char *arg = argv[i];
- const char *opt = argv[i+1];
- if (strcmp(arg,"--ip")==0){
- unsigned long addr,mask;
- if (nbaddrs == 16){
- fprintf (stderr,"Too many IP numbers, max 16, ignored\n");
-
- }else if (ifconfig_getaddr(opt,&addr,&mask,&bcast)==-1){
- unsigned long mask = 0x00ffffff;
- const char *pt = strchr(opt,'/');
- char tmpopt[strlen(opt)+1];
- struct hostent *h;
-
- if (pt != NULL){
- strcpy (tmpopt,opt);
- tmpopt[pt-opt] = '\0';
- opt = tmpopt;
- pt++;
- if (strchr(pt,'.')==NULL){
- // Ok, we have a network size, not a netmask
- int size = atoi(pt);
- int i;
- mask = 0;
- for (i=0; i<size; i++){
- mask = mask >> 1;
- mask |= 0x80000000;
- }
- mask = ntohl(mask);
- }else{
- struct hostent *h = gethostbyname (pt);
- if (h != NULL){
- memcpy (&mask,h->h_addr,sizeof(mask));
- }else{
- fprintf (stderr,"Invalid netmask: %s\n",pt);
- usage();
- }
- }
-
- }
-
- h = gethostbyname (opt);
- if (h == NULL){
- fprintf (stderr,"Invalid IP number or host name: %s\n",opt);
- usage();
- }else{
- memcpy (&addr,h->h_addr,sizeof(addr));
- ips[nbaddrs].ip = addr;
- ips[nbaddrs].mask = mask;
- ++nbaddrs;
- }
- }else{
- ips[nbaddrs].ip = addr;
- ips[nbaddrs].mask = mask;
- ++nbaddrs;
- }
- i++;
- }else if (strcmp(arg,"--bcast")==0){
- unsigned long tmp;
- if (ifconfig_getaddr(opt,&tmp,&tmp,&bcast)==-1){
- struct hostent *h = gethostbyname (opt);
- if (h == NULL){
- fprintf (stderr,"Invalid broadcast number: %s\n",opt);
- usage();
- }else{
- memcpy (&bcast,h->h_addr,sizeof(bcast));
- }
- }
- i++;
- }else if (strcmp(arg,"--silent")==0){
- silent = 1;
- }else{
- break;
- }
- }
- if (i == argc){
- usage();
- }else if (argv[i][0] == '-'){
- usage();
- }else{
- if (vc_set_ipv4root(bcast,nbaddrs,ips)==0){
- if (!silent){
- int i;
- printf ("ipv4root is now");
- for (i=0; i<nbaddrs; i++){
- unsigned long hostaddr = ntohl(ips[i].ip);
- printf (" %ld.%ld.%ld.%ld"
- ,hostaddr>>24
- ,(hostaddr>>16)&0xff
- ,(hostaddr>>8)&0xff
- ,hostaddr &0xff);
- }
- printf ("\n");
- }
- execvp (argv[i],argv+i);
- fprintf (stderr,"Can't exec %s (%s)\n",argv[i],strerror(errno));
- }else{
- fprintf (stderr,"Can't set the ipv4 root (%s)\n",strerror(errno));
- }
+ size_t const nb_ipv4root = vc_get_nb_ipv4root();
+ bool is_silent = false;
+ struct vc_ip_mask_pair ips[nb_ipv4root];
+ size_t nbaddrs = 0;
+ uint32_t bcast = 0xffffffff;
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_SILENT : is_silent = true; break;
+ case CMD_BCAST : readBcast(optarg, &bcast); break;
+ case CMD_IP :
+ if (nbaddrs>=nb_ipv4root) {
+ WRITE_MSG(2, "Too many IP numbers, max 16\n");
+ exit(wrapper_exit_code);
}
- return ret;
+ readIP(optarg, ips+nbaddrs, &bcast);
+ ++nbaddrs;
+ break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ exit(wrapper_exit_code);
+ break;
+ }
+ }
+
+ if (optind==argc) {
+ WRITE_MSG(2, "No command given; try '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+
+
+ if (vc_set_ipv4root(bcast,nbaddrs,ips)!=0) {
+ perror("chbind: vc_set_ipv4root()");
+ exit(wrapper_exit_code);
+ }
+
+ if (!is_silent) {
+ size_t i;
+
+ WRITE_MSG(1, "ipv4root is now");
+ for (i=0; i<nbaddrs; ++i) {
+ WRITE_MSG(1, " ");
+ WRITE_STR(1, inet_ntoa(*reinterpret_cast(struct in_addr *)(&ips[i].ip)));
+ }
+ WRITE_MSG(1, "\n");
+ }
+
+ Eexecvp (argv[optind],argv+optind);
+ return EXIT_SUCCESS;
}
+#ifdef ENSC_TESTSUITE
+#include <assert.h>
+
+void test()
+{
+ struct vc_ip_mask_pair ip;
+ uint32_t bcast;
+
+ bcast = 0;
+ readIP("1.2.3.4", &ip, &bcast);
+ assert(ip.ip==ntohl(0x01020304) && ip.mask==ntohl(0xffffff00) && bcast==0);
+ readIP("1.2.3.4/8", &ip, &bcast);
+ assert(ip.ip==ntohl(0x01020304) && ip.mask==ntohl(0xff000000) && bcast==0);
+
+ readIP("1.2.3.4/255.255.0.0", &ip, &bcast);
+ assert(ip.ip==ntohl(0x01020304) && ip.mask==ntohl(0xffff0000) && bcast==0);
+
+ readIP("localhost", &ip, &bcast);
+ assert(ip.ip==ntohl(0x7f000001) && ip.mask==ntohl(0xffffff00) && bcast==0);
+
+#if 0
+ if (ifconfig_getaddr("lo", &tmp, &tmp, &tmp)!=-1) {
+ readIP("lo", &ip, &bcast);
+ assert(ip.ip==ntohl(0x7f000001) && ip.mask==ntohl(0xff000000) && bcast==ntohl(0x7fffffff));
+ }
+#endif
+}
+#endif
-// $Id: chcontext.c,v 1.1.4.3 2004/01/07 16:24:01 ensc Exp $
+// $Id: chcontext.c,v 1.24 2005/03/22 15:05:24 ensc Exp $
-// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+// Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on chcontext.cc by Jacques Gelinas
//
// This program is free software; you can redistribute it and/or modify
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
+
+#include "util.h"
+#include "vserver.h"
+#include "internal.h"
+#include "lib_internal/jail.h"
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
+#include <getopt.h>
+#include <assert.h>
+#include <fcntl.h>
+#include <libgen.h>
+#include <signal.h>
-#include "linuxcaps.h"
-#include "vserver.h"
+#define ENSC_WRAPPERS_PREFIX "chcontext: "
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_FCNTL 1
+#include <wrappers.h>
-#ifndef CAP_QUOTACTL
-# define CAP_QUOTACTL 29
-#endif
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+#define CMD_CAP 0x4000
+#define CMD_CTX 0x4001
+#define CMD_DISCONNECT 0x4002
+#define CMD_DOMAINNAME 0x4003
+#define CMD_FLAG 0x4004
+#define CMD_HOSTNAME 0x4005
+#define CMD_SECURE 0x4006
+#define CMD_SILENT 0x4007
+
+int wrapper_exit_code = 255;
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "cap", required_argument, 0, CMD_CAP },
+ { "ctx", required_argument, 0, CMD_CTX },
+ { "xid", required_argument, 0, CMD_CTX },
+ { "disconnect", no_argument, 0, CMD_DISCONNECT },
+ { "domainname", required_argument, 0, CMD_DOMAINNAME },
+ { "flag", required_argument, 0, CMD_FLAG },
+ { "hostname", required_argument, 0, CMD_HOSTNAME },
+ { "secure", no_argument, 0, CMD_SECURE },
+ { "silent", no_argument, 0, CMD_SILENT },
+ { 0,0,0,0 }
+};
+
+struct Arguments {
+ size_t nbctx;
+ xid_t ctxs[16];
+ bool do_disconnect;
+ bool do_silent;
+ unsigned int flags;
+ uint32_t remove_caps;
+ uint32_t add_caps;
+ char const * hostname;
+ char const * domainname;
+};
+
+static struct Arguments const * global_args = 0;
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ VSERVER_DECLARE_CMD(cmd);
+
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [--cap [!]<cap_name>] [--secure] [--xid <num>] [--disconnect]\n"
+ " [--domainname <name>] [--hostname <name>] [--flag <flags>+]\n"
+ " [--silent] [--] command arguments ...\n"
+ "\n"
+ "chcontext allocate a new security context and executes\n"
+ "a command in that context.\n"
+ "By default, a new/unused context is allocated\n"
+ "\n"
+ "--cap CAP_NAME\n"
+ " Add a capability from the command. This option may be\n"
+ " repeated several time.\n"
+ " See /usr/include/linux/capability.h\n"
+ " In general, this option is used with the --secure option\n"
+ " --secure removes most critical capabilities and --cap\n"
+ " adds specific ones.\n"
+ "\n"
+
+ "--cap !CAP_NAME\n"
+ " Remove a capability from the command. This option may be\n"
+ " repeated several time.\n"
+ " See /usr/include/linux/capability.h\n"
+ "\n"
+ "--xid num\n"
+ " Select the context. On root in context 0 is allowed to\n"
+ " select a specific context.\n"
+ " Context number 1 is special. It can see all processes\n"
+ " in any contexts, but can't kill them though.\n"
+ " Option --xid may be repeated several times to specify up to 16 contexts.\n"
+
+ "--disconnect\n"
+ " Start the command in background and make the process\n"
+ " a child of process 1.\n"
+
+ "--domainname new_domainname\n"
+ " Set the domainname (NIS) in the new security context.\n"
+ " Use \"none\" to unset the domain name.\n"
+
+ "--flag\n"
+ " Set one flag in the new or current security context. The following\n"
+ " flags are supported. The option may be used several time.\n"
+ "\n"
+ " fakeinit: The new process will believe it is process number 1.\n"
+ " Useful to run a real /sbin/init in a vserver.\n"
+ " lock: The new process is trapped and can't use chcontext anymore.\n"
+ " sched: The new process and its children will share a common \n"
+ " execution priority.\n"
+ " nproc: Limit the number of process in the vserver according to\n"
+ " ulimit setting. Normally, ulimit is a per user thing.\n"
+ " With this flag, it becomes a per vserver thing.\n"
+ " private: No one can join this security context once created.\n"
+ " ulimit: Apply the current ulimit to the whole context\n"
+
+ "--hostname new_hostname\n"
+ " Set the hostname in the new security context\n"
+ " This is need because if you create a less privileged\n"
+ " security context, it may be unable to change its hostname\n"
+
+ "--secure\n"
+ " Remove all the capabilities to make a virtual server trustable\n"
+
+ "--silent\n"
+ " Do not print the allocated context number.\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "chcontext-compat " VERSION " -- allocates/enters a security context\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003,2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static inline void
+setCap(char const *str, uint32_t *add_caps, uint32_t *remove_caps)
+{
+ uint32_t *cap;
+ int bit;
+
+ if (str[0] != '!')
+ cap = add_caps;
+ else {
+ cap = remove_caps;
+ str++;
+ }
+
+ bit = vc_text2cap(str);
+
+ if (bit!=-1) *cap |= (1<<bit);
+ else {
+ WRITE_MSG(2, "Unknown capability '");
+ WRITE_STR(2, str);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+}
+
+static inline void
+setFlags(char const *str, uint32_t *flags)
+{
+ struct vc_err_listparser err;
+
+ *flags = vc_list2cflag_compat(str, 0, &err);
-static void usage()
+ if (err.ptr!=0) {
+ WRITE_MSG(2, "Unknown flag '");
+ Vwrite(2, err.ptr, err.len);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+}
+
+static inline ALWAYSINLINE void
+setHostname(char const *name)
+{
+ if (name == NULL) return;
+
+ if (sethostname(name, strlen(name))==-1) {
+ perror("chcontext: sethostname()");
+ exit(255);
+ }
+ if (!global_args->do_silent) {
+ WRITE_MSG(1, "Host name is now ");
+ WRITE_STR(1, name);
+ WRITE_MSG(1, "\n");
+ }
+}
+
+static inline ALWAYSINLINE void
+setDomainname(char const *name)
+{
+ if (name == NULL) return;
+
+ if (setdomainname(name, strlen(name))==-1) {
+ perror("chcontext: setdomainname()");
+ exit(255);
+ }
+ if (!global_args->do_silent) {
+ WRITE_MSG(1, "Domain name is now ");
+ WRITE_STR(1, name);
+ WRITE_MSG(1, "\n");
+ }
+}
+
+static inline ALWAYSINLINE void
+tellContext(xid_t ctx)
{
- fprintf (stderr,"chcontext version %s\n",VERSION);
- fprintf (stderr
- ,"chcontext [ options ] command arguments ...\n"
- "\n"
- "chcontext allocate a new security context and executes\n"
- "a command in that context.\n"
- "By default, a new/unused context is allocated\n"
- "\n"
-
- "--cap CAP_NAME\n"
- "\tAdd a capability from the command. This option may be\n"
- "\trepeated several time.\n"
- "\tSee /usr/include/linux/capability.h\n"
- "\tIn general, this option is used with the --secure option\n"
- "\t--secure removes most critical capabilities and --cap\n"
- "\tadds specific ones.\n"
- "\n"
-
- "--cap !CAP_NAME\n"
- "\tRemove a capability from the command. This option may be\n"
- "\trepeated several time.\n"
- "\tSee /usr/include/linux/capability.h\n"
- "\n"
- "--ctx num\n"
- "\tSelect the context. On root in context 0 is allowed to\n"
- "\tselect a specific context.\n"
- "\tContext number 1 is special. It can see all processes\n"
- "\tin any contexts, but can't kill them though.\n"
- "\tOption --ctx may be repeated several times to specify up to 16 contexts.\n"
-
- "--disconnect\n"
- "\tStart the command in background and make the process\n"
- "\ta child of process 1.\n"
-
- "--domainname new_domainname\n"
- "\tSet the domainname (NIS) in the new security context.\n"
- "\tUse \"none\" to unset the domain name.\n"
-
- "--flag\n"
- "\tSet one flag in the new or current security context. The following\n"
- "\tflags are supported. The option may be used several time.\n"
- "\n"
- "\tfakeinit: The new process will believe it is process number 1.\n"
- " Useful to run a real /sbin/init in a vserver.\n"
- "\tlock: The new process is trapped and can't use chcontext anymore.\n"
- "\tsched: The new process and its children will share a common \n"
- " execution priority.\n"
- "\tnproc: Limit the number of process in the vserver according to\n"
- " ulimit setting. Normally, ulimit is a per user thing.\n"
- " With this flag, it becomes a per vserver thing.\n"
- "\tprivate: No one can join this security context once created.\n"
- "\tulimit: Apply the current ulimit to the whole context\n"
-
- "--hostname new_hostname\n"
- "\tSet the hostname in the new security context\n"
- "\tThis is need because if you create a less privileged\n"
- "\tsecurity context, it may be unable to change its hostname\n"
-
- "--secure\n"
- "\tRemove all the capabilities to make a virtual server trustable\n"
-
- "--silent\n"
- "\tDo not print the allocated context number.\n"
- "\n"
- "Information about context is found in /proc/self/status\n");
+ char buf[sizeof(xid_t)*3+2];
+ size_t l;
+
+ if (global_args->do_silent) return;
+
+ l = utilvserver_fmt_long(buf,ctx);
+
+ WRITE_MSG(1, "New security context is ");
+ Vwrite(1, buf, l);
+ WRITE_MSG(1, "\n");
}
+#include "context-sync.hc"
int main (int argc, char *argv[])
{
- int ret = -1;
- int i;
- int nbctx = 0;
- int ctxs[16];
- int disconnect = 0;
- int silent = 0;
- int flags = 0;
- unsigned remove_cap = 0;
- unsigned add_cap = 0;
- unsigned long secure = (1<<CAP_LINUX_IMMUTABLE)
- |(1<<CAP_NET_BROADCAST)
- |(1<<CAP_NET_ADMIN)
- |(1<<CAP_NET_RAW)
- |(1<<CAP_IPC_LOCK)
- |(1<<CAP_IPC_OWNER)
- |(1<<CAP_SYS_MODULE)
- |(1<<CAP_SYS_RAWIO)
- |(1<<CAP_SYS_PACCT)
- |(1<<CAP_SYS_ADMIN)
- |(1<<CAP_SYS_BOOT)
- |(1<<CAP_SYS_NICE)
- |(1<<CAP_SYS_RESOURCE)
- |(1<<CAP_SYS_TIME)
- |(1<<CAP_MKNOD)
- |(1<<CAP_QUOTACTL);
- const char *hostname=NULL, *domainname=NULL;
-
- for (i=1; i<argc; i++){
- const char *arg = argv[i];
- const char *opt = argv[i+1];
- if (strcmp(arg,"--ctx")==0){
- if (nbctx >= 16){
- fprintf (stderr,"Too many context, max 16, ignored.\n");
- }else{
- ctxs[nbctx++] = atoi(opt);
- }
- i++;
- }else if (strcmp(arg,"--disconnect")==0){
- disconnect = 1;
- }else if (strcmp(arg,"--silent")==0){
- silent = 1;
- }else if (strcmp(arg,"--flag")==0){
- if (strcmp(opt,"lock")==0){
- flags |= 1;
- }else if (strcmp(opt,"sched")==0){
- flags |= 2;
- }else if (strcmp(opt,"nproc")==0){
- flags |= 4;
- }else if (strcmp(opt,"private")==0){
- flags |= 8;
- }else if (strcmp(opt,"fakeinit")==0){
- flags |= 16;
- }else if (strcmp(opt,"hideinfo")==0){
- flags |= 32;
- }else if (strcmp(opt,"ulimit")==0){
- flags |= 64;
- }else{
- fprintf (stderr,"Unknown flag %s\n",opt);
- }
- i++;
- }else if (strcmp(arg,"--cap")==0){
- static struct {
- const char *option;
- int bit;
- }tbcap[]={
- // The following capabilities are normally available
- // to vservers administrator, but are place for
- // completeness
- {"CAP_CHOWN",CAP_CHOWN},
- {"CAP_DAC_OVERRIDE",CAP_DAC_OVERRIDE},
- {"CAP_DAC_READ_SEARCH",CAP_DAC_READ_SEARCH},
- {"CAP_FOWNER",CAP_FOWNER},
- {"CAP_FSETID",CAP_FSETID},
- {"CAP_KILL",CAP_KILL},
- {"CAP_SETGID",CAP_SETGID},
- {"CAP_SETUID",CAP_SETUID},
- {"CAP_SETPCAP",CAP_SETPCAP},
- {"CAP_SYS_TTY_CONFIG",CAP_SYS_TTY_CONFIG},
- {"CAP_LEASE",CAP_LEASE},
- {"CAP_SYS_CHROOT",CAP_SYS_CHROOT},
-
- // Those capabilities are not normally available
- // to vservers because they are not needed and
- // may represent a security risk
- {"CAP_LINUX_IMMUTABLE",CAP_LINUX_IMMUTABLE},
- {"CAP_NET_BIND_SERVICE",CAP_NET_BIND_SERVICE},
- {"CAP_NET_BROADCAST",CAP_NET_BROADCAST},
- {"CAP_NET_ADMIN", CAP_NET_ADMIN},
- {"CAP_NET_RAW", CAP_NET_RAW},
- {"CAP_IPC_LOCK", CAP_IPC_LOCK},
- {"CAP_IPC_OWNER", CAP_IPC_OWNER},
- {"CAP_SYS_MODULE",CAP_SYS_MODULE},
- {"CAP_SYS_RAWIO", CAP_SYS_RAWIO},
- {"CAP_SYS_PACCT", CAP_SYS_PACCT},
- {"CAP_SYS_ADMIN", CAP_SYS_ADMIN},
- {"CAP_SYS_BOOT", CAP_SYS_BOOT},
- {"CAP_SYS_NICE", CAP_SYS_NICE},
- {"CAP_SYS_RESOURCE",CAP_SYS_RESOURCE},
- {"CAP_SYS_TIME", CAP_SYS_TIME},
- {"CAP_MKNOD", CAP_MKNOD},
- {"CAP_QUOTACTL", CAP_QUOTACTL},
- {NULL,0}
- };
- int j;
- unsigned *cap = &add_cap;
- if (opt[0] == '!'){
- cap = &remove_cap;
- opt++;
- }
- for (j=0; tbcap[j].option != NULL; j++){
- if (strcasecmp(tbcap[j].option,opt)==0){
- *cap |= (1<<tbcap[j].bit);
- break;
- }
- }
- if (tbcap[j].option == NULL){
- fprintf (stderr,"Unknown capability %s\n",opt);
- }
- i++;
- }else if (strcmp(arg,"--secure")==0){
- remove_cap |= secure;
- }else if (strcmp(arg,"--hostname")==0){
- hostname = opt;
- i++;
- }else if (strcmp(arg,"--domainname")==0){
- if (opt != NULL && strcmp(opt,"none")==0) opt = "";
- domainname = opt;
- i++;
- }else{
- break;
- }
- }
- if (i == argc){
- usage();
- }else if (argv[i][0] == '-'){
- usage();
- }else{
- /*
- We must fork early because fakeinit set the current
- process as the special init process
- */
- if (disconnect == 0 || fork()==0){
- int newctx;
- int xflags = flags & 16;
-
- if (nbctx == 0) ctxs[nbctx++] = -1;
- newctx = vc_new_s_context(ctxs[0],0,flags&~16);
- if (newctx != -1){
- if (hostname != NULL){
- if (sethostname (hostname,strlen(hostname))==-1){
- fprintf (stderr,"Can't set the host name (%s)\n"
- ,strerror(errno));
- }else if (!silent){
- printf ("Host name is now %s\n",hostname);
- }
- }
- if (domainname != NULL){
- setdomainname (domainname,strlen(domainname));
- if (!silent){
- printf ("Domain name is now %s\n",domainname);
- }
- }
- remove_cap &= (~add_cap);
- if (remove_cap!=0 || xflags!=0)
- vc_new_s_context (-2,remove_cap,xflags);
- if (!silent){
- printf ("New security context is %d\n"
- ,ctxs[0] == -1 ? newctx : ctxs[0]);
- }
- execvp (argv[i],argv+i);
- fprintf (stderr,"Can't exec %s (%s)\n",argv[i]
- ,strerror(errno));
- }else{
- perror ("Can't set the new security context\n");
- }
- if (disconnect != 0) _exit(0);
- }
+ struct Arguments args = {
+ .nbctx = 0,
+ .do_disconnect = false,
+ .do_silent = false,
+ .flags = 0,
+ .remove_caps = 0,
+ .add_caps = 0,
+ .hostname = 0,
+ .domainname = 0
+ };
+ xid_t newctx;
+ int xflags;
+ int p[2][2];
+ pid_t pid;
+
+ global_args = &args;
+ signal(SIGCHLD, SIG_DFL);
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_DISCONNECT : args.do_disconnect = true; break;
+ case CMD_SILENT : args.do_silent = true; break;
+ case CMD_DOMAINNAME : args.domainname = optarg; break;
+ case CMD_HOSTNAME : args.hostname = optarg; break;
+
+ case CMD_CAP :
+ setCap(optarg, &args.add_caps, &args.remove_caps);
+ break;
+ case CMD_SECURE :
+ args.remove_caps |= vc_get_insecurebcaps();
+ break;
+ case CMD_FLAG :
+ setFlags(optarg, &args.flags);
+ break;
+ case CMD_CTX :
+ if (args.nbctx>0)
+ WRITE_MSG(2, "WARNING: More than one ctx not supported by this version\n");
+ if (args.nbctx>=DIM_OF(args.ctxs)) {
+ WRITE_MSG(2, "Too many contexts given\n");
+ exit(255);
}
- return ret;
+ args.ctxs[args.nbctx++] = Evc_xidopt2xid(optarg, true);
+ break;
+
+
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return 255;
+ break;
+ }
+ }
+
+ if (optind>=argc) {
+ WRITE_MSG(2, "No command given; use '--help' for more information.\n");
+ exit(255);
+ }
+
+ if (args.domainname && strcmp(args.domainname, "none")==0)
+ args.domainname = "";
+
+ if (args.nbctx == 0)
+ args.ctxs[args.nbctx++] = VC_DYNAMIC_XID;
+
+ xflags = args.flags & S_CTX_INFO_INIT;
+ args.flags &= ~S_CTX_INFO_INIT;
+
+ pid = initSync(p, args.do_disconnect);
+ if (pid==0) {
+ doSyncStage0(p, args.do_disconnect);
+
+ newctx = Evc_new_s_context(args.ctxs[0],0,args.flags);
+ args.remove_caps &= (~args.add_caps);
+ setHostname(args.hostname);
+ setDomainname(args.domainname);
+
+ if (args.remove_caps!=0 || xflags!=0)
+ Evc_new_s_context (VC_SAMECTX,args.remove_caps,xflags);
+ tellContext(args.ctxs[0]==VC_DYNAMIC_XID ? newctx : args.ctxs[0]);
+
+ doSyncStage1(p, args.do_disconnect);
+ execvp (argv[optind],argv+optind);
+ doSyncStage2(p, args.do_disconnect);
+
+ PERROR_Q("chcontext: execvp", argv[optind]);
+ exit(255);
+ }
+
+ waitOnSync(pid, p, args.ctxs[0]!=VC_DYNAMIC_XID);
+ return EXIT_SUCCESS;
}
+#ifdef ENSC_TESTSUITE
+#define FLAG_TEST(STR,EXP) \
+ { \
+ uint32_t flag=0; \
+ setFlags(STR, &flag); \
+ assert(flag==(EXP)); \
+ }
+
+#define CAP_TEST(STR,EXP_ADD,EXP_DEL) \
+ { \
+ uint32_t add=0,del=0; \
+ setCap(STR, &add, &del); \
+ assert(add==(EXP_ADD)); \
+ assert(del==(EXP_DEL)); \
+ }
+
+void
+test()
+{
+ FLAG_TEST("lock", 1);
+ FLAG_TEST("lock,sched", 3);
+
+ CAP_TEST("CHOWN", 1, 0);
+ CAP_TEST("CAP_CHOWN", 1, 0);
+ CAP_TEST("!CHOWN", 0, 1);
+ CAP_TEST("!CAP_CHOWN", 0, 1);
+}
+#endif
--- /dev/null
+// $Id: check-unixfile.c,v 1.1 2005/01/27 19:13:04 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+
+#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <limits.h>
+
+#define ENSC_WRAPPERS_PREFIX "check-unixfile: "
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
+
+int wrapper_exit_code = 255;
+
+static void
+showHelp(int fd, char const *cmd)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [--] <file>+\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(0);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "check-unixfile " VERSION " -- execute some basic fileformat checks\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2005 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static bool
+checkFile(char const *fname)
+{
+ int fd = Eopen(fname, O_RDONLY, 0);
+ off_t l = Elseek(fd, 0, SEEK_END);
+ char const * data = 0;
+ bool res = true;
+
+ if (l>100*1024*1024) {
+ WRITE_MSG(2, "WARNING: '");
+ WRITE_STR(2, fname);
+ WRITE_STR(2, "' is too large for a vserver configuration file\n");
+ res = false;
+ }
+ else if (l>0) {
+ data = mmap(0, l, PROT_READ, MAP_PRIVATE, fd, 0);
+ if (data==0) {
+ perror("mmap()");
+ exit(wrapper_exit_code);
+ }
+
+ if (data[l-1]!='\n') {
+ WRITE_MSG(2, "WARNING: '");
+ WRITE_STR(2, fname);
+ WRITE_MSG(2, "' does not end on newline\n");
+ res = false;
+ }
+
+ munmap(const_cast(char *)(data), l);
+ }
+
+ Eclose(fd);
+
+ return res;
+}
+
+int main(int argc, char *argv[])
+{
+ int idx = 1;
+ bool ok = true;
+ bool passed = false;
+
+ if (argc>=2) {
+ if (strcmp(argv[1], "--help") ==0) showHelp(1, argv[0]);
+ if (strcmp(argv[1], "--version")==0) showVersion();
+ if (strcmp(argv[1], "--") ==0) ++idx;
+ }
+
+ for (; idx<argc; ++idx)
+ if (checkFile(argv[idx])) passed = true;
+ else ok = false;
+
+ if (ok) return 0;
+ else if (passed) return 2;
+ else return 1;
+}
--- /dev/null
+// $Id: chroot-sh.c,v 1.2 2005/07/03 17:40:15 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <lib_internal/util.h>
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#define ENSC_WRAPPERS_PREFIX "chroot-sh"
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_IO 1
+#define ENSC_WRAPPERS_FCNTL 1
+#include <ensc_wrappers/wrappers.h>
+
+int wrapper_exit_code = EXIT_FAILURE;
+
+static void
+showFD(int fd_in, int fd_out)
+{
+ for (;;) {
+ char buf[4096];
+ char const * ptr=buf;
+ ssize_t len;
+
+ len = Eread(fd_in, buf, sizeof(buf));
+ if (len<=0) break;
+
+ EwriteAll(fd_out, ptr, len);
+ }
+}
+
+static int
+redirectFileInternal(int argc, char *argv[],
+ int mode, bool is_input,
+ char const *operation)
+{
+ int fd;
+
+ if (argc<2) {
+ WRITE_MSG(2, "Not enough parameters for '");
+ WRITE_STR(2, operation);
+ WRITE_MSG(2, "' operation; use '--help' for more information\n");
+ return wrapper_exit_code;
+ }
+
+ fd = EopenD(argv[1], mode, 0644);
+ if (is_input) showFD(fd, 1);
+ else showFD( 0, fd);
+ Eclose(fd);
+
+ return EXIT_SUCCESS;
+}
+
+static mode_t
+testInternal(int argc, char *argv[], char const *operation)
+{
+ struct stat st;
+
+ if (argc<2) {
+ WRITE_MSG(2, "Not enough parameters for '");
+ WRITE_STR(2, operation);
+ WRITE_MSG(2, "' operation; use '--help' for more information\n");
+ return wrapper_exit_code;
+ }
+
+ if (stat(argv[1], &st)==-1) return 0;
+ else return st.st_mode;
+}
+
+static int
+execCat(int argc, char *argv[])
+{
+ return redirectFileInternal(argc, argv,
+ O_RDONLY|O_NOCTTY, true,
+ "cat");
+}
+
+static int
+execAppend(int argc, char *argv[])
+{
+ return redirectFileInternal(argc, argv,
+ O_WRONLY|O_CREAT|O_APPEND, false,
+ "append");
+}
+
+static int
+execTruncate(int argc, char *argv[])
+{
+ return redirectFileInternal(argc, argv,
+ O_WRONLY|O_CREAT|O_TRUNC, false,
+ "truncate");
+}
+
+static int
+execRm(int argc, char *argv[])
+{
+ int i = 1;
+ int res = EXIT_SUCCESS;
+
+ if (argc<2) {
+ WRITE_MSG(2, "No files specified for 'rm' operation; try '--help' for more information\n");
+ return wrapper_exit_code;
+ }
+
+ for (;i<argc; ++i) {
+ if (unlink(argv[i])==-1) {
+ PERROR_Q(ENSC_WRAPPERS_PREFIX "unlink", argv[i]);
+ res = EXIT_FAILURE;
+ }
+ }
+
+ return res;
+}
+
+static int
+execTestFile(int argc, char *argv[])
+{
+ int res = testInternal(argc, argv, "testfile");
+
+ return res!=-1 && S_ISREG(res) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
+
+static struct Command {
+ char const *cmd;
+ int (*handler)(int argc, char *argv[]);
+} const COMMANDS[] = {
+ { "cat", execCat },
+ { "append", execAppend },
+ { "truncate", execTruncate },
+ { "testfile", execTestFile },
+ { "rm", execRm },
+ { 0,0 }
+};
+
+static void
+showHelp()
+{
+ WRITE_MSG(1,
+ "Usage: chroot-sh "
+ " [--] <cmd> <args>*\n\n"
+ "This program chroots into the current directory and executes the specified\n"
+ "commands there. This means that all used paths are relative to the current\n"
+ "directory, and symlinks can point to files under the current path only.\n"
+ "\n"
+ "The supported commands are:\n"
+ " cat <file> ... gives out <file> to stdout\n"
+ " append <file> ... appends stdin to <file> which is created when needed\n"
+ " truncate <file> ... clear <file> and fill it with stdin; the <file> is\n"
+ " created when needed\n"
+ " rm <file>+ ... unlink the given files\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(0);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "chroot-sh " VERSION " -- execute commands within a chroot\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2005 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+
+int main(int argc, char *argv[])
+{
+ struct Command const *cmd;
+ int idx = 1;
+
+ if (argc>=2) {
+ if (strcmp(argv[idx], "--help") ==0) showHelp();
+ if (strcmp(argv[idx], "--version")==0) showVersion();
+ if (strcmp(argv[idx], "--")==0) ++idx;
+ }
+
+ if (argc<idx+1) {
+ WRITE_MSG(2, "No command specified; try '--help' for more information\n");
+ return wrapper_exit_code;
+ }
+
+ Echroot(".");
+ Echdir("/");
+
+ for (cmd=COMMANDS+0; cmd->cmd!=0; ++cmd) {
+ if (strcmp(cmd->cmd, argv[idx])==0)
+ return cmd->handler(argc-idx, argv+idx);
+ }
+
+ WRITE_MSG(2, "Invalid command '");
+ WRITE_STR(2, argv[idx]);
+ WRITE_MSG(2, "'; try '--help' for more information\n");
+
+ return wrapper_exit_code;
+}
--- /dev/null
+// $Id: chxid.c,v 1.10 2004/08/19 14:28:57 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "fstool.h"
+#include "util.h"
+
+#include "lib/vserver.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { 0,0,0,0 }
+};
+
+char const CMDLINE_OPTIONS_SHORT[] = "Rc:x";
+
+void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " -c <ctx|vserver> [-Rx] [--] <file>+\n\n"
+ " Options:\n"
+ " -R ... recurse through directories\n"
+ " -c ... assign the given context/vserver to the file(s)\n"
+ " -x ... do not cross filesystems\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+void
+showVersion()
+{
+ WRITE_MSG(1,
+ "chxid " VERSION " -- assigns a context to a file\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+bool
+handleFile(char const *name, char const * display_name)
+{
+ int rc = vc_set_iattr(name, global_args->ctx, 0, VC_IATTR_XID);
+
+ if (rc==-1) {
+ perror(display_name);
+ return false;
+ }
+
+ return true;
+}
+
+void
+fixupParams(struct Arguments UNUSED *args, int argc)
+{
+ if (optind==argc) {
+ WRITE_MSG(2, "No filename given; use '--help' for more information\n");
+ exit(1);
+ }
+
+ if (args->ctx_str==0) {
+ WRITE_MSG(2, "No context given; use '--help' for more information\n");
+ exit(1);
+ }
+
+ args->ctx = vc_xidopt2xid(args->ctx_str, true, 0);
+ args->do_display_dir = !args->do_recurse;
+ args->do_display_dot = true;
+}
--- /dev/null
+// $Id: compat-pivot_root.h,v 1.3 2005/05/02 21:44:06 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_SRC_COMPAT_PIVOT_ROOT_H
+#define H_UTIL_VSERVER_SRC_COMPAT_PIVOT_ROOT_H
+
+#include <unistd.h>
+#include <errno.h>
+
+#include "syscall-wrap.h"
+
+inline static _syscall2(int,pivot_root,const char *,new_root,const char *,put_old)
+
+#endif // H_UTIL_VSERVER_SRC_COMPAT_PIVOT_ROOT_H
--- /dev/null
+// $Id: context-sync.hc,v 1.5 2005/04/10 01:01:33 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+/// \args p[0] used for parent -> child sync (child waits till parent is in deathrow)
+/// \args p[1] used for child -> parent sync (recognize execv() errors)
+static inline ALWAYSINLINE int
+initSync(int p[2][2], bool do_disconnect)
+{
+ if (!do_disconnect) return 0;
+
+ Epipe(p[0]);
+ Epipe(p[1]);
+ fcntl(p[1][1], F_SETFD, FD_CLOEXEC);
+ return Efork();
+}
+
+static inline ALWAYSINLINE void
+doSyncStage0(int p[2][2], bool do_disconnect)
+{
+ char c;
+ if (!do_disconnect) return;
+
+ Eclose(p[0][1]);
+ Eread (p[0][0], &c, 1);
+ Eclose(p[0][0]);
+}
+
+static inline ALWAYSINLINE void
+doSyncStage1(int p[2][2], bool do_disconnect)
+{
+ int fd;
+
+ if (!do_disconnect) return;
+
+ fd = EopenD("/dev/null", O_RDONLY|O_NONBLOCK, 0);
+ (void)setsid(); // ignore error when we are already a session-leader
+ Edup2(fd, 0);
+ Eclose(p[1][0]);
+ if (fd!=0) Eclose(fd);
+ Ewrite(p[1][1], ".", 1);
+}
+
+static inline ALWAYSINLINE void
+doSyncStage2(int p[2][2], bool do_disconnect)
+{
+ if (!do_disconnect) return;
+
+ Ewrite(p[1][1], "X", 1);
+}
+
+/// \args p[0] used for parent -> child sync (child waits till parent is in deathrow)
+/// \args p[1] used for child -> parent sync (recognize execv() errors)
+static void
+waitOnSync(pid_t pid, int p[2][2], bool is_prevent_race)
+{
+ char c;
+ size_t l;
+
+ if (is_prevent_race &&
+ !jailIntoTempDir(0)) {
+ perror(ENSC_WRAPPERS_PREFIX "jailIntoTempDir()");
+ exit(255);
+ }
+
+ Eclose(p[0][0]);
+ Ewrite(p[0][1], "X", 1);
+ Eclose(p[0][1]);
+
+ Eclose(p[1][1]);
+ l = Eread(p[1][0], &c, 1);
+ if (l!=1) exitLikeProcess(pid,0, wrapper_exit_code);
+ l = Eread(p[1][0], &c, 1);
+ if (l!=0) exitLikeProcess(pid,0, wrapper_exit_code);
+}
--- /dev/null
+// $Id: exec-cd.c,v 1.5 2005/05/05 09:20:37 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include <fcntl.h>
+#include <errno.h>
+
+#define ENSC_WRAPPERS_PREFIX "exec-cd: "
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
+
+int wrapper_exit_code = 255;
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [--] <dir> <cmd> <args>*\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "exec-cd " VERSION " -- executes commands within a safely changed cwd\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+int main(int argc, char *argv[])
+{
+ int dirfd_root = Eopen("/", O_RDONLY, 0);
+ int idx = 1;
+ int dirfd_cur;
+
+ if (argc>=2) {
+ if (strcmp(argv[1], "--help") ==0) showHelp(1, argv[0], 0);
+ if (strcmp(argv[1], "--version")==0) showVersion();
+ if (strcmp(argv[1], "--") ==0) ++idx;
+ }
+
+ if (argc<idx+2) {
+ WRITE_MSG(2, "Not enough parameters; use '--help' for more information\n");
+ return wrapper_exit_code;
+ }
+
+
+ Echroot(".");
+ Echdir(argv[idx]);
+
+ dirfd_cur = Eopen(".", O_RDONLY, 0);
+
+ Efchdir(dirfd_root);
+ Echroot(".");
+
+ Efchdir(dirfd_cur);
+
+ Eclose(dirfd_cur);
+ Eclose(dirfd_root);
+
+ Eexecv(argv[idx+1], argv+idx+1);
+}
--- /dev/null
+// $Id: exec-ulimit.c,v 1.7 2004/05/08 01:40:25 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#define ENSC_WRAPPERS_PREFIX "exec-ulimit: "
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_RESOURCE 1
+#include <wrappers.h>
+
+#define DECLARE_LIMIT(RES,FNAME) { #FNAME, RLIMIT_##RES }
+
+int wrapper_exit_code = 255;
+
+static struct {
+ char const *fname;
+ int code;
+} const LIMITS[] = {
+ DECLARE_LIMIT(CORE, core),
+ DECLARE_LIMIT(CPU, cpu),
+ DECLARE_LIMIT(DATA, data),
+ DECLARE_LIMIT(FSIZE, fsize),
+ DECLARE_LIMIT(LOCKS, locks),
+ DECLARE_LIMIT(MEMLOCK, memlock),
+ DECLARE_LIMIT(NOFILE, nofile),
+ DECLARE_LIMIT(NPROC, nproc),
+ DECLARE_LIMIT(RSS, rss),
+ DECLARE_LIMIT(STACK, stack),
+};
+
+static rlim_t
+readValue(int fd, char const *filename)
+{
+ char buf[128];
+ size_t len = Eread(fd, buf, sizeof(buf)-1);
+ long int res;
+ char * errptr;
+
+ buf[len] = '\0';
+ if (strncmp(buf, "inf", 3)==0) return RLIM_INFINITY;
+ res = strtol(buf, &errptr, 0);
+
+ if (errptr!=buf) {
+ switch (*errptr) {
+ case 'M' : res *= 1024; /* fallthrough */
+ case 'K' : res *= 1024; ++errptr; break;
+ case 'm' : res *= 1000; /* fallthrough */
+ case 'k' : res *= 1000; ++errptr; break;
+ default : break;
+ }
+ }
+
+ if (errptr==buf || (*errptr!='\0' && *errptr!='\n')) {
+ WRITE_MSG(2, "Invalid limit in '");
+ WRITE_STR(2, filename);
+ WRITE_STR(2, "'\n");
+ exit(255);
+ }
+
+ return res;
+}
+
+static bool
+readSingleLimit(struct rlimit *lim, char const *fname_base)
+{
+ size_t fname_len = strlen(fname_base);
+ char fname[fname_len + sizeof(".hard")];
+ int fd;
+ bool is_modified = false;
+
+ strcpy(fname, fname_base);
+
+ fd = open(fname, O_RDONLY);
+ if (fd!=-1) {
+ rlim_t tmp = readValue(fd, fname_base);
+ lim->rlim_cur = tmp;
+ lim->rlim_max = tmp;
+ Eclose(fd);
+
+ is_modified = true;
+ }
+
+ strcpy(fname+fname_len, ".hard");
+ fd = open(fname, O_RDONLY);
+ if (fd!=-1) {
+ lim->rlim_max = readValue(fd, fname_base);
+ Eclose(fd);
+
+ is_modified = true;
+ }
+
+ strcpy(fname+fname_len, ".soft");
+ fd = open(fname, O_RDONLY);
+ if (fd!=-1) {
+ lim->rlim_cur = readValue(fd, fname_base);
+ Eclose(fd);
+
+ is_modified = true;
+ }
+
+ if (is_modified &&
+ lim->rlim_max!=RLIM_INFINITY &&
+ (lim->rlim_cur==RLIM_INFINITY ||
+ lim->rlim_cur>lim->rlim_max))
+ lim->rlim_cur = lim->rlim_max;
+
+ return is_modified;
+}
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_STR(fd,
+ "<ulimit-cfgdir> <cmd> <argv>*\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "exec-ulimit " VERSION " -- executes programs with resource limits\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+int main(int argc, char *argv[])
+{
+ size_t i;
+ int cur_fd = Eopen(".", O_RDONLY, 0);
+
+ if (argc==2) {
+ if (strcmp(argv[1], "--help")==0) showHelp(1,argv[0],0);
+ if (strcmp(argv[1], "--version")==0) showVersion();
+ }
+
+ if (argc<3) {
+ WRITE_MSG(2, "Bad parameter count; use '--help' for more information.\n");
+ exit(255);
+ }
+
+ if (chdir(argv[1])!=-1) {
+ for (i=0; i<sizeof(LIMITS)/sizeof(LIMITS[0]); ++i) {
+ struct rlimit limit;
+
+ Egetrlimit(LIMITS[i].code, &limit);
+ if (readSingleLimit(&limit, LIMITS[i].fname))
+ Esetrlimit(LIMITS[i].code, &limit);
+ }
+ Efchdir(cur_fd);
+ }
+ Eclose(cur_fd);
+
+ Eexecv(argv[2], argv+2);
+}
-// $Id: fakerunlevel.c,v 1.1 2003/09/29 22:01:57 ensc Exp $
+// $Id: fakerunlevel.c,v 1.6 2004/02/27 04:42:10 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on fakerunlevel.cc by Jacques Gelinas
This is used when a vserver lack a private init process
so runlevel properly report the fake runlevel.
*/
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+
#include <utmp.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
+#include <fcntl.h>
+#include <grp.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#define ENSC_WRAPPERS_PREFIX "fakerunlevel: "
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_FCNTL 1
+#include <wrappers.h>
+
+int wrapper_exit_code = 1;
-static void usage()
+static void
+showHelp(int fd, int exit_code)
{
- fprintf (stderr,"fakerunlevel version %s\n",VERSION);
- fprintf (stderr
- ,"\n"
- "fakerunlevel runlevel utmp_file\n"
- "\n"
- "Put a runlevel record in file utmp_file\n");
+ WRITE_MSG(fd,
+ "Usage: fakerunlevel <runlevel> <utmp_file>\n\n"
+ "Put a runlevel record in file <utmp_file>\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(exit_code);
}
-int main (int argc, char *argv[])
+static void
+showVersion()
{
- if (argc != 3){
- usage();
- }else{
- int runlevel = atoi(argv[1]);
- const char *fname = argv[2];
- if (runlevel < 1 || runlevel > 5){
- usage();
- }else{
- // Make sure the file exist
- FILE *fout = fopen (fname,"a");
- if (fout == NULL){
- fprintf (stderr,"Can't open file %s (%s)\n",fname
- ,strerror(errno));
- }else{
- struct utmp ut;
-
- fclose (fout);
- utmpname (fname);
- setutent();
- memset (&ut,0,sizeof(ut));
- ut.ut_type = RUN_LVL;
- ut.ut_pid = ('#' << 8) + runlevel+'0';
- pututline (&ut);
- endutent();
- }
- }
- }
-
- return 0;
+ WRITE_MSG(1,
+ "fakerunlevel " VERSION "\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
}
+int main (int argc, char *argv[])
+{
+ if (argc==1) showHelp(2,1);
+ if (strcmp(argv[1], "--help")==0) showHelp(1,0);
+ if (strcmp(argv[1], "--version")==0) showVersion();
+ if (argc!=3) showHelp(2,1);
+
+ {
+ int const runlevel = atoi(argv[1]);
+ char const * const fname = argv[2];
+ int fd;
+ struct utmp ut;
+
+ gid_t gid;
+ char *gid_str = getenv("UTMP_GID");
+
+ if (runlevel<0 || runlevel>6) showHelp(2,1);
+
+ Echroot(".");
+ Echdir("/");
+
+ // Real NSS is too expensive/insecure in this state; therefore, use the
+ // value detected at ./configure stage or overridden by $UTMP_GID
+ // env-variable
+ gid = gid_str ? atoi(gid_str) : UTMP_GID;
+ Esetgroups(1, &gid);
+ Esetgid(gid);
+
+ if (getgid()!=gid) {
+ WRITE_MSG(2, "fakerunlevel: Failed to set group\n");
+ return EXIT_FAILURE;
+ }
+
+ umask(002);
+ fd = EopenD(fname, O_WRONLY|O_CREAT|O_APPEND, 0664);
+ Eclose(fd);
+
+ utmpname (fname);
+ setutent();
+ memset (&ut,0,sizeof(ut));
+ ut.ut_type = RUN_LVL;
+ ut.ut_pid = ('#' << 8) + runlevel+'0';
+ pututline (&ut);
+ endutent();
+ }
+
+ return EXIT_SUCCESS;
+}
-// $Id: filetime.c,v 1.1 2003/09/29 22:01:57 ensc Exp $
+// $Id: filetime.c,v 1.4 2005/03/24 12:44:17 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on filetime.cc by Jacques Gelinas
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include "lib/internal.h"
+
+#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <time.h>
#include <sys/stat.h>
+static void
+showHelp(char const *cmd)
+{
+ WRITE_MSG(1, "Usage: ");
+ WRITE_STR(1, cmd);
+ WRITE_MSG(1,
+ " [--] <filename>\n"
+ "\n"
+ "Shows the relative age of <filename>\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(0);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "filetime " VERSION " -- shows age of a file\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
int main (int argc, char *argv[])
{
- int ret = -1;
- if (argc != 2){
- fprintf (stderr
- ,"filetime version %s\n"
- "filetime file\n"
- "\n"
- "Prints the age of a file\n"
- "(how long since it was created or modified)\n"
- ,VERSION);
- }else{
- struct stat st;
- if (stat(argv[1],&st)==-1){
- fprintf (stderr,"Can't stat file %s (%s)\n",argv[1]
- ,strerror(errno));
- }else{
- time_t now = time(NULL);
- time_t since = now - st.st_mtime;
- int days = since / (24*60*60);
- int today = since % (24*60*60);
- int hours = today / (60*60);
- int minutes = (today % (60*60)) / 60;
- if (days > 0){
- printf ("%d days ",days);
- }
- printf ("%02d:%02d\n",hours,minutes);
- ret = 0;
- }
- }
- return ret;
+ int idx = 1;
+ struct stat st;
+
+ if (argc>=2) {
+ if (strcmp(argv[1], "--help") ==0) showHelp(argv[0]);
+ if (strcmp(argv[1], "--version")==0) showVersion();
+ if (strcmp(argv[1], "--") ==0) ++idx;
+ }
+ if (argc<idx+1)
+ WRITE_MSG(2, "No filename specified; use '--help' for more information\n");
+ else if (stat(argv[idx], &st)==-1)
+ PERROR_Q("stat", argv[idx]);
+ else {
+ time_t now = time(NULL);
+ time_t since = now - st.st_mtime;
+ int days = since / (24*60*60);
+ int today = since % (24*60*60);
+ int hours = today / (60*60);
+ int minutes = (today % (60*60)) / 60;
+
+ char buf[3*sizeof(time_t)*3 + 128];
+ size_t l = 0;
+
+ if (days > 0) {
+ l = utilvserver_fmt_ulong(buf, days);
+ buf[l++] = ' ';
+ #define MSG "days, "
+ memcpy(buf+l, MSG, sizeof(MSG)-1); l += sizeof(MSG)-1;
+ }
+
+ if (hours<10) buf[l++] = '0';
+ l += utilvserver_fmt_ulong(buf+l, hours);
+ buf[l++] = ':';
+ if (minutes<10) buf[l++] = '0';
+ l += utilvserver_fmt_ulong(buf+l, minutes);
+ buf[l++] = '\n';
+
+ Vwrite(1, buf, l);
+ return EXIT_SUCCESS;
+ }
+
+ return EXIT_FAILURE;
}
--- /dev/null
+// $Id: fstool.c,v 1.8 2004/08/19 14:29:25 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "fstool.h"
+#include "util.h"
+
+#include <lib/vserver.h>
+
+#include <getopt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+
+#define ENSC_WRAPPERS_DIRENT 1
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
+
+struct Arguments const * global_args = 0;
+
+int wrapper_exit_code = 1;
+
+inline static bool
+isSpecialDir(char const *d)
+{
+ return ( (d[0]=='.' && !global_args->do_display_dot) ||
+ (d[0]=='.' && (d[1]=='\0' || (d[1]=='.' && d[2]=='\0'))) );
+}
+
+#define CONCAT_PATHS(LHS, LHS_LEN, RHS) \
+ size_t l_rhs = strlen(RHS); \
+ char new_path[(LHS_LEN) + l_rhs + sizeof("/")]; \
+ memcpy(new_path, LHS, (LHS_LEN)); \
+ memcpy(new_path+(LHS_LEN), "/", 1); \
+ memcpy(new_path+(LHS_LEN)+1, RHS, l_rhs); \
+ new_path[(LHS_LEN)+1+l_rhs] = '\0';
+
+static uint64_t
+iterateFilesystem(char const *path)
+{
+ bool do_again = false;
+ size_t path_len = strlen(path);
+ uint64_t err = 0;
+ struct stat cur_st;
+ DIR * dir = opendir(".");
+
+ if (dir==0) {
+ perror("opendir()");
+ return 1;
+ }
+
+ // show current directory entry first
+ if (lstat(".", &cur_st)==-1) perror("lstat()");
+ else err += handleFile(".", path) ? 0 : 1;
+
+ // strip trailing '/'
+ while (path_len>0 && path[path_len-1]=='/') --path_len;
+
+ // process regular files before directories
+ for (;;) {
+ struct dirent *ent = Ereaddir(dir);
+ struct stat st;
+
+ if (ent==0) break;
+ if (isSpecialDir(ent->d_name)) continue;
+
+ if (lstat(ent->d_name, &st)==-1) {
+ perror("lstat()");
+ ++err;
+ continue;
+ }
+
+ if (S_ISDIR(st.st_mode) && global_args->do_recurse) {
+ do_again = true;
+ continue;
+ }
+
+ {
+ CONCAT_PATHS(path, path_len, ent->d_name);
+ err += handleFile(ent->d_name, new_path) ? 0 : 1;
+ }
+ }
+
+ if (do_again) {
+ int cur_dir = Eopen(".", O_RDONLY, 0);
+ rewinddir(dir);
+
+ for (;;) {
+ struct dirent *ent = Ereaddir(dir);
+ struct stat st;
+
+ if (ent==0) break;
+ if (isSpecialDir(ent->d_name)) continue;
+
+ if (lstat(ent->d_name, &st)==-1) {
+ perror("lstat()");
+ ++err;
+ continue;
+ }
+
+ if (!S_ISDIR(st.st_mode) ||
+ (global_args->local_fs && st.st_dev!=cur_st.st_dev))
+ continue;
+
+ if (safeChdir(ent->d_name, &st)==-1) {
+ perror("chdir()");
+ ++err;
+ continue;
+ }
+
+ {
+ CONCAT_PATHS(path, path_len, ent->d_name);
+ err += iterateFilesystem(new_path);
+ }
+ Efchdir(cur_dir);
+ }
+ Eclose(cur_dir);
+ }
+
+ Eclosedir(dir);
+
+ return err;
+}
+#undef CONCAT_PATHS
+
+static uint64_t
+processFile(char const *path)
+{
+ struct stat st;
+
+ if (lstat(path, &st)==-1) {
+ perror("lstat()");
+ return 1;
+ }
+
+ if (S_ISDIR(st.st_mode) && !global_args->do_display_dir) {
+ Echdir(path);
+ return iterateFilesystem(path);
+ }
+ else
+ return handleFile(path, path) ? 0 : 1;
+}
+
+int main(int argc, char *argv[])
+{
+ uint64_t err_cnt = 0;
+ int i;
+ struct Arguments args = {
+ .do_recurse = false,
+ .do_display_dot = false,
+ .do_display_dir = false,
+ .do_mapping = true,
+ .ctx = VC_NOCTX,
+ .is_legacy = false,
+ .do_set = false,
+ .do_unset = false,
+ .local_fs = false,
+ .set_mask = 0,
+ .del_mask = 0
+ };
+
+ global_args = &args;
+ while (1) {
+ int c = getopt_long(argc, argv, CMDLINE_OPTIONS_SHORT,
+ CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_IMMU : args.set_mask |= VC_IATTR_IMMUTABLE; /*@fallthrough@*/
+ case CMD_IMMUX : args.set_mask |= VC_IATTR_IUNLINK; break;
+ case CMD_ADMIN : args.set_mask |= VC_IATTR_ADMIN; break;
+ case CMD_WATCH : args.set_mask |= VC_IATTR_WATCH; break;
+ case CMD_HIDE : args.set_mask |= VC_IATTR_HIDE; break;
+ case CMD_BARRIER : args.set_mask |= VC_IATTR_BARRIER; break;
+ case CMD_UNSET_IMMU : args.del_mask |= VC_IATTR_IMMUTABLE; /*@fallthrough@*/
+ case CMD_UNSET_IMMUX : args.del_mask |= VC_IATTR_IUNLINK; break;
+ case CMD_UNSET_ADMIN : args.del_mask |= VC_IATTR_ADMIN; break;
+ case CMD_UNSET_WATCH : args.del_mask |= VC_IATTR_WATCH; break;
+ case CMD_UNSET_HIDE : args.del_mask |= VC_IATTR_HIDE; break;
+ case CMD_UNSET_BARRIER : args.del_mask |= VC_IATTR_BARRIER; break;
+ case 'R' : args.do_recurse = true; break;
+ case 'a' : args.do_display_dot = true; break;
+ case 'd' : args.do_display_dir = true; break;
+ case 'n' : args.do_mapping = false; break;
+ case 's' : args.do_set = true; break;
+ case 'u' : args.do_unset = true; break;
+ case 'c' : args.ctx_str = optarg; break;
+ case 'x' : args.local_fs = true; break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+
+ fixupParams(&args, argc);
+
+ if (optind==argc)
+ err_cnt = processFile(".");
+ else for (i=optind; i<argc; ++i)
+ err_cnt += processFile(argv[i]);
+
+ return err_cnt>0 ? EXIT_FAILURE : EXIT_SUCCESS;
+}
--- /dev/null
+// $Id: fstool.h,v 1.7 2004/08/19 14:29:44 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_SRC_FSTOOL_H
+#define H_UTIL_VSERVER_SRC_FSTOOL_H
+
+#include <getopt.h>
+#include <stdbool.h>
+
+#define CMD_HELP 0x8000
+#define CMD_VERSION 0x8001
+#define CMD_IMMUTABLE 0x8002
+#define CMD_IMMULINK 0x8003
+#define CMD_LEGACY 0x8004
+#define CMD_IMMU 0x8010
+#define CMD_ADMIN 0x8011
+#define CMD_WATCH 0x8012
+#define CMD_HIDE 0x8013
+#define CMD_BARRIER 0x8014
+#define CMD_IMMUX 0x8015
+#define CMD_UNSET_IMMU 0x8020
+#define CMD_UNSET_ADMIN 0x8021
+#define CMD_UNSET_WATCH 0x8022
+#define CMD_UNSET_HIDE 0x8023
+#define CMD_UNSET_BARRIER 0x8024
+#define CMD_UNSET_IMMUX 0x8025
+
+
+struct stat;
+
+struct Arguments {
+ bool do_recurse;
+ bool do_display_dot;
+ bool do_display_dir;
+ bool do_mapping;
+ char const * ctx_str;
+ xid_t ctx;
+ bool is_legacy;
+ bool do_set;
+ bool do_unset;
+ bool local_fs;
+
+ uint32_t set_mask;
+ uint32_t del_mask;
+};
+
+extern struct option const CMDLINE_OPTIONS[];
+extern char const CMDLINE_OPTIONS_SHORT[];
+extern struct Arguments const * global_args;
+
+void fixupParams(struct Arguments *, int argc);
+bool handleFile(char const *d_name, char const *full_name);
+void showHelp(int fd, char const *cmd, int res);
+void showVersion();
+
+#endif // H_UTIL_VSERVER_SRC_FSTOOL_H
-// $Id: ifspec.c,v 1.1.4.1 2003/11/21 16:01:09 ensc Exp $
+// $Id: ifspec.c,v 1.4 2004/02/20 16:59:40 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on ifspec.cc by Jacques Gelinas
NETMASK=
BCAST=
*/
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
ret = 0;
}
else {
- perror("ioctl(SIOCGIFADDR)");
+ perror("ifspec: ioctl(SIOCGIFADDR)");
}
if (maskstr != NULL && maskstr[0] != '\0'){
ret = 0;
}
else {
- perror("ioctl(SIOCGIFNETMASK)");
+ perror("ifspec: ioctl(SIOCGIFNETMASK)");
}
if (bcaststr != NULL && bcaststr[0] != '\0'){
--- /dev/null
+// $Id: keep-ctx-alive.c,v 1.3 2004/12/16 00:11:01 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+
+#include <lib/vserver.h>
+#include <lib/internal.h>
+
+#include <getopt.h>
+#include <errno.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <sys/select.h>
+
+#define ENSC_WRAPPERS_PREFIX "keep-ctx-alive: "
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_SOCKET 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_IOSOCK 1
+#define ENSC_WRAPPERS_IO 1
+#include <wrappers.h>
+
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+#define CMD_SOCKET 0x4000
+#define CMD_TIMEOUT 0x4001
+#define CMD_QUIT 0x4002
+
+int wrapper_exit_code = 1;
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "socket", required_argument, 0, CMD_SOCKET },
+ { "timeout", required_argument, 0, CMD_TIMEOUT },
+ { "quit", required_argument, 0, CMD_QUIT },
+ {0,0,0,0},
+};
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage:\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " --socket <filename> [--timeout <seconds>]\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "keep-ctx-alive " VERSION " -- keeps a context alive\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static void
+printXid(int fd)
+{
+ xid_t xid = Evc_get_task_xid(0);
+ char buf[sizeof(xid)*3 + 2];
+ size_t l;
+
+ l = utilvserver_fmt_long(buf, xid);
+ EwriteAll(fd, buf, l);
+ Eclose(fd);
+}
+
+static void handleMessage(int fd)
+{
+ char buf[128];
+ size_t len;
+ struct sockaddr_un addr;
+ socklen_t addr_len = sizeof(addr);
+ int new_fd = Eaccept(fd, &addr, &addr_len);
+
+ len = Erecv(new_fd, buf, sizeof buf,0);
+ if (len==0) exit(1);
+
+ // TODO: handle message???
+ exit(0);
+}
+
+static int
+sendQuitSignal(char const *filename, char const *msg)
+{
+ int fd;
+ struct sockaddr_un addr;
+
+ ENSC_INIT_UNIX_SOCK(addr, filename);
+ fd = Esocket(PF_UNIX, SOCK_STREAM, 0);
+ Econnect(fd, &addr, sizeof(addr));
+
+ if (msg) EsendAll(fd, msg, strlen(msg));
+ Eclose(fd);
+
+ return EXIT_SUCCESS;
+}
+
+static int
+doit(char const *filename, struct timeval *timeout)
+{
+ int fd;
+ struct sockaddr_un sock;
+ pid_t pid;
+ fd_set fdset;
+
+ ENSC_INIT_UNIX_SOCK(sock, filename);
+
+ fd = Esocket(PF_UNIX, SOCK_STREAM, 0);
+ Ebind(fd, &sock, sizeof sock);
+ Elisten(fd, 5);
+
+ printXid(1);
+
+ FD_ZERO(&fdset);
+ FD_SET(fd, &fdset);
+
+ pid = Efork();
+ if (pid==0) {
+ Eselect(fd+1, &fdset, 0,0, timeout);
+ if (FD_ISSET(fd, &fdset)) handleMessage(fd);
+ exit(1);
+ }
+
+ return EXIT_SUCCESS;
+}
+
+int main(int argc, char *argv[])
+{
+ char const * socket_name = 0;
+ struct timeval timeout = { 0,0 };
+ struct timeval *timeout_ptr = 0;
+ char const * quit_msg = false;
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_SOCKET : socket_name = optarg; break;
+ case CMD_QUIT : quit_msg = optarg; break;
+ case CMD_TIMEOUT :
+ timeout.tv_sec = atoi(optarg);
+ timeout_ptr = &timeout;
+ break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return 255;
+ break;
+ }
+ }
+
+ if (socket_name==0)
+ WRITE_MSG(2, "reserve-context: No socketname specified\n");
+ if (quit_msg)
+ return sendQuitSignal(socket_name, quit_msg);
+ else
+ return doit(socket_name, timeout_ptr);
+
+ return EXIT_FAILURE;
+}
-// $Id: listdevip.c,v 1.1 2003/09/29 22:01:57 ensc Exp $
+// $Id: listdevip.c,v 1.3 2004/02/20 16:59:40 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on listdevip.cc by Jacques Gelinas
Print the list of all network (IP) devices. Print the IP
in fact, including all aliases.
*/
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+#include "compat.h"
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int ret = -1;
int skfd = socket (AF_INET,SOCK_DGRAM,0);
if (skfd < 0) {
- perror ("socket");
+ perror ("listdevip: socket()");
}else{
struct ifconf ifc;
int numreqs = 30;
ifc.ifc_buf = (char*)realloc(ifc.ifc_buf, ifc.ifc_len);
if (ioctl(skfd, SIOCGIFCONF, &ifc) < 0) {
- perror("SIOCGIFCONF");
+ perror("listdevip: SIOCGIFCONF");
ret = -1;
break;
}
return ret;
}
-int main (int argc, char *argv[])
+int main (int UNUSED argc, char UNUSED *argv[])
{
devlist_read2_2();
return 0;
--- /dev/null
+// $Id: lockfile.c,v 1.4 2004/04/13 08:27:50 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+
+#include <unistd.h>
+#include <errno.h>
+#include <string.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <stdio.h>
+#include <time.h>
+#include <sys/file.h>
+#include <sys/param.h>
+
+static void
+showHelp(char const *cmd)
+{
+ WRITE_MSG(1, "Usage: ");
+ WRITE_STR(1, cmd);
+ WRITE_MSG(1,
+ " [--] <lockfile> <syncpipe> [<timeout>]\n\n"
+ "Protocol:\n"
+ " 1. parent (shell) creates a named <syncpipe>\n"
+ " 2. 'lockfile' will be called\n"
+ " 3a. 'lockfile' waits until somebody opens the <syncpipe> for reading\n"
+ " 3b. parent (shell) opens the pipe for reading and blocks\n"
+ " 4. 'lockfile' calls flock() on the <lockfile>\n"
+ " 5. 'lockfile' closes the <syncpipe>\n"
+ " 6. parent (shell) unlocks since <syncpipe> is closed\n"
+ " 7. 'lockfile' goes into infinite loop\n"
+ " 8. parent sends SIGHUP (or other signal) to 'lockfile\n"
+ "\n"
+ "Sample code:\n"
+ " tmp=$(mktemp /tmp/lock.XXXXXX)\n"
+ " rm -f $tmp # safe since mknod(2) does not follow symlinks\n"
+ " mkfifo -m700 $tmp || exit 1\n"
+ " lockfile $lock $tmp &\n"
+ " $tmp\n"
+ " ... <actions> ...\n"
+ " kill -HUP $! # (implicated by shell-exit)\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(0);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "lockfile " VERSION " -- locks a file"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static void
+alarmFunc(int UNUSED sig)
+{
+ signal(SIGALRM, alarmFunc);
+}
+
+static void
+quitFunc(int UNUSED sig)
+{
+ _exit(0);
+}
+
+int main(int argc, char *argv[])
+{
+ int fd, sync_fd = -1;
+ int idx = 1;
+ time_t end_time;
+ pid_t const ppid = getppid();
+
+ if (argc>=2) {
+ if (strcmp(argv[1], "--help") ==0) showHelp(argv[0]);
+ if (strcmp(argv[1], "--version")==0) showVersion();
+ if (strcmp(argv[1], "--") ==0) ++idx;
+ }
+
+ if (argc<idx+2) {
+ WRITE_MSG(2, "Not enough parameters; use '--help' for more information\n");
+ return EXIT_FAILURE;
+ }
+
+ end_time = time(0);
+ if (argc==idx+3) end_time += atoi(argv[idx+2]);
+ else end_time += 300;
+
+ if ((sync_fd=open(argv[idx+1], O_WRONLY))==-1)
+ perror("lockfile: open(<syncpipe>)");
+ else if ((fd=open(argv[idx], O_CREAT|O_RDONLY|O_NOFOLLOW|O_NONBLOCK, 0644))==-1)
+ perror("lockfile: open(<lockfile>)");
+ else if (unlink(argv[idx+1])==-1)
+ perror("lockfile: unlink(<syncpipe>)");
+ else if (siginterrupt(SIGALRM, 1)==-1)
+ perror("lockfile: siginterrupt()");
+ else if (signal(SIGALRM, alarmFunc)==SIG_ERR ||
+ signal(SIGHUP, quitFunc) ==SIG_ERR)
+ perror("lockfile: signal()");
+ else while (time(0)<end_time && getppid()==ppid) {
+ int duration = end_time-time(0);
+ alarm(MIN(10, MAX(duration,1)));
+
+ if (flock(fd,LOCK_EX)==-1) {
+ if (errno==EINTR) continue;
+ perror("lockfile: flock()");
+ break;
+ }
+ signal(SIGALRM, SIG_IGN);
+
+ WRITE_MSG(sync_fd, "#!/bin/true\n");
+ close(sync_fd);
+ while (getppid()==ppid) sleep(10);
+
+ return EXIT_SUCCESS;
+ }
+
+ if (sync_fd!=-1)
+ WRITE_MSG(sync_fd, "#!/bin/false\n");
+ return EXIT_FAILURE;
+}
--- /dev/null
+// $Id: lsxid.c,v 1.9 2005/03/24 12:44:17 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "fstool.h"
+#include "util.h"
+
+#include <ensc_vector/vector.h>
+#include <lib/vserver.h>
+#include <lib/vserver-internal.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <assert.h>
+
+#define ENSC_WRAPPERS_STDLIB 1
+#include <wrappers.h>
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { 0,0,0,0 }
+};
+
+char const CMDLINE_OPTIONS_SHORT[] = "Radnx";
+
+struct XidNameMapping {
+ xid_t xid;
+ char const * name;
+};
+
+static struct Vector xid_name_mapping;
+
+void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [-Radnx] [--] <file>*\n\n"
+ " Options:\n"
+ " -R ... recurse through directories\n"
+ " -a ... display files starting with '.' also\n"
+ " -d ... list directories like other files instead of\n"
+ " listing their content\n"
+ " -n ... do not try to do xid -> vserver-name mapping\n"
+ " -x ... do not cross filesystems\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+void
+showVersion()
+{
+ WRITE_MSG(1,
+ "lsxid " VERSION " -- shows the context which is associated to a file\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+void
+fixupParams(struct Arguments UNUSED * args, int UNUSED argc)
+{
+ Vector_init(&xid_name_mapping, sizeof (struct XidNameMapping));
+}
+
+static int
+cmpMap(void const *xid_v, void const *map_v)
+{
+ xid_t const * const xid = xid_v;
+ struct XidNameMapping const * const map = map_v;
+
+ return *xid - map->xid;
+}
+
+static char const *
+lookupContext(xid_t xid)
+{
+ struct XidNameMapping *res;
+
+ res = Vector_search(&xid_name_mapping, &xid, cmpMap);
+
+ if (res==0) {
+ vcCfgStyle style = vcCFG_AUTO;
+ char const * vcfg = vc_getVserverByCtx(xid, &style, 0);
+
+ res = Vector_insert(&xid_name_mapping, &xid, cmpMap);
+ if (vcfg) res->name = vc_getVserverName(vcfg, style);
+ else res->name = 0;
+ res->xid = xid;
+
+ free(const_cast(char *)(vcfg));
+ }
+
+ assert(res!=0);
+
+ return res->name;
+}
+
+static xid_t
+getFileContext(char const *name)
+{
+ xid_t res;
+ uint32_t mask = VC_IATTR_XID;
+
+ if (vc_get_iattr(name, &res, 0, &mask)==-1)
+ perror("vc_get_iattr()");
+
+ return (mask&VC_IATTR_XID) ? res : VC_NOCTX;
+}
+
+bool
+handleFile(char const *name, char const *display_name)
+{
+ xid_t ctx = 0;
+ char buf[MAX(sizeof(ctx)*3+1, 20)];
+ bool need_write = true;
+
+ memset(buf, ' ', sizeof buf);
+
+#if 1
+ ctx = getFileContext(name);
+#else
+# warning Compiling in debug-code
+ ctx = random() % 10 + 49213;
+#endif
+
+ if (ctx==VC_NOCTX) {
+ memcpy(buf, "!!ERR!!", 7);
+ Vwrite(1, buf, sizeof buf);
+ need_write = false;
+ }
+ else if (global_args->do_mapping) {
+ char const * vname = lookupContext(ctx);
+ if (!vname) buf[0] = '\0';
+ else {
+ size_t l = strlen(vname);
+ if (l<sizeof(buf)) Vwrite(1, buf, sizeof(buf)-l);
+ Vwrite(1, vname, l);
+
+ need_write = false;
+ }
+ }
+
+ if (need_write) {
+ size_t l = utilvserver_fmt_ulong(buf, ctx);
+ if (l<sizeof(buf)) Vwrite(1, buf+l, sizeof(buf)-l);
+ Vwrite(1, buf, l);
+ }
+
+ Vwrite(1, " ", 2);
+ Vwrite(1, display_name, strlen(display_name));
+ Vwrite(1, "\n", 1);
+
+ return ctx!=VC_NOCTX;
+}
--- /dev/null
+// $Id: mask2prefix.c,v 1.1 2003/10/09 01:41:06 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include <stdlib.h>
+
+static inline void
+showHelp(int fd, int exit_code)
+{
+ WRITE_MSG(fd,
+ "Usage: mask2prefix <mask>\n");
+ exit(exit_code);
+}
+
+int main(int argc, char *argv[])
+{
+ char *err_ptr, *ptr;
+ int len = 0;
+ size_t i;
+
+ if (argc!=2) showHelp(2,255);
+
+ ptr = argv[1];
+ for (i=0; i<4; ++i) {
+ unsigned int val = strtol(ptr, &err_ptr, 10);
+
+ switch (*err_ptr) {
+ case '.' :
+ case '\0' : break;
+ default :
+ WRITE_MSG(2, "Invalid mask specified\n");
+ return 255;
+ }
+
+ if (val>=0x100) {
+ WRITE_MSG(2, "Invalid mask specified\n");
+ return 255;
+ }
+
+ while (val&0x80) {
+ ++len;
+ val <<= 1;
+ }
+
+ if (val!=0xff00) break;
+
+ ptr = err_ptr+1;
+ }
+
+ return len;
+}
-// $Id: readlink.c,v 1.1 2003/09/29 22:01:57 ensc Exp $
+// $Id: readlink.c,v 1.4 2005/03/24 12:44:17 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-// based on readlink.cc by Jacques Gelinas
//
// 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
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-/*
- Copyright Jacques Gelinas jack@solucorp.qc.ca
- Distributed under the Gnu Public License, see the License file
- in this package.
-*/
-#include <stdio.h>
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+
#include <string.h>
#include <errno.h>
#include <limits.h>
#include <unistd.h>
+#include <stdio.h>
+
+static void
+showHelp(char const *cmd)
+{
+ WRITE_MSG(1, "Usage: ");
+ WRITE_STR(1, cmd);
+ WRITE_MSG(1,
+ " [--] <filename>\n"
+ "\n"
+ "Display value of a symbolic link on standard output.\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(0);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "readlink " VERSION " -- display value of symlink\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
int main (int argc, char *argv[])
{
- int ret = -1;
- if (argc != 2){
- fprintf (stderr,"readlink symlink-file\n");
- fprintf (stderr,"Prints the contents of a symlink\n");
- }else{
- char buf[PATH_MAX];
- int len = readlink (argv[1],buf,sizeof(buf)-1);
- if (len > 0){
- buf[len] = '\0';
- printf ("%s\n",buf);
- ret = 0;
- }else{
- fprintf (stderr,"readlink failed for file %s (%s)\n"
- ,argv[1],strerror(errno));
- }
- }
- return ret;
+ char buf[PATH_MAX + 2];
+ int idx = 1;
+ int len;
+
+ if (argc>=2) {
+ if (strcmp(argv[1], "--help") ==0) showHelp(argv[0]);
+ if (strcmp(argv[1], "--version")==0) showVersion();
+ if (strcmp(argv[1], "--") ==0) ++idx;
+ }
+ if (argc<idx+1)
+ WRITE_MSG(2, "No filename specified; use '--help' for more information\n");
+ else if ((len=readlink(argv[idx], buf, sizeof(buf)-2))==-1)
+ PERROR_Q("readlink: readlink", argv[idx]);
+ else {
+ buf[len++] = '\n';
+ Vwrite(1, buf, len);
+ return EXIT_SUCCESS;
+ }
+
+ return EXIT_FAILURE;
}
-// $Id: rebootmgr.c,v 1.1.2.1.2.3 2003/10/30 15:16:30 ensc Exp $
+// $Id: rebootmgr.c,v 1.8 2004/02/17 19:55:54 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on rebootmgr.cc by Jacques Gelinas
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
+#include "pathconfig.h"
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
+#include <limits.h>
#include <errno.h>
#include <syslog.h>
#include <sys/stat.h>
int ret = -1;
char sockn[PATH_MAX];
int fd = socket (AF_UNIX,SOCK_STREAM,0);
- sprintf (sockn,"%s/%s/dev/reboot",VROOTDIR, vname);
+ sprintf (sockn, DEFAULT_VSERVERDIR "/%s/dev/reboot",vname);
unlink (sockn);
if (fd == -1){
fprintf (stderr,"Can't create a unix domain socket (%s)\n"
if (strcmp(buf,"reboot\n")==0){
char cmd[1000];
syslog (LOG_NOTICE,"reboot vserver %s\n",vname);
- snprintf (cmd,sizeof(cmd)-1,"%s/vserver %s restart >>/var/log/boot.log 2>&1",SBINDIR, vname);
+ snprintf (cmd,sizeof(cmd)-1, SBINDIR "/vserver %s restart >>/var/log/boot.log 2>&1", vname);
system (cmd);
ret = 0;
}else if (strcmp(buf,"halt\n")==0){
char cmd[1000];
syslog (LOG_NOTICE,"halt vserver %s\n",vname);
- snprintf (cmd,sizeof(cmd)-1,"%s/vserver %s stop >>/var/log/boot.log 2>&1",SBINDIR, vname);
+ snprintf (cmd,sizeof(cmd)-1, SBINDIR "/vserver %s stop >>/var/log/boot.log 2>&1", vname);
system (cmd);
ret = 0;
}else{
-// $Id: reducecap.c,v 1.1.4.4 2004/03/05 04:59:36 ensc Exp $
+// $Id: reducecap.c,v 1.18 2005/03/24 12:44:17 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on reducecap.cc by Jacques Gelinas
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
+
+#include "util.h"
+#include "vserver.h"
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
-#include <strings.h>
+#include <getopt.h>
+#include <sys/param.h>
-#include "linuxcaps.h"
-#include "vserver.h"
+#define ENSC_WRAPPERS_PREFIX "reducecap: "
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
+
+
+#undef _POSIX_SOURCE
+#include "capability-compat.h"
+
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+
+#define CMD_SHOW 0x2000
+#define CMD_PID 0x2001
-#ifndef CAP_QUOTACTL
-# define CAP_QUOTACTL 29
+#define CMD_CAP 0x4000
+#define CMD_FLAG 0x4004
+#define CMD_SECURE 0x4006
+
+#ifdef VC_ENABLE_API_LEGACY
+# define CMD_OBSOLETE_CHOWN 0x8000
+# define CMD_OBSOLETE_DAC_OVERRIDE 0x8001
+# define CMD_OBSOLETE_DAC_READ_SEARCH 0x8002
+# define CMD_OBSOLETE_FOWNER 0x8003
+# define CMD_OBSOLETE_FSETID 0x8004
+# define CMD_OBSOLETE_KILL 0x8005
+# define CMD_OBSOLETE_SETGID 0x8006
+# define CMD_OBSOLETE_SETUID 0x8007
+# define CMD_OBSOLETE_SETPCAP 0x8008
+# define CMD_OBSOLETE_SYS_TTY_CONFIG 0x8009
+# define CMD_OBSOLETE_LEASE 0x800a
+# define CMD_OBSOLETE_SYS_CHROOT 0x800b
+# define CMD_OBSOLETE_X_LINUX_IMMUTABLE 0x800c
+# define CMD_OBSOLETE_X_NET_BIND_SERVICE 0x800d
+# define CMD_OBSOLETE_X_NET_BROADCAST 0x800e
+# define CMD_OBSOLETE_X_NET_ADMIN 0x800f
+# define CMD_OBSOLETE_X_NET_RAW 0x8010
+# define CMD_OBSOLETE_X_IPC_LOCK 0x8011
+# define CMD_OBSOLETE_X_IPC_OWNER 0x8012
+# define CMD_OBSOLETE_X_SYS_MODULE 0x8013
+# define CMD_OBSOLETE_X_SYS_RAWIO 0x8014
+# define CMD_OBSOLETE_X_SYS_PACCT 0x8015
+# define CMD_OBSOLETE_X_SYS_ADMIN 0x8016
+# define CMD_OBSOLETE_X_SYS_BOOT 0x8017
+# define CMD_OBSOLETE_X_SYS_NICE 0x8018
+# define CMD_OBSOLETE_X_SYS_RESOURCE 0x8019
+# define CMD_OBSOLETE_X_SYS_TIME 0x801a
+# define CMD_OBSOLETE_X_MKNOD 0x801b
+# define CMD_OBSOLETE_X_QUOTACTL 0x801c
+
+static char const * const OBSOLETE_MAPPING[] = {
+ // 0 1 2 3
+ "CHOWN", "DAC_OVERRIDE", "DAC_READ_SEARCH", "FOWNER",
+ "FSETID", "KILL", "SETGID", "SETUID",
+ "SETPCAP", "SYS_TTY_CONFIG", "LEASE", "SYS_CHROOT",
+ "LINUX_IMMUTABLE", "NET_BIND_SERVICE", "NET_BROADCAST", "NET_ADMIN",
+ "NET_RAW", "IPC_LOCK", "IPC_OWNER", "SYS_MODULE",
+ "SYS_RAWIO", "SYS_PACCT", "SYS_ADMIN", "SYS_BOOT",
+ "SYS_NICE", "SYS_RESOURCE", "SYS_TIME", "MKNOD",
+ "QUOTACTL" };
+#endif
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "cap", required_argument, 0, CMD_CAP },
+ { "flag", required_argument, 0, CMD_FLAG },
+ { "secure", no_argument, 0, CMD_SECURE },
+ { "show", no_argument, 0, CMD_SHOW },
+ { "pid", required_argument, 0, CMD_PID },
+#ifdef VC_ENABLE_API_LEGACY
+ { "CAP_CHOWN", no_argument, 0, CMD_OBSOLETE_CHOWN },
+ { "CAP_DAC_OVERRIDE", no_argument, 0, CMD_OBSOLETE_DAC_OVERRIDE },
+ { "CAP_DAC_READ_SEARCH", no_argument, 0, CMD_OBSOLETE_DAC_READ_SEARCH },
+ { "CAP_FOWNER", no_argument, 0, CMD_OBSOLETE_FOWNER },
+ { "CAP_FSETID", no_argument, 0, CMD_OBSOLETE_FSETID },
+ { "CAP_KILL", no_argument, 0, CMD_OBSOLETE_KILL },
+ { "CAP_SETGID", no_argument, 0, CMD_OBSOLETE_SETGID },
+ { "CAP_SETUID", no_argument, 0, CMD_OBSOLETE_SETUID },
+ { "CAP_SETPCAP", no_argument, 0, CMD_OBSOLETE_SETPCAP },
+ { "CAP_SYS_TTY_CONFIG", no_argument, 0, CMD_OBSOLETE_SYS_TTY_CONFIG },
+ { "CAP_LEASE", no_argument, 0, CMD_OBSOLETE_LEASE },
+ { "CAP_SYS_CHROOT", no_argument, 0, CMD_OBSOLETE_SYS_CHROOT },
+ { "--CAP_LINUX_IMMUTABLE", no_argument, 0, CMD_OBSOLETE_X_LINUX_IMMUTABLE },
+ { "--CAP_NET_BIND_SERVICE", no_argument, 0, CMD_OBSOLETE_X_NET_BIND_SERVICE },
+ { "--CAP_NET_BROADCAST", no_argument, 0, CMD_OBSOLETE_X_NET_BROADCAST },
+ { "--CAP_NET_ADMIN", no_argument, 0, CMD_OBSOLETE_X_NET_ADMIN },
+ { "--CAP_NET_RAW", no_argument, 0, CMD_OBSOLETE_X_NET_RAW },
+ { "--CAP_IPC_LOCK", no_argument, 0, CMD_OBSOLETE_X_IPC_LOCK },
+ { "--CAP_IPC_OWNER", no_argument, 0, CMD_OBSOLETE_X_IPC_OWNER },
+ { "--CAP_SYS_MODULE", no_argument, 0, CMD_OBSOLETE_X_SYS_MODULE },
+ { "--CAP_SYS_RAWIO", no_argument, 0, CMD_OBSOLETE_X_SYS_RAWIO },
+ { "--CAP_SYS_PACCT", no_argument, 0, CMD_OBSOLETE_X_SYS_PACCT },
+ { "--CAP_SYS_ADMIN", no_argument, 0, CMD_OBSOLETE_X_SYS_ADMIN },
+ { "--CAP_SYS_BOOT", no_argument, 0, CMD_OBSOLETE_X_SYS_BOOT },
+ { "--CAP_SYS_NICE", no_argument, 0, CMD_OBSOLETE_X_SYS_NICE },
+ { "--CAP_SYS_RESOURCE", no_argument, 0, CMD_OBSOLETE_X_SYS_RESOURCE },
+ { "--CAP_SYS_TIME", no_argument, 0, CMD_OBSOLETE_X_SYS_TIME },
+ { "--CAP_MKNOD", no_argument, 0, CMD_OBSOLETE_X_MKNOD },
+ { "--CAP_QUOTACTL", no_argument, 0, CMD_OBSOLETE_X_QUOTACTL },
#endif
+ { 0,0,0,0 }
+};
-extern int capget (struct __user_cap_header_struct *, struct __user_cap_data_struct *);
-extern int capset (struct __user_cap_header_struct *, struct __user_cap_data_struct *);
+int wrapper_exit_code = 255;
-static void usage()
+static void
+showHelp(int fd, char const *cmd, int res)
{
- fprintf (stderr,"reducecap version %s\n",VERSION);
- fprintf (stderr,"reducecap [ options ] command argument\n");
- exit (-1);
+ WRITE_MSG(fd, "Usage:\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [--show] [--secure] [--flag <flag>] [--cap <capability>] [--] <cmd> <args>*\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " --show [--pid <pid>]\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
}
-static void reducecap_print(struct __user_cap_data_struct *user)
+static void
+showVersion()
{
- static const char *tb[]={
- "CAP_CHOWN",
- "CAP_DAC_OVERRIDE",
- "CAP_DAC_READ_SEARCH",
- "CAP_FOWNER",
- "CAP_FSETID",
- "CAP_KILL",
- "CAP_SETGID",
- "CAP_SETUID",
- "CAP_SETPCAP",
- "CAP_LINUX_IMMUTABLE",
- "CAP_NET_BIND_SERVICE",
- "CAP_NET_BROADCAST",
- "CAP_NET_ADMIN",
- "CAP_NET_RAW",
- "CAP_IPC_LOCK",
- "CAP_IPC_OWNER",
- "CAP_SYS_MODULE",
- "CAP_SYS_RAWIO",
- "CAP_SYS_CHROOT",
- "CAP_SYS_PTRACE",
- "CAP_SYS_PACCT",
- "CAP_SYS_ADMIN",
- "CAP_SYS_BOOT",
- "CAP_SYS_NICE",
- "CAP_SYS_RESOURCE",
- "CAP_SYS_TIME",
- "CAP_SYS_TTY_CONFIG",
- "CAP_MKNOD",
- "CAP_LEASE",
- "CAP_QUOTACTL",
- NULL
- };
- int i;
- printf ("%22s %9s %9s %9s\n","Capability","Effective","Permitted"
- ,"Inheritable");
- for (i=0; tb[i] != NULL; i++){
- int bit = (1 << i);
- printf ("%22s %9s %9s %9s\n"
- ,tb[i]
- ,(user->effective & bit) ? "X " : " "
- ,(user->permitted & bit) ? "X " : " "
- ,(user->inheritable & bit) ? "X " : " ");
- }
+ WRITE_MSG(1,
+ "reducecap " VERSION " -- starts programs with reduced capabilities\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003,2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
}
-static void reducecap_show()
+static void
+printReducecap(struct __user_cap_data_struct *user)
{
- struct __user_cap_header_struct header;
- struct __user_cap_data_struct user;
- header.version = _LINUX_CAPABILITY_VERSION;
- header.pid = getpid();
- if (capget(&header,&user)==-1){
- perror ("capget");
- }else{
- reducecap_print (&user);
- }
+ int i;
+ WRITE_MSG(1, " Capability Effective Permitted Inheritable\n");
+
+ for (i=0;; ++i) {
+ size_t const len = 23 + 10*2 + 4+2;
+ char const * text = vc_cap2text(i);
+ int bit = 1<<i;
+ size_t l;
+ char buf[len];
+ if (text==0) break;
+
+ memset(buf, ' ', sizeof buf);
+ buf[len-1] = '\n';
+ l = MIN(strlen(text), 22);
+ memcpy(buf, text, l);
+ buf[23 + 10*0 + 4] = (user->effective & bit) ? 'X' : ' ';
+ buf[23 + 10*1 + 4] = (user->permitted & bit) ? 'X' : ' ';
+ buf[23 + 10*2 + 4] = (user->inheritable & bit) ? 'X' : ' ';
+ Vwrite(1, buf, len);
+ }
+}
+
+static void
+show(pid_t pid)
+{
+ struct __user_cap_header_struct header;
+ struct __user_cap_data_struct user;
+ header.version = _LINUX_CAPABILITY_VERSION;
+ header.pid = pid;
+ if (capget(&header,&user)==-1){
+ perror ("reducecap: capget()");
+ exit(wrapper_exit_code);
+ }
+
+ printReducecap(&user);
}
+static uint32_t
+getCap(char const *cap)
+{
+ int bit = vc_text2cap(cap);
+ if (bit!=0) {
+ WRITE_MSG(2, "Unknown capability '");
+ WRITE_STR(2, optarg);
+ WRITE_MSG(2, "'; try '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+ return (1<<bit);
+}
int main (int argc, char *argv[])
{
- int ret = -1;
- unsigned long remove = 0;
- int show = 0;
- int flags = 0;
- unsigned long secure = (1<<CAP_LINUX_IMMUTABLE)
- |(1<<CAP_NET_BROADCAST)
- |(1<<CAP_NET_ADMIN)
- |(1<<CAP_NET_RAW)
- |(1<<CAP_IPC_LOCK)
- |(1<<CAP_IPC_OWNER)
- |(1<<CAP_SYS_MODULE)
- |(1<<CAP_SYS_RAWIO)
- |(1<<CAP_SYS_PACCT)
- |(1<<CAP_SYS_ADMIN)
- |(1<<CAP_SYS_BOOT)
- |(1<<CAP_SYS_NICE)
- |(1<<CAP_SYS_RESOURCE)
- |(1<<CAP_SYS_TIME)
- |(1<<CAP_MKNOD)
- |(1<<CAP_QUOTACTL);
- int i;
- for (i=1; i<argc; i++){
- const char *arg = argv[i];
- const char *opt = argv[i+1];
- if (strcmp(arg,"--secure")==0){
- remove = secure;
- }else if (strcmp(arg,"--show")==0){
- show = 1;
- }else if (strcmp(arg,"--flag")==0){
- if (strcmp(opt,"lock")==0){
- flags |= 1;
- }else if (strcmp(opt,"sched")==0){
- flags |= 2;
- }else if (strcmp(opt,"nproc")==0){
- flags |= 4;
- }else if (strcmp(opt,"private")==0){
- flags |= 8;
- }else if (strcmp(opt,"hideinfo")==0){
- flags |= 32;
- }else{
- fprintf (stderr,"Unknown flag %s\n",opt);
- }
- i++;
- }else if (arg[0] == '-' && arg[1] == '-'){
- static struct {
- const char *option;
- int bit;
- }tbcap[]={
- // The following capabilities are normally available
- // to vservers administrator, but are place for
- // completeness
- {"CHOWN",CAP_CHOWN},
- {"DAC_OVERRIDE",CAP_DAC_OVERRIDE},
- {"DAC_READ_SEARCH",CAP_DAC_READ_SEARCH},
- {"FOWNER",CAP_FOWNER},
- {"FSETID",CAP_FSETID},
- {"KILL",CAP_KILL},
- {"SETGID",CAP_SETGID},
- {"SETUID",CAP_SETUID},
- {"SETPCAP",CAP_SETPCAP},
- {"SYS_TTY_CONFIG",CAP_SYS_TTY_CONFIG},
- {"LEASE",CAP_LEASE},
- {"SYS_CHROOT",CAP_SYS_CHROOT},
-
- // Those capabilities are not normally available
- // to vservers because they are not needed and
- // may represent a security risk
- {"LINUX_IMMUTABLE",CAP_LINUX_IMMUTABLE},
- {"NET_BIND_SERVICE",CAP_NET_BIND_SERVICE},
- {"NET_BROADCAST",CAP_NET_BROADCAST},
- {"NET_ADMIN", CAP_NET_ADMIN},
- {"NET_RAW", CAP_NET_RAW},
- {"IPC_LOCK", CAP_IPC_LOCK},
- {"IPC_OWNER", CAP_IPC_OWNER},
- {"SYS_MODULE",CAP_SYS_MODULE},
- {"SYS_RAWIO", CAP_SYS_RAWIO},
- {"SYS_PACCT", CAP_SYS_PACCT},
- {"SYS_ADMIN", CAP_SYS_ADMIN},
- {"SYS_BOOT", CAP_SYS_BOOT},
- {"SYS_NICE", CAP_SYS_NICE},
- {"SYS_RESOURCE",CAP_SYS_RESOURCE},
- {"SYS_TIME", CAP_SYS_TIME},
- {"MKNOD", CAP_MKNOD},
- {"QUOTACTL", CAP_QUOTACTL},
- {NULL,0}
- };
- int j;
- arg += 2;
- if (*arg=='\0') {
- ++i;
- break;
- }
- if (strncasecmp(arg, "CAP_", 4)==0) arg += 4;
- for (j=0; tbcap[j].option != NULL; j++){
- if (strcasecmp(tbcap[j].option,arg)==0){
- remove |= (1<<tbcap[j].bit);
- break;
- }
- }
- if (tbcap[j].option == NULL){
- usage();
- }
- }else{
- break;
- }
- }
- if (i == argc){
- if (show){
- reducecap_show();
- }else{
- usage();
- }
- }else{
- struct __user_cap_header_struct header;
- struct __user_cap_data_struct user;
- header.version = _LINUX_CAPABILITY_VERSION;
- header.pid = 0;
- if (capget(&header,&user)==-1){
- perror ("capget");
- }else{
- if (show){
- reducecap_print (&user);
- }
- if (vc_new_s_context(-2,remove,flags)==-1){
- perror ("new_s_context -2");
- }else{
- fprintf (stderr,"Executing\n");
- execvp (argv[i],argv+i);
- fprintf (stderr,"Can't execute command %s\n",argv[i]);
- }
- }
+ uint32_t remove = 0;
+ bool do_show = false;
+ uint32_t flags = 0;
+ pid_t pid = 0;
+#ifdef VC_ENABLE_API_LEGACY
+ bool show_obsolete_warning = true;
+#endif
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+#ifdef VC_ENABLE_API_LEGACY
+ if (c>=CMD_OBSOLETE_CHOWN && c<=CMD_OBSOLETE_X_QUOTACTL) {
+ if (show_obsolete_warning) {
+ WRITE_MSG(2, "reducecap: warning, obsolete CLI used\n");
+ show_obsolete_warning = false;
+ }
+
+ remove = getCap(OBSOLETE_MAPPING[c-CMD_OBSOLETE_CHOWN]);
+ continue;
+ }
+#endif
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_SECURE : remove = vc_get_insecurebcaps(); break;
+ case CMD_SHOW : do_show = true; break;
+ case CMD_PID : pid = atoi(optarg); break;
+ case CMD_CAP : remove = getCap(optarg); break;
+ case CMD_FLAG : {
+ struct vc_err_listparser err;
+
+ flags = vc_list2cflag_compat(optarg, 0, &err);
+ if (err.ptr!=0) {
+ WRITE_MSG(2, "Unknown flag '");
+ Vwrite(2, err.ptr, err.len);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
}
- return ret;
-}
+ break;
+ }
+ }
+ }
+
+ if (!do_show && optind==argc) {
+ WRITE_MSG(2, "No command given; use '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+ if (!do_show && pid!=0) {
+ WRITE_MSG(2, "A pid can be specified in '--show' mode only; use '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+
+ if (do_show && optind==argc)
+ show(pid);
+ else {
+ Evc_new_s_context(VC_SAMECTX, remove, flags);
+ if (do_show) show(pid);
+
+ WRITE_MSG(2, "Executing\n");
+ Eexecvp(argv[optind], argv+optind);
+ }
+
+ return EXIT_SUCCESS;
+}
--- /dev/null
+// $Id: rpm-fake-resolver.c,v 1.15 2005/07/03 13:16:34 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+// Protocol:
+// 1. startup
+// 2. initialize (setuid, ctx-migrate, chroot, ...)
+// 3. send "." token to fd 3
+// 4. wait one character on fd 1
+// 5. process this character and consume further characters from fd 1 as far
+// as needed
+// 6. go to 3) (or exit)
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "internal.h"
+#include "vserver.h"
+#include "util.h"
+
+#include <getopt.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <grp.h>
+#include <pwd.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#define ENSC_WRAPPERS_PREFIX "rpm-fake-resolver: "
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_IO 1
+#define ENSC_WRAPPERS_FCNTL 1
+#include <wrappers.h>
+
+#define MAX_RQSIZE 0x1000
+
+int wrapper_exit_code = 1;
+
+struct ArgInfo {
+ xid_t ctx;
+ uid_t uid;
+ gid_t gid;
+ bool do_fork;
+ bool in_ctx;
+ char const * pid_file;
+ char const * chroot;
+ uint32_t caps;
+ int flags;
+};
+
+static struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, 'h' },
+ { "version", no_argument, 0, 'v' },
+ { 0,0,0,0 }
+};
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [-c <ctx>] [-u <uid>] [-g <gid>] [-r <chroot>] [-s] [-n]\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "rpm-fake-resolver " VERSION " -- NSS resovler for rpm-fake\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+
+inline static void
+parseArgs(struct ArgInfo *args, int argc, char *argv[])
+{
+ while (1) {
+ int c = getopt_long(argc, argv, "F:C:c:u:g:r:ns", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case 'h' : showHelp(1, argv[0], 0);
+ case 'v' : showVersion();
+
+ case 'c' : args->ctx = atoi(optarg); break;
+ case 'u' : args->uid = atoi(optarg); break;
+ case 'g' : args->gid = atoi(optarg); break;
+ case 'F' : args->flags = atoi(optarg); break;
+ case 'C' : args->caps = atoi(optarg); break;
+ case 'r' : args->chroot = optarg; break;
+ case 'n' : args->do_fork = false; break;
+ case 's' : args->in_ctx = true; break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ exit(1);
+ break;
+ }
+ }
+
+ if (optind!=argc) {
+ WRITE_MSG(2, "No further options allowed; aborting ...\n");
+ exit(1);
+ }
+
+ if (args->chroot==0) {
+ WRITE_MSG(2, "No chroot specified; aborting...\n");
+ exit(1);
+ }
+}
+
+static void
+sendResult(bool state, uint32_t res)
+{
+ if (state) {
+ static uint8_t ONE = 1;
+ Ewrite(1, &ONE, sizeof ONE);
+ }
+ else {
+ static uint8_t ZERO = 0;
+ Ewrite(1, &ZERO, sizeof ZERO);
+ }
+
+ Ewrite(1, &res, sizeof res);
+}
+
+static void
+do_getpwnam()
+{
+ uint32_t len;
+
+ if (EreadAll(0, &len, sizeof len) &&
+ len<MAX_RQSIZE) {
+ char buf[len+1];
+ struct passwd * res = 0;
+
+ if (EreadAll(0, buf, len)) {
+ buf[len] = '\0';
+ res = getpwnam(buf);
+ }
+
+ if (res!=0) sendResult(true, res->pw_uid);
+ else sendResult(false, -1);
+ }
+ // TODO: logging
+}
+
+static void
+do_getgrnam()
+{
+ uint32_t len;
+
+ if (EreadAll(0, &len, sizeof len) &&
+ len<MAX_RQSIZE) {
+ char buf[len+1];
+ struct group * res = 0;
+
+ if (EreadAll(0, buf, len)) {
+ buf[len] = '\0';
+ res = getgrnam(buf);
+ }
+
+ if (res!=0) sendResult(true, res->gr_gid);
+ else sendResult(false, -1);
+ }
+ // TODO: logging
+}
+
+static void
+do_closenss()
+{
+ uint8_t what;
+
+ if (EreadAll(0, &what, sizeof what)) {
+ switch (what) {
+ case 'p' : endpwent(); break;
+ case 'g' : endgrent(); break;
+ default : break;
+ }
+ }
+}
+
+static void
+run()
+{
+ uint8_t c;
+
+ while (EwriteAll(3, ".", 1),
+ EreadAll (0, &c, sizeof c)) {
+ switch (c) {
+ case 'P' : do_getpwnam(); break;
+ case 'G' : do_getgrnam(); break;
+ case 'Q' : exit(0);
+ case 'C' : do_closenss(); break;
+ case '.' : Ewrite(1, ".", 1); break;
+ default : Ewrite(1, "?", 1); break;
+ }
+ }
+}
+
+static void
+daemonize(struct ArgInfo const UNUSED * args, int pid_fd)
+{
+ int p[2];
+ pid_t pid;
+ char c;
+
+ Epipe(p);
+ pid = Efork();
+
+ if (pid!=0) {
+ if (pid_fd!=-1) {
+ char buf[sizeof(id_t)*3 + 2];
+ size_t l;
+
+ l = utilvserver_fmt_uint(buf, pid);
+ Ewrite(pid_fd, buf, l);
+ Ewrite(pid_fd, "\n", 1);
+ }
+ _exit(0);
+ }
+ Eclose(p[1]);
+ TEMP_FAILURE_RETRY(read(p[0], &c, 1));
+ Eclose(p[0]);
+}
+
+static void
+activateContext(xid_t xid, bool in_ctx,
+ uint32_t xid_caps, int xid_flags)
+{
+ if (in_ctx) {
+ struct vc_ctx_flags flags = {
+ .flagword = 0,
+ .mask = VC_VXF_STATE_SETUP,
+ };
+
+ Evc_set_cflags(xid, &flags);
+ }
+ else if (vc_isSupported(vcFEATURE_MIGRATE))
+ Evc_ctx_migrate(xid);
+ else {
+#ifdef VC_ENABLE_API_COMPAT
+ Evc_new_s_context(xid, xid_caps, xid_flags);
+#else
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "can not change context: migrate kernel feature missing and 'compat' API disabled\n");
+ exit(wrapper_exit_code);
+#endif
+ }
+}
+
+int main(int argc, char * argv[])
+{
+ struct ArgInfo args = {
+ .ctx = VC_DYNAMIC_XID,
+ .uid = 99,
+ .gid = 99,
+ .do_fork = true,
+ .pid_file = 0,
+ .chroot = 0,
+ .in_ctx = false,
+ .flags = S_CTX_INFO_LOCK,
+ };
+ int pid_fd = -1;
+
+#ifndef __dietlibc__
+# warning *** rpm-fake-resolver is built against glibc; please do not report errors before trying a dietlibc version ***
+ WRITE_MSG(2,
+ "*** rpm-fake-resolver was built with glibc; please do ***\n"
+ "*** not report errors before trying a dietlibc version. ***\n");
+#endif
+
+ parseArgs(&args, argc, argv);
+ if (args.pid_file && args.do_fork)
+ pid_fd = EopenD(args.pid_file, O_CREAT|O_WRONLY, 0644);
+
+ if (args.chroot) Echroot(args.chroot);
+ Echdir("/");
+
+ activateContext(args.ctx, args.in_ctx, args.caps, args.flags);
+ Esetgroups(0, &args.gid);
+ Esetgid(args.gid);
+ Esetuid(args.uid);
+
+ if (args.do_fork) daemonize(&args, pid_fd);
+ if (pid_fd!=-1) close(pid_fd);
+ run();
+}
--- /dev/null
+// $Id: rpm-fake.c,v 1.32 2005/07/03 12:26:28 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+//
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "pathconfig.h"
+#include "util.h"
+
+#include <lib/vserver.h>
+#include <lib/internal.h>
+#include <lib_internal/sys_clone.h>
+
+#include <sys/socket.h>
+#include <dlfcn.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <asm/unistd.h>
+#include <string.h>
+#include <stdbool.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdarg.h>
+#include <sys/mount.h>
+#include <linux/fs.h>
+#include <sched.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/un.h>
+#include <fcntl.h>
+#include <pwd.h>
+#include <grp.h>
+
+
+ // from selinux.h
+ // FIXME: add configure autodetection and include <selinux.h> directly
+int rpm_execcon(unsigned int verified,
+ const char *filename,
+ char *const argv[], char *const envp[]);
+
+
+#define ENSC_WRAPPERS_PREFIX "rpm-fake.so: "
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
+
+#undef _POSIX_SOURCE
+#include "capability-compat.h"
+
+#ifndef CLONE_NEWNS
+# define CLONE_NEWNS 0x00020000
+#endif
+
+#define LIBNAME "rpm-fake.so"
+#define PLATFORM_FILE "/etc/rpm/platform"
+
+#define INIT(FILE,FUNC) FUNC##_func = ((__typeof__(FUNC) *) (xdlsym(FILE, #FUNC)))
+#define DECLARE(FUNC) static __typeof__(FUNC) * FUNC##_func = 0
+
+#define DEBUG 1
+
+#define DBG_INIT 0x0001
+#define DBG_VARIABLES 0x0002
+#define DBG_RESOLVER 0x0004
+#define DBG_EXECV 0x0008
+#define DBG_ENV 0x0010
+#define DBG_VERBOSE0 0x8000
+#define DBG_VERBOSE1 (0x4000 | DBG_VERBOSE0)
+#define DBG_VERBOSE2 (0x2000 | DBG_VERBOSE1)
+
+int wrapper_exit_code = 255;
+
+static xid_t ctx = VC_NOCTX;
+static uint32_t caps = ~0;
+static int flags = 0;
+static char const * mnts = 0;
+static char const * root = 0;
+static int pw_sock = -1;
+static int sync_sock = -1;
+static unsigned int debug_level = 0;
+
+static bool is_initialized = false;
+
+ //DECLARE(rpm_execcon);
+ //DECLARE(execv);
+DECLARE(getpwnam);
+DECLARE(getgrnam);
+DECLARE(endpwent);
+DECLARE(endgrent);
+
+static void initRPMFake() __attribute__((__constructor__));
+static void exitRPMFake() __attribute__((__destructor__));
+
+static inline bool
+isDbgLevel(unsigned int level)
+{
+ return ((debug_level&level)==level);
+}
+
+static void *
+xdlsym(void *handle, const char *symbol)
+{
+ void *res = dlsym(handle, symbol);
+ if (res==0) {
+ char const *error = dlerror();
+ Vwrite(2, symbol, strlen(symbol));
+ Vwrite(2, ": ", 2);
+ Vwrite(2, error, strlen(error));
+ Vwrite(2, "\n", 2);
+
+ _exit(255);
+ }
+
+ return res;
+}
+
+static void
+showHelp()
+{
+ WRITE_MSG(1,
+ "Usage: LD_PRELOAD=" LIBNAME " <executable> <args>*\n\n"
+ LIBNAME " unterstands the following environment variables:\n"
+ " $RPM_FAKE_RESOLVER ... program which does the NSS resolving (defaults\n"
+ " to " RESOLVER_PROG ")\n"
+ " $RPM_FAKE_RESOLVER_UID ... uid of the resolver program\n"
+ " $RPM_FAKE_RESOLVER_GID ... gid of the resolver program\n"
+ " $RPM_FAKE_CTX ... vserver context which shall be used for resolver\n"
+ " and scriptlets\n"
+ " $RPM_FAKE_CAP ... linux capability remove-mask for the context\n"
+ " $RPM_FAKE_FLAGS ... vserver flags of the context\n"
+ " $RPM_FAKE_CHROOT ... directory of the chroot environment\n"
+ " $RPM_FAKE_NAMESPACE_MOUNTS\n"
+ " ... colon separated list of directories which will\n"
+ " umounted before scriptlet execution\n\n"
+ " $RPM_FAKE_HELP ... shows this message\n"
+ " $RPM_FAKE_VERSION ... shows the version of this program\n\n"
+ " $RPM_FAKE_DEBUG ... sets the debuglevel bitmask\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(0);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ LIBNAME " " VERSION " -- wrapper around rpm\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static void
+unsetPreloadEnv()
+{
+ char *env = getenv("LD_PRELOAD");
+ char *pos;
+
+ // the const <-> non-const assignment is not an issue since the following
+ // modifying operations will not be executed in the const-case
+ env = env ? env : "";
+ pos = strstr(env, LIBNAME);
+
+ if (pos!=0) {
+ char *end_pos = pos + sizeof(LIBNAME);
+ bool is_end = (end_pos[-1]=='\0');
+ char *start_pos;
+
+ end_pos[-1] = '\0';
+ start_pos = strrchr(env, ':');
+ if (start_pos==0) start_pos = env;
+ else if (!is_end) ++start_pos;
+
+ if (is_end) *start_pos = '\0';
+ else memmove(start_pos, end_pos, strlen(end_pos)+1);
+ }
+
+#ifdef DEBUG
+ if (isDbgLevel(DBG_VERBOSE1|DBG_VARIABLES)) {
+ WRITE_MSG(2, "env='");
+ WRITE_STR(2, env);
+ WRITE_MSG(2, "'\n");
+ }
+#endif
+
+ if (*env=='\0') unsetenv("LD_PRELOAD");
+}
+
+static void
+clearEnv()
+{
+ if (isDbgLevel(DBG_ENV)) WRITE_MSG(2, "clearEnv()\n");
+
+ unsetenv("RPM_FAKE_S_CONTEXT_REV");
+ unsetenv("RPM_FAKE_S_CONTEXT_NR");
+ unsetenv("RPM_FAKE_CTX");
+ unsetenv("RPM_FAKE_FLAGS");
+ unsetenv("RPM_FAKE_CHROOT");
+ unsetenv("RPM_FAKE_NAMESPACE_MOUNTS");
+
+ unsetenv("RPM_FAKE_RESOLVER_GID");
+ unsetenv("RPM_FAKE_RESOLVER_UID");
+ unsetenv("RPM_FAKE_RESOLVER");
+ unsetenv("RPM_FAKE_PWSOCKET");
+
+ unsetenv("RPM_FAKE_DEBUG");
+
+ unsetPreloadEnv();
+}
+
+static int
+getDefaultEnv(char const *key, int dflt)
+{
+ char *env = getenv(key);
+ int res;
+
+ if (env==0 || env[0]=='\0') res = dflt;
+ else res = atoi(env);
+
+ return res;
+}
+
+ /// \returns true iff we are in ctx after leaving this function
+static bool
+setupContext(xid_t xid, char const **xid_str)
+{
+ bool res = false;
+
+ if (vc_isSupported(vcFEATURE_MIGRATE)) {
+ xid_t rc=VC_NOCTX;
+
+ if ((xid==VC_DYNAMIC_XID || !vc_is_dynamic_xid(xid)) &&
+ (rc=vc_ctx_create(xid))==VC_NOCTX &&
+ errno!=EEXIST) {
+ perror(ENSC_WRAPPERS_PREFIX "vc_create_context()");
+ exit(255);
+ }
+
+ if (rc!=VC_NOCTX) {
+ char buf[sizeof(xid_t)*3 + 128];
+ size_t l;
+ struct vc_ctx_caps caps;
+
+ strcpy(buf, "rpm-fake.so #");
+ l = utilvserver_fmt_uint(buf+sizeof("rpm-fake.so #")-1, getppid());
+ Evc_set_vhi_name(rc, vcVHI_CONTEXT, buf, sizeof("rpm-fake.so #")+l-1);
+
+ caps.ccaps = 0ull;
+ caps.cmask = ~0ull;
+ caps.bcaps = ~vc_get_insecurebcaps();
+ caps.bmask = ~0ull;
+ Evc_set_ccaps(rc, &caps);
+
+ // context will be activated later...
+
+ xid = rc;
+ res = true;
+ }
+ }
+
+ if (xid==VC_DYNAMIC_XID)
+ *xid_str = 0;
+ else {
+ char buf[sizeof(xid_t)*3 + 2];
+ size_t l;
+
+ l = utilvserver_fmt_uint(buf, xid); buf[l] = '\0';
+ *xid_str = strdup(buf);
+ }
+
+ Ewrite(3, &xid, sizeof xid);
+ return res;
+}
+
+#if 0
+static void
+initPwSocket()
+{
+ char const * sock_name = getenv("RPM_FAKE_PWSOCKET");
+ if (sock_name!=0) {
+ int flag;
+ struct sockaddr_un addr = {
+ .sun_family = AF_UNIX,
+ };
+
+ strncpy(addr.sun_path, sock_name, sizeof(addr.sun_path)-1);
+ addr.sun_path[sizeof(addr.sun_path)-1]='\0';
+
+ if ((pw_sock=socket(AF_UNIX, SOCK_STREAM, 0))==-1 ||
+ connect(pw_sock, (struct sockaddr *)(&addr), sizeof addr)==-1 ||
+ (flag=fcntl(pw_sock, F_GETFD))==-1 ||
+ fcntl(pw_sock, F_SETFD, flag | FD_CLOEXEC)==-1) {
+ perror(ENSC_WRAPPERS_PREFIX "error while initializing pw-socket");
+ exit(255);
+ }
+ }
+}
+#else
+static void
+initPwSocket()
+{
+ char const * resolver = getenv("RPM_FAKE_RESOLVER");
+ if (resolver==0) resolver=RESOLVER_PROG;
+
+ if (resolver!=0 && *resolver!='\0') {
+ int res_sock[2];
+ int sync_pipe[2];
+ pid_t pid;
+ char const * uid=0;
+ char const * gid=0;
+
+ uid=getenv("RPM_FAKE_RESOLVER_UID");
+ gid=getenv("RPM_FAKE_RESOLVER_GID");
+
+ if (socketpair(AF_UNIX, SOCK_STREAM, 0, res_sock)==-1 ||
+ pipe(sync_pipe)==-1 ||
+ fcntl(res_sock[0], F_SETFD, FD_CLOEXEC)==-1 ||
+ fcntl(sync_pipe[0], F_SETFD, FD_CLOEXEC)==-1) {
+ perror(ENSC_WRAPPERS_PREFIX "failed to create/initialize resolver-socket or pipe");
+ exit(255);
+ }
+
+ pid = fork();
+ if (pid==-1) {
+ perror(ENSC_WRAPPERS_PREFIX "fork()");
+ exit(255);
+ }
+
+ if (pid==0) {
+ char const *args[20];
+ char const **ptr = args;
+ char const *env[] = { "HOME=/", "PATH=/bin:/usr/bin", 0 };
+ char const *xid_str;
+ char flag_str[ sizeof(flags)*3 + 2];
+ char caps_str[ sizeof(caps)*3 + 2];
+
+ clearEnv();
+
+ setsid();
+ dup2(res_sock[1], 0);
+ dup2(res_sock[1], 1);
+ if (sync_pipe[1]!=3) {
+ close(3);
+ dup2(sync_pipe[1], 3);
+ close(sync_pipe[1]);
+ }
+ close(res_sock[1]);
+ /* ... *socket[0] are marked as close-on-exec ...*/
+
+ flag_str[utilvserver_fmt_uint(flag_str, flags)] = '\0';
+ caps_str[utilvserver_fmt_uint(caps_str, caps)] = '\0';
+
+ *ptr++ = resolver;
+ *ptr++ = "-F"; *ptr++ = flag_str;
+ *ptr++ = "-C"; *ptr++ = caps_str;
+ if (root) { *ptr++ = "-r"; *ptr++ = "."; }
+ if (uid) { *ptr++ = "-u"; *ptr++ = uid; }
+ if (gid) { *ptr++ = "-g"; *ptr++ = gid; }
+
+ if (root) Echdir(root);
+
+ if (setupContext(ctx, &xid_str)) { *ptr++ = "-s"; }
+ else if (xid_str) { *ptr++ = "-c"; *ptr++ = xid_str; }
+
+ *ptr++ = 0;
+ execve(resolver, (char **)args, (char **)env);
+ perror(ENSC_WRAPPERS_PREFIX "failed to exec resolver");
+ exit(255);
+ }
+ else {
+ uint8_t c;
+
+ close(res_sock[1]);
+ close(sync_pipe[1]);
+ pw_sock = res_sock[0];
+ sync_sock = sync_pipe[0];
+
+ if (read(sync_sock, &ctx, sizeof ctx)!=sizeof(ctx) ||
+ read(sync_sock, &c, 1)!=1 ||
+ write(pw_sock, ".", 1)!=1 ||
+ read(pw_sock, &c, 1)!=1 ||
+ c!='.') {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "failed to initialize communication with resolver\n");
+ exit(255);
+ }
+
+ if (wait4(pid, 0, WNOHANG,0)==-1) {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX" unexpected initialization-error of resolver\n");
+ exit(255);
+ }
+ }
+ }
+}
+#endif
+
+static void
+reduceCapabilities()
+{
+ struct __user_cap_header_struct header;
+ struct __user_cap_data_struct user;
+
+ header.version = _LINUX_CAPABILITY_VERSION;
+ header.pid = 0;
+
+ if (capget(&header, &user)==-1) {
+ perror("capget()");
+ exit(wrapper_exit_code);
+ }
+
+ user.effective &= ~(1<<CAP_MKNOD);
+ user.permitted &= ~(1<<CAP_MKNOD);
+ user.inheritable &= ~(1<<CAP_MKNOD);
+
+ if (capset(&header, &user)==-1) {
+ perror("capset()");
+ exit(wrapper_exit_code);
+ }
+}
+
+static void
+initEnvironment()
+{
+ int syscall_rev;
+ int syscall_nr;
+
+ if (is_initialized) return;
+
+ syscall_rev = getDefaultEnv("RPM_FAKE_S_CONTEXT_REV", 0);
+ syscall_nr = getDefaultEnv("RPM_FAKE_S_CONTEXT_NR", 273);
+
+#ifdef VC_ENABLE_API_LEGACY
+ {
+ extern void vc_init_internal_legacy(int ctx_rev, int ctx_number,
+ int ipv4_rev, int ipv4_number);
+
+ vc_init_internal_legacy(syscall_rev, syscall_nr, 3, 274);
+ }
+#endif
+
+ ctx = getDefaultEnv("RPM_FAKE_CTX", VC_DYNAMIC_XID);
+ caps = getDefaultEnv("RPM_FAKE_CAP", ~0x3404040f);
+ flags = getDefaultEnv("RPM_FAKE_FLAGS", 0);
+ root = getenv("RPM_FAKE_CHROOT");
+ mnts = getenv("RPM_FAKE_NAMESPACE_MOUNTS");
+ if (mnts && *mnts) mnts = strdup(mnts);
+ else mnts = 0;
+
+#if DEBUG
+ if (isDbgLevel(DBG_VERBOSE1))
+ dprintf(2, "ctx=%u, caps=%016x, flags=%016x,\nroot='%s',\nmnts='%s'\n",
+ ctx, caps, flags, root, mnts);
+#endif
+
+ is_initialized = true;
+}
+
+static void
+initSymbols()
+{
+ //INIT(RTLD_NEXT, rpm_execcon);
+ //INIT(RTLD_NEXT, execv);
+ INIT(RTLD_NEXT, getgrnam);
+ INIT(RTLD_NEXT, getpwnam);
+ INIT(RTLD_NEXT, endpwent);
+ INIT(RTLD_NEXT, endgrent);
+}
+
+void
+initRPMFake()
+{
+ if (getenv("RPM_FAKE_VERSION")) showVersion();
+ if (getenv("RPM_FAKE_HELP")) showHelp();
+
+ debug_level = getDefaultEnv("RPM_FAKE_DEBUG", 0);
+
+ if (isDbgLevel(DBG_INIT)) WRITE_MSG(2, ">>>>> initRPMFake <<<<<\n");
+
+ reduceCapabilities();
+ initSymbols();
+ initEnvironment();
+ initPwSocket();
+
+#if 0
+ if (isDbgLevel(DBG_VARIABLES|DBG_VERBOSE2)) {
+
+ }
+#endif
+}
+
+void
+exitRPMFake()
+{
+ if (isDbgLevel(DBG_INIT)) WRITE_MSG(2, ">>>>> exitRPMFake <<<<<\n");
+ if (pw_sock!=-1) {
+ uint8_t c;
+ if (read(sync_sock, &c, 1)!=1) { /*...*/ }
+ if (write(pw_sock, "Q", 1)!=1) { /*...*/ }
+ }
+}
+
+
+ //============ the worker part ===========
+
+
+static bool
+doPwStringRequest(uint32_t *result, char style, char const *name)
+{
+ uint32_t len = strlen(name);
+ uint8_t code;
+ uint8_t c;
+
+ return (TEMP_FAILURE_RETRY(read (sync_sock, &c, 1))==1 &&
+ TEMP_FAILURE_RETRY(write(pw_sock, &style, 1))==1 &&
+ TEMP_FAILURE_RETRY(write(pw_sock, &len, sizeof len))==sizeof(len) &&
+ TEMP_FAILURE_RETRY(write(pw_sock, name, len))==(ssize_t)(len) &&
+ TEMP_FAILURE_RETRY(read (pw_sock, &code, sizeof code))==sizeof(code) &&
+ TEMP_FAILURE_RETRY(read (pw_sock, result, sizeof *result))==sizeof(*result) &&
+ code!=0);
+}
+
+struct passwd *
+getpwnam(const char * name)
+{
+ if (pw_sock==-1) return getpwnam_func(name);
+ else {
+ uint32_t id;
+ static struct passwd res = {
+ .pw_passwd = "*",
+ .pw_gid = -1,
+ .pw_gecos = "",
+ .pw_dir = "/",
+ .pw_shell = "/bin/false"
+ };
+
+ res.pw_name = (char *)(name);
+ if (!doPwStringRequest(&id, 'P', name)) return 0;
+ res.pw_uid = id;
+
+ return &res;
+ }
+}
+
+struct group *
+getgrnam(const char * name)
+{
+ if (pw_sock==-1) return getgrnam_func(name);
+ else {
+ uint32_t id;
+ static struct group res = {
+ .gr_passwd = "*",
+ .gr_mem = 0
+ };
+
+ res.gr_name = (char *)(name);
+ if (!doPwStringRequest(&id, 'G', name)) return 0;
+ res.gr_gid = id;
+
+ return &res;
+ }
+}
+
+void
+endgrent()
+{
+ if (pw_sock==-1) endgrent_func();
+ TEMP_FAILURE_RETRY(write(pw_sock, "Cg", 2));
+}
+
+void
+endpwent()
+{
+ if (pw_sock==-1) endpwent_func();
+ TEMP_FAILURE_RETRY(write(pw_sock, "Cp", 2));
+}
+
+
+static int
+execvWorker(char const *path, char * const argv[], char * const envp[])
+{
+ int res = -1;
+
+ if (vc_isSupported(vcFEATURE_MIGRATE))
+ res = vc_ctx_migrate(ctx);
+ else {
+#ifdef VC_ENABLE_API_COMPAT
+ res = vc_new_s_context(ctx,caps,flags);
+#else
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "can not change context: migrate kernel feature missing and 'compat' API disabled\n");
+#endif
+ }
+
+ clearEnv();
+
+ if (res!=-1)
+ res=execve(path, argv, envp);
+
+ return res;
+}
+
+struct ExecvParams
+{
+ char const * path;
+ char * const * argv;
+ char * const * envp;
+ char const * mnts;
+};
+
+static int
+removeNamespaceMountsChild(struct ExecvParams const *params)
+{
+ char buf[strlen(params->mnts)+1], *ptr;
+
+ strcpy(buf, params->mnts);
+ ptr = strtok(buf, ":");
+ while (ptr) {
+ if (umount2(ptr, 0)==-1) {
+ // FIXME: What is the semantic for CLONE_NEWNS? Is it ok that mounts in
+ // chroots are visible only, when chroot is on /dev/root?
+ //
+ // For now, ignore any errors, but future versions should handle them.
+
+ //return -1;
+ }
+ ptr = strtok(0, ":");
+ }
+
+ return execvWorker(params->path, params->argv, params->envp);
+}
+
+static int
+removeNamespaceMounts(char const *path,
+ char * const argv[], char * const envp[])
+{
+ if (mnts==0) return execvWorker(path, argv, envp);
+
+ {
+ int status;
+ pid_t p, pid;
+ struct ExecvParams params;
+
+ params.path = path;
+ params.argv = argv;
+ params.envp = envp;
+ params.mnts = mnts;
+
+ // the rpmlib signal-handler is still active; use the default one to
+ // make wait4() working...
+ signal(SIGCHLD, SIG_DFL);
+
+#ifdef NDEBUG
+ pid = sys_clone(CLONE_NEWNS|SIGCHLD|CLONE_VFORK, 0);
+#else
+ pid = sys_clone(CLONE_NEWNS|SIGCHLD, 0);
+#endif
+
+ switch (pid) {
+ case -1 : return -1;
+ case 0 : _exit(removeNamespaceMountsChild(¶ms));
+ default : break;
+ }
+
+ while ((p=wait4(pid, &status, 0,0))==-1 &&
+ (errno==EINTR || errno==EAGAIN)) ;
+
+ if (p==-1) return -1;
+
+ if (WIFEXITED(status)) _exit(WEXITSTATUS(status));
+ if (WIFSIGNALED(status)) kill(getpid(), WTERMSIG(status));
+
+ return -1;
+ }
+}
+
+
+int
+execv(char const *path, char * const argv[])
+{
+ extern char **environ;
+
+ if (isDbgLevel(DBG_EXECV)) {
+ WRITE_MSG(2, "execv('");
+ WRITE_STR(2, path);
+ WRITE_MSG(2, "', ...)\n");
+ }
+
+ return removeNamespaceMounts(path, argv, environ);
+}
+
+int
+rpm_execcon(unsigned int UNUSED verified,
+ const char *filename,
+ char *const argv[], char *const envp[])
+{
+ if (isDbgLevel(DBG_EXECV)) {
+ WRITE_MSG(2, "rpm_execcon(..., '");
+ WRITE_STR(2, filename);
+ WRITE_MSG(2, "', ...)\n");
+ }
+
+ return removeNamespaceMounts(filename, argv, envp);
+}
+
+int
+is_selinux_enabled()
+{
+ return 0;
+}
--- /dev/null
+// $Id: save_ctxinfo.c,v 1.16 2005/02/15 18:04:11 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+// Saves current ctx + vserver-info into 'argv[1] + /run' which must be a dead
+// symlink
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "pathconfig.h"
+#include "vserver.h"
+#include "internal.h"
+#include "util.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <limits.h>
+#include <errno.h>
+
+#define ENSC_WRAPPERS_PREFIX "save_ctxinfo: "
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_FCNTL 1
+#include <wrappers.h>
+
+int wrapper_exit_code = 255;
+
+inline static void
+checkParams(int argc, char UNUSED * argv[])
+{
+ if (argc<3) {
+ WRITE_MSG(2, "Usage: save_ctxinfo <VSERVER_DIR> <cmd> <args>*\n");
+ exit(255);
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ char runfile[(checkParams(argc,argv),strlen(argv[1])) + sizeof(DEFAULT_PKGSTATEREVDIR "/99999")];
+ char dstfile[PATH_MAX];
+ int fd;
+ char buf[sizeof(int)*3+2];
+ xid_t ctx;
+ ssize_t len;
+ ssize_t len1 = strlen(argv[1]);
+
+ strcpy(runfile, argv[1]);
+ strcpy(runfile+len1, "/run");
+
+ ctx=Evc_get_task_xid(0);
+
+ if (ctx==0) {
+ WRITE_MSG(2, "save_ctxinfo: Can not operate in context 0\n");
+ return 255;
+ }
+
+ if (reinterpret_cast(unsigned int)(ctx)>99999) {
+ WRITE_MSG(2, "save_ctxinfo: unexpected context\n");
+ return 255;
+ }
+
+ len = EreadlinkD(runfile, dstfile, sizeof(dstfile)-1);
+ dstfile[len] = '\0';
+ len = utilvserver_fmt_uint(buf, ctx);
+
+ fd = EopenD(dstfile, O_EXCL|O_CREAT|O_WRONLY, 0644);
+ if (write(fd, buf, len) !=len ||
+ write(fd, "\n", 1) !=1) {
+ perror("save_ctxinfo: write()");
+ return -1;
+ }
+ Eclose(fd);
+
+ strcpy(runfile, DEFAULT_PKGSTATEREVDIR "/");
+ strncat(runfile, buf, len);
+ unlink(runfile);
+ EsymlinkD(argv[1], runfile);
+
+ Eexecv(argv[2], argv+2);
+}
--- /dev/null
+// $Id: secure-mount.c,v 1.24 2005/03/24 12:45:06 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+ // secure-mount <general mount(8) options> [--chroot]
+ // [--mtab <mtabfile>] [--fstab <fstabfile>]
+ //
+ // Executes mount-operations under the current directory: it assumes sources
+ // in the current root-dir while destinations are expected in the chroot
+ // environment.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include "pathconfig.h"
+
+#include <lib/internal.h>
+
+#include <getopt.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/file.h>
+#include <linux/fs.h>
+#include <assert.h>
+#include <ctype.h>
+#include <sys/wait.h>
+#include <libgen.h>
+#include <signal.h>
+
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
+
+#define MNTPOINT "/etc"
+
+typedef enum { rfsYES, rfsNO, rfsONLY } RootFsOption;
+
+struct MountInfo {
+ char const * src;
+ char const * dst;
+ char const * type;
+ unsigned long flag;
+ unsigned long xflag;
+ unsigned long mask;
+ char * data;
+};
+
+struct Options {
+ char const * mtab;
+ char const * fstab;
+ bool do_chroot;
+ bool ignore_mtab;
+ bool mount_all;
+ RootFsOption rootfs;
+
+ int cur_dir_fd;
+ int cur_rootdir_fd;
+};
+
+#define OPTION_BIND 1024
+#define OPTION_MOVE 1025
+#define OPTION_MTAB 1026
+#define OPTION_FSTAB 1027
+#define OPTION_CHROOT 1028
+#define OPTION_SECURE 1029
+#define OPTION_RBIND 1030
+#define OPTION_ROOTFS 1031
+
+#define XFLAG_NOAUTO 0x01
+
+static struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, 'h' },
+ { "version", no_argument, 0, 'v' },
+ { "bind", no_argument, 0, OPTION_BIND },
+ { "move", no_argument, 0, OPTION_MOVE },
+ { "mtab", required_argument, 0, OPTION_MTAB },
+ { "fstab", required_argument, 0, OPTION_FSTAB },
+ { "rootfs", required_argument, 0, OPTION_ROOTFS },
+ { "chroot", no_argument, 0, OPTION_CHROOT },
+ { "secure", no_argument, 0, OPTION_SECURE },
+ { "rbind", no_argument, 0, OPTION_RBIND },
+ { 0, 0, 0, 0 }
+};
+
+#ifndef MS_REC
+# define MS_REC 0x4000
+#endif
+
+static struct FstabOption {
+ char const * const opt;
+ unsigned long const flag;
+ unsigned long const mask;
+ unsigned long const xflag;
+ bool const is_dflt;
+} const FSTAB_OPTIONS[] = {
+ { "defaults", 0, (MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|
+ MS_SYNCHRONOUS), 0, false },
+ { "rbind", MS_BIND|MS_REC, MS_BIND|MS_REC, 0, false },
+ { "bind", MS_BIND, MS_BIND, 0, false },
+ { "move", MS_MOVE, MS_MOVE, 0, false },
+ { "async", 0, MS_SYNCHRONOUS, 0, false },
+ { "sync", MS_SYNCHRONOUS, MS_SYNCHRONOUS, 0, false },
+ { "atime", 0, MS_NOATIME, 0, false },
+ { "noatime", MS_NOATIME, MS_NOATIME, 0, false },
+ { "dev", 0, MS_NODEV, 0, false },
+ { "nodev", MS_NODEV, MS_NODEV, 0, false },
+ { "exec", 0, MS_NOEXEC, 0, false },
+ { "noexec", MS_NOEXEC, MS_NOEXEC, 0, false },
+ { "suid", 0, MS_NOSUID, 0, false },
+ { "nosuid", MS_NOSUID, MS_NOSUID, 0, false },
+ { "ro", MS_RDONLY, MS_RDONLY, 0, false },
+ { "rw", 0, MS_RDONLY, 0, false },
+
+ { "remount", MS_REMOUNT, MS_REMOUNT, 0, false },
+ { "users", MS_NOEXEC|MS_NOSUID|MS_NODEV,
+ MS_NOEXEC|MS_NOSUID|MS_NODEV, 0, false },
+ { "mandlock", MS_MANDLOCK, MS_MANDLOCK, 0, false },
+ { "nodiratime", MS_NODIRATIME, MS_NODIRATIME, 0, false },
+#ifdef MS_DIRSYNC
+ { "dirsync", MS_DIRSYNC, MS_DIRSYNC, 0, false },
+#endif
+ { "_netdev", 0, 0, 0, false },
+ { "auto", 0, 0, 0, false },
+ { "noauto", 0, 0, XFLAG_NOAUTO, false },
+ { "user", 0, 0, 0, false },
+ { "nouser", 0, 0, 0, false },
+};
+
+int wrapper_exit_code = 1;
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ VSERVER_DECLARE_CMD(cmd);
+
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [--help] [--version] [--bind] [--move] [--rbind] [-t <type>] [--chroot]\n"
+ " [--mtab <filename>] [--fstab <filename>] [--rootfs yes|no|only]\n"
+ " [-n] -a|([-o <options>] [--] <src> <dst>)\n\n"
+ "Executes mount-operations under the current directory: it assumes sources in\n"
+ "the current root-dir while destinations are expected in the chroot environment.\n\n"
+ "For non-trivial mount-operations it uses the external 'mount' program which\n"
+ "can be overridden by the $MOUNT environment variable.\n\n"
+ "Options:\n"
+ " --bind|move|rbind ... set the correspond flags; with this options\n"
+ " the mount will be executed internally without\n"
+ " calling an external mount program.\n"
+ " -t <type> ... assume the given filesystem type\n"
+ " -o <options> ... set additional options; see mount(2) for details\n"
+ " -n ... do not update the mtab-file\n"
+ " --mtab <filename> ... use <filename> as an alternative mtab file\n"
+ " [default: /etc/mtab]\n"
+ " --chroot ... chroot into the current directory before\n"
+ " mounting the filesystem\n"
+ " --fstab <filename> ... use <filename> as an alternative fstab file;\n"
+ " this option has an effect only with the '-a'\n"
+ " option [default: /etc/fstab]\n"
+ " --rootfs yes|no|only ... specifies how to handle an entry for a rootfs\n"
+ " ('/') when processing an fstab file. 'yes' will\n"
+ " mount it among the other entries, 'only' will\n"
+ " mount only the rootfs entry, and 'no' will ignore\n"
+ " it and mount only the other entries [default: yes]\n"
+ " -a ... mount everything listed in the fstab-file\n\n"
+ " <src> ... the source-filesystem; this path is absolute\n"
+ " to the current root-filesystem. Only valid\n"
+ " without the '-a' option.\n"
+ " <dst> ... the destination mount-point; when used with\n"
+ " '--chroot', this path is relative to the current\n"
+ " directory. Only valid without the '-a' option\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "secure-mount " VERSION " -- secure mounting of directories\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+inline static bool
+isSameObject(struct stat const *lhs,
+ struct stat const *rhs)
+{
+ return (lhs->st_dev==rhs->st_dev &&
+ lhs->st_ino==rhs->st_ino);
+}
+
+static int
+fchroot(int fd)
+{
+ if (fchdir(fd)==-1 || chroot(".")==-1) return -1;
+ return 0;
+}
+
+static int
+writeX(int fd, void const *buf, size_t len)
+{
+ if ((size_t)(write(fd, buf, len))!=len) return -1;
+ return 0;
+}
+
+static int
+writeStrX(int fd, char const *str)
+{
+ return writeX(fd, str, strlen(str));
+}
+
+static inline char const *
+getType(struct MountInfo const *mnt)
+{
+ if (mnt->type==0) return "none";
+ else if (strncmp(mnt->type, "ext", 3)==0) return "ufs";
+ else return mnt->type;
+}
+
+inline static void
+restoreRoot(struct Options const *opt)
+{
+ if (opt->do_chroot!=0 && fchroot(opt->cur_rootdir_fd)==-1) {
+ perror("secure-mount: fchdir(\"/\")");
+ WRITE_MSG(2, "Failed to restore root-directory; aborting\n");
+ exit(1);
+ }
+}
+
+static int
+updateMtab(struct MountInfo const *mnt, struct Options const *opt)
+{
+ int res = -1;
+ int fd;
+ assert(opt->mtab!=0);
+
+ if (opt->do_chroot && fchroot(opt->cur_dir_fd)==-1) {
+ perror("secure-mount: fchroot(\".\")");
+ return -1;
+ }
+
+ fd=open(opt->mtab, O_CREAT|O_APPEND|O_WRONLY, 0644);
+
+ if (fd==-1) {
+ perror("secure-mount: open(<mtab>)");
+ goto err0;
+ }
+
+ if (flock(fd, LOCK_EX)==-1) {
+ perror("secure-mount: flock()");
+ goto err1;
+ }
+
+ if (writeStrX(fd, mnt->src)==-1 ||
+ writeStrX(fd, " ")==-1 ||
+ writeStrX(fd, mnt->dst)==-1 ||
+ writeStrX(fd, " ")==-1 ||
+ writeStrX(fd, getType(mnt))==-1 ||
+ writeStrX(fd, " ")==-1 ||
+ writeStrX(fd, mnt->data ? mnt->data : "defaults")==-1 ||
+ writeStrX(fd, " 0 0\n")==-1) {
+ perror("secure-mount: write()");
+ goto err1;
+ }
+
+ res = 0;
+
+ err1: close(fd);
+ err0:
+ restoreRoot(opt);
+ return res;
+}
+
+static bool
+callExternalMount(struct MountInfo const *mnt)
+{
+ char const * argv[10];
+ size_t idx = 0;
+ pid_t pid;
+ int status;
+ char const * mount_prog = getenv("MOUNT");
+
+ if (mount_prog==0) mount_prog = MOUNT_PROG;
+
+ argv[idx++] = mount_prog;
+ argv[idx++] = "-n";
+ if (mnt->flag & MS_BIND) argv[idx++] = "--bind";
+ else if (mnt->flag & MS_MOVE) argv[idx++] = "--move";
+
+ argv[idx++] = "-o";
+ if (mnt->data && *mnt->data &&
+ strcmp(mnt->data, "defaults")!=0) {
+ if (mnt->mask & MS_NODEV)
+ argv[idx++] = mnt->data;
+ else {
+ char * tmp = alloca(strlen(mnt->data) + sizeof("nodev,"));
+ strcpy(tmp, "nodev,");
+ strcat(tmp, mnt->data);
+ argv[idx++] = tmp;
+ }
+ }
+ else
+ argv[idx++] = "nodev";
+
+ if (mnt->type) {
+ argv[idx++] = "-t";
+ argv[idx++] = mnt->type;
+ }
+
+ argv[idx++] = mnt->src;
+ argv[idx++] = ".";
+ argv[idx] = 0;
+
+ pid = fork();
+ if (pid==-1) {
+ perror("secure-mount: fork()");
+ return false;
+ }
+
+ if (pid==0) {
+ execv(mount_prog, const_cast(char **)(argv));
+ PERROR_Q("secure-mount: execv", mount_prog);
+ exit(1);
+ }
+
+ if (wait4(pid, &status, 0, 0)==-1) {
+ perror("secure-mount: wait4()");
+ return false;
+ }
+
+ return (WIFEXITED(status)) && (WEXITSTATUS(status)==0);
+}
+
+inline static bool
+secureChdir(char const *dir, struct Options const *opt)
+{
+ int dir_fd;
+ bool res = false;
+
+ if (opt->do_chroot!=0 && fchroot(opt->cur_dir_fd)==-1) {
+ perror("secure-mount: fchroot(\".\")");
+ return false;
+ }
+
+ if (chdir(dir)==-1) {
+ PERROR_Q("secure-mount: chdir", dir);
+ goto err;
+ }
+
+ dir_fd = open(".", O_RDONLY|O_DIRECTORY);
+ if (dir_fd==-1) {
+ perror("secure-mount: open(\".\")");
+ goto err;
+ }
+
+ restoreRoot(opt);
+ if (fchdir(dir_fd)==-1)
+ PERROR_Q("secure-mount: fchdir", dir);
+ else
+ res = true;
+
+ close(dir_fd);
+ return res;
+
+ err:
+ restoreRoot(opt);
+ return false;
+}
+
+static bool
+mountSingle(struct MountInfo const *mnt, struct Options const *opt)
+{
+ assert(mnt->dst!=0);
+
+ if (!secureChdir(mnt->dst, opt))
+ return false;
+
+ if (mnt->flag & (MS_BIND|MS_MOVE)) {
+ unsigned long flag = mnt->flag;
+ if ((flag & MS_NODEV)==0) flag |= MS_NODEV;
+
+ if (mount(mnt->src, ".",
+ mnt->type ? mnt->type : "",
+ flag, mnt->data)==-1) {
+ perror("secure-mount: mount()");
+ return false;
+ }
+ }
+ else if (!callExternalMount(mnt))
+ return false;
+
+ if (!opt->ignore_mtab &&
+ updateMtab(mnt, opt)==-1) {
+ WRITE_MSG(2, "Failed to update mtab-file\n");
+ // no error
+ }
+
+ return true;
+}
+
+static struct FstabOption const *
+searchOption(char const *opt, size_t len)
+{
+ struct FstabOption const * i;
+ for (i=FSTAB_OPTIONS+0; i<FSTAB_OPTIONS+DIM_OF(FSTAB_OPTIONS); ++i)
+ if (strncmp(i->opt, opt, len)==0) return i;
+
+ return 0;
+}
+
+static bool
+transformOptionList(struct MountInfo *info, size_t UNUSED *col)
+{
+ char const * ptr = info->data;
+
+ do {
+ char const * pos = strchr(ptr, ',');
+ struct FstabOption const * opt;
+
+ if (pos==0) pos = ptr+strlen(ptr);
+ opt = searchOption(ptr, pos-ptr);
+
+ if (opt!=0) {
+ info->flag &= ~opt->mask;
+ info->flag |= opt->flag;
+ info->mask |= opt->mask;
+ info->xflag |= opt->xflag;
+ }
+
+ if (*pos!='\0')
+ ptr = pos+1;
+ else
+ ptr = pos;
+
+ } while (*ptr!='\0');
+
+ return true;
+}
+
+#define MOVE_TO_NEXT_FIELD(PTR,ALLOW_EOL) \
+ while (!isspace(*PTR) && *PTR!='\0') ++PTR; \
+ if (col) *col = buf-start_buf+1; \
+ if (!(ALLOW_EOL) && *PTR=='\0') return prFAIL; \
+ *PTR++ = '\0'; \
+ while (isspace(*PTR)) ++PTR
+
+static enum {prDOIT, prFAIL, prIGNORE}
+ parseFstabLine(struct MountInfo *info, char *buf, size_t *col)
+{
+ char const * const start_buf = buf;
+ size_t err_col;
+
+ while (isspace(*buf)) ++buf;
+ if (*buf=='#' || *buf=='\0') return prIGNORE;
+
+ info->src = buf;
+ MOVE_TO_NEXT_FIELD(buf, false);
+ info->dst = buf;
+ MOVE_TO_NEXT_FIELD(buf, false);
+ info->type = buf;
+ MOVE_TO_NEXT_FIELD(buf, false);
+ err_col = buf-start_buf+1;
+ info->data = buf;
+ MOVE_TO_NEXT_FIELD(buf, true);
+
+ info->flag = MS_NODEV;
+ info->mask = 0;
+ info->xflag = 0;
+
+ if (strcmp(info->type, "swap") ==0) return prIGNORE;
+ else if (strcmp(info->type, "none") ==0) info->type = 0;
+ else if (strcmp(info->type, "devpts")==0) info->mask |= MS_NODEV;
+
+ if (col) *col = err_col;
+ if (!transformOptionList(info,col)) return prFAIL;
+ if (info->xflag & XFLAG_NOAUTO) return prIGNORE;
+
+ return prDOIT;
+}
+
+#undef MOVE_TO_NEXT_FIELD
+
+static void
+showFstabPosition(int fd, char const *fname, size_t line_nr, size_t col_nr)
+{
+ char buf[3*sizeof(line_nr)*2 + 4];
+ size_t len = utilvserver_fmt_uint(buf+1, line_nr)+1;
+
+ buf[0] = ':';
+ buf[len++] = ':';
+ len += utilvserver_fmt_uint(buf+len, col_nr);
+ WRITE_STR(fd, fname);
+ Vwrite(fd, buf, len);
+}
+
+
+static bool
+mountFstab(struct Options const *opt)
+{
+ bool res = false;
+ int fd;
+ off_t len;
+
+ assert(opt->fstab!=0);
+ fd = open(opt->fstab, O_RDONLY);
+ if (fd==-1) {
+ perror("secure-mount: open(<fstab>)");
+ goto err0;
+ }
+
+ len = lseek(fd, 0, SEEK_END);
+ if (len==-1 ||
+ lseek(fd, 0, SEEK_SET)==-1) {
+ perror("secure-mount: lseek(<fstab>)");
+ goto err1;
+ }
+
+ {
+ char buf[len+2];
+ char *ptr, *ptrptr;
+ size_t line_nr=0, col_nr;
+
+ if (read(fd, buf, len+1)!=len) {
+ perror("secure-mount: read()");
+ goto err1;
+ }
+ buf[len] = '#'; // workaround for broken dietlibc strtok_r()
+ // implementation
+ buf[len+1] = '\0';
+ ptrptr = buf;
+
+ while ((ptr=strsep(&ptrptr, "\n")) != 0) {
+ struct MountInfo mnt;
+ ++line_nr;
+
+ switch (parseFstabLine(&mnt, ptr, &col_nr)) {
+ case prFAIL :
+ showFstabPosition(2, opt->fstab, line_nr, col_nr);
+ WRITE_MSG(2, ": syntax error\n");
+ goto err1;
+
+ case prIGNORE : break;
+ case prDOIT : {
+ bool is_rootfs = (strcmp(mnt.dst, "/")==0);
+ Echdir("/");
+ if (( is_rootfs && opt->rootfs==rfsNO) ||
+ (!is_rootfs && opt->rootfs==rfsONLY)) { /* ignore the entry */ }
+ else if (!mountSingle(&mnt, opt)) {
+ showFstabPosition(2, opt->fstab, line_nr, 1);
+ WRITE_MSG(2, ": failed to mount fstab-entry\n");
+ }
+ break;
+ }
+ default :
+ assert(false);
+ }
+ }
+ }
+
+ res = true;
+
+ err1: close(fd);
+ err0: return res;
+}
+
+static void
+initFDs(struct Options *opt)
+{
+ opt->cur_dir_fd = Eopen(".", O_RDONLY|O_DIRECTORY, 0);
+ opt->cur_rootdir_fd = Eopen("/", O_RDONLY|O_DIRECTORY, 0);
+
+ Efcntl(opt->cur_dir_fd, F_SETFD, FD_CLOEXEC);
+ Efcntl(opt->cur_rootdir_fd, F_SETFD, FD_CLOEXEC);
+}
+
+static RootFsOption
+parseRootFS(char const *str)
+{
+ if (strcasecmp(str, "yes")==0) return rfsYES;
+ else if (strcasecmp(str, "no")==0) return rfsNO;
+ else if (strcasecmp(str, "only")==0) return rfsONLY;
+ else {
+ WRITE_MSG(2, "secure-mount: invalid option for '--rootfs': '");
+ WRITE_STR(2, str);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ struct MountInfo mnt = {
+ .src = 0,
+ .dst = 0,
+ .type = 0,
+ .flag = 0,
+ .xflag = 0,
+ .data = 0,
+ };
+
+ struct Options opt = {
+ .mtab = "/etc/mtab",
+ .fstab = "/etc/fstab",
+ .do_chroot = 0,
+ .ignore_mtab = false,
+ .mount_all = false,
+ .cur_dir_fd = -1,
+ .cur_rootdir_fd = -1,
+ .rootfs = rfsYES
+ };
+
+ while (1) {
+ int c = getopt_long(argc, argv, "ht:nao:", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case 'h' : showHelp(1, argv[0], 0);
+ case 'v' : showVersion();
+ case 't' : mnt.type = optarg; break;
+ case 'n' : opt.ignore_mtab = true; break;
+ case 'a' : opt.mount_all = true; break;
+ case 'o' : mnt.data = optarg; break;
+ case OPTION_RBIND : mnt.flag |= MS_REC; /*@fallthrough@*/
+ case OPTION_BIND : mnt.flag |= MS_BIND; break;
+ case OPTION_MOVE : mnt.flag |= MS_MOVE; break;
+ case OPTION_MTAB : opt.mtab = optarg; break;
+ case OPTION_FSTAB : opt.fstab = optarg; break;
+ case OPTION_CHROOT: opt.do_chroot = true; break;
+ case OPTION_ROOTFS: opt.rootfs = parseRootFS(optarg); break;
+ case OPTION_SECURE:
+ WRITE_MSG(2, "secure-mount: The '--secure' option is deprecated...\n");
+ break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+
+
+ if (opt.mount_all && optind<argc) {
+ WRITE_MSG(2, "Can not specify <src> and '-a' at the same time\n");
+ return EXIT_FAILURE;
+ }
+
+ initFDs(&opt);
+ signal(SIGCHLD, SIG_DFL);
+
+ if (opt.mount_all) {
+ if (!mountFstab(&opt)) return EXIT_FAILURE;
+ else return EXIT_SUCCESS;
+ }
+
+ if (optind+2!=argc) {
+ WRITE_MSG(2, "Invalid <src> <dst> pair specified\n");
+ return EXIT_FAILURE;
+ }
+
+ if (mnt.data) {
+ mnt.data = strdup(mnt.data);
+ if (!transformOptionList(&mnt, 0)) {
+ WRITE_MSG(2, "Invalid options specified\n");
+ return EXIT_FAILURE;
+ }
+ }
+
+ mnt.src = argv[optind++];
+ mnt.dst = argv[optind++];
+
+ if (!mountSingle(&mnt, &opt)) return EXIT_FAILURE;
+
+ return EXIT_SUCCESS;
+}
--- /dev/null
+// $Id: setattr.c,v 1.11 2004/03/05 19:50:45 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "fstool.h"
+#include "util.h"
+
+#include <lib/fmt.h>
+#include <lib/vserver.h>
+#include <lib/vserver-internal.h>
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "immu", no_argument, 0, CMD_IMMU },
+ { "iunlink", no_argument, 0, CMD_IMMU },
+ { "admin", no_argument, 0, CMD_ADMIN },
+ { "watch", no_argument, 0, CMD_WATCH },
+ { "hide", no_argument, 0, CMD_HIDE },
+ { "barrier", no_argument, 0, CMD_BARRIER },
+ { "~iunlink", no_argument, 0, CMD_UNSET_IMMU },
+ { "!iunlink", no_argument, 0, CMD_UNSET_IMMU },
+ { "~immu", no_argument, 0, CMD_UNSET_IMMU },
+ { "!immu", no_argument, 0, CMD_UNSET_IMMU },
+ { "~admin", no_argument, 0, CMD_UNSET_ADMIN },
+ { "!admin", no_argument, 0, CMD_UNSET_ADMIN },
+ { "~watch", no_argument, 0, CMD_UNSET_WATCH },
+ { "!watch", no_argument, 0, CMD_UNSET_WATCH },
+ { "~hide", no_argument, 0, CMD_UNSET_HIDE },
+ { "!hide", no_argument, 0, CMD_UNSET_HIDE },
+ { "~barrier", no_argument, 0, CMD_UNSET_BARRIER },
+ { "!barrier", no_argument, 0, CMD_UNSET_BARRIER },
+ { "iunlink-but-not-immutable", no_argument, 0, CMD_IMMUX },
+ { "~iunlink-but-not-immutable", no_argument, 0, CMD_UNSET_IMMUX },
+ { "!iunlink-but-not-immutable", no_argument, 0, CMD_UNSET_IMMUX },
+ { 0,0,0,0 }
+};
+
+char const CMDLINE_OPTIONS_SHORT[] = "Rx";
+
+void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [-Rx] [--[~](iunlink|admin|watch|hide|barrier|iunlink-but-not-immutable)]* [--] <file>+\n\n"
+ " Options:\n"
+ " -R ... recurse through directories\n"
+ " -x ... do not cross filesystems\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+void
+showVersion()
+{
+ WRITE_MSG(1,
+ "setattr " VERSION " -- sets vserver specific file attributes\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+void
+fixupParams(struct Arguments * args, int argc)
+{
+ if (optind==argc) {
+ WRITE_MSG(2, "No filename given; use '--help' for more information\n");
+ exit(1);
+ }
+
+ args->do_display_dir = !args->do_recurse;
+ args->do_display_dot = true;
+}
+
+bool
+handleFile(char const *name, char const * display_name)
+{
+ int rc = vc_set_iattr(name,
+ 0,
+ global_args->set_mask & ~global_args->del_mask,
+ global_args->set_mask | global_args->del_mask);
+
+ if (rc==-1) {
+ perror(display_name);
+ return false;
+ }
+
+ return true;
+}
-// $Id: showattr.c,v 1.1.4.1 2003/11/18 22:31:10 ensc Exp $
+// $Id: showattr.c,v 1.11 2005/03/24 12:44:17 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on showattr.cc by Jacques Gelinas
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
+#include "fstool.h"
+#include "util.h"
-#include "ext2fs.h"
+#include <lib/fmt.h>
+#include <lib/vserver.h>
+#include <lib/vserver-internal.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <ctype.h>
-// Patch to help compile this utility on unpatched kernel source
-#ifndef EXT2_IMMUTABLE_FILE_FL
- #define EXT2_IMMUTABLE_FILE_FL 0x00000010
- #define EXT2_IMMUTABLE_LINK_FL 0x00008000
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+#ifdef VC_ENABLE_API_LEGACY
+ { "legacy", no_argument, 0, CMD_LEGACY },
#endif
+ { 0,0,0,0 }
+};
-/*
- Get the extended attributes of a file
-*/
-static int getext2flags (const char *fname, long *flags)
+char const CMDLINE_OPTIONS_SHORT[] = "Radx";
+
+void
+showHelp(int fd, char const *cmd, int res)
{
- int ret = -1;
- int fd = open (fname,O_RDONLY);
- if (fd == -1){
- fprintf (stderr,"Can't open file %s (%s)\n",fname,strerror(errno));
- }else{
- *flags = 0;
- ret = ioctl (fd,EXT2_IOC_GETFLAGS,flags);
- close (fd);
- if (ret == -1){
- fprintf (stderr,"Can't get ext2 flags on file %s (%s)\n"
- ,fname,strerror(errno));
- }
- }
- return ret;
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [-Radx] [--] <file>*\n\n"
+ " Options:\n"
+ " -R ... recurse through directories\n"
+ " -a ... display files starting with '.' also\n"
+ " -d ... list directories like other files instead of listing\n"
+ " their content\n"
+ " -x ... do not cross filesystems\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
}
-/*
- Set the extended attributes of a file
-*/
-static int setext2flags (const char *fname, long flags)
+void
+showVersion()
{
- int ret = -1;
- int fd = open (fname,O_RDONLY);
- if (fd == -1){
- fprintf (stderr,"Can't open file %s (%s)\n",fname,strerror(errno));
- }else{
- ret = ioctl (fd,EXT2_IOC_SETFLAGS,&flags);
- close (fd);
- if (ret == -1){
- fprintf (stderr,"Can't set ext2 flags on file %s (%s)\n"
- ,fname,strerror(errno));
- }
- }
- return ret;
+ WRITE_MSG(1,
+ "showattr " VERSION " -- shows vserver specific file attributes\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
}
+void
+fixupParams(struct Arguments UNUSED * args, int UNUSED argc)
+{
+}
-int main (int argc, char *argv[])
+static bool
+getFlags(char const *name, uint32_t *flags, uint32_t *mask)
{
- int ret = -1;
- if (argc <= 1){
- fprintf (stderr
- ,"showattr file ...\n"
- "\n"
- "Presents extended file attribute.\n"
- "\n"
- "setattr --immutable --immulink file ...\n"
- "\n"
- "Sets the extended file attributes.\n"
- "\n"
- "These utilities exist as an interim until lsattr and\n"
- "chattr are updated.\n"
- );
- }else if (strstr(argv[0],"showattr")!=NULL){
- int i;
- for (i=1; i<argc; i++){
- long flags;
- ret = getext2flags (argv[i],&flags);
- if (ret == -1){
- break;
- }else{
- printf ("%s\t%08lx\n",argv[i],flags);
- }
- }
- }else if (strstr(argv[0],"setattr")!=NULL){
- long flags = 0;
- int i;
- ret = 0;
- for (i=1; i<argc; i++){
- const char *arg = argv[i];
- if (strncmp(arg,"--",2)==0){
- if (strcmp(arg,"--immutable")==0){
- flags |= EXT2_IMMUTABLE_FILE_FL;
- }else if (strcmp(arg,"--immulink")==0){
- flags |= EXT2_IMMUTABLE_LINK_FL;
- }else{
- fprintf (stderr,"Invalid option %s\n",arg);
- ret = -1;
- break;
- }
- }else{
- ret = setext2flags (arg,flags);
- if (ret == -1){
- break;
- }
- }
- }
- }
- return ret;
+ xid_t xid;
+ *mask = ~0;
+
+ if (vc_get_iattr(name, &xid, flags, mask)==-1) {
+ perror("vc_get_iattr()");
+ return false;
+ }
+
+ return true;
}
+bool
+handleFile(char const *name, char const *display_name)
+{
+ bool res = true;
+ char buf[40];
+ char *ptr = buf;
+ uint32_t flags;
+ uint32_t mask;
+
+ memset(buf, ' ', sizeof buf);
+
+ if (getFlags(name, &flags, &mask)) {
+ // 1 1 0 0
+ // fedcba9876543210fedcba9876543210
+ static char const MARKER[33] = ".......x.....iub.............hwa";
+ int i;
+ uint32_t used_flags = (VC_IATTR_XID|VC_IATTR_ADMIN|
+ VC_IATTR_WATCH|VC_IATTR_HIDE|
+ VC_IATTR_BARRIER|VC_IATTR_IUNLINK|
+ VC_IATTR_IMMUTABLE);
+
+ for (i=0; i<32; ++i) {
+ if (used_flags & 1) {
+ if (! (mask & 1) ) *ptr++ = '-';
+ else if (flags & 1) *ptr++ = toupper(MARKER[31-i]);
+ else *ptr++ = MARKER[31-i];
+ }
+
+ used_flags >>= 1;
+ flags >>= 1;
+ mask >>= 1;
+ }
+ }
+ else {
+ memcpy(buf, "ERR ", 7);
+ res = false;
+ }
+
+ Vwrite(1, buf, 8);
+ Vwrite(1, display_name, strlen(display_name));
+ Vwrite(1, "\n", 1);
+
+ return res;
+}
-// $Id: showperm.c,v 1.1 2003/09/29 22:01:57 ensc Exp $
+// $Id: showperm.c,v 1.2 2003/09/30 20:16:53 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on showperm.cc by Jacques Gelinas
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
#include <stdio.h>
#include <string.h>
#include <errno.h>
--- /dev/null
+// $Id: sigexec.c,v 1.1 2004/05/11 18:32:58 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include <signal.h>
+#include <unistd.h>
+#include <errno.h>
+
+#define ENSC_WRAPPERS_PREFIX "sigexec: "
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
+
+int wrapper_exit_code = 255;
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [--] <cmd> <args>*\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "sigexec " VERSION " -- executes commands with defined sigmasks\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+
+int main(int argc, char *argv[])
+{
+ int idx = 1;
+
+ if (argc>=2) {
+ if (strcmp(argv[1], "--help") ==0) showHelp(1, argv[0], 0);
+ if (strcmp(argv[1], "--version")==0) showVersion();
+ if (strcmp(argv[1], "--") ==0) ++idx;
+ }
+
+ if (argc<idx+1) {
+ WRITE_MSG(2, "Not enough parameters; use '--help' for more information\n");
+ return wrapper_exit_code;
+ }
+
+ signal(SIGCHLD, SIG_DFL);
+
+ Eexecv(argv[idx], argv+idx);
+}
--- /dev/null
+// $Id: stack-start.h,v 1.2 2004/02/20 17:02:20 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_SRC_STACK_START_H
+#define H_UTIL_VSERVER_SRC_STACK_START_H
+
+#ifdef HAVE_GROWING_STACK
+# define STACK_START(PTR) (PTR)
+#else
+# define STACK_START(PTR) ((PTR)+sizeof(PTR)/sizeof(PTR[0])-1)
+#endif
+
+#endif // H_UTIL_VSERVER_SRC_STACK_START_H
--- /dev/null
+## $Id: Makefile-files,v 1.9 2005/03/17 14:54:18 ensc Exp $ --*- makefile -*--
+
+## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+
+src_testsuite_check_active_PRGS = src/testsuite/vunify-functest \
+ src/testsuite/chcontext-test \
+ src/testsuite/chbind-test
+src_testsuite_check_passive_PRGS = src/testsuite/rpm-fake-test
+
+
+check_PROGRAMS += $(src_testsuite_check_passive_PRGS) \
+ $(src_testsuite_check_active_PRGS)
+
+if ENSC_HAVE_C99_COMPILER
+src_testsuite_check_src_C99_SCRPTS = src/testsuite/vunify-test.sh
+else
+src_testsuite_check_src_C99_SCRPTS =
+endif
+
+src_testsuite_check_src_SCRPTS = $(src_testsuite_check_src_C99_SCRPTS)
+src_testsuite_check_gen_SCRPTS =
+
+check_SCRIPTS += $(src_testsuite_check_src_SCRPTS) \
+ $(src_testsuite_check_gen_SCRPTS)
+
+TESTS += $(src_testsuite_check_active_PRGS) \
+ $(src_testsuite_check_src_SCRPTS) \
+ $(src_testsuite_check_gen_SCRPTS)
+
+EXTRA_DIST += $(src_testsuite_check_src_SCRPTS)
+
+
+src_testsuite_rpm_fake_test_SOURCES = src/testsuite/rpm-fake-test.c
+
+src_testsuite_vunify_functest_SOURCES = src/testsuite/vunify-functest.c
+src_testsuite_vunify_functest_LDADD = $(LIBINTERNAL)
+src_testsuite_vunify_functest_CPPFLAGS= $(AM_CPPFLAGS) $(src_testsuite_CPPFLAGS)
+
+
+src_testsuite_chcontext_test_SOURCES = src/testsuite/chcontext-test.c
+src_testsuite_chcontext_test_LDADD = lib/libvserver.la $(LIBINTERNAL)
+
+
+src_testsuite_chbind_test_SOURCES = src/testsuite/chbind-test.c
+src_testsuite_chbind_test_LDADD = lib/libvserver.la
+
+
+src_testsuite_CPPFLAGS = -I $(top_srcdir)/src -D ENSC_TESTSUITE
+
+
+clean-local: clean-testsuite
+
+clean-testsuite:
+ rm -rf src/testsuite/.libs src/testsuite/_libs
--- /dev/null
+// $Id: chbind-test.c,v 1.1 2004/02/09 23:30:20 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#define ENSC_TESTSUITE 1
+#define main fake_main
+#include "src/chbind.c"
+#undef main
+
+int main()
+{
+ if (0) fake_main(0,0);
+ test();
+
+ return EXIT_SUCCESS;
+}
--- /dev/null
+// $Id: chcontext-test.c,v 1.2 2004/02/09 23:40:45 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#define ENSC_TESTSUITE 1
+#define main fake_main
+#include "src/chcontext.c"
+#undef main
+
+int main()
+{
+ if (0) fake_main(0,0);
+ test();
+
+ return EXIT_SUCCESS;
+}
--- /dev/null
+// $Id: rpm-fake-test.c,v 1.4 2004/02/27 18:57:28 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+
+#include <grp.h>
+#include <pwd.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
+
+int wrapper_exit_code = 1;
+
+int main(/*int argc, char *argv[]*/)
+{
+ char buf[1000];
+
+ while (true) {
+ char *ptr = buf;
+ char c;
+ do {
+ if (read(0, &c, 1)==0) break;
+ if (c=='\n') break;
+ *ptr++ = c;
+ } while (ptr<buf+sizeof(buf));
+ *ptr = '\0';
+ if (ptr==buf) break;
+
+ switch (buf[0]) {
+ case 'P' : {
+ struct passwd *pw;
+
+ pw = getpwnam(buf+1);
+ printf("P(%s) = ", buf+1);
+ if (pw) printf("%u\n", pw->pw_uid);
+ else printf("(null)\n");
+
+ break;
+ }
+
+ case 'G' : {
+ struct group *gr;
+
+ gr = getgrnam(buf+1);
+ printf("G(%s) = ", buf+1);
+ if (gr) printf("%u\n", gr->gr_gid);
+ else printf("(null)\n");
+
+ break;
+ }
+
+ case 'C' :
+ switch (buf[1]) {
+ case 'g' : endgrent(); break;
+ case 'p' : endpwent(); break;
+ default : abort(); break;
+ }
+ break;
+
+ default :
+ abort();
+ }
+ }
+
+ {
+ char * cmd[] = { "/bin/grep", "^s_context", "/proc/self/status", 0 };
+ Eexecv(cmd[0], cmd);
+ }
+}
--- /dev/null
+// $Id: vunify-functest.c,v 1.4 2004/02/17 19:51:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "lib_internal/matchlist.h"
+
+int wrapper_exit_code = 1;
+extern void PathInfo_test();
+
+int main()
+{
+ PathInfo_test();
+ return 0;
+}
--- /dev/null
+#! /bin/bash
+
+: ${srcdir=.}
+: ${tmptopdir=/var/tmp}
+
+set -e
+
+tmpdir=$(mktemp -d /var/tmp/vunify-test.XXXXXX)
+trap "rm -rf $tmpdir" EXIT
+
+function createFiles
+{
+ local base=$1
+ shift
+
+ local idx=0
+ local i
+ for i; do
+ echo $i >$base$idx
+ let ++idx
+ done
+}
+
+function createSet
+{
+ local base=$1
+
+ createFiles a/$base a b c d
+ createFiles b/$base a b c
+ createFiles c/$base XX XX
+
+ ln a/${base}3 b/${base}3
+}
+
+pushd $tmpdir &>/dev/null
+ mkdir -p {a,b,c}{/etc/sysconfig,/usr/lib,/usr/local/lib/foobar,/var/run}
+
+ createSet etc/CFG
+ createSet etc/sysconfig/CFG
+
+ createSet usr/PROG
+ createSet usr/lib/PROG
+
+ createSet usr/local/lib/LOCAL
+ createSet usr/local/lib/foobar/LOCAL
+
+ createSet var/TEMP
+ createSet var/run/TEMP
+popd &>/dev/null
+
+
+$D ./src/vunify -n --manually $tmpdir/a '' $tmpdir/b '' >/dev/null
+$D ./src/vunify -n --manually $tmpdir/a '' $tmpdir/c '' >/dev/null
--- /dev/null
+// $Id: util.h,v 1.11 2004/02/26 13:10:15 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTILVSERVER_SRC_UTIL_H
+#define H_UTILVSERVER_SRC_UTIL_H
+
+#include <lib_internal/util.h>
+
+#endif // H_UTILVSERVER_SRC_UTIL_H
--- /dev/null
+// $Id: vattribute.c,v 1.14 2005/03/24 12:44:17 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include <lib/vserver.h>
+
+#include <getopt.h>
+#include <stdint.h>
+#include <errno.h>
+
+#define ENSC_WRAPPERS_PREFIX "vattribute: "
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+#define CMD_XID 0x2000
+#define CMD_SET 0x2001
+#define CMD_CCAP 0x2002
+#define CMD_FLAG 0x2003
+#define CMD_SECURE 0x2004
+#define CMD_BCAP 0x2005
+
+int wrapper_exit_code = 1;
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "xid", required_argument, 0, CMD_XID },
+ { "set", no_argument, 0, CMD_SET },
+ { "ccap", required_argument, 0, CMD_CCAP },
+ { "bcap", required_argument, 0, CMD_BCAP },
+ { "flag", required_argument, 0, CMD_FLAG },
+ { "secure", no_argument, 0, CMD_SECURE },
+ {0,0,0,0}
+};
+
+struct Arguments {
+ xid_t xid;
+ struct vc_ctx_flags flags;
+ struct vc_ctx_caps caps;
+};
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage:\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " --set [--xid <xid>] [--bcap [~!]<cap>] [--ccap [~!]<cap>] [--flag [~!]<flag>] [--secure] -- [<program> <args>*]\n"
+ "\n"
+ " --bcap <cap> ... system capability to be added\n"
+ " --cap <cap> ... context capability to be added\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vattribute " VERSION " -- sets attributes of vservers\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static void
+parseFlags(char const *str, struct vc_ctx_flags *flags)
+{
+ struct vc_err_listparser err;
+ int rc;
+
+ rc = vc_list2cflag(str,0, &err, flags);
+
+ if (rc==-1) {
+ WRITE_MSG(2, "Unknown flag '");
+ Vwrite(2, err.ptr, err.len);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+}
+
+static void
+parseBCaps(char const *str, struct vc_ctx_caps *caps)
+{
+ struct vc_err_listparser err;
+ int rc;
+
+ rc = vc_list2bcap(str,0, &err, caps);
+
+ if (rc==-1) {
+ WRITE_MSG(2, "Unknown bcap '");
+ Vwrite(2, err.ptr, err.len);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+}
+
+static void
+parseCCaps(char const *str, struct vc_ctx_caps *caps)
+{
+ struct vc_err_listparser err;
+ int rc;
+
+ rc = vc_list2ccap(str,0, &err, caps);
+
+ if (rc==-1) {
+ WRITE_MSG(2, "Unknown ccap '");
+ Vwrite(2, err.ptr, err.len);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+}
+
+static void
+parseSecure(struct vc_ctx_flags UNUSED * flags,
+ struct vc_ctx_caps UNUSED * caps)
+{
+ caps->ccaps = ~vc_get_insecureccaps();
+ caps->cmask = ~0ull;
+ caps->bcaps = ~vc_get_insecurebcaps();
+ caps->bmask = ~0ull;
+
+ // TODO: generalize this
+ flags->flagword = VC_VXF_HIDE_NETIF;
+ flags->mask = VC_VXF_HIDE_NETIF;
+}
+
+int main(int argc, char *argv[])
+{
+ struct Arguments args = {
+ .xid = VC_NOCTX,
+ .flags = { .flagword = 0, .mask = 0 },
+ .caps = { .bcaps = 0, .bmask = 0,.ccaps = 0, .cmask = 0 },
+ };
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_SET : break; // default op currently
+ case CMD_XID : args.xid = Evc_xidopt2xid(optarg,true); break;
+ case CMD_FLAG : parseFlags(optarg, &args.flags); break;
+ case CMD_CCAP : parseCCaps(optarg, &args.caps); break;
+ case CMD_BCAP : parseBCaps(optarg, &args.caps); break;
+ case CMD_SECURE : parseSecure(&args.flags, &args.caps); break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return 255;
+ break;
+ }
+ }
+
+ if (args.xid==VC_NOCTX) args.xid = Evc_get_task_xid(0);
+
+ if ((args.caps.cmask || args.caps.bmask) &&
+ vc_set_ccaps(args.xid, &args.caps)==-1)
+ perror(ENSC_WRAPPERS_PREFIX "vc_set_ccaps()");
+ else if (args.flags.mask &&
+ vc_set_cflags(args.xid, &args.flags)==-1)
+ perror(ENSC_WRAPPERS_PREFIX "vc_set_flags()");
+ else if (optind<argc)
+ EexecvpD(argv[optind], argv+optind);
+ else
+ return EXIT_SUCCESS;
+
+ return EXIT_FAILURE;
+}
--- /dev/null
+// $Id: vcontext.c,v 1.18 2005/04/28 18:08:12 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include "lib/internal.h"
+#include "lib_internal/jail.h"
+#include "lib_internal/sys_personality.h"
+
+#include <vserver.h>
+#include <getopt.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <assert.h>
+#include <signal.h>
+
+#include <linux/personality.h>
+
+#define ENSC_WRAPPERS_PREFIX "vcontext: "
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_SOCKET 1
+#define ENSC_WRAPPERS_IOSOCK 1
+#include <wrappers.h>
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+#define CMD_XID 0x4000
+#define CMD_CREATE 0x4001
+#define CMD_MIGRATE 0x4003
+#define CMD_INITPID 0x4002
+#define CMD_DISCONNECT 0x4004
+#define CMD_UID 0x4005
+#define CMD_CHROOT 0x4006
+#define CMD_SILENT 0x4007
+#define CMD_SYNCSOCK 0x4008
+#define CMD_SYNCMSG 0x4009
+#define CMD_MIGRATESELF 0x400a
+#define CMD_ENDSETUP 0x400b
+#define CMD_SILENTEXIST 0x400c
+#define CMD_NAMESPACE 0x400d
+#define CMD_PERSTYPE 0x400e
+#define CMD_PERSFLAG 0x400f
+
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "ctx", required_argument, 0, CMD_XID },
+ { "xid", required_argument, 0, CMD_XID },
+ { "create", no_argument, 0, CMD_CREATE },
+ { "migrate", no_argument, 0, CMD_MIGRATE },
+ { "migrate-self", no_argument, 0, CMD_MIGRATESELF },
+ { "initpid", no_argument, 0, CMD_INITPID },
+ { "endsetup", no_argument, 0, CMD_ENDSETUP },
+ { "disconnect", no_argument, 0, CMD_DISCONNECT },
+ { "silent", no_argument, 0, CMD_SILENT },
+ { "silentexist", no_argument, 0, CMD_SILENTEXIST },
+ { "uid", required_argument, 0, CMD_UID },
+ { "chroot", no_argument, 0, CMD_CHROOT },
+ { "namespace", no_argument, 0, CMD_NAMESPACE },
+ { "syncsock", required_argument, 0, CMD_SYNCSOCK },
+ { "syncmsg", required_argument, 0, CMD_SYNCMSG },
+ { "personality-type", required_argument, 0, CMD_PERSTYPE },
+ { "personality-flags", required_argument, 0, CMD_PERSFLAG },
+#if 1
+ { "fakeinit", no_argument, 0, CMD_INITPID }, // compatibility
+#endif
+ { 0,0,0,0 },
+};
+
+struct Arguments {
+ bool do_create;
+ bool do_migrate;
+ bool do_migrateself;
+ bool do_disconnect;
+ bool do_endsetup;
+ bool is_initpid;
+ bool is_silentexist;
+ bool set_namespace;
+ uint_least32_t personality_flags;
+ uint_least32_t personality_type;
+ int verbosity;
+ bool do_chroot;
+ uid_t uid;
+ xid_t xid;
+ char const * sync_sock;
+ char const * sync_msg;
+};
+
+int wrapper_exit_code = 255;
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage:\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " --create [--xid <xid>] <opts>* [--] <program> <args>*\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [(--migrate --xid <xid>)|--migrate-self] <opts>* [--] <program> <args>*\n"
+ "\n"
+ "<opts> can be:\n"
+ " --chroot ... chroot into current directory\n"
+ " --namespace ... execute namespace management operations\n"
+ " --uid <uid> ... change uid\n"
+ " --initpid ... set current process as general process reaper\n"
+ " for ctx (possible for --migrate only)\n"
+ " --endsetup ... clear the setup flag; usefully for migrate only\n"
+ " --disconnect ... start program in background\n"
+ " --personality-type <type>\n"
+ " ... execute <program> in the given execution domain\n"
+ " --personality-flags <flags>+\n"
+ " ... set special flags for the given execution domain\n"
+ " --silent ... be silent\n"
+ " --silentexist ... be silent when context exists already; usefully\n"
+ " for '--create' only\n"
+ " --syncsock <file-name>\n"
+ " ... before executing the program, send a message\n"
+ " to the socket and wait until it closes.\n"
+ " <file-name> must be a SOCK_STREAM unix socket\n"
+ " --syncmsg <message>\n"
+ " ... use <message> as synchronization message; by\n"
+ " default, 'ok' will be used\n"
+ "\n"
+ "'vcontext --create' exits with code 254 iff the context exists already.\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vcontext " VERSION " -- manages the creation of security contexts\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+#include "context-sync.hc"
+
+static inline ALWAYSINLINE void
+tellContext(xid_t ctx, bool do_it)
+{
+ char buf[sizeof(xid_t)*3+2];
+ size_t l;
+
+ if (!do_it) return;
+
+ l = utilvserver_fmt_long(buf,ctx);
+
+ WRITE_MSG(1, "New security context is ");
+ Vwrite (1, buf, l);
+ WRITE_MSG(1, "\n");
+}
+
+static int
+connectExternalSync(char const *filename)
+{
+ int fd;
+ struct sockaddr_un addr;
+
+ if (filename==0) return -1;
+
+ ENSC_INIT_UNIX_SOCK(addr, filename);
+
+ fd = Esocket(PF_UNIX, SOCK_STREAM, 0);
+ Econnect(fd, &addr, sizeof(addr));
+
+ return fd;
+}
+
+static void
+setFlags(struct Arguments const *args, xid_t xid)
+{
+ struct vc_ctx_flags flags = { 0,0 };
+
+ if (args->is_initpid)
+ flags.mask |= VC_VXF_STATE_INIT;
+
+ if (args->do_endsetup)
+ flags.mask |= VC_VXF_STATE_SETUP;
+
+ if (flags.mask!=0) {
+ DPRINTF("set_flags: mask=%08llx, flag=%08llx\n", flags.mask, flags.flagword);
+ Evc_set_cflags(xid, &flags);
+ }
+}
+
+static void
+doExternalSync(int fd, char const *msg)
+{
+ char c;
+
+ if (fd==-1) return;
+
+ if (msg) EsendAll(fd, msg, strlen(msg));
+ Eshutdown(fd, SHUT_WR);
+
+ if (TEMP_FAILURE_RETRY(recv(fd, &c, 1, MSG_NOSIGNAL))!=0) {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "unexpected external synchronization event\n");
+ exit(wrapper_exit_code);
+ }
+
+ Eclose(fd);
+}
+
+static inline ALWAYSINLINE int
+doit(struct Arguments const *args, char *argv[])
+{
+ int p[2][2];
+ pid_t pid = initSync(p, args->do_disconnect);
+
+ if (pid==0) {
+ xid_t xid;
+ int ext_sync_fd = connectExternalSync(args->sync_sock);
+
+ doSyncStage0(p, args->do_disconnect);
+
+ if (args->do_create) {
+ xid = vc_ctx_create(args->xid);
+ if (xid==VC_NOCTX) {
+ switch (errno) {
+ case EEXIST :
+ if (!args->is_silentexist)
+ perror(ENSC_WRAPPERS_PREFIX "vc_create_context()");
+ return 254;
+ default :
+ perror(ENSC_WRAPPERS_PREFIX "vc_create_context()");
+ return wrapper_exit_code;
+ }
+ }
+ tellContext(xid, args->verbosity>=1);
+ }
+ else
+ xid = args->xid;
+
+ if (args->do_chroot) {
+ Echroot(".");
+ if (args->set_namespace) {
+ if (args->do_migrateself) Evc_set_namespace();
+ else if (args->do_migrate) Evc_enter_namespace(xid);
+ }
+ }
+
+ setFlags(args, xid);
+
+ if (args->do_migrate && !args->do_migrateself)
+ Evc_ctx_migrate(xid);
+
+ if (args->uid!=(uid_t)(-1) && getuid()!=args->uid) {
+ Esetuid(args->uid);
+ if (getuid()!=args->uid) {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "Something went wrong while changing the UID\n");
+ exit(wrapper_exit_code);
+ }
+ }
+
+ if (args->personality_type!=VC_BAD_PERSONALITY &&
+ sys_personality(args->personality_type | args->personality_flags)==-1) {
+ perror(ENSC_WRAPPERS_PREFIX "personality()");
+ exit(wrapper_exit_code);
+ }
+
+ doExternalSync(ext_sync_fd, args->sync_msg);
+ doSyncStage1(p, args->do_disconnect);
+ DPRINTF("doit: pid=%u, ppid=%u\n", getpid(), getppid());
+ execvp (argv[optind],argv+optind);
+ doSyncStage2(p, args->do_disconnect);
+
+ PERROR_Q(ENSC_WRAPPERS_PREFIX "execvp", argv[optind]);
+ exit(wrapper_exit_code);
+ }
+
+ assert(args->do_disconnect);
+
+ waitOnSync(pid, p, args->xid!=VC_DYNAMIC_XID && args->do_migrate);
+ return EXIT_SUCCESS;
+}
+
+static uint_least32_t
+parsePersonalityType(char const *str)
+{
+ uint_least32_t res = vc_str2personalitytype(str, 0);
+ if (res==VC_BAD_PERSONALITY) {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "bad personality type\n");
+ exit(wrapper_exit_code);
+ }
+
+ return res;
+}
+
+static uint_least32_t
+parsePersonalityFlags(char const *str)
+{
+ struct vc_err_listparser err;
+ uint_least32_t res;
+
+ if (vc_list2personalityflag(str, 0, &res, &err)==-1) {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "bad personality flag '");
+ Vwrite(2, err.ptr, err.len);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+
+ return res;
+}
+
+int main (int argc, char *argv[])
+{
+ struct Arguments args = {
+ .do_create = false,
+ .do_migrate = false,
+ .do_migrateself = false,
+ .do_disconnect = false,
+ .do_endsetup = false,
+ .is_initpid = false,
+ .is_silentexist = false,
+ .set_namespace = false,
+ .verbosity = 1,
+ .uid = -1,
+ .xid = VC_DYNAMIC_XID,
+ .personality_type = VC_BAD_PERSONALITY,
+ .personality_flags = 0,
+ .sync_msg = "ok",
+ };
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_CREATE : args.do_create = true; break;
+ case CMD_MIGRATE : args.do_migrate = true; break;
+ case CMD_DISCONNECT : args.do_disconnect = true; break;
+ case CMD_ENDSETUP : args.do_endsetup = true; break;
+ case CMD_INITPID : args.is_initpid = true; break;
+ case CMD_CHROOT : args.do_chroot = true; break;
+ case CMD_NAMESPACE : args.set_namespace = true; break;
+ case CMD_SILENTEXIST : args.is_silentexist = true; break;
+ case CMD_SYNCSOCK : args.sync_sock = optarg; break;
+ case CMD_SYNCMSG : args.sync_msg = optarg; break;
+ case CMD_UID : args.uid = atol(optarg); break;
+ case CMD_XID : args.xid = Evc_xidopt2xid(optarg,true); break;
+ case CMD_SILENT : --args.verbosity; break;
+ case CMD_PERSTYPE :
+ args.personality_type = parsePersonalityType(optarg);
+ break;
+ case CMD_PERSFLAG :
+ args.personality_flags |= parsePersonalityFlags(optarg);
+ break;
+ case CMD_MIGRATESELF :
+ args.do_migrate = true;
+ args.do_migrateself = true;
+ break;
+
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return wrapper_exit_code;
+ break;
+ }
+ }
+
+ signal(SIGCHLD, SIG_DFL);
+
+ if (args.do_migrateself)
+ args.xid = Evc_get_task_xid(0);
+
+ if (!args.do_create && !args.do_migrate)
+ WRITE_MSG(2, "Neither '--create' nor '--migrate specified; try '--help' for more information\n");
+ else if (args.do_create && args.do_migrate)
+ WRITE_MSG(2, "Can not specify '--create' and '--migrate' at the same time; try '--help' for more information\n");
+ else if (!args.do_migrate && args.is_initpid)
+ WRITE_MSG(2, "'--initpid' is possible in combination with '--migrate' only\n");
+ else if (!args.do_create && args.xid==VC_DYNAMIC_XID)
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "Can not migrate to an unknown context\n");
+ else if (optind>=argc)
+ WRITE_MSG(2, "No command given; use '--help' for more information.\n");
+ else
+ return doit(&args, argv);
+
+ return wrapper_exit_code;
+}
--- /dev/null
+// $Id: vcopy-init.hc,v 1.3 2005/03/18 00:24:27 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+static void
+createSkeleton(char const *name)
+{
+ char const * app_dir;
+
+ app_dir = vc_getVserverAppDir(name, vcCFG_AUTO, "vunify");
+ if (app_dir==0 &&
+ vc_createSkeleton(name, vcCFG_AUTO, vcSKEL_FILESYSTEM|vcSKEL_PKGMGMT)==-1) {
+ perror("vc_createSkeleton()");
+ exit(1);
+ }
+
+ if (app_dir==0) {
+ app_dir = vc_getVserverAppDir(name, vcCFG_AUTO, "");
+
+ PathInfo path = {
+ .d = app_dir,
+ .l = strlen(app_dir),
+ };
+ PathInfo rhs_path = {
+ .d = "vunify",
+ .l = sizeof("vunify")-1
+ };
+
+ char p_buf[ENSC_PI_APPSZ(path, rhs_path)];
+ PathInfo_append(&path, &rhs_path, p_buf);
+
+ Emkdir(path.d, 0755);
+ }
+
+ free(const_cast(char *)(app_dir));
+}
+
+
+static void
+initModeManually(int argc, char *argv[])
+{
+ int count=argc/2;
+
+ if (count!=2) {
+ WRITE_MSG(2, "Bad arguments; try '--help' for more information\n");
+ exit(1);
+ }
+
+ MatchList_initManually(&global_info.dst_list, 0, strdup(argv[0]), argv[1]);
+ MatchList_initManually(&global_info.src_list, 0, strdup(argv[2]), argv[3]);
+}
+
+
+static void
+initModeVserver(int argc, char *argv[])
+{
+ int count = argc;
+ struct MatchVserverInfo src_vserver = {
+ .name = argv[1],
+ .use_pkgmgmt = true
+ };
+
+ if (!MatchVserverInfo_init(&src_vserver)) {
+ WRITE_MSG(2, "Failed to initialize unification for source-vserver\n");
+ exit(1);
+ }
+
+ if (count!=2) {
+ WRITE_MSG(2, "Bad arguments; try '--help' for more information\n");
+ exit(1);
+ }
+
+ if (!MatchList_initByVserver(&global_info.src_list, &src_vserver)) {
+ WRITE_MSG(2, "unification not configured for source vserver\n");
+ exit(1);
+ }
+
+ MatchVserverInfo_free(&src_vserver);
+
+
+
+ struct MatchVserverInfo dst_vserver = {
+ .name = argv[0],
+ .use_pkgmgmt = false
+ };
+
+ if (!global_args->is_strict)
+ createSkeleton(dst_vserver.name);
+
+ if (!MatchVserverInfo_init(&dst_vserver)) {
+ WRITE_MSG(2, "Failed to initialize unification for destination-vserver\n");
+ exit(1);
+ }
+
+ if (!MatchList_initByVserver(&global_info.dst_list, &dst_vserver)) {
+ WRITE_MSG(2, "unification not configured for destination vserver\n");
+ exit(1);
+ }
+
+ MatchVserverInfo_free(&dst_vserver);
+}
--- /dev/null
+// $Id: vcopy.c,v 1.5 2005/03/24 12:44:17 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include "vserver.h"
+
+#include "lib_internal/matchlist.h"
+#include "lib_internal/unify.h"
+
+#include <unistd.h>
+#include <getopt.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <errno.h>
+#include <assert.h>
+#include <utime.h>
+#include <libgen.h>
+#include <sys/param.h>
+
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_DIRENT 1
+#include <wrappers.h>
+
+#define CMD_HELP 0x8000
+#define CMD_VERSION 0x8001
+#define CMD_MANUALLY 0x8002
+#define CMD_STRICT 0x8003
+
+struct WalkdownInfo
+{
+ PathInfo state;
+ struct MatchList dst_list;
+ struct MatchList src_list;
+};
+
+struct Arguments {
+ enum {mdMANUALLY, mdVSERVER} mode;
+ bool do_dry_run;
+ unsigned int verbosity;
+ bool local_fs;
+ bool is_strict;
+};
+
+static struct WalkdownInfo global_info;
+static struct Arguments const * global_args;
+
+int wrapper_exit_code = 1;
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "manually", no_argument, 0, CMD_MANUALLY },
+ { "strict", no_argument, 0, CMD_STRICT },
+ { 0,0,0,0 }
+};
+
+typedef enum { opUNIFY, opCOPY, opDIR, opSKIP } Operation;
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ VSERVER_DECLARE_CMD(cmd);
+
+ WRITE_MSG(fd, "Usage:\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [-nv] [--strict] <dst-vserver> <src-vserver>\n or\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " --manually [-nvx] [--] <dst-path> <dst-excludelist> <src-path> <src-excludelist>\n\n"
+ " --manually ... unify generic paths; excludelists must be generated\n"
+ " manually\n"
+ " --strict ... require an existing vserver configuration for dst-vserver;\n"
+ " by default, a base skeleton will be created but manual\n"
+ " configuration wil be still needed to make the new vserver work\n"
+ " -n ... do not modify anything; just show what there will be\n"
+ " done (in combination with '-v')\n"
+ " -v ... verbose mode\n"
+ " -x ... do not cross filesystems; this is valid in manual\n"
+ " mode only and will be ignored for vserver unification\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vcopy " VERSION " -- copies directories and vserver files\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003,2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+int Global_getVerbosity() {
+ return global_args->verbosity;
+}
+
+bool Global_doRenew() {
+ return true;
+}
+
+#include "vserver-visitdir.hc"
+
+static Operation
+checkDirEntry(PathInfo const *path, struct stat const *st)
+{
+ struct WalkdownInfo const * const info = &global_info;
+ MatchType res;
+
+ // when marked as 'skip' in the first excludelist already, we do not need to
+ // visit the second one since it could not change that.
+ res=MatchList_compare(&info->dst_list, path->d);
+ if (res!=stSKIP) {
+ MatchType tmp = MatchList_compare(&info->src_list, path->d);
+
+ // stINCLUDE gets overridden by stEXCLUDE+stSKIP, and stEXCLUDE by stSKIP.
+ // Using the MAX() macro is a hack but it works
+ res=MAX(res,tmp);
+ }
+
+ // non-skipped directories are marked as opDIR
+ if (res!=stSKIP && S_ISDIR(st->st_mode))
+ return opDIR;
+
+ // non-skipped symlinks will be copied always
+ if (res!=stSKIP && S_ISLNK(st->st_mode))
+ return opCOPY;
+
+ // skipped files or non regular files (character/block devices) will be skipped
+ // always
+ if (res==stSKIP || !S_ISREG(st->st_mode))
+ return opSKIP;
+
+ switch (res) {
+ case stINCLUDE : return opUNIFY;
+ case stEXCLUDE : return opCOPY;
+ case stSKIP : assert(false); // already handled above
+ default : assert(false); abort();
+ }
+}
+
+static bool
+doit(Operation op,
+ PathInfo const *dst_path,
+ PathInfo const *src_path, struct stat const *exp_stat,
+ PathInfo const *show_path)
+{
+#if 0
+ struct stat st;
+
+ if (lstat(dst_path->d, &st)!=-1) {
+ if (global_args->do_keep &&
+ (!S_ISDIR(exp_stat->st_mode) || S_ISDIR(st.st_mode))) {
+ // when keep-mode is enable and, do nothing
+ if (global_args->do_dry_run || global_args->verbosity>1) {
+ WRITE_MSG(1, "keeping '");
+ write(1, show_path->d, show_path->l);
+ WRITE_MSG(1, "'\n");
+ }
+ return true;
+ }
+
+ }
+#endif
+
+ if (global_args->do_dry_run || global_args->verbosity>1) {
+ if (op==opUNIFY) WRITE_MSG(1, "linking '");
+ else if (op==opCOPY) WRITE_MSG(1, "copying '");
+ else if (op==opDIR) WRITE_MSG(1, "creating '");
+ else if (op==opSKIP) WRITE_MSG(1, "skipping '");
+ else { assert(false); abort(); }
+
+ Vwrite(1, show_path->d, show_path->l);
+ WRITE_MSG(1, "'\n");
+ }
+
+ return (global_args->do_dry_run ||
+ ( op==opSKIP) ||
+ ( op==opUNIFY && Unify_unify(src_path->d, exp_stat, dst_path->d, false)) ||
+ ((op==opCOPY ||
+ op==opDIR) && Unify_copy (src_path->d, exp_stat, dst_path->d)));
+}
+
+static uint64_t
+visitDirEntry(struct dirent const *ent)
+{
+ char const * dirname = ent->d_name;
+ if (isDotfile(dirname)) return 0;
+
+ uint64_t res = 1;
+ PathInfo src_path = global_info.state;
+ PathInfo src_d_path = {
+ .d = dirname,
+ .l = strlen(dirname)
+ };
+ char path_buf[ENSC_PI_APPSZ(src_path, src_d_path)];
+ struct stat f_stat = { .st_dev = 0 };
+
+ PathInfo_append(&src_path, &src_d_path, path_buf);
+
+
+ if (lstat(dirname, &f_stat)==-1)
+ perror("lstat()");
+ else {
+ Operation op = checkDirEntry(&src_path, &f_stat);
+ PathInfo dst_path = global_info.dst_list.root;
+ char dst_path_buf[ENSC_PI_APPSZ(dst_path, src_path)];
+
+ PathInfo_append(&dst_path, &src_path, dst_path_buf);
+ if (!doit(op, &dst_path, &src_d_path, &f_stat, &src_path))
+ perror(src_path.d);
+ else if (op==opDIR) {
+ res = visitDir(dirname, &f_stat);
+ if (!global_args->do_dry_run &&
+ !Unify_setTime(dst_path.d, &f_stat))
+ perror("utime()");
+ }
+ else
+ res = 0;
+ }
+
+ return res;
+}
+
+#include "vcopy-init.hc"
+
+int main(int argc, char *argv[])
+{
+ struct Arguments args = {
+ .mode = mdVSERVER,
+ .do_dry_run = false,
+ .verbosity = 0,
+ .local_fs = false,
+ };
+ uint64_t res;
+
+ global_args = &args;
+ while (1) {
+ int c = getopt_long(argc, argv, "nvcx",
+ CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_MANUALLY : args.mode = mdMANUALLY; break;
+ case CMD_STRICT : args.is_strict = true; break;
+ case 'n' : args.do_dry_run = true; break;
+ case 'x' : args.local_fs = true; break;
+ case 'v' : ++args.verbosity; break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+
+ if (argc==optind) {
+ WRITE_MSG(2, "No directory/vserver given\n");
+ return EXIT_FAILURE;
+ }
+
+ switch (args.mode) {
+ case mdMANUALLY : initModeManually(argc-optind, argv+optind); break;
+ case mdVSERVER : initModeVserver (argc-optind, argv+optind); break;
+ default : assert(false); return EXIT_FAILURE;
+ }
+
+ if (global_args->verbosity>3)
+ WRITE_MSG(1, "Starting to traverse directories...\n");
+
+ Echdir(global_info.src_list.root.d);
+ res = visitDir("/", 0);
+
+#ifndef NDEBUG
+ {
+ MatchList_destroy(&global_info.dst_list);
+ MatchList_destroy(&global_info.src_list);
+ }
+#endif
+
+ return res>0 ? 1 : 0;
+}
+// $Id: vdlimit.c,v 1.2 2005/03/24 12:44:17 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
-/*
-** (c) 2004 Herbert Poetzl
-**
-** V0.01 ioctls so far
-**
-*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
-#include <stdio.h>
-#include <stdlib.h>
+#include "util.h"
+#include <lib_internal/sys_clone.h>
+#include <lib/internal.h>
+
+#include <vserver.h>
+
+#include <getopt.h>
+#include <libgen.h>
#include <errno.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdint.h>
-
-#include "vserver.h"
-#include "vserver-internal.h"
-#include "dlimit.h"
-
-#ifdef O_LARGEFILE
-#define OPEN_FLAGS (O_RDONLY|O_NONBLOCK|O_LARGEFILE)
-#else
-#define OPEN_FLAGS (O_RDONLY|O_NONBLOCK)
-#endif
+#include <signal.h>
+#include <sched.h>
-static char err_flag = 0;
+#define ENSC_WRAPPERS_PREFIX "vdlimit: "
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_VSERVER 1
+#include <wrappers.h>
-static char opt_xid = 0;
-static char opt_flag = 0;
-static char opt_vers = 0;
-static char opt_add = 0;
-static char opt_rem = 0;
-static char opt_set = 0;
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
-static char * cmd_name = NULL;
-static char * set_arg = NULL;
+int wrapper_exit_code = 1;
-static int num_xid = 0;
-static int num_flag = 0;
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "xid", required_argument, 0, 'x' },
+ { "set", required_argument, 0, 's' },
+ { "remove", no_argument, 0, 'd' },
+ { "flags", required_argument, 0, 'f' },
+ {0,0,0,0}
+};
+static void
+showHelp(int fd, char const *cmd)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " --xid <xid> [--flags <flags>] (--set <limit>=<value>|--remove) <mount point>\n"
+ "\n"
+ " --set|-s <limit>=<value> ... set <limit> to <value>, where limit is \n"
+ " one of: space_used, space_total, inodes_used,\n"
+ " inodes_total, reserved\n"
+ " --remove|-d ... removes the disk limit for <xid> from <mount point>\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(0);
+}
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vdlimit " VERSION " -- manages disk limits\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2005 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
-#define OPTIONS "+hadf:x:S:V"
+static void
+setDlimit(char const *filename, xid_t xid, uint32_t flags, struct vc_ctx_dlimit const *limit)
+{
+ if (vc_get_dlimit(filename, xid, flags, 0) == -1) {
+ if (vc_add_dlimit(filename, xid, flags) == -1) {
+ perror(ENSC_WRAPPERS_PREFIX "vc_add_dlimit()");
+ exit(wrapper_exit_code);
+ }
+ }
+ if (vc_set_dlimit(filename, xid, flags, limit) == -1) {
+ perror(ENSC_WRAPPERS_PREFIX "vc_set_dlimit()");
+ exit(wrapper_exit_code);
+ }
+}
-int main(int argc, char *argv[])
+static void
+remDlimit(char const *filename, xid_t xid, uint32_t flags)
{
- extern int optind;
- extern char *optarg;
- char c, errflg = 0;
- int r;
-
-
- cmd_name = argv[0];
- while ((c = getopt(argc, argv, OPTIONS)) != EOF) {
- switch (c) {
- case 'h':
- fprintf(stderr,
- "This is %s " VERSION "\n"
- "options are:\n"
- "-h print this help message\n"
- "-a add dlimit entry\n"
- "-d delete dlimit entry\n"
- "-f <num> flag value in decimal\n"
- "-x <num> context id\n"
- "-S <vals> current/limit values\n"
- "-V verify interface version\n"
- "-- end of options\n"
- ,cmd_name);
- exit(0);
- break;
- case 'a':
- opt_add = 1;
- break;
- case 'd':
- opt_rem = 1;
- break;
- case 'f':
- num_flag = atol(optarg);
- opt_flag = 1;
- break;
- case 'x':
- num_xid = atol(optarg);
- opt_xid = 1;
- break;
- case 'S':
- set_arg = optarg;
- opt_set = 1;
- break;
- case 'V':
- opt_vers = 1;
- break;
- case '?':
- default:
- errflg++;
- break;
- }
- }
- if (errflg) {
- fprintf(stderr,
- "Usage: %s -[" OPTIONS "] <path> ...\n"
- "%s -h for help.\n",
- cmd_name, cmd_name);
- exit(2);
- }
-
- if (opt_vers) {
- r = vc_get_version();
- if (r<0)
- perror("vc_get_version");
- else
- printf("version: %04x:%04x\n",
- (r>>16)&0xFFFF, r&0xFFFF);
- }
+ if (vc_rem_dlimit(filename, xid, flags) == -1) {
+ perror(ENSC_WRAPPERS_PREFIX "vc_rem_dlimit()");
+ exit(wrapper_exit_code);
+ }
+}
- for (; optind < argc; optind++) {
- struct vcmd_ctx_dlimit_base_v0 init;
- struct vcmd_ctx_dlimit_v0 data;
-
- init.name = argv[optind];
- init.flags = num_flag;
-
- if (opt_rem) {
- r = vserver(VCMD_rem_dlimit, num_xid, &init);
- if (r<0)
- perror("vc_rem_dlimit");
- }
- if (opt_add) {
- r = vserver(VCMD_add_dlimit, num_xid, &init);
- if (r<0)
- perror("vc_add_dlimit");
- }
-
- memset(&data, 0, sizeof(data));
- data.name = argv[optind];
- data.flags = num_flag;
-
- if (opt_set) {
- sscanf(set_arg, "%u,%u,%u,%u,%u",
- &data.space_used, &data.space_total,
- &data.inodes_used, &data.inodes_total,
- &data.reserved);
-
- r = vserver(VCMD_set_dlimit, num_xid, &data);
- if (r<0)
- perror("vc_set_dlimit");
- }
-
- memset(&data, 0, sizeof(data));
- data.name = argv[optind];
- data.flags = num_flag;
-
- r = vserver(VCMD_get_dlimit, num_xid, &data);
- if (r<0)
- perror("vc_get_dlimit");
-
- printf("%s: %u,%u,%u,%u,%u\n", argv[optind],
- data.space_used, data.space_total,
- data.inodes_used, data.inodes_total,
- data.reserved);
- }
-
- exit((err_flag)?1:0);
+static void
+writeInt(int fd, char const *prefix, int val)
+{
+ char buf[sizeof(val)*3 + 2];
+ size_t len = utilvserver_fmt_int(buf, val);
+
+ if (prefix)
+ WRITE_STR(fd, prefix);
+ Vwrite(fd, buf, len);
+}
+
+static void
+printDlimit(char const *filename, xid_t xid, uint32_t flags, bool formatted)
+{
+ struct vc_ctx_dlimit limit;
+
+ if (vc_get_dlimit(filename, xid, flags, &limit) == -1) {
+ perror(ENSC_WRAPPERS_PREFIX "vc_get_dlimit()");
+ exit(wrapper_exit_code);
+ }
+
+ if (formatted) {
+ writeInt (1, 0, xid);
+ WRITE_MSG(1, " ");
+ WRITE_STR(1, filename);
+ writeInt (1, "\nspace_used=", limit.space_used);
+ writeInt (1, "\nspace_total=", limit.space_total);
+ writeInt (1, "\ninodes_used=", limit.inodes_used);
+ writeInt (1, "\ninodes_total=", limit.inodes_total);
+ writeInt (1, "\nreserved=", limit.reserved);
+ WRITE_MSG(1, "\n");
+ }
+ else {
+ writeInt (1, 0, xid);
+ writeInt (1, " ", limit.space_used);
+ writeInt (1, " ", limit.space_total);
+ writeInt (1, " ", limit.inodes_used);
+ writeInt (1, " ", limit.inodes_total);
+ writeInt (1, " ", limit.reserved);
+ WRITE_MSG(1, " ");
+ WRITE_STR(1, filename);
+ WRITE_MSG(1, "\n");
+ }
}
+
+static bool
+setDLimitField(struct vc_ctx_dlimit *dst, char const *opt)
+{
+ uint_least32_t *ptr;
+ char const * const orig_opt = opt;
+
+#define GET_VAL_PTR(CMP, VAL) \
+ (strncmp(opt, CMP "=", sizeof(CMP))==0) ? \
+ (opt+=sizeof(CMP), &VAL) : 0
+
+ if ((ptr=GET_VAL_PTR("space_used", dst->space_used))!=0) {}
+ else if ((ptr=GET_VAL_PTR("space_total", dst->space_total))!=0) {}
+ else if ((ptr=GET_VAL_PTR("inodes_used", dst->inodes_used))!=0) {}
+ else if ((ptr=GET_VAL_PTR("inodes_total", dst->inodes_total))!=0) {}
+ else if ((ptr=GET_VAL_PTR("reserved", dst->reserved))!=0) {}
+ else ptr=0;
+
+#undef GET_VAL_PTR
+
+ if (ptr!=0 && *ptr==VC_CDLIM_KEEP) {
+ char *endptr;
+ long val = strtol(opt, &endptr, 0);
+
+ if (*opt==0 || *endptr!='\0') {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "can not parse number in '");
+ WRITE_STR(2, orig_opt);
+ WRITE_MSG(2, "'\n");
+ return false;
+ }
+
+ *ptr = val;
+ }
+ else if (ptr!=0) {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "value already set in '");
+ WRITE_STR(2, orig_opt);
+ WRITE_MSG(2, "'\n");
+ return false;
+ }
+ else {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "unknown limit in '");
+ WRITE_STR(2, orig_opt);
+ WRITE_MSG(2, "'\n");
+ return false;
+ }
+
+ return true;
+}
+
+int main(int argc, char *argv[])
+{
+ bool do_set = false;
+ bool do_remove = false;
+ xid_t xid = VC_NOCTX;
+ uint32_t flags = 0;
+ char *endptr;
+ int sum = 0;
+
+ struct vc_ctx_dlimit limit = {
+ .space_used = VC_CDLIM_KEEP,
+ .space_total = VC_CDLIM_KEEP,
+ .inodes_used = VC_CDLIM_KEEP,
+ .inodes_total = VC_CDLIM_KEEP,
+ .reserved = VC_CDLIM_KEEP
+ };
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+x:s:df:", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0]);
+ case CMD_VERSION : showVersion();
+ case 'x' : xid = Evc_xidopt2xid(optarg, true); break;
+ case 's' :
+ if (!setDLimitField(&limit, optarg))
+ return EXIT_FAILURE;
+ else
+ do_set = true;
+ break;
+ case 'd' : do_remove = true; break;
+ case 'f' :
+ {
+ flags = strtol(optarg, &endptr, 0);
+ if ((flags == 0 && errno != 0) || *endptr != '\0') {
+ WRITE_MSG(2, "Invalid flags argument: '");
+ WRITE_STR(2, optarg);
+ WRITE_MSG(2, "'; try '--help' for more information\n");
+ return EXIT_FAILURE;
+ }
+ }
+ break;
+
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help' for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+
+ sum = ((do_set ? 1 : 0) + (do_remove ? 1 : 0));
+
+ if (sum>1)
+ WRITE_MSG(2, "Can not specify multiple operations; try '--help' for more information\n");
+ else if (optind==argc)
+ WRITE_MSG(2, "No mount point specified; try '--help' for more information\n");
+ else if (xid==VC_NOCTX)
+ WRITE_MSG(2, "No xid specified; try '--help' for more information\n");
+ else {
+ for (; optind < argc; ++optind) {
+ if (do_set) setDlimit(argv[optind], xid, flags, &limit);
+ else if (do_remove) remDlimit(argv[optind], xid, flags);
+ else printDlimit(argv[optind], xid, flags, true);
+ }
+
+ return EXIT_SUCCESS;
+ }
+
+ return EXIT_FAILURE;
+}
-// $Id: vdu.c,v 1.1 2003/09/29 22:01:57 ensc Exp $
+// $Id: vdu.c,v 1.2 2003/09/30 20:16:53 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on vdu.cc by Jacques Gelinas
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>
--- /dev/null
+// $Id: vhashify-init.hc,v 1.3 2005/03/23 02:10:23 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+#include "pathconfig.h"
+#include "lib_internal/util-dotfile.h"
+
+#include <sys/param.h>
+
+static UNUSED void
+freeHashList(HashDirCollection *hash_vec)
+{
+ for (struct HashDirInfo *itm = Vector_begin(hash_vec);
+ itm!=Vector_end(hash_vec);
+ ++itm) {
+ free(const_cast(char *)(itm->path.d));
+ }
+
+ Vector_free(hash_vec);
+}
+
+static size_t
+initHashList(HashDirCollection *hash_vec, char const *hashdir)
+{
+ int cur_dir = Eopen(".", O_RDONLY|O_DIRECTORY, 0);
+ Echdir(hashdir);
+
+ DIR *d = Eopendir(".");
+ struct dirent *ep;
+ size_t l = strlen(hashdir);
+ size_t res = 0;
+
+ while ((ep=readdir(d)) != 0) {
+ struct stat st;
+
+ if (isDotfile(ep->d_name) ||
+ stat(ep->d_name, &st)==-1 || !S_ISDIR(st.st_mode))
+ continue;
+
+ if (HashDirInfo_findDevice(hash_vec, st.st_dev)!=0) {
+ WRITE_MSG(2, "Duplicate hash-dir entry '");
+ WRITE_STR(2, ep->d_name);
+ WRITE_MSG(2, "' found\n");
+ continue;
+ }
+
+ char *full_path = Emalloc(l + strlen(ep->d_name) + 3);
+ char *ptr = full_path + l;
+
+ memcpy(full_path, hashdir, l);
+ while (ptr>full_path && ptr[-1]=='/') --ptr;
+ *ptr++ = '/';
+ strcpy(ptr, ep->d_name);
+ strcat(ptr, "/"); // append a trailing '/'
+
+
+ struct HashDirInfo tmp = {
+ .device = st.st_dev,
+ .path = { full_path, strlen(full_path) },
+ };
+
+ res = MAX(res, tmp.path.l);
+
+ memcpy(Vector_pushback(hash_vec), &tmp, sizeof tmp);
+ }
+
+ if (Vector_count(hash_vec)==0) {
+ WRITE_MSG(2, "Could not find a place for the hashified files at '");
+ WRITE_STR(2, hashdir);
+ WRITE_MSG(2, "'.\n");
+ exit(wrapper_exit_code);
+ }
+
+ Eclosedir(d);
+ Efchdir(cur_dir);
+ Eclose(cur_dir);
+
+ return res;
+}
+
+static bool
+initHashMethod(struct HashDirConfiguration *conf, char const *filename)
+{
+ int fd = open(filename, O_RDONLY);
+ if (fd==-1 && conf->method==0)
+ conf->method = hashFunctionDefault();
+
+ if (fd==-1) {
+ assert(conf->method!=0);
+ if (conf->method==0) return false;
+ if (global_args->dry_run) return true; // do not create the file
+
+ fd = Eopen(filename, O_WRONLY|O_CREAT|O_EXCL|O_NOFOLLOW, 0644);
+ TEMP_FAILURE_RETRY(write(fd, conf->method->name, strlen(conf->method->name)));
+ TEMP_FAILURE_RETRY(write(fd, "\n", 1));
+ }
+ else {
+ off_t s = Elseek(fd, 0, SEEK_END);
+ char buf[s + 1];
+ Elseek(fd, 0, SEEK_SET);
+
+ conf->method=0;
+
+ if (s>0 && read(fd, buf, s+1)==s) {
+ while (s>0 && (buf[s-1]=='\0' || buf[s-1]=='\n'))
+ --s;
+ buf[s] = '\0';
+
+ conf->method = hashFunctionFind(buf);
+ if (conf->method==0) {
+ WRITE_MSG(2, "Can not find hash-function '");
+ WRITE_STR(2, buf);
+ WRITE_MSG(2, "'\n");
+ }
+ }
+ else
+ WRITE_MSG(2, "Can not read configuration file for hash-method\n");
+ }
+
+ if (conf->method!=0 && conf->method->digestsize*8>HASH_MAXBITS) {
+ WRITE_MSG(2, "Wow... what an huge hash-function. I can not handle so much bits; giving up...\n");
+ conf->method=0;
+ }
+
+ Eclose(fd);
+ return conf->method!=0;
+}
+
+static bool
+initHashBlocks(struct HashDirConfiguration *conf, char const *filename)
+{
+ int fd = open(filename, O_RDONLY);
+
+ if (fd==-1) {
+ char str[sizeof("all,start,middle,end,")] = { [0] = '\0' };
+
+ if (global_args->dry_run) return true; // do not create the file
+
+ fd = Eopen(filename, O_WRONLY|O_CREAT|O_EXCL|O_NOFOLLOW, 0644);
+
+ if (conf->blocks== hshALL) strcat(str, "all\n");
+ if (conf->blocks & hshSTART) strcat(str, "start\n");
+ if (conf->blocks & hshMIDDLE) strcat(str, "middle\n");
+ if (conf->blocks & hshEND) strcat(str, "end\n");
+
+ EwriteAll(fd, str, strlen(str));
+ }
+ else {
+ off_t s = Elseek(fd, 0, SEEK_END);
+ char buf[s + 1];
+ Elseek(fd, 0, SEEK_SET);
+
+ conf->blocks = hshINVALID;
+
+ if (s>0 && read(fd, buf, s+1)==s) {
+ char *tok = buf;
+ char *sep = "\n,\t ";
+
+ buf[s] = '\0';
+ conf->blocks = hshALL;
+
+ do {
+ char *ptr = strsep(&tok, sep);
+
+ if (*ptr=='#') { sep = "\n"; continue; }
+ sep = "\n,\t ";
+ if (*ptr=='\0') continue;
+
+ if (strcasecmp(ptr, "all") ==0) conf->blocks = hshALL;
+ else {
+ if (conf->blocks==hshINVALID) conf->blocks = 0;
+
+ else if (strcasecmp(ptr, "start") ==0) conf->blocks |= hshSTART;
+ else if (strcasecmp(ptr, "middle")==0) conf->blocks |= hshMIDDLE;
+ else if (strcasecmp(ptr, "end") ==0) conf->blocks |= hshEND;
+ else {
+ WRITE_MSG(2, "Invalid block descriptor '");
+ WRITE_STR(2, ptr);
+ WRITE_MSG(2, "'\n");
+ conf->blocks = hshINVALID;
+ tok = 0;
+ }
+ }
+ } while (tok!=0);
+ }
+ else
+ WRITE_MSG(2, "Can not read configuration file for hash-blocks\n");
+ }
+
+ Eclose(fd);
+ return conf->blocks!=hshINVALID;
+}
+
+static bool
+initHashBlockSize(struct HashDirConfiguration *conf, char const *filename)
+{
+ if (conf->blocks==hshALL) return true;
+
+ int fd = open(filename, O_RDONLY);
+ if (fd==-1) {
+ char str[sizeof("0x") + sizeof(size_t)*3+2] = {
+ [0] = '0', [1] = 'x'
+ };
+ size_t len = utilvserver_fmt_xuint(str+2, conf->blocksize);
+
+ if (global_args->dry_run) return true; // do not create the file
+
+ fd = Eopen(filename, O_WRONLY|O_CREAT|O_EXCL|O_NOFOLLOW, 0644);
+ EwriteAll(fd, str, len+2);
+ }
+ else {
+ off_t s = Elseek(fd, 0, SEEK_END);
+ char buf[s + 1];
+ Elseek(fd, 0, SEEK_SET);
+
+ conf->blocksize = (size_t)(-1);
+
+ if (s>0 && read(fd, buf, s+1)==s) {
+ char *errptr;
+
+ while (s>0 && (buf[s-1]=='\0' || buf[s-1]=='\n'))
+ --s;
+ buf[s] = '\0';
+
+ conf->blocksize = strtol(buf, &errptr, 0);
+ if (errptr==buf || (*errptr!='\0' && *errptr!='\n')) {
+ WRITE_MSG(2, "Failed to parse blocksize '");
+ WRITE_STR(2, buf);
+ WRITE_MSG(2, "'\n");
+ conf->blocksize = (size_t)(-1);
+ }
+ }
+ else
+ WRITE_MSG(2, "Can not read configuration file for hash-blocksize\n");
+ }
+
+ Eclose(fd);
+ return conf->blocksize!=(size_t)(-1);
+}
+
+static bool
+initHashConf(struct HashDirConfiguration *conf, char const *hashdir)
+{
+ size_t l = strlen(hashdir);
+ char tmp[l + MAX(MAX(sizeof("/method"), sizeof("/blocks")),
+ sizeof("/blocksize"))];
+
+ memcpy(tmp, hashdir, l);
+
+ return ((strcpy(tmp+l, "/method"), initHashMethod (conf, tmp)) &&
+ (strcpy(tmp+l, "/blocks"), initHashBlocks (conf, tmp)) &&
+ (strcpy(tmp+l, "/blocksize"), initHashBlockSize(conf, tmp)));
+}
+
+static char *
+searchHashdir(char const *lhs, char const *rhs)
+{
+ size_t l1 = strlen(lhs);
+ size_t l2 = rhs ? strlen(rhs) : 0;
+ char * res = Emalloc(l1 + l2 + 1);
+ struct stat st;
+
+ strcpy(res, lhs);
+ if (rhs) strcat(res, rhs);
+
+ if (stat(res, &st)==-1 || !S_ISDIR(st.st_mode)) {
+ free(res);
+ res = 0;
+ }
+
+ return res;
+}
+
+static void
+initModeManually(struct Arguments const UNUSED *args, int argc, char *argv[])
+{
+ assert(args->hash_dir!=0);
+
+ if (argc<2) {
+ WRITE_MSG(2, "No exclude list specified\n");
+ exit(1);
+ }
+
+ if (!initHashConf(&global_info.hash_conf, args->hash_dir)) {
+ WRITE_MSG(2, "failed to initialize hash-configuration\n");
+ exit(1);
+ }
+
+ global_info.hash_dirs_max_size = initHashList(&global_info.hash_dirs,
+ args->hash_dir);
+ MatchList_initManually(&global_info.dst_list, 0, strdup(argv[0]), argv[1]);
+}
+
+static void
+initModeVserver(struct Arguments const UNUSED *args, int argc, char *argv[])
+{
+ char const *hashdir = args->hash_dir;
+ struct MatchVserverInfo vserver = {
+ .name = argv[0],
+ .use_pkgmgmt = true
+ };
+
+ if (!MatchVserverInfo_init(&vserver)) {
+ WRITE_MSG(2, "Failed to initialize unification for vserver\n");
+ exit(1);
+ }
+
+ if (argc!=1) {
+ WRITE_MSG(2, "More than one vserver is not supported\n");
+ exit(1);
+ }
+
+ if (!MatchList_initByVserver(&global_info.dst_list, &vserver)) {
+ WRITE_MSG(2, "unification not configured for this vserver\n");
+ exit(1);
+ }
+
+ if (hashdir==0) hashdir = searchHashdir(vserver.appdir.d, "/hash");
+ if (hashdir==0) hashdir = searchHashdir(CONFDIR "/.defaults/apps/vunify/hash", 0);
+
+ if (hashdir==0) {
+ WRITE_MSG(2, "no hash-directory configured for this vserver.\n");
+ exit(1);
+ }
+
+ if (!initHashConf(&global_info.hash_conf, hashdir)) {
+ WRITE_MSG(2, "failed to initialize hash-configuration\n");
+ exit(1);
+ }
+
+ global_info.hash_dirs_max_size = initHashList(&global_info.hash_dirs, hashdir);
+
+ free(const_cast(char *)(hashdir));
+ MatchVserverInfo_free(&vserver);
+}
+
--- /dev/null
+// $Id: vhashify.c,v 1.6 2005/03/24 12:46:59 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vhashify.h"
+#include "util.h"
+
+#include "lib/internal.h"
+#include "lib_internal/matchlist.h"
+#include "lib_internal/unify.h"
+#include "ensc_vector/vector.h"
+
+#include <beecrypt/beecrypt.h>
+
+#include <setjmp.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <string.h>
+#include <assert.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <errno.h>
+#include <signal.h>
+#include <limits.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+
+#define ENSC_WRAPPERS_STDLIB 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_DIRENT 1
+#define ENSC_WRAPPERS_IO 1
+#include <wrappers.h>
+
+
+#define HASH_BLOCKSIZE 0x10000000u
+#define HASH_MINSIZE 0x10
+#define HASH_MAXBITS 256 // we have to take care about
+ // max filename-length...
+
+#if HASH_MINSIZE<=0
+# error HASH_MINSIZE must be not '0'
+#endif
+
+
+#define CMD_HELP 0x8000
+#define CMD_VERSION 0x8001
+
+#define CMD_DESTINATION 0x1000
+#define CMD_INSECURE 0x1001
+#define CMD_SLEDGE 0x1002
+#define CMD_MANUALLY 0x1003
+#define CMD_REFRESH 0x1004
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "destination", required_argument, 0, CMD_DESTINATION },
+ { "insecure", no_argument, 0, CMD_INSECURE },
+ { "sledgehammer", no_argument, 0, CMD_SLEDGE },
+ { "manually", no_argument, 0, CMD_MANUALLY },
+ { "refresh", no_argument, 0, CMD_REFRESH },
+ { "dry-run", no_argument, 0, 'n' },
+ { "verbose", no_argument, 0, 'v' },
+ { 0,0,0,0 }
+};
+
+ // hash digest grouped by 2 digits + hash-collision counter + 2* '/' + NULL
+typedef char HashPath[HASH_MAXBITS/4 + (HASH_MAXBITS/4/2) +
+ sizeof(unsigned int)*2 + 3];
+
+struct HashDirConfiguration
+{
+ hashFunction const *method;
+ enum { hshALL=0, hshSTART = 1, hshMIDDLE=2,
+ hshEND = 4, hshINVALID = -1 } blocks;
+ size_t blocksize;
+};
+
+struct WalkdownInfo
+{
+ PathInfo state;
+ struct MatchList dst_list;
+ struct HashDirConfiguration hash_conf;
+ HashDirCollection hash_dirs;
+ size_t hash_dirs_max_size;
+
+ hashFunctionContext hash_context;
+};
+
+int wrapper_exit_code = 1;
+struct Arguments const *global_args;
+static struct SkipReason skip_reason;
+
+struct WalkdownInfo global_info = {
+ .hash_conf = { .method = 0,
+ .blocks = hshALL,
+ .blocksize = 0x10000 }
+};
+
+#include "vhashify-init.hc"
+
+int Global_getVerbosity() {
+ return global_args->verbosity;
+}
+
+int Global_doRenew() {
+ return true;
+}
+
+int Global_isVserverRunning() {
+ // TODO
+ return global_args->insecure<2;
+}
+
+static void
+showHelp(char const *cmd)
+{
+ WRITE_MSG(1, "Usage:\n ");
+ WRITE_STR(1, cmd);
+ WRITE_MSG(1,
+ " [-nv] [--refresh] <vserver>\n or\n ");
+ WRITE_STR(1, cmd);
+ WRITE_MSG(1,
+ " --manually [-nv] [--] <hashdir> <path> <excludelist>\n\n"
+ " --manually ... hashify generic paths; excludelists must be generated\n"
+ " manually\n"
+ " --refresh ... hashify already hashified files also\n"
+ " -n ... do not modify anything; just show what there will be\n"
+ " done (in combination with '-v')\n"
+ " -v ... verbose mode\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(0);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vhashify " VERSION " -- hashifies vservers and/or directories\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2005 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+int
+HashDirInfo_compareDevice(void const *lhs_v, void const *rhs_v)
+{
+ struct HashDirInfo const * const lhs = lhs_v;
+ dev_t const * const rhs = rhs_v;
+
+ assert(lhs!=0 && rhs!=0);
+ return lhs->device - *rhs;
+}
+
+PathInfo const *
+HashDirInfo_findDevice(HashDirCollection const *coll, dev_t dev)
+{
+ struct HashDirInfo const *res;
+
+ res = Vector_searchSelfOrg_const(coll, &dev,
+ HashDirInfo_compareDevice, vecSHIFT_ONCE);
+
+ if (res!=0) return &res->path;
+ else return 0;
+}
+
+#include "vserver-visitdir.hc"
+
+static bool
+checkFstat(PathInfo const * const basename,
+ struct stat * const st)
+{
+ assert(basename->d[0] != '/');
+
+ // local file does not exist... strange
+ // TODO: message
+ skip_reason.r = rsFSTAT;
+ if (lstat(basename->d, st)==-1) return false;
+
+ // this is a directory and succeeds everytime
+ if (S_ISDIR(st->st_mode))
+ return true;
+
+ // ignore symlinks
+ skip_reason.r = rsSYMLINK;
+ if (S_ISLNK(st->st_mode)) return false;
+
+ // ignore special files
+ skip_reason.r = rsSPECIAL;
+ if (!S_ISREG(st->st_mode) &&
+ !S_ISDIR(st->st_mode)) return false;
+
+ // ignore small files
+ skip_reason.r = rsTOOSMALL;
+ if (st->st_size < HASH_MINSIZE) return false;
+
+ switch (Unify_isIUnlinkable(basename->d)) {
+ case unifyUNSUPPORTED : skip_reason.r = rsUNSUPPORTED; return false;
+ case unifyBUSY :
+ // do an implicit refresh on busy files when there are no active links
+ if (st->st_nlink>1 && !global_args->do_refresh) {
+ // TODO: message
+ skip_reason.r = rsUNIFIED;
+ return false;
+ }
+ break;
+ default : break;
+ }
+
+ return true;
+}
+
+static sigjmp_buf bus_error_restore;
+static volatile sig_atomic_t bus_error;
+
+static void
+handlerSIGBUS(int UNUSED num)
+{
+ bus_error = 1;
+ siglongjmp(bus_error_restore, 1);
+}
+
+static bool
+convertDigest(HashPath d_path)
+{
+ static char const HEX_DIGIT[] = "0123456789abcdef";
+ hashFunctionContext * const h_ctx = &global_info.hash_context;
+ size_t d_size = h_ctx->algo->digestsize;
+
+ unsigned char digest[d_size];
+ size_t out = 0;
+
+ if (hashFunctionContextDigest(h_ctx, digest)==-1)
+ return false;
+
+ for (size_t in=0;
+ out+1<sizeof(HashPath)-(sizeof(unsigned int)*2 + 2) && in<d_size;
+ ++in) {
+ if ((in+254)%(in<=2 ? 1 : 256) == 0 && in>0)
+ d_path[out++]='/';
+ d_path[out++] = HEX_DIGIT[digest[in] >> 4];
+ d_path[out++] = HEX_DIGIT[digest[in] & 0x0f];
+ }
+ d_path[out++] = '\0';
+
+ return true;
+}
+
+static bool
+addStatHash(hashFunctionContext *h_ctx, struct stat const * const st)
+{
+#define DECL_ATTR(X) __typeof__(st->st_##X) X
+#define SET_ATTR(X) .X = st->st_##X
+
+ struct __attribute__((__packed__)) {
+ DECL_ATTR(mode);
+ DECL_ATTR(uid);
+ DECL_ATTR(gid);
+ DECL_ATTR(rdev);
+ DECL_ATTR(size);
+ DECL_ATTR(mtime);
+ } tmp = {
+ SET_ATTR(mode),
+ SET_ATTR(uid),
+ SET_ATTR(gid),
+ SET_ATTR(rdev),
+ SET_ATTR(size),
+ SET_ATTR(mtime)
+ };
+
+ return hashFunctionContextUpdate(h_ctx, (void *)&tmp, sizeof tmp)!=-1;
+}
+
+static bool
+calculateHashFromFD(int fd, HashPath d_path, struct stat const * const st)
+{
+ hashFunctionContext * const h_ctx = &global_info.hash_context;
+ void const * volatile buf = 0;
+ loff_t volatile buf_size = 0;
+ bool volatile res = false;
+
+
+ if (hashFunctionContextReset(h_ctx)==-1 ||
+ !addStatHash(h_ctx, st))
+ return false;
+
+ bus_error = 0;
+ if (sigsetjmp(bus_error_restore,1)==0) {
+ loff_t offset = 0;
+ off_t size = st->st_size;
+
+ while (offset < size) {
+ buf_size = size-offset;
+ if (buf_size>HASH_BLOCKSIZE) buf_size = HASH_BLOCKSIZE;
+
+ if ((buf=mmap(0, buf_size, PROT_READ, MAP_SHARED, fd, offset))==0) {
+ perror("mmap(<hash>)");
+ goto out;
+ }
+
+ offset += buf_size;
+ madvise(const_cast(void *)(buf), buf_size, MADV_SEQUENTIAL); // ignore error...
+
+ if (hashFunctionContextUpdate(h_ctx, buf, buf_size)==-1) goto out;
+
+ munmap(const_cast(void *)(buf), buf_size);
+ buf = 0;
+ }
+
+ res = convertDigest(d_path);
+ }
+
+ out:
+ if (buf!=0) munmap(const_cast(void *)(buf), buf_size);
+ return res;
+}
+
+static bool
+calculateHash(PathInfo const *filename, HashPath d_path, struct stat const * const st)
+{
+ int fd = open(filename->d, O_NOFOLLOW|O_NONBLOCK|O_RDONLY|O_NOCTTY);
+ struct stat fst;
+ bool res = false;
+
+ do {
+ if (fd==-1) {
+ int old_errno = errno;
+ WRITE_MSG(2, "Failed to open '");
+ WRITE_STR(2, filename->d);
+ errno = old_errno;
+ perror("'");
+ break;;
+ }
+
+ if (fstat(fd, &fst)==-1 ||
+ fst.st_dev!=st->st_dev || fst.st_ino!=st->st_ino) {
+ WRITE_MSG(2, "An unexpected event occured while stating '");
+ WRITE_STR(2, filename->d);
+ WRITE_MSG(2, "'.\n");
+ break;
+ }
+
+ if (!calculateHashFromFD(fd, d_path, st)) {
+ WRITE_MSG(2, "Failed to calculate hash for '");
+ WRITE_STR(2, filename->d);
+ WRITE_MSG(2, "'.\n");
+ break;
+ }
+
+ res = true;
+ } while (false);
+
+ if (fd!=-1) close(fd);
+ return res;
+}
+
+static enum { mkdirFAIL, mkdirSUCCESS, mkdirSKIP }
+mkdirSingle(char const *path, char *end_ptr, int good_err)
+{
+ *end_ptr = '\0';
+ if (mkdir(path, 0700)!=-1 || errno==EEXIST) {
+ *end_ptr = '/';
+ return mkdirSUCCESS;
+ }
+ else if (errno==good_err) {
+ *end_ptr = '/';
+ return mkdirSKIP;
+ }
+ else {
+ int old_errno = errno;
+ WRITE_MSG(2, "mkdir('");
+ WRITE_STR(2, path);
+ errno = old_errno;
+ perror("')");
+ return mkdirFAIL;
+ }
+}
+
+static char *
+rstrchr(char *str, char c)
+{
+ while (*str!=c) --str;
+ return str;
+}
+
+static bool
+mkdirRecursive(char const *path)
+{
+ if (path[0]!='/') return false; // only absolute paths
+
+ char buf[strlen(path)+1];
+ char * ptr = buf + sizeof(buf) - 2;
+
+ strcpy(buf, path);
+
+ while (ptr>buf && (ptr = rstrchr(ptr, '/'))!=0) {
+ switch (mkdirSingle(buf, ptr, ENOENT)) {
+ case mkdirSUCCESS : break;
+ case mkdirSKIP : --ptr; continue;
+ case mkdirFAIL : return false;
+ }
+
+ break; // implied by mkdirSUCCESS
+ }
+
+ assert(ptr!=0);
+ ++ptr;
+
+ while ((ptr=strchr(ptr, '/'))!=0) {
+ switch (mkdirSingle(buf, ptr, 0)) {
+ case mkdirSKIP :
+ case mkdirFAIL : return false;
+ case mkdirSUCCESS : ++ptr; continue;
+ }
+ }
+
+ return true;
+}
+
+static bool
+resolveCollisions(char *result, PathInfo const *root, HashPath d_path,
+ struct stat *st, struct stat *hash_st)
+{
+ strcpy(result, root->d); // 'root' ends on '/' already (see initHashList())
+ strcat(result, d_path);
+
+ char *ptr = result + strlen(result);
+ unsigned int idx = 0;
+ char buf[sizeof(int)*2 + 1];
+ size_t len;
+
+ *ptr = '-';
+ ptr[sizeof(int)*2+1] = '\0';
+
+ for (;; ++idx) {
+ len = utilvserver_fmt_xuint(buf, idx);
+ memset(ptr+1, '0', sizeof(int)*2 - len);
+ memcpy(ptr+1 + sizeof(int)*2 - len, buf, len);
+
+ if (lstat(result, hash_st)==-1) {
+ if (global_args->dry_run && errno!=ENOENT) {
+ int old_errno = errno;
+ WRITE_MSG(2, "lstat('");
+ WRITE_STR(2, buf);
+ errno = old_errno;
+ perror("')");
+ return false;
+ }
+ }
+ else if (Unify_isUnified(st, hash_st)) {
+ skip_reason.r = rsUNIFIED;
+ return false;
+ }
+ else if (!Unify_isUnifyable(st, hash_st))
+ continue; // continue with next number*****
+ else
+ break; // ok, we finish here
+
+ if (!global_args->dry_run) {
+ *ptr = '\0';
+ if (!mkdirRecursive(result))
+ return false;
+ *ptr = '-';
+
+ int fd = open(result, O_NOFOLLOW|O_EXCL|O_CREAT|O_WRONLY, 0200);
+
+ if (fd==-1) {
+ int old_errno = errno;
+ WRITE_MSG(2, "open('");
+ WRITE_STR(2, buf);
+ errno = old_errno;
+ perror("')");
+ return false;
+ }
+
+ close(fd);
+ }
+
+ // HACK: avoid an additional lstat on the resulting hash-file
+ hash_st->st_size = 0;
+ break;
+ }
+
+ return true;
+}
+
+static char const *
+checkDirEntry(PathInfo const *path, PathInfo const *basename,
+ bool *is_dir,
+ struct stat *st, struct stat *hash_st,
+ char *result_buf)
+{
+ //printf("checkDirEntry(%s, %s, %u)\n", path->d, d_path, is_dir);
+
+ struct WalkdownInfo const * const info = &global_info;
+
+ // Check if it is in the exclude/include list of the destination vserver and
+ // abort when it is not matching an allowed entry
+ skip_reason.r = rsEXCL;
+ if (MatchList_compare(&info->dst_list, path->d)!=stINCLUDE) return 0;
+
+ if (checkFstat(basename, st)) {
+ PathInfo const *hash_root_path;
+ HashPath d_path;
+
+ *is_dir = S_ISDIR(st->st_mode);
+
+ if (!*is_dir &&
+ !((skip_reason.r = rsWRONGDEV,
+ (hash_root_path = HashDirInfo_findDevice(&info->hash_dirs, st->st_dev))!=0) &&
+ (skip_reason.r = rsGENERAL,
+ calculateHash(basename, d_path, st)) &&
+ resolveCollisions(result_buf, hash_root_path, d_path, st, hash_st)))
+ return 0;
+
+ return result_buf;
+ }
+
+ return 0;
+}
+
+static void
+printSkipReason()
+{
+ WRITE_MSG(1, " (");
+ switch (skip_reason.r) {
+ case rsDOTFILE : WRITE_MSG(1, "dotfile"); break;
+ case rsEXCL : WRITE_MSG(1, "excluded"); break;
+ case rsTOOSMALL : WRITE_MSG(1, "too small"); break;
+ case rsUNSUPPORTED : WRITE_MSG(1, "operation not supported"); break;
+ case rsFSTAT : WRITE_MSG(1, "fstat error"); break;
+ case rsSYMLINK : WRITE_MSG(1, "symlink"); break;
+ case rsUNIFIED : WRITE_MSG(1, "already unified"); break;
+ case rsSPECIAL : WRITE_MSG(1, "non regular file"); break;
+ case rsWRONGDEV : WRITE_MSG(1, "no matching device"); break;
+ case rsGENERAL : WRITE_MSG(1, "general error"); break;
+ default : assert(false); abort();
+ }
+ WRITE_MSG(1, ")");
+}
+
+static bool
+doit(char const *src, char const *dst,
+ struct stat const *src_st, struct stat const *dst_st,
+ PathInfo const *path)
+{
+ if (global_args->dry_run || Global_getVerbosity()>=2) {
+ WRITE_MSG(1, "unifying '");
+ Vwrite(1, path->d, path->l);
+ WRITE_MSG(1, "'");
+
+ if (Global_getVerbosity()>=4) {
+ WRITE_MSG(1, " (to '");
+ WRITE_STR(1, dst);
+ WRITE_MSG(1, "')");
+ }
+
+ WRITE_MSG(1, "\n");
+ }
+
+ // abort here in dry-run mode
+ if (global_args->dry_run) return true;
+
+ if (dst_st->st_size==0) {
+ // file was not unified yet
+
+ if (Global_isVserverRunning()) {
+ (void)unlink(dst);
+ if (Unify_copy (src, src_st, dst) &&
+ // the mixed 'dst' and 'src_st' params are intentionally...
+ Unify_unify(dst, src_st, src, false))
+ return true;
+ }
+ else if (Unify_unify(src, src_st, dst, true))
+ return true;
+
+ (void)unlink(dst); // cleanup in error-case
+ }
+ // there exists already a reference-file
+ else if (Unify_unify(dst, dst_st, src, false))
+ return true;
+
+ return false;
+}
+
+static uint64_t
+visitDirEntry(struct dirent const *ent)
+{
+ uint64_t res = 0;
+ char const * dirname = ent->d_name;
+ PathInfo path = global_info.state;
+ PathInfo tmp_path = {
+ .d = dirname,
+ .l = strlen(dirname)
+ };
+ char path_buf[ENSC_PI_APPSZ(path, tmp_path)];
+ char const *match = 0;
+
+
+ PathInfo_append(&path, &tmp_path, path_buf);
+
+ bool is_dotfile = isDotfile(dirname);
+ bool is_dir;
+ struct stat src_stat = { .st_mode=0 };
+ struct stat hash_stat;
+ char tmpbuf[global_info.hash_dirs_max_size +
+ sizeof(HashPath) + 2];
+
+ skip_reason.r = rsDOTFILE;
+
+ if (is_dotfile ||
+ (match=checkDirEntry(&path, &tmp_path,
+ &is_dir, &src_stat, &hash_stat,
+ tmpbuf))==0) {
+
+ bool is_link = !is_dotfile && S_ISLNK(src_stat.st_mode);
+
+ if (Global_getVerbosity()>=1 &&
+ (Global_getVerbosity()>=3 || skip_reason.r!=rsUNIFIED) &&
+ ((!is_dotfile && !is_link) ||
+ (Global_getVerbosity()>=6 && is_dotfile) ||
+ (Global_getVerbosity()>=6 && is_link)) ) {
+ WRITE_MSG(1, " skipping '");
+ Vwrite(1, path.d, path.l);
+ WRITE_MSG(1, "'");
+ if (Global_getVerbosity()>=2) printSkipReason();
+ WRITE_MSG(1, "\n");
+ }
+
+ return 0;
+ }
+
+ if (is_dir) {
+ res = visitDir(dirname, &src_stat);
+ }
+ else if (doit(dirname, match, &src_stat, &hash_stat, &path))
+ res = 1;
+ else {
+ // TODO: message
+ res = 0;
+ }
+
+ return res;
+
+}
+
+int main(int argc, char *argv[])
+{
+ struct Arguments args = {
+ .mode = mdVSERVER,
+ .hash_dir = 0,
+ .verbosity = 0,
+ .insecure = 0,
+ .dry_run = false,
+ .do_refresh = false,
+ };
+
+ Vector_init(&global_info.hash_dirs, sizeof(struct HashDirInfo));
+
+ global_args = &args;
+ while (1) {
+ int c = getopt_long(argc, argv, "+nv",
+ CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(argv[0]);
+ case CMD_VERSION : showVersion();
+ case CMD_DESTINATION : args.hash_dir = optarg; break;
+ case CMD_MANUALLY : args.mode = mdMANUALLY; break;
+ case CMD_INSECURE : args.insecure = 1; break;
+ case CMD_SLEDGE : args.insecure = 2; break;
+ case CMD_REFRESH : args.do_refresh = true; break;
+ case 'n' : args.dry_run = true; break;
+ case 'v' : ++args.verbosity; break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+
+ if (argc==optind) {
+ WRITE_MSG(2, "No directory/vserver given\n");
+ return EXIT_FAILURE;
+ }
+
+ if (args.hash_dir==0 && args.mode==mdMANUALLY) {
+ WRITE_MSG(2, "'--manually' requires '--destination'\n");
+ return EXIT_FAILURE;
+ }
+
+ switch (args.mode) {
+ case mdMANUALLY : initModeManually(&args, argc-optind, argv+optind); break;
+ case mdVSERVER : initModeVserver (&args, argc-optind, argv+optind); break;
+ default : assert(false); return EXIT_FAILURE;
+ };
+
+ if (hashFunctionContextInit(&global_info.hash_context,
+ global_info.hash_conf.method)==-1) {
+ WRITE_MSG(2, "Failed to initialize hash-context\n");
+ return EXIT_FAILURE;
+ }
+
+ if (Global_getVerbosity()>=1)
+ WRITE_MSG(1, "Starting to traverse directories...\n");
+
+ signal(SIGBUS, handlerSIGBUS);
+
+ Echdir(global_info.dst_list.root.d);
+ visitDir("/", 0);
+
+#ifndef NDEBUG
+ MatchList_destroy(&global_info.dst_list);
+ freeHashList(&global_info.hash_dirs);
+ hashFunctionContextFree(&global_info.hash_context);
+#endif
+}
--- /dev/null
+// $Id: vhashify.h,v 1.2 2005/03/18 00:25:37 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_SRC_VHASHIFY_H
+#define H_UTIL_VSERVER_SRC_VHASHIFY_H
+
+#include "ensc_vector/list.h"
+#include "lib_internal/pathinfo.h"
+
+#include <sys/types.h>
+#include <stdbool.h>
+
+struct Arguments {
+ enum {mdMANUALLY, mdVSERVER} mode;
+ unsigned int verbosity;
+ unsigned int insecure;
+ char const * hash_dir;
+ bool dry_run;
+ bool do_refresh;
+};
+
+struct HashDirInfo {
+ PathInfo const path;
+ dev_t device;
+};
+
+struct SkipReason {
+ enum { rsDOTFILE, rsEXCL, rsTOOSMALL, rsUNSUPPORTED,
+ rsFSTAT, rsSYMLINK, rsUNIFIED, rsWRONGDEV,
+ rsSPECIAL, rsGENERAL } r;
+};
+
+typedef struct Vector HashDirCollection;
+
+int HashDirInfo_compareDevice(void const *lhs, void const *rhs);
+PathInfo const * HashDirInfo_findDevice(HashDirCollection const *, dev_t dev);
+
+#endif // H_UTIL_VSERVER_SRC_VHASHIFY_H
-// $Id: vkill.c,v 1.1.2.2 2003/12/30 13:49:17 ensc Exp $ --*- c -*--
+// $Id: vkill.c,v 1.8 2004/08/19 14:30:50 ensc Exp $ --*- c -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
#include "vserver.h"
#include "linuxvirtual.h"
+#include "util.h"
#include <getopt.h>
#include <signal.h>
#include <sys/resource.h>
#include <sys/wait.h>
-#define VERSION_COPYRIGHT_DISCLAIMER
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
#define CMD_HELP 0x8000
#define CMD_VERSION 0x8001
-#define WRITE_MSG(FD,X) (void)(write(FD,X,sizeof(X)-1))
-#define WRITE_STR(FD,X) writeStr(FD,X)
+int wrapper_exit_code = 1;
static struct option const
CMDLINE_OPTIONS[] = {
- { "help", no_argument, 0, CMD_HELP },
- { "version", no_argument, 0, CMD_VERSION },
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "xid", required_argument, 0, 'c' },
{ 0,0,0,0 }
};
struct Arguments
{
- xid_t ctx;
+ xid_t xid;
int sig;
};
0,
};
-inline static void UNUSED
-writeStr(int fd, char const *cmd)
-{
- (void)write(fd, cmd, strlen(cmd));
-}
-
static void
showHelp(int fd, char const *cmd, int res)
{
WRITE_MSG(fd, "Usage: ");
WRITE_STR(fd, cmd);
WRITE_MSG(fd,
- " [-c <ctx>] [-s <signal>] [--] <pid>*\n"
+ " [--xid|-c <xid>] [-s <signal>] [--] <pid>*\n"
"Please report bugs to " PACKAGE_BUGREPORT "\n");
exit(res);
}
#if defined(VC_ENABLE_API_LEGACY)
inline static ALWAYSINLINE int
-kill_wrapper_legacy(xid_t ctx, char const *proc, int sig)
+kill_wrapper_legacy(xid_t UNUSED xid, char const *proc, int UNUSED sig)
{
- pid_t pid = fork();
- if (pid==-1) {
- perror("fork()");
- exit(1);
- }
- else if (pid==0) {
+ pid_t pid;
+
+ signal(SIGCHLD, SIG_DFL);
+ pid = Efork();
+
+ if (pid==0) {
int status;
int res;
while ((res=wait4(pid, &status, 0,0))==-1 &&
}
execl(LEGACYDIR "/vkill", "legacy/vkill", proc, (void *)(0));
- perror("execl()");
+ perror("vkill: execl()");
exit(1);
}
static int
-kill_wrapper(xid_t ctx, char const *pid, int sig)
+kill_wrapper(xid_t xid, char const *pid, int sig)
{
- //printf("kill_wrapper(%u, %s, %i)\n", ctx, pid, sig);
- if (vc_ctx_kill(ctx,atoi(pid),sig)==-1) {
+ //printf("kill_wrapper(%u, %s, %i)\n", xid, pid, sig);
+ if (vc_ctx_kill(xid,atoi(pid),sig)==-1) {
int err = errno;
if (vc_get_version(VC_CAT_COMPAT)==-1)
- return kill_wrapper_legacy(ctx, pid, sig);
+ return kill_wrapper_legacy(xid, pid, sig);
else {
errno = err;
- perror("vc_ctx_kill()");
+ perror("vkill: vc_ctx_kill()");
return 1;
}
}
}
#else // VC_ENABLE_API_LEGACY
inline static int
-kill_wrapper(xid_t ctx, char const *pid, int sig)
+kill_wrapper(xid_t xid, char const *pid, int sig)
{
- if (vc_ctx_kill(ctx,atoi(pid),sig)==-1) {
- perror("vc_ctx_kill()");
+ if (vc_ctx_kill(xid,atoi(pid),sig)==-1) {
+ perror("vkill: vc_ctx_kill()");
return 1;
}
return 0;
{
int fail = 0;
struct Arguments args = {
- .ctx = VC_NOCTX,
+ .xid = VC_NOCTX,
.sig = SIGTERM,
};
switch (c) {
case CMD_HELP : showHelp(1, argv[0], 0);
case CMD_VERSION : showVersion();
- case 'c' : args.ctx = atoi(optarg); break;
- case 's' : args.sig = str2sig(optarg); break;
+ case 'c' : args.xid = Evc_xidopt2xid(optarg,true); break;
+ case 's' : args.sig = str2sig(optarg); break;
default :
WRITE_MSG(2, "Try '");
WRITE_STR(2, argv[0]);
return EXIT_FAILURE;
}
- if (args.ctx==VC_NOCTX && optind==argc) {
+ if (args.xid==VC_NOCTX && optind==argc) {
WRITE_MSG(2, "No pid specified\n");
return EXIT_FAILURE;
}
if (optind==argc)
- fail += kill_wrapper(args.ctx, "0", args.sig);
+ fail += kill_wrapper(args.xid, "0", args.sig);
else for (;optind<argc;++optind)
- fail += kill_wrapper(args.ctx, argv[optind], args.sig);
+ fail += kill_wrapper(args.xid, argv[optind], args.sig);
return fail==0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
-// $Id: vlimit.c,v 1.1.2.3 2004/02/20 19:35:50 ensc Exp $
+// $Id: vlimit.c,v 1.20 2005/03/24 12:44:17 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#include "compat.h"
#include "vserver.h"
-#include "vserver-internal.h"
+#include "internal.h"
+#include "util.h"
#include <getopt.h>
#include <string.h>
#include <assert.h>
#include <stdbool.h>
#include <stdio.h>
+#include <stdlib.h>
+#include <libgen.h>
+#include <sys/resource.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <ctype.h>
-#define VERSION_COPYRIGHT_DISCLAIMER
+#define ENSC_WRAPPERS_PREFIX "vlimit: "
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_VSERVER 1
+#include <wrappers.h>
-inline static void UNUSED
-writeStr(int fd, char const *cmd)
-{
- (void)write(fd, cmd, strlen(cmd));
-}
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+#define CMD_XID 0x4000
+#define CMD_DIR 0x8000
+#define CMD_MISSINGOK 0x8001
-#define WRITE_MSG(FD,X) (void)(write(FD,X,sizeof(X)-1))
-#define WRITE_STR(FD,X) writeStr(FD,X)
+int wrapper_exit_code = 255;
#define NUMLIM(X) \
{ #X, required_argument, 0, 2048|X }
+#define OPT_RESLIM(RES,V) \
+ { #RES, required_argument, 0, 2048|RLIMIT_##V }
static struct option const
CMDLINE_OPTIONS[] = {
- { "help", no_argument, 0, 'h' },
- { "version", no_argument, 0, 'v' },
- { "all", no_argument, 0, 'a' },
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "all", no_argument, 0, 'a' },
+ { "xid", required_argument, 0, CMD_XID },
+ { "dir", required_argument, 0, CMD_DIR },
+ { "missingok", no_argument, 0, CMD_MISSINGOK },
NUMLIM( 0), NUMLIM( 1), NUMLIM( 2), NUMLIM( 3),
NUMLIM( 4), NUMLIM( 5), NUMLIM( 6), NUMLIM( 7),
NUMLIM( 8), NUMLIM( 9), NUMLIM(10), NUMLIM(11),
NUMLIM(20), NUMLIM(21), NUMLIM(22), NUMLIM(23),
NUMLIM(24), NUMLIM(25), NUMLIM(26), NUMLIM(27),
NUMLIM(28), NUMLIM(29), NUMLIM(30), NUMLIM(31),
+ OPT_RESLIM(cpu, CPU),
+ OPT_RESLIM(fsize, FSIZE),
+ OPT_RESLIM(data, DATA),
+ OPT_RESLIM(stack, STACK),
+ OPT_RESLIM(core, CORE),
+ OPT_RESLIM(rss, RSS),
+ OPT_RESLIM(nproc, NPROC),
+ OPT_RESLIM(nofile, NOFILE),
+ OPT_RESLIM(memlock, MEMLOCK),
+ OPT_RESLIM(as, AS),
+ OPT_RESLIM(locks, LOCKS),
{ 0,0,0,0 }
};
+#define REV_RESLIM(X) [RLIMIT_##X] = #X
+static char const * const LIMIT_STR[] = {
+ REV_RESLIM(CPU), REV_RESLIM(FSIZE), REV_RESLIM(DATA), REV_RESLIM(STACK),
+ REV_RESLIM(CORE), REV_RESLIM(RSS), REV_RESLIM(NPROC), REV_RESLIM(NOFILE),
+ REV_RESLIM(MEMLOCK), REV_RESLIM(AS), REV_RESLIM(LOCKS)
+};
+
static void
showHelp(int fd, char const *cmd, int res)
{
+ VSERVER_DECLARE_CMD(cmd);
+
WRITE_MSG(fd, "Usage: ");
WRITE_STR(fd, cmd);
WRITE_MSG(fd,
- " -c <xid> [-a|--all] [-MSH --<nr> <value>]*\n"
+ " [--xid|-c <xid>] [-nd] [-a|--all] [[-MSH] --(<resource>|<nr>) <value>]*\n"
+ " [--dir <pathname> [--missingok]] [--] [<program> <args>*]\n\n"
+ "Options:\n"
+ " -c|--xid <xid>\n"
+ " ... operate on context <xid>\n"
+ " -a|--all ... show all available limits\n"
+ " -n ... do not resolve limit-names\n"
+ " -d ... show limits in decimal\n"
+ " -M ... set Minimum limit\n"
+ " -S ... set Soft limit\n"
+ " -H ... set Hard limit (assumed by default, when neither\n"
+ " M nor S was requested)\n"
+ " --dir <pathname>\n"
+ " ... read limits from <pathname>/; allowed filenames are\n"
+ " <resource> and <resource>.{min,soft,hard}. When a limit\n"
+ " was set by the CLI already, the corresponding file\n"
+ " will be ignored\n"
+ " --missingok ... do not fail when <pathname> does not exist\n"
+ " --<resource>|<nr> <value>\n"
+ " ... set specified (MSH) limit for <resource> to <value>\n\n"
+ "Valid values for resource are cpu, fsize, data, stack, core, rss, nproc,\n"
+ "nofile, memlock, as and locks.\n\n"
"Please report bugs to " PACKAGE_BUGREPORT "\n");
exit(res);
}
exit(0);
}
+static size_t
+fmtHex(char *ptr, vc_limit_t lim)
+{
+ memcpy(ptr, "0x", 2);
+ return utilvserver_fmt_xuint64(ptr+2, lim) + 2;
+}
+
+static bool do_resolve = true;
+static size_t (*fmt_func)(char *, vc_limit_t) = fmtHex;
+
static void *
appendLimit(char *ptr, bool do_it, vc_limit_t lim)
{
ptr += 2;
if (do_it) {
if (lim==VC_LIM_INFINITY) {
- strcpy(ptr, "INF");
+ strcpy(ptr, "inf");
ptr += 3;
}
else {
- memcpy(ptr, "0x", 2);
- ptr += 2;
-
- ptr += utilvserver_uint2str(ptr, 20, (lim>>32), 16);
- ptr += utilvserver_uint2str(ptr, 20, lim&0xffffffff, 16);
+ ptr += (*fmt_func)(ptr, lim);
*ptr = ' ';
}
}
if (vc_get_rlimit_mask(ctx, &mask)==-1) {
perror("vc_get_rlimit_mask()");
- exit(1);
+ exit(wrapper_exit_code);
}
for (i=0; i<32; ++i) {
uint32_t bitmask = (1<<i);
struct vc_rlimit limit;
- char buf[100], *ptr=buf;
-
+ char buf[128], *ptr=buf;
+
if (((mask.min|mask.soft|mask.hard) & bitmask)==0) continue;
if (vc_get_rlimit(ctx, i, &limit)==-1) {
perror("vc_get_rlimit()");
}
memset(buf, ' ', sizeof buf);
- ptr += utilvserver_uint2str(ptr, 100, i, 10);
- *ptr = ' ';
+ if (do_resolve && i<DIM_OF(LIMIT_STR)) {
+ size_t l = strlen(LIMIT_STR[i]);
+ memcpy(ptr, LIMIT_STR[i], l);
+ ptr += l;
+ }
+ else {
+ ptr += utilvserver_fmt_uint(ptr, i);
+ *ptr = ' ';
+ }
ptr = appendLimit(buf+10, mask.min &bitmask, limit.min);
ptr = appendLimit(buf+30, mask.soft&bitmask, limit.soft);
ptr = appendLimit(buf+50, mask.hard&bitmask, limit.hard);
*ptr++ = '\n';
- write(1, buf, ptr-buf);
- }
+ Vwrite(1, buf, ptr-buf);
+ }
}
static void
- setLimits(int ctx, struct vc_rlimit const limits[], uint32_t mask)
+setLimits(int ctx, struct vc_rlimit const limits[], uint32_t mask)
{
size_t i;
for (i=0; i<32; ++i) {
}
}
+static vc_limit_t
+readValue(int fd, char const *filename)
+{
+ char buf[128];
+ size_t len = Eread(fd, buf, sizeof(buf)-1);
+ vc_limit_t res;
+
+ buf[len] = '\0';
+
+ if (!vc_parseLimit(buf, &res)) {
+ WRITE_MSG(2, "Invalid limit in '");
+ WRITE_STR(2, filename);
+ WRITE_STR(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+
+ return res;
+}
+
+static bool
+readFile(char const *file, char *base, char const *suffix,
+ vc_limit_t *limit)
+{
+ int fd;
+
+ strcpy(base, suffix);
+ fd = open(file, O_RDONLY);
+ if (fd!=-1) {
+ *limit = readValue(fd, file);
+ Eclose(fd);
+ }
+
+ return fd!=-1;
+}
+
+static void
+readFromDir(struct vc_rlimit limits[32], uint_least32_t *mask,
+ char const *pathname, bool missing_ok)
+{
+ struct stat st;
+ size_t i;
+ size_t l_pathname = strlen(pathname);
+ char buf[l_pathname + sizeof("/memlock.hard") + 32];
+
+ if (stat(pathname, &st)==-1) {
+ if (errno==ENOENT && missing_ok) return;
+ PERROR_Q("vlimit: fstat", pathname);
+ exit(wrapper_exit_code);
+ }
+
+ memcpy(buf, pathname, l_pathname);
+ if (l_pathname>0 && pathname[l_pathname-1]!='/')
+ buf[l_pathname++] = '/';
+
+ for (i=0; i<DIM_OF(LIMIT_STR); ++i) {
+ size_t l_res;
+ char * ptr = buf+l_pathname;
+
+ // ignore unimplemented limits
+ if (LIMIT_STR[i]==0) continue;
+
+ // ignore limits set on cli already
+ if (*mask & (1<<i)) continue;
+
+ l_res = strlen(LIMIT_STR[i]);
+ memcpy(ptr, LIMIT_STR[i], l_res+1);
+ while (*ptr) {
+ *ptr = tolower(*ptr);
+ ++ptr;
+ }
+
+ if (readFile(buf, ptr, "", &limits[i].min)) {
+ limits[i].soft = limits[i].hard = limits[i].min;
+ *mask |= (1<<i);
+ }
+
+ if (readFile(buf, ptr, ".min", &limits[i].min))
+ *mask |= (1<<i);
+
+ if (readFile(buf, ptr, ".soft", &limits[i].soft))
+ *mask |= (1<<i);
+
+ if (readFile(buf, ptr, ".hard", &limits[i].hard))
+ *mask |= (1<<i);
+ }
+}
+
int main (int argc, char *argv[])
{
// overall used limits
uint32_t lim_mask = 0;
int set_mask = 0;
struct vc_rlimit limits[32];
- bool show_all = false;
- xid_t ctx = VC_NOCTX;
+ bool show_all = false;
+ xid_t ctx = VC_NOCTX;
+ char const * dir = 0;
+ bool missing_ok = false;
{
size_t i;
}
while (1) {
- int c = getopt_long(argc, argv, "MSHhvac:", CMDLINE_OPTIONS, 0);
+ int c = getopt_long(argc, argv, "+MSHndac:", CMDLINE_OPTIONS, 0);
if (c==-1) break;
if (2048<=c && c<2048+32) {
int id = c-2048;
vc_limit_t val;
- if (strcmp(optarg, "inf")==0) val = VC_LIM_INFINITY;
- else val = atoll(optarg);
+ if (!vc_parseLimit(optarg, &val)) {
+ WRITE_MSG(2, "Can not parse limit '");
+ WRITE_STR(2, optarg);
+ WRITE_STR(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+ if (set_mask==0) set_mask=4;
+
if (set_mask & 1) limits[id].min = val;
if (set_mask & 2) limits[id].soft = val;
- if (set_mask & 4) limits[id].soft = val;
+ if (set_mask & 4) limits[id].hard = val;
lim_mask |= (1<<id);
set_mask = 0;
}
else switch (c) {
- case 'h' : showHelp(1, argv[0], 0);
- case 'v' : showVersion();
- case 'c' : ctx = atoi(optarg); break;
- case 'a' : show_all = true; break;
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case 'a' : show_all = true; break;
+ case 'n' : do_resolve = false; break;
+ case CMD_DIR : dir = optarg; break;
+ case CMD_MISSINGOK: missing_ok = true; break;
+ case CMD_XID : /*@fallthrough@*/
+ case 'c' : ctx = Evc_xidopt2xid(optarg,true); break;
+ case 'd' : fmt_func = utilvserver_fmt_uint64; break;
case 'M' :
case 'S' :
case 'H' :
WRITE_MSG(2, "Try '");
WRITE_STR(2, argv[0]);
WRITE_MSG(2, " --help\" for more information.\n");
- return EXIT_FAILURE;
+ exit(wrapper_exit_code) ;
break;
}
}
- if (ctx==VC_NOCTX) {
- WRITE_MSG(2, "No context specified; try '--help' for more information\n");
- return EXIT_FAILURE;
- }
+ if (ctx==VC_NOCTX)
+ ctx = Evc_get_task_xid(0);
+
+ if (dir)
+ readFromDir(limits, &lim_mask, dir, missing_ok);
setLimits(ctx, limits, lim_mask);
if (show_all) showAll(ctx);
+ if (optind<argc)
+ EexecvpD(argv[optind], argv+optind);
+
return EXIT_SUCCESS;
}
--- /dev/null
+// $Id: vnamespace.c,v 1.5 2004/08/19 14:31:24 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include <lib_internal/sys_clone.h>
+
+#include <vserver.h>
+
+#include <getopt.h>
+#include <libgen.h>
+#include <errno.h>
+#include <signal.h>
+#include <sched.h>
+
+#define ENSC_WRAPPERS_PREFIX "vnamespace: "
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_VSERVER 1
+#include <wrappers.h>
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+
+int wrapper_exit_code = 255;
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "new", no_argument, 0, 'n' },
+ { "enter", required_argument, 0, 'e' },
+ { "set", no_argument, 0, 's' },
+ { "cleanup", no_argument, 0, 'c' },
+ {0,0,0,0}
+};
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " <operation> [--] [<program> <args>*]\n"
+ "\n"
+ "<operation> can be one of:\n"
+ " --new|-n ... create new namespace and execute <program> there;\n"
+ " <program> is mandatory in this case\n"
+ " --enter|-e <xid> ... enter the namespace of context <xid> and execute\n"
+ " <program> there; <program> is mandatory in this\n"
+ " case\n"
+ " --set|-s ... make current namespace the namespace of the\n"
+ " current context\n"
+ " --cleanup|-c ... remove all mounts from the namespace of the\n"
+ " current context\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vnamespace " VERSION " -- manages filesystem-namespace\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static void
+newNamespace(char const *cmd)
+{
+ pid_t pid;
+
+ signal(SIGCHLD, SIG_DFL);
+
+#ifdef NDEBUG
+ pid = sys_clone(CLONE_NEWNS|CLONE_VFORK|SIGCHLD, 0);
+#else
+ pid = sys_clone(CLONE_NEWNS|SIGCHLD, 0);
+#endif
+
+ switch (pid) {
+ case -1 :
+ perror("vnamespace: clone()");
+ exit(wrapper_exit_code);
+ case 0 :
+ break;
+ default :
+ exitLikeProcess(pid, cmd, wrapper_exit_code);
+ }
+}
+
+static void
+enterNamespace(xid_t xid)
+{
+ if (vc_enter_namespace(xid)==-1) {
+ perror("vnamespace: vc_enter_namespace()");
+ exit(255);
+ }
+}
+
+static void
+setNamespace()
+{
+ if (vc_set_namespace()==-1) {
+ perror("vnamespace: vc_set_namespace()");
+ exit(255);
+ }
+}
+
+static void
+cleanupNamespace()
+{
+ if (vc_cleanup_namespace()==-1) {
+ perror("vnamespace: vc_cleanup_namespace()");
+ exit(255);
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ bool do_new = false;
+ bool do_enter = false;
+ bool do_set = false;
+ bool do_cleanup = false;
+ xid_t xid = VC_NOCTX;
+ int sum = 0;
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+nsce:", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case 'n' : do_new = true; break;
+ case 's' : do_set = true; break;
+ case 'c' : do_cleanup = true; break;
+ case 'e' :
+ do_enter = true;
+ xid = Evc_xidopt2xid(optarg,true);
+ break;
+
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return 255;
+ break;
+ }
+ }
+
+ sum = ((do_new ? 1 : 0) + (do_enter ? 1 : 0) +
+ (do_set ? 1 : 0) + (do_cleanup ? 1 : 0));
+
+ if (sum==0)
+ WRITE_MSG(2, "No operation was specified; try '--help' for more information\n");
+ else if (sum>1)
+ WRITE_MSG(2, "Can not specify multiple operations; try '--help' for more information\n");
+ else if (optind==argc && (do_new || do_enter))
+ WRITE_MSG(2, "No command specified; try '--help' for more information\n");
+ else {
+ if (do_new) newNamespace(argv[optind]);
+ else if (do_set) setNamespace();
+ else if (do_cleanup) cleanupNamespace();
+ else if (do_enter) enterNamespace(xid);
+
+ if (optind<argc)
+ EexecvpD(argv[optind], argv+optind);
+
+ return EXIT_SUCCESS;
+ }
+
+ return 255;
+}
--- /dev/null
+// $Id: vps.c,v 1.13 2005/03/24 12:44:17 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include "pathconfig.h"
+
+#include <lib/vserver.h>
+#include <lib/fmt.h>
+#include <assert.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <errno.h>
+
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_STDLIB 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_FCNTL 1
+#include <wrappers.h>
+
+#define CTXNR_WIDTH 5
+#define HUNK_SIZE 0x4000
+#define CONTEXT_WIDTH 20
+#define CONTEXT_PLACE " "
+
+int wrapper_exit_code = 254;
+
+struct ContextMapping {
+ xid_t ctx;
+ char const * id;
+};
+
+static struct ContextMapping *mapping = 0;
+static size_t mapping_len = 0;
+
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " <ps-opts>*\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vps " VERSION " -- shows processes in vserver-contexts\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+
+static size_t
+writeContextInfo(xid_t ctx, char const *name)
+{
+ size_t l1 = name==0 ? 0 : strlen(name);
+ size_t res = CTXNR_WIDTH + 1;
+
+ if (ctx==VC_NOCTX) {
+ if (3<CTXNR_WIDTH) Vwrite(1, CONTEXT_PLACE, CTXNR_WIDTH-3);
+ Vwrite(1, "ERR ", 4);
+ }
+ else {
+ char buf[sizeof(ctx)*3+1];
+ size_t l = utilvserver_fmt_ulong(buf, ctx);
+
+ if (l<CTXNR_WIDTH) Vwrite(1, CONTEXT_PLACE, CTXNR_WIDTH-l);
+ Vwrite(1, buf, l);
+ Vwrite(1, " ", 1);
+ }
+
+ if (l1!=0) {
+ assert(name!=0);
+ Vwrite(1, name, l1);
+ }
+
+ return res+l1;
+}
+
+static xid_t
+extractCtx(char *pid_str)
+{
+ pid_t pid;
+
+ while (*pid_str==' ') ++pid_str;
+ pid = atoi(pid_str);
+
+ return vc_get_task_xid(pid);
+}
+
+static char const *
+resolveCtx(xid_t ctx)
+{
+ char const * res;
+ size_t i;
+
+ for (i=0; i<mapping_len; ++i)
+ if (mapping[i].ctx==ctx) return mapping[i].id;
+
+ ++mapping_len;
+ mapping = Erealloc(mapping, mapping_len * sizeof(mapping[0]));
+
+ if (ctx==0) res = strdup("MAIN");
+ else if (ctx==1) res = strdup("ALL_PROC");
+ else {
+ vcCfgStyle style = vcCFG_AUTO;
+ char *tmp = vc_getVserverByCtx(ctx, &style,0);
+ if (tmp) res = vc_getVserverName(tmp, style);
+ else res = 0;
+ free(tmp);
+ }
+
+ mapping[mapping_len-1].ctx = ctx;
+ mapping[mapping_len-1].id = res;
+ return res;
+}
+
+static char *
+readOutput(int fd, size_t *total_len)
+{
+ size_t len = 2*HUNK_SIZE;
+ char *buf = Emalloc(len+1);
+ size_t offset = 0;
+
+ for (;;) {
+ size_t l;
+
+ while (offset >= len) {
+ len += HUNK_SIZE;
+ buf = Erealloc(buf, len+1);
+ }
+
+ l = Eread(fd, buf+offset, len - offset);
+ if (l==0) break;
+
+ offset += l;
+ }
+
+ buf[offset] = '\0';
+
+ if (total_len)
+ *total_len = offset;
+
+ return buf;
+}
+
+static void
+processOutput(char *data, size_t len)
+{
+ size_t pid_end;
+ char * eol_pos = strchr(data, '\n');
+ char * pos;
+
+ if (eol_pos==0) eol_pos = data + len;
+ else *eol_pos = '\0';
+
+ pos = strstr(data, "PID");
+ if (pos==0) {
+ WRITE_MSG(2, "Failed to parse ps-output\n");
+ exit(wrapper_exit_code);
+ }
+
+ pid_end = pos-data + 4;
+
+ Vwrite(1, data, pid_end);
+ Vwrite(1, "CONTEXT" CONTEXT_PLACE, CONTEXT_WIDTH);
+ Vwrite(1, data+pid_end, eol_pos-(data+pid_end));
+ Vwrite(1, "\n", 1);
+
+ len -= eol_pos-data;
+ data = eol_pos+1;
+
+ while (len > 1) {
+ char const *vserver_name = 0;
+ xid_t ctx;
+ size_t l;
+
+ --len;
+ eol_pos = strchr(data, '\n');
+
+ if (eol_pos==0) eol_pos = data + len;
+
+ ctx = extractCtx(data + pid_end - 6);
+ vserver_name = resolveCtx(ctx);
+
+ Vwrite(1, data, pid_end);
+ l = writeContextInfo(ctx, vserver_name);
+ if (l<CONTEXT_WIDTH) Vwrite(1, CONTEXT_PLACE, CONTEXT_WIDTH-l);
+ else Vwrite(1, " ", 1);
+ Vwrite(1, data+pid_end, eol_pos-(data+pid_end));
+ Vwrite(1, "\n", 1);
+
+ len -= eol_pos-data;
+ data = eol_pos+1;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int p[2];
+ pid_t pid;
+ char * data;
+ size_t len;
+ char const * errptr;
+
+ if (argc>1) {
+ if (strcmp(argv[1], "--help") ==0) showHelp(1, argv[0], 0);
+ if (strcmp(argv[1], "--version")==0) showVersion();
+ }
+
+ signal(SIGCHLD, SIG_DFL);
+
+ if (!switchToWatchXid(&errptr)) {
+ perror(errptr);
+ exit(wrapper_exit_code);
+ }
+
+ if (access("/proc/uptime",R_OK)==-1 && errno==ENOENT)
+ WRITE_MSG(2,
+ "WARNING: can not access /proc/uptime. Usually, this is caused by\n"
+ " procfs-security. Please read the FAQ for more details\n"
+ " http://www.linux-vserver.org/index.php?page=Linux-Vserver+FAQ\n");
+
+ Epipe(p);
+ pid = Efork();
+
+ if (pid==0) {
+ int fd = Eopen("/dev/null", O_RDONLY, 0);
+ Edup2(fd, 0);
+ Edup2(p[1], 1);
+ Eclose(p[0]);
+ Eclose(p[1]);
+ Eclose(fd);
+
+ argv[0] = "ps";
+
+ Eexecv(PS_PROG, argv);
+ }
+
+ Eclose(p[1]);
+ data = readOutput(p[0], &len);
+ Eclose(p[0]);
+
+ processOutput(data, len);
+ exitLikeProcess(pid, "ps", wrapper_exit_code);
+}
-// $Id: vreboot.c,v 1.1 2003/09/29 22:01:57 ensc Exp $
+// $Id: vreboot.c,v 1.2 2003/09/30 20:16:53 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on vreboot.cc by Jacques Gelinas
Used to send a reboot message to the reboot manager. It opens /dev/reboot
and write "reboot\n".
*/
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
#include <stdio.h>
#include <string.h>
#include <unistd.h>
--- /dev/null
+// $Id: vrsetup.c,v 1.4 2004/02/27 04:42:10 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+
+#include <getopt.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_IOCTL 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
+
+int wrapper_exit_code = 1;
+
+
+#define VROOT_SET_DEV 0x5600
+#define VROOT_CLR_DEV 0x5601
+#define VROOT_INC_USE 0x56FE
+#define VROOT_DEC_USE 0x56FF
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, 'h' },
+ { "version", no_argument, 0, 'v' },
+ { 0,0,0,0 }
+};
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [-dID] <rootdev>\n"
+ " or ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " <rootdev> <real-rootdev>\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vrsetup " VERSION " -- set up and control vroot devices\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+
+int main(int argc, char *argv[])
+{
+ bool do_delete = false;
+ bool do_decrement = false;
+ bool do_increment = false;
+ bool do_setup = false;
+ char const * root_device = 0;
+ char const * real_root_device = 0;
+ int fd;
+
+ while (1) {
+ int c = getopt_long(argc, argv, "dID", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case 'h' : showHelp(1, argv[0], 0);
+ case 'v' : showVersion();
+ case 'd' : do_delete = true; break;
+ case 'D' : do_decrement = true; break;
+ case 'I' : do_increment = true; break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+
+ do_setup = !(do_delete || do_decrement || do_increment);
+
+ if (optind+1>argc) {
+ WRITE_MSG(2, "No vroot-device given\n");
+ return EXIT_FAILURE;
+ }
+
+ if (do_setup && optind+2>argc) {
+ WRITE_MSG(2, "No real root-device given\n");
+ return EXIT_FAILURE;
+ }
+
+ root_device = argv[optind];
+ if (do_setup) real_root_device = argv[optind+1];
+
+ fd = EopenD(root_device, O_RDONLY, 0);
+ if (do_increment) Eioctl(fd, VROOT_INC_USE, 0);
+ else if (do_decrement) Eioctl(fd, VROOT_DEC_USE, 0);
+ else if (do_delete) Eioctl(fd, VROOT_CLR_DEV, 0);
+ else {
+ int dfd = EopenD(real_root_device, O_RDONLY, 0);
+ Eioctl(fd, VROOT_SET_DEV, (void*)dfd);
+ Eclose(dfd);
+ }
+
+ Eclose(fd);
+ return EXIT_SUCCESS;
+}
--- /dev/null
+// $Id: vsched.c,v 1.6 2004/12/21 07:19:20 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include "vserver.h"
+
+#include <errno.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <libgen.h>
+
+#define ENSC_WRAPPERS_PREFIX "vsched: "
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include <wrappers.h>
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+#define CMD_XID 0x4000
+#define CMD_FRATE 0x4001
+#define CMD_INTERVAL 0x4002
+#define CMD_TOKENS 0x4003
+#define CMD_TOK_MIN 0x4004
+#define CMD_TOK_MAX 0x4005
+#define CMD_CPU_MASK 0x4006
+#define CMD_PRIO_BIAS 0x4007
+
+int wrapper_exit_code = 255;
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "ctx", required_argument, 0, CMD_XID },
+ { "xid", required_argument, 0, CMD_XID },
+ { "fill-rate", required_argument, 0, CMD_FRATE },
+ { "interval", required_argument, 0, CMD_INTERVAL },
+ { "tokens", required_argument, 0, CMD_TOKENS },
+ { "tokens_min", required_argument, 0, CMD_TOK_MIN },
+ { "tokens-min", required_argument, 0, CMD_TOK_MIN },
+ { "tokens_max", required_argument, 0, CMD_TOK_MAX },
+ { "tokens-max", required_argument, 0, CMD_TOK_MAX },
+ { "prio_bias", required_argument, 0, CMD_PRIO_BIAS },
+ { "prio-bias", required_argument, 0, CMD_PRIO_BIAS },
+ { "priority_bias", required_argument, 0, CMD_PRIO_BIAS },
+ { "priority-bias", required_argument, 0, CMD_PRIO_BIAS },
+ { "cpu_mask", required_argument, 0, CMD_CPU_MASK },
+ {0,0,0,0}
+};
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ VSERVER_DECLARE_CMD(cmd);
+
+ WRITE_MSG(fd, "Usage:\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [--xid <xid>] [--fill-rate <rate>] [--interval <interval>] [--tokens <tokens>] [--tokens-min <tokens>] [--tokens-max <tokens>] [--prio-bias <bias>] [--] [<command> <args>*]\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vsched " VERSION " -- modifies scheduling parameters\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003,2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+#define SETVAL(ATTR,MASK) \
+ sched.ATTR = atoi(optarg); \
+ sched.set_mask |= MASK;
+
+int main(int argc, char *argv[])
+{
+ xid_t xid = VC_NOCTX;
+ struct vc_set_sched sched = {
+ .set_mask = 0
+ };
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_XID : xid = Evc_xidopt2xid(optarg,true); break;
+ case CMD_FRATE : SETVAL(fill_rate, VC_VXSM_FILL_RATE); break;
+ case CMD_INTERVAL : SETVAL(interval, VC_VXSM_INTERVAL); break;
+ case CMD_TOKENS : SETVAL(tokens, VC_VXSM_TOKENS); break;
+ case CMD_TOK_MIN : SETVAL(tokens_min, VC_VXSM_TOKENS_MIN); break;
+ case CMD_TOK_MAX : SETVAL(tokens_max, VC_VXSM_TOKENS_MAX); break;
+ case CMD_PRIO_BIAS: SETVAL(priority_bias, VC_VXSM_PRIO_BIAS); break;
+ case CMD_CPU_MASK :
+ WRITE_MSG(2, "vsched: WARNING: the '--cpu_mask' parameter is deprecated and will not have any effect\n");
+ break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+
+ if (xid==VC_NOCTX && optind==argc) {
+ WRITE_MSG(2, "Without a program, '--xid' must be used; try '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+
+ if (sched.set_mask==0 && optind==argc) {
+ WRITE_MSG(2, "Neither an option nor a program was specified; try '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+
+ if (xid==VC_NOCTX)
+ xid = Evc_get_task_xid(0);
+
+ if (sched.set_mask!=0 && vc_set_sched(xid, &sched)==-1) {
+ perror("vc_set_sched()");
+ exit(255);
+ }
+
+ if (optind<argc)
+ EexecvpD(argv[optind],argv+optind);
+
+ return EXIT_SUCCESS;
+}
--- /dev/null
+// $Id: vserver-info.c,v 1.23 2005/07/04 22:36:46 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "lib/utils-legacy.h"
+#include "pathconfig.h"
+#include "util.h"
+
+#include "internal.h"
+#include "vserver.h"
+
+#include <stdlib.h>
+#include <getopt.h>
+#include <assert.h>
+#include <stdbool.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <sys/utsname.h>
+#include <dirent.h>
+#include <strings.h>
+
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_IO 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_VSERVER 1
+#include <wrappers.h>
+
+#undef _POSIX_SOURCE
+#include "capability-compat.h"
+
+typedef enum { tgNONE,tgCONTEXT, tgID, tgRUNNING,
+ tgVDIR, tgNAME, tgCFGDIR, tgAPPDIR,
+ tgAPIVER, tgPXID,
+ tgINITPID, tgINITPID_PID,
+ tgXID, tgUTS, tgSYSINFO,
+ tgFEATURE, tgCANONIFY,
+ tgVERIFYCAP, tgXIDTYPE, tgVERIFYPROC,
+} VserverTag;
+
+static struct {
+ char const * const tag;
+ VserverTag const val;
+ char const * const descr;
+} const TAGS[] = {
+ { "CONTEXT", tgCONTEXT, ("the current and/or assigned context; when an optinal argument "
+ "evaluates to false,only the current context will be printed") },
+ { "ID", tgID, "gives out the vserver-id for the context-xid" },
+ { "RUNNING", tgRUNNING, "gives out '1' when vserver is running; else, it fails without output" },
+ { "VDIR", tgVDIR, "gives out the root-directory of the vserver" },
+ { "NAME", tgNAME, "gives out the name of the vserver" },
+ { "CFGDIR", tgCFGDIR, "gives out the configuration directory of the vserver" },
+ { "APPDIR", tgAPPDIR, "gives out the name of the toplevel application cfgdir" },
+ { "INITPID", tgINITPID, "gives out the initpid of the given context" },
+ { "INITPID_PID", tgINITPID_PID, "gives out the initpid of the given pid" },
+ { "XID", tgXID, "gives out the context-id of the given pid" },
+ { "APIVER", tgAPIVER, "gives out the version of the kernel API" },
+ { "UTS", tgUTS, ("gives out an uts-entry; possible entries are "
+ "context, sysname, nodename, release, version, "
+ "machine and domainname") },
+ { "SYSINFO", tgSYSINFO, "gives out information about the systen" },
+ { "FEATURE", tgFEATURE, "returns 0 iff the queried feature is supported" },
+ { "PXID", tgPXID, "returns the xid of the parent context" },
+ { "CANONIFY", tgCANONIFY, "canonifies the vserver-name and removes dangerous characters" },
+ { "VERIFYCAP", tgVERIFYCAP, "test if the kernel supports linux capabilities" },
+ { "VERIFYPROC", tgVERIFYPROC, "test if /proc can be read by contexts!=0" },
+ { "XIDTYPE", tgXIDTYPE, "returns the type of the given XID" },
+};
+
+int wrapper_exit_code = 1;
+
+static struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, 'h' },
+ { "version", no_argument, 0, 'v' },
+ { 0,0,0,0 }
+};
+
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [-ql] <vserver>|<pid>|<context> <tag>\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vserver-info " VERSION " -- returns information about vservers\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static void
+showTags()
+{
+ char const * delim = "";
+ size_t i;
+
+ WRITE_MSG(1, "Valid tags are: ");
+ for (i=0; i<DIM_OF(TAGS); ++i) {
+ WRITE_STR(1, delim);
+ WRITE_STR(1, TAGS[i].tag);
+
+ delim = ", ";
+ }
+ WRITE_MSG(1, "\n");
+ exit(0);
+}
+
+static VserverTag
+stringToTag(char const *str)
+{
+ size_t i;
+ for (i=0; i<DIM_OF(TAGS); ++i)
+ if (strcmp(TAGS[i].tag, str)==0) return TAGS[i].val;
+
+ return tgNONE;
+}
+
+static vc_uts_type
+utsText2Tag(char const *str)
+{
+ if (strcmp(str, "context") ==0) return vcVHI_CONTEXT;
+ else if (strcmp(str, "sysname") ==0) return vcVHI_SYSNAME;
+ else if (strcmp(str, "nodename") ==0) return vcVHI_NODENAME;
+ else if (strcmp(str, "release") ==0) return vcVHI_RELEASE;
+ else if (strcmp(str, "version") ==0) return vcVHI_VERSION;
+ else if (strcmp(str, "machine") ==0) return vcVHI_MACHINE;
+ else if (strcmp(str, "domainname")==0) return vcVHI_DOMAINNAME;
+ else {
+ WRITE_MSG(2, "Unknown UTS tag\n");
+ exit(1);
+ }
+}
+
+static bool
+verifyProc()
+{
+ char const *errptr;
+
+ if (!switchToWatchXid(&errptr)) {
+ perror(errptr);
+ return false;
+ }
+
+ if (access("/proc/uptime", R_OK)==-1) {
+ if (errno!=ENOENT)
+ perror("access(\"/proc/uptime\")");
+
+ return false;
+ }
+
+ return true;
+}
+
+static bool
+verifyCap()
+{
+ struct __user_cap_header_struct header;
+ struct __user_cap_data_struct user;
+ header.version = _LINUX_CAPABILITY_VERSION;
+ header.pid = 0;
+
+ if (getuid()!=0) {
+ WRITE_MSG(2, "'VERIFYCAP' can be executed as root only\n");
+ return false;
+ }
+
+// if( prctl( PR_SET_KEEPCAPS, 1,0,0,0 ) < 0 ) {
+// perror( "prctl:" );
+// return false;
+// }
+
+ if (capget(&header, &user)==-1) {
+ perror("capget()");
+ return false;
+ }
+
+ user.effective = 0;
+ user.permitted = 0;
+ user.inheritable = 0;
+
+ if (capset(&header, &user)==-1) {
+ perror("capset()");
+ return false;
+ }
+
+ return chroot("/")==-1;
+}
+
+static char *
+getAPIVer(char *buf)
+{
+ int v = vc_get_version();
+ size_t l;
+
+ if (v==-1) return 0;
+
+
+ l = utilvserver_fmt_xulong(0, (unsigned int)v);
+ memcpy(buf, "0x00000000", 10);
+ utilvserver_fmt_xulong(buf+2+8-l, (unsigned int)v);
+
+ return buf;
+}
+
+static char *
+getXid(char *buf, char const *pid_str)
+{
+ pid_t pid = atoi(pid_str);
+ xid_t xid = vc_get_task_xid(pid);
+
+ if (xid==VC_NOCTX) perror("vc_get_task_xid()");
+ else {
+ utilvserver_fmt_long(buf, xid);
+ return buf;
+ }
+
+ return 0;
+}
+
+static char *
+getPXid(char UNUSED *buf, char const UNUSED *vserver)
+{
+ // TODO: implement me when available
+ return 0;
+}
+
+static char *
+getInitPid_native(char *buf, xid_t xid)
+{
+ struct vc_vx_info info;
+
+ if (vc_get_vx_info(xid, &info)==-1) perror("vc_get_vx_info()");
+ else {
+ utilvserver_fmt_long(buf, info.initpid);
+ return buf;
+ }
+
+ return 0;
+}
+
+#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_V11)
+static int
+selectPid(struct dirent const *ent)
+{
+ return atoi(ent->d_name)!=0;
+}
+
+static bool
+getInitPid_internal(pid_t pid, xid_t xid, pid_t *res)
+{
+ *res = -1;
+
+ for (;*res==-1;) {
+ size_t bufsize = utilvserver_getProcEntryBufsize();
+ char buf[bufsize+1];
+ char *pos = 0;
+
+ pos = utilvserver_getProcEntry(pid, "\ns_context: ", buf, bufsize);
+ if (pos==0 && errno==EAGAIN) continue;
+
+ if (pos==0 || (xid_t)atoi(pos)!=xid) return false;
+
+ buf[bufsize] = '\0';
+ pos = strstr(buf, "\ninitpid: ");
+
+ if (pos!=0) {
+ pos += sizeof("\ninitpid: ")-1;
+ if (strncmp(pos, "none", 4)==0) *res = -1;
+ else *res = atoi(pos);
+ }
+ }
+
+ return true;
+}
+
+static char *
+getInitPid_emulated(char *buf, xid_t xid)
+{
+ struct dirent **namelist;
+ int n;
+
+ switchToWatchXid(0); // ignore errors silently...
+ n = scandir("/proc", &namelist, selectPid, alphasort);
+ if (n<0) perror("scandir()");
+ else while (n--) {
+ pid_t pid;
+ if (!getInitPid_internal(atoi(namelist[n]->d_name), xid, &pid)) continue;
+
+ utilvserver_fmt_long(buf, pid);
+ return buf;
+ }
+
+ return 0;
+}
+#endif // VC_ENABLE_API_COMPAT
+
+static char *
+getInitPid(char *buf, xid_t xid)
+{
+ if (vc_isSupported(vcFEATURE_VINFO))
+ return getInitPid_native(buf, xid);
+ else
+ return getInitPid_emulated(buf, xid);
+}
+
+static char *
+getInitPidPid(char *buf, char const *vserver)
+{
+ struct vc_vx_info info;
+ pid_t pid = atoi(vserver);
+ xid_t xid = vc_get_task_xid(pid);
+
+ if (xid==VC_NOCTX) perror("vc_get_task_xid()");
+ else if (vc_get_vx_info(xid, &info)==-1) perror("vc_get_vx_info()");
+ else {
+ utilvserver_fmt_long(buf, info.initpid);
+ return buf;
+ }
+
+ return 0;
+}
+
+static char *
+getUTS(char *buf, xid_t xid, size_t argc, char * argv[])
+{
+ if (argc>0) {
+ vc_uts_type type = utsText2Tag(argv[0]);
+ if (vc_get_vhi_name(xid, type, buf, sizeof(buf)-1)==-1)
+ perror("vc_get_vhi_name()");
+ else
+ return buf;
+ }
+ else {
+ bool is_passed = false;
+ char tmp[128];
+#define APPEND_UTS(TYPE) \
+ (((vc_get_vhi_name(xid, TYPE, tmp, sizeof(tmp)-1)!=-1) && (strcat(buf, tmp), strcat(buf, " "), is_passed=true)) || \
+ (strcat(buf, "??? ")))
+
+ if (APPEND_UTS(vcVHI_CONTEXT) &&
+ APPEND_UTS(vcVHI_SYSNAME) &&
+ APPEND_UTS(vcVHI_NODENAME) &&
+ APPEND_UTS(vcVHI_RELEASE) &&
+ APPEND_UTS(vcVHI_VERSION) &&
+ APPEND_UTS(vcVHI_MACHINE) &&
+ APPEND_UTS(vcVHI_DOMAINNAME) &&
+ is_passed)
+ return buf;
+
+ perror("vc_get_vhi_name()");
+#undef APPEND_UTS
+ }
+
+ return 0;
+}
+
+static int
+printSysInfo(char *buf)
+{
+ int fd = open(PKGLIBDIR "/FEATURES.txt", O_RDONLY);
+ struct utsname uts;
+
+ if (uname(&uts)==-1)
+ perror("uname()");
+ else {
+ WRITE_MSG(1,
+ "Versions:\n"
+ " Kernel: ");
+ WRITE_STR(1, uts.release);
+ WRITE_MSG(1, "\n"
+ " VS-API: ");
+
+ memset(buf, 0, 128);
+ if (getAPIVer(buf)) WRITE_STR(1, buf);
+ else WRITE_MSG(1, "???");
+
+ WRITE_MSG(1, "\n"
+ " util-vserver: " PACKAGE_VERSION "; " __DATE__ ", " __TIME__"\n"
+ "\n");
+ }
+
+ if (fd==-1)
+ WRITE_MSG(1, "FEATURES.txt not found\n");
+ else {
+ off_t l = Elseek(fd, 0, SEEK_END);
+ Elseek(fd, 0, SEEK_SET);
+ {
+ char buf[l];
+ EreadAll(fd, buf, l);
+ EwriteAll(1, buf, l);
+ }
+ Eclose(fd);
+ }
+
+ return EXIT_SUCCESS;
+}
+
+static char *
+getContext(char *buf, char const *vserver, bool allow_only_static)
+{
+ xid_t xid = vc_getVserverCtx(vserver, vcCFG_AUTO,
+ allow_only_static, 0);
+ if (xid==VC_NOCTX) return 0;
+
+ utilvserver_fmt_long(buf, xid);
+ return buf;
+}
+
+static char const *
+getXIDType(xid_t xid, int argc, char *argv[])
+{
+ char const * tp;
+
+ switch (vc_getXIDType(xid)) {
+ case vcTYPE_INVALID : tp = "invalid"; break;
+ case vcTYPE_MAIN : tp = "main"; break;
+ case vcTYPE_WATCH : tp = "watch"; break;
+ case vcTYPE_STATIC : tp = "static"; break;
+ case vcTYPE_DYNAMIC : tp = "dynamic"; break;
+ default : tp = 0; break;
+ }
+
+ if (argc==0 || tp==0)
+ return tp;
+
+ while (argc>0) {
+ --argc;
+ if (strcasecmp(argv[argc], tp)==0) return tp;
+ }
+
+ return 0;
+}
+
+static int
+testFeature(int argc, char *argv[])
+{
+ return (argc>0 && vc_isSupportedString(argv[0])) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
+static bool
+str2bool(char const *str)
+{
+ return atoi(str)!=0 || strchr("yYtT", str[0])!=0 || strcasecmp("true", str)==0;
+}
+
+static int
+execQuery(char const *vserver, VserverTag tag, int argc, char *argv[])
+{
+ char const * res = 0;
+ char buf[sizeof(xid_t)*4 + 1024 + strlen(vserver)];
+
+ memset(buf, 0, sizeof buf);
+ switch (tag) {
+ case tgNAME : res = vc_getVserverName(vserver, vcCFG_AUTO); break;
+ case tgVDIR :
+ res = vc_getVserverVdir(vserver, vcCFG_AUTO, argc>0 && atoi(argv[0]));
+ break;
+ case tgCFGDIR : res = vc_getVserverCfgDir(vserver, vcCFG_AUTO); break;
+ case tgAPPDIR :
+ res = vc_getVserverAppDir(vserver, vcCFG_AUTO, argc==0 ? "" : argv[0]);
+ break;
+
+ case tgRUNNING : {
+ signed long xid; // type is a small hack, but should be ok...
+ struct vc_vx_info info;
+
+ if (isNumber(vserver, &xid) && xid>=0)
+ res = (vc_get_vx_info(xid, &info)==-1) ? 0 : "1";
+ else
+ res = (vc_getVserverCtx(vserver, vcCFG_AUTO, false, 0)==VC_NOCTX) ? 0 : "1";
+
+ break;
+ }
+
+ case tgCANONIFY :
+ strcpy(buf, vserver);
+ if (canonifyVserverName(buf)>0) res = buf;
+ break;
+
+ case tgCONTEXT : res = getContext(buf, vserver,
+ argc==0 || str2bool(argv[0])); break;
+ case tgINITPID_PID : res = getInitPidPid(buf, vserver); break;
+ case tgAPIVER : res = getAPIVer(buf); break;
+ case tgXID : res = getXid(buf, vserver); break;
+ case tgPXID : res = getPXid(buf, vserver); break;
+ case tgSYSINFO : return printSysInfo(buf); break;
+ case tgFEATURE : return testFeature(argc,argv); break;
+ case tgVERIFYCAP : return verifyCap() ? 0 : 1; break;
+ case tgVERIFYPROC : return verifyProc() ? 0 : 1; break;
+
+
+ default : {
+ xid_t xid = *vserver!='\0' ? vc_xidopt2xid(vserver,true,0) : VC_SAMECTX;
+
+ switch (tag) {
+ case tgID : res = vc_getVserverByCtx(xid,0,0); break;
+ case tgINITPID : res = getInitPid(buf, xid); break;
+ case tgUTS : res = getUTS(buf, xid, argc, argv); break;
+ case tgXIDTYPE : res = getXIDType(xid, argc, argv); break;
+
+ default : assert(false); abort(); // TODO
+ }
+ }
+ }
+
+ if (res==0) return EXIT_FAILURE;
+ WRITE_STR(1, res);
+ WRITE_MSG(1, "\n");
+ return EXIT_SUCCESS;
+}
+
+int main(int argc, char *argv[])
+{
+ bool quiet = false;
+ char const * vserver;
+ VserverTag tag;
+
+ while (1) {
+ int c = getopt_long(argc, argv, "ql", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case 'h' : showHelp(1, argv[0], 0);
+ case 'v' : showVersion();
+ case 'l' : showTags();
+ case 'q' : quiet = true; break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ exit(1);
+ break;
+ }
+ }
+
+ if (optind+2>argc) {
+ execQuery("-", tgSYSINFO, 0, 0);
+ WRITE_MSG(2, "\nAssumed 'SYSINFO' as no other option given; try '--help' for more information.\n");
+ exit(0);
+ }
+
+ vserver = argv[optind];
+ tag = stringToTag(argv[optind+1]);
+
+ if (tag==tgNONE) {
+ WRITE_MSG(2, "Unknown tag; use '-l' to get list of valid tags\n");
+ exit(1);
+ }
+
+ if (quiet) {
+ int fd = Eopen("/dev/null", O_WRONLY, 0644);
+ Edup2(fd, 1);
+ Eclose(fd);
+ }
+
+ return execQuery(vserver, tag, argc-(optind+2), argv+optind+2);
+}
-// $Id: vserver-stat.c,v 1.1.4.1 2003/10/14 00:45:04 ensc Exp $
+// $Id: vserver-stat.c,v 1.22 2005/07/03 12:31:25 ensc Exp $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// based on vserver-stat.cc by Guillaum Dallaire and Jacques Gelinas
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-/*
- vserver-stat help you to see all the active context currently in the kernel
- with some useful stat
-
- Changelog:
-
- 2003-01-08 Jacques Gelinas: Shows vserver description
- 2002-02-28 Jacques Gelinas: Use dynamic system call
- 2002-06-05 Martial Rioux : fix memory output error
- 2002-12-05 Martial Rioux : fix output glitch
- 2001-11-29 added uptime/ctx stat
- 2001-11-20 added vmsize, rss, stime and utime stat
-*/
-
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "compat.h"
#include "vserver.h"
+#include "util.h"
+#include "internal.h"
+
+#include <ensc_vector/vector.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <syscall.h>
#include <time.h>
+#include <stdbool.h>
+#include <getopt.h>
+#include <sys/param.h>
+
+#define ENSC_WRAPPERS_DIRENT 1
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include "wrappers.h"
#define PROC_DIR_NAME "/proc"
#define CTX_DIR_NAME "/var/run/vservers/"
#define CTX_NAME_MAX_LEN 50
-struct ctx_list
+int wrapper_exit_code = 1;
+
+#ifndef AT_CLKTCK
+#define AT_CLKTCK 17 /* frequency of times() */
+#endif
+
+static unsigned long hertz =0x42;
+static unsigned long pagesize=0x42;
+
+struct XidData
{
- int ctx;
- int process_count;
- int VmSize_total;
- int VmRSS_total;
- long start_time_oldest;
- long stime_total, utime_total;
- char name[CTX_NAME_MAX_LEN];
- struct ctx_list *next;
-} *my_ctx_list;
+ xid_t xid;
+ int process_count;
+ int VmSize_total;
+ int VmRSS_total;
+ uint64_t start_time_oldest;
+ uint64_t stime_total, utime_total;
+
+ vcCfgStyle cfgstyle;
+ char const * name;
+};
struct process_info
{
- long VmSize; // number of pages of virtual memory
- long VmRSS; // resident set size from /proc/#/stat
- long start_time; // start time of process -- seconds since 1-1-70
- long stime, utime; // kernel & user-mode CPU time accumulated by process
- long cstime, cutime; // cumulative time of process and reaped children
- int s_context;
+ long VmSize; // number of pages of virtual memory
+ long VmRSS; // resident set size from /proc/#/stat
+ uint64_t start_time; // start time of process -- milliseconds since 1-1-70
+ uint64_t stime, utime; // kernel & user-mode CPU time accumulated by process
+ uint64_t cstime, cutime; // cumulative time of process and reaped children
+ xid_t s_context;
};
-char *process_name;
+struct ArgInfo {
+ enum { tpUNSET, tpCTX, tpPID } type;
+ xid_t ctx;
+ pid_t pid;
+ unsigned int interval;
+ bool shutdown;
+ bool omit_init;
+ size_t argc;
+ char * const * argv;
+};
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "sort", required_argument, 0, 'O' },
+ {0,0,0,0}
+};
-void usage()
+static void
+showHelp(char const *cmd)
{
- fprintf(stderr, "%s: from vserver kit version %s\n", process_name, VERSION);
- fprintf(stderr, "(no argument needed)\n\n");
- fprintf(stderr, "Show informations about all the active context.\n\n");
- fprintf(stderr, " CTX# Context number\n");
- fprintf(stderr, " #0 = root context\n");
- fprintf(stderr, " #1 = monitoring context\n");
- fprintf(stderr, " PROC QTY Quantity of processes in each context\n");
- fprintf(stderr, " VSZ Number of pages of virtual memory\n");
- fprintf(stderr, " RSS Resident set size\n");
- fprintf(stderr, " userTIME User-mode CPU time accumulated\n");
- fprintf(stderr, " sysTIME Kernel-mode CPU time accumulated\n");
- fprintf(stderr, " UPTIME Uptime/context\n");
- fprintf(stderr, " NAME Virtual server name\n");
- fprintf(stderr, "\n");
+ WRITE_MSG(1, "Usage: ");
+ WRITE_STR(1, cmd);
+ WRITE_MSG(1,
+ "\n"
+ "Show informations about all the active context.\n\n"
+ " CTX# Context number\n"
+ " #0 = root context\n"
+ " #1 = monitoring context\n"
+ " PROC QTY Quantity of processes in each context\n"
+ " VSZ Number of pages of virtual memory\n"
+ " RSS Resident set size\n"
+ " userTIME User-mode CPU time accumulated\n"
+ " sysTIME Kernel-mode CPU time accumulated\n"
+ " UPTIME Uptime/context\n"
+ " NAME Virtual server name\n"
+ "\n");
+ exit(0);
+}
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vserver-stat " VERSION " -- show virtual context statistics\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003,2005 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
}
+
// return uptime (in ms) from /proc/uptime
-long get_uptime()
+static uint64_t
+getUptime()
+{
+ int fd;
+ char buffer[64];
+ char * errptr;
+ size_t len;
+ uint64_t secs;
+ uint32_t msecs=0;
+
+ // open the /proc/uptime file
+ fd = EopenD("/proc/uptime", O_RDONLY, 0);
+ len = Eread(fd, buffer, sizeof buffer);
+
+ if (len==sizeof(buffer)) {
+ WRITE_MSG(2, "Too much data in /proc/uptime; aborting...\n");
+ exit(1);
+ }
+ Eclose(fd);
+
+ while (len>0 && buffer[len-1]=='\n') --len;
+ buffer[len] = '\0';
+
+ secs = strtol(buffer, &errptr, 10);
+ if (*errptr!='.') errptr = buffer;
+ else {
+ unsigned int mult;
+ switch (strlen(errptr+1)) {
+ case 0 : mult = 1000; break;
+ case 1 : mult = 100; break;
+ case 2 : mult = 10; break;
+ case 3 : mult = 1; break;
+ default : mult = 0; break;
+ }
+ msecs = strtol(errptr+1, &errptr, 10) * mult;
+ }
+
+ if ((*errptr!='\0' && *errptr!=' ') || errptr==buffer) {
+ WRITE_MSG(2, "Bad data in /proc/uptime\n");
+ exit(1);
+ }
+
+ return secs*1000 + msecs;
+}
+
+static int
+cmpData(void const *xid_v, void const *map_v)
{
- int fd;
- double up;
- char buffer[64];
+ xid_t const * const xid = xid_v;
+ struct XidData const * const map = map_v;
+ int res = *xid - map->xid;
- // open the /proc/uptime file
- if ((fd = open("/proc/uptime", O_RDONLY, 0)) == -1)
- return 0;
+ return res;
+}
+
+static void
+registerXid(struct Vector *vec, struct process_info *process)
+{
+ struct XidData *res;
+
+ res = Vector_search(vec, &process->s_context, cmpData);
+ if (res==0) {
+ res = Vector_insert(vec, &process->s_context, cmpData);
+ res->xid = process->s_context;
+ res->process_count = 0;
+ res->VmSize_total = 0;
+ res->VmRSS_total = 0;
+ res->utime_total = 0;
+ res->stime_total = 0;
+ res->start_time_oldest = process->start_time;
+ }
+
+ ++res->process_count;
+ res->VmSize_total += process->VmSize;
+ res->VmRSS_total += process->VmRSS;
+ res->utime_total += process->utime + process->cutime;
+ res->stime_total += process->stime + process->cstime;
+
+ res->start_time_oldest = MIN(res->start_time_oldest, process->start_time);
+}
+
+static inline uint64_t
+toMsec(uint64_t v)
+{
+ return v*1000llu/hertz;
+}
- if (read(fd, buffer, sizeof(buffer)) < 1)
- return 0;
- close(fd);
+// shamelessly stolen from procps...
+static unsigned long
+find_elf_note(unsigned long findme){
+ unsigned long *ep = (unsigned long *)environ;
+ while(*ep++);
+ while(*ep){
+ if(ep[0]==findme) return ep[1];
+ ep+=2;
+ }
+ return (unsigned long)(-1);
+}
- if (sscanf(buffer, "%lf", &up) < 1)
- {
- fprintf(stderr, "%s: bad data in /proc/uptime\n", process_name);
- return 0;
- }
+static void initHertz() __attribute__((__constructor__));
+static void initPageSize() __attribute__((__constructor__));
- return up * 100;
+static void
+initHertz()
+{
+ hertz = find_elf_note(AT_CLKTCK);
+ if (hertz==(unsigned long)(-1))
+ hertz = sysconf(_SC_CLK_TCK);
}
-// insert a new record to the list
-struct ctx_list *insert_ctx(int ctx, struct ctx_list *next)
+static void
+initPageSize()
{
- struct ctx_list *new;
-
- new = (struct ctx_list *)malloc(sizeof(struct ctx_list));
- new->ctx = ctx;
- new->process_count = 0;
- new->VmSize_total = 0;
- new->VmRSS_total = 0;
- new->utime_total = 0;
- new->stime_total = 0;
- new->start_time_oldest = 0;
- new->next = next;
- new->name[0] = '\0';
-
- return new;
+ pagesize = sysconf(_SC_PAGESIZE);
}
-// find the ctx record with the ctx number
-struct ctx_list *find_ctx(struct ctx_list *list, int ctx)
+// open the process's status file to get the ctx number, and other stat
+struct process_info *
+get_process_info(char *pid)
{
- // very simple search engine...
- while(list != NULL)
- {
- // find
- if (list->ctx == ctx)
- {
- return list;
- }
- list = list->next;
- }
- return NULL;
+ int fd;
+ char buffer[1024];
+ char *p;
+ size_t idx, l=strlen(pid);
+ static struct process_info process;
+
+#if 1
+ process.s_context = vc_get_task_xid(atoi(pid));
+#else
+# warning Compiling in debug-code
+ process.s_context = random()%6;
+#endif
+
+ if (process.s_context==VC_NOCTX) {
+ int err=errno;
+ WRITE_MSG(2, "vc_get_task_xid(");
+ WRITE_STR(2, pid);
+ WRITE_MSG(2, "): ");
+ WRITE_STR(2, strerror(err));
+ WRITE_MSG(2, "\n");
+
+ return 0;
+ }
+
+ memcpy(buffer, "/proc/", 6); idx = 6;
+ memcpy(buffer+idx, pid, l); idx += l;
+ memcpy(buffer+idx, "/stat", 6);
+
+ // open the /proc/#/stat file
+ if ((fd = open(buffer, O_RDONLY, 0)) == -1)
+ return NULL;
+ // put the file in a buffer
+ if (read(fd, buffer, sizeof(buffer)) < 1)
+ return NULL;
+
+ close(fd);
+
+ p = strchr(buffer, ')'); // go after the PID (process_name)
+ for (idx = 0; idx<12 && *p!='\0'; ++p)
+ if ((*p)==' ') ++idx;
+
+ process.utime = toMsec(strtol(p, &p, 10));
+ process.stime = toMsec(strtol(p+1, &p, 10));
+ process.cutime = toMsec(strtol(p+1, &p, 10));
+ process.cstime = toMsec(strtol(p+1, &p, 10));
+
+ for (idx = 0; idx<5 && *p!='\0'; ++p)
+ if ((*p)==' ') ++idx;
+
+ process.start_time = toMsec(strtol(p, &p, 10));
+ process.VmSize = strtol(p+1, &p, 10);
+ process.VmRSS = strtol(p+1, &p, 10);
+
+ //printf("pid=%s, start_time=%llu\n", pid, process.start_time);
+ return &process;
}
-// compute the process info into the list
-void add_ctx(struct ctx_list *list, struct process_info *process)
+static size_t
+fillUintZero(char *buf, unsigned long val, size_t cnt)
{
- list->process_count ++;
- list->VmSize_total += process->VmSize;
- list->VmRSS_total += process->VmRSS;
- list->utime_total += process->utime + process->cutime;
- list->stime_total += process->stime + process->cstime;
-
- if (list->start_time_oldest == 0) // first entry
- list->start_time_oldest = process->start_time;
- else
- if (list->start_time_oldest > process->start_time)
- list->start_time_oldest = process->start_time;
+ size_t l;
+
+ l = utilvserver_fmt_ulong(buf, val);
+ if (l<cnt) {
+ memmove(buf+cnt-l, buf, l);
+ memset(buf, '0', cnt-l);
+ }
+ buf[cnt] = '\0';
+
+ return cnt;
}
-// increment the count number in the ctx record using ctx number
-void count_ctx(struct ctx_list *list, struct process_info *process)
+static void
+shortenMem(char *buf, unsigned long val)
{
- struct ctx_list *prev = list;
-
- if (process == NULL) return;
-
- // search
- while(list != NULL)
- {
- // find
- if (list->ctx == process->s_context)
- {
- add_ctx(list, process);
- return;
- }
- // insert between
- if (list->ctx > process->s_context)
- {
- prev->next = insert_ctx(process->s_context, list);
- add_ctx(prev->next, process);
- return;
- }
- // ++
- prev = list;
- list = list->next;
- }
- // add at the end
- prev->next = insert_ctx(process->s_context, NULL);
- add_ctx(prev->next, process);
+ char const * SUFFIXES[] = { " ", "K", "M", "G", "T", "+" };
+ char tmp[16];
+ char const * suffix = "+";
+ size_t i, l;
+ unsigned int mod = 0;
+
+ for (i=0; i<6; ++i) {
+ if (val<1000) {
+ suffix = SUFFIXES[i];
+ break;
+ }
+ mod = 10*(val & 1023)/1024;
+ val >>= 10;
+ }
+
+ if (val >9999) val=9999;
+ if (val>=1000) mod=0;
+
+ l = utilvserver_fmt_ulong(tmp, val);
+ if (mod!=0) {
+ tmp[l++] = '.';
+ l += utilvserver_fmt_ulong(tmp+l, mod);
+ }
+ i = 7-l-strlen(suffix);
+
+ memcpy(buf+i, tmp, l);
+ memcpy(buf+i+l, suffix, strlen(suffix));
}
-// free mem
-void free_ctx(struct ctx_list *list)
+static void
+shortenTime(char *buf, uint64_t t)
{
- struct ctx_list *prev;
+ char tmp[32];
+ char *ptr = tmp;
+
+ unsigned long hh, mm, ss, ms;
+
+ ms = t % 1000;
+ t /= 1000;
+
+ ss = t%60;
+ t /= 60;
+ mm = t%60;
+ t /= 60;
+ hh = t%24;
+ t /= 24;
+
+ if (t>999*999) {
+ memcpy(ptr, "INVALID", 7);
+ ptr += 7;
+ }
+ else if (t>999) {
+ ptr += utilvserver_fmt_ulong(ptr, t/365);
+ *ptr++ = 'y';
+ ptr += fillUintZero(ptr, t%365, 2);
+ *ptr++ = 'd';
+ ptr += fillUintZero(ptr, hh, 2);
+ }
+ else if (t>0) {
+ ptr += utilvserver_fmt_ulong(ptr, t);
+ *ptr++ = 'd';
+ ptr += fillUintZero(ptr, hh, 2);
+ *ptr++ = 'h';
+ ptr += fillUintZero(ptr, mm, 2);
+ }
+ else if (hh>0) {
+ ptr += utilvserver_fmt_ulong(ptr, hh);
+ *ptr++ = 'h';
+ ptr += fillUintZero(ptr, mm, 2);
+ *ptr++ = 'm';
+ ptr += fillUintZero(ptr, ss, 2);
+ }
+ else {
+ ptr += utilvserver_fmt_ulong(ptr, mm);
+ *ptr++ = 'm';
+ ptr += fillUintZero(ptr, ss, 2);
+ *ptr++ = 's';
+ ptr += fillUintZero(ptr, ms, 2);
+ }
+
+ *ptr = ' ';
+ memcpy(buf+10-(ptr-tmp), tmp, ptr-tmp);
+}
- for(;list != NULL; list = prev)
- {
- prev = list->next;
- free(list);
- }
+static char *
+formatName(char *dst, vcCfgStyle style, char const *name)
+{
+ size_t len;
+
+ if (name==0) name = "";
+ len = strlen(name);
+
+ switch (style) {
+ case vcCFG_LEGACY :
+ len = MIN(len, 18);
+ *dst++ = '[';
+ memcpy(dst, name, len);
+ dst += len;
+ *dst++ = ']';
+ break;
+
+ default :
+ len = MIN(len, 20);
+ memcpy(dst, name, len);
+ dst += len;
+ break;
+ }
+
+ return dst;
}
-/*
- Read the vserver description
-*/
-static void read_description(
- const char *name, // Vserver name
- char descrip[1000])
+static void
+showContexts(struct Vector const *vec)
{
- char conf[PATH_MAX];
- FILE *fin;
- descrip[0] = '\0';
- snprintf (conf,sizeof(conf)-1,"/etc/vservers/%s.conf",name);
- fin = fopen (conf,"r");
- if (fin != NULL){
- char line[1000];
- while (fgets(line,sizeof(line)-1,fin)!=NULL){
- if (line[0] == '#'){
- char *pt = line+1;
- while (isspace(*pt)) pt++;
- if (strncmp(pt,"Description:",12)==0){
- int last;
- pt += 12;
- while (isspace(*pt)) pt++;
- strcpy (descrip,pt);
- last = strlen(descrip)-1;
- if (last >=0 && descrip[last] == '\n'){
- descrip[last] = '\0';
- }
- }
- }
- }
- fclose (fin);
- }
+ uint64_t uptime = getUptime();
+ struct XidData const * ptr = Vector_begin_const(vec);
+ struct XidData const * const end_ptr = Vector_end_const(vec);
+
+
+ WRITE_MSG(1, "CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME\n");
+ for (; ptr<end_ptr; ++ptr) {
+ char buf[sizeof(xid_t)*3 + 512];
+ char tmp[sizeof(int)*3 + 2];
+ size_t l;
+
+ memset(buf, ' ', sizeof(buf));
+ l = utilvserver_fmt_long(buf, ptr->xid);
+ l = utilvserver_fmt_long(tmp, ptr->process_count);
+ memcpy(buf+10-l, tmp, l);
+
+ shortenMem (buf+10, ptr->VmSize_total);
+ shortenMem (buf+17, ptr->VmRSS_total*pagesize);
+ shortenTime(buf+24, ptr->utime_total);
+ shortenTime(buf+34, ptr->stime_total);
+ //printf("%llu, %llu\n", uptime, ptr->start_time_oldest);
+ shortenTime(buf+44, uptime - ptr->start_time_oldest);
+
+ formatName(buf+55, ptr->cfgstyle, ptr->name)[0] = '\0';
+
+ Vwrite(1, buf, strlen(buf));
+ Vwrite(1, "\n", 1);
+ }
}
-// show the ctx_list with name from /var/run/servers/*.ctx
-void show_ctx(struct ctx_list *list)
+static void
+fillName(void *obj_v, void UNUSED * a)
{
- // fill the ctx_list using the /var/run/servers/*.ctx file(s)
- __extension__ int bind_ctx_name(struct ctx_list *list)
- {
- // fetch the context number in /var/run/vservers/'filename'
- int fetch_ctx_number(char *filename)
- {
- int fd;
- int ctx;
- char buf[25];
-
- // open file
- if ((fd = open(filename, O_RDONLY, 0)) == -1)
- return -1;
- // put the file in a small buffer
- if (read(fd, buf, sizeof(buf)) < 1)
- return -1;
-
- close(fd);
-
- sscanf(buf, "S_CONTEXT=%d", &ctx);
- return ctx;
- }
-
- /* begin bind_ctx_name */
-
- DIR *ctx_dir;
- struct dirent *dir_entry;
- char *p;
- char ctx_name[CTX_NAME_MAX_LEN];
- struct ctx_list *ctx;
- int ctx_number;
-
- // open the /var/run/vservers directory
- if ((ctx_dir = opendir(CTX_DIR_NAME)) == NULL)
- {
- fprintf(stderr, "%s: in openning %s: %s\n", process_name, CTX_DIR_NAME, strerror(errno));
- return -1;
- }
-
- chdir(CTX_DIR_NAME);
- while ((dir_entry = readdir(ctx_dir)) != NULL)
- {
- strncpy(ctx_name, dir_entry->d_name, sizeof(ctx_name));
- p = strstr(ctx_name, ".ctx");
- if (p != NULL) // make sure that it is a .ctx file..
- {
- *p = '\0'; // remove the .ctx in the file name
- if ((ctx_number = fetch_ctx_number(dir_entry->d_name)) > 1)
- {
- if ((ctx = find_ctx(list, ctx_number)) != NULL)
- strncpy(ctx->name, ctx_name, CTX_NAME_MAX_LEN);
- }
- }
- // else fprintf(stderr, "invalid file %s in %s\n", dir_entry->d_name, CTX_DIR_NAME);
- }
- closedir(ctx_dir);
- return 0;
- }
-
- __extension__ char *convert_time(unsigned t, char *str)
- {
- unsigned hh, mm, ss, ms;
-
- ms = t % 100;
- t /= 100;
-
- ss = t%60;
- t /= 60;
- mm = t%60;
- t /= 60;
- hh = t%60;
- t /= 24;
-
- if (t > 0) // day > 0
- {
- snprintf(str, 25, "%3.ud%02uh%02u", t, (hh%12) ? hh%12 : 12, mm);
- }
- else
- {
- if (hh > 0) // hour > 0
- snprintf(str, 25, " %2.uh%02um%02u", hh, mm, ss);
- else
- {
- snprintf(str, 25, " %2.um%02u.%02u", mm, ss, ms);
- }
- }
- return str;
- }
-
- __extension__ char *convert_mem(unsigned long total, char *str)
- {
- // Byte
- if (total < 1024)
- {
- snprintf(str, 25, "%luB", total);
- return str;
- }
-
- total >>= 10; // kByte
- if (total < 1024)
- {
- snprintf(str, 25, "%lukB", total);
- return str;
- }
-
- total >>= 10; // MByte
- if (total < 1024)
- {
- snprintf(str, 25, "%luMB", total);
- return str;
- }
-
- total >>= 10; // GByte
- if (total < 1024)
- {
- snprintf(str, 25, "%luGB", total);
- return str;
- }
- total >>= 10; // TByte
- snprintf(str, 25, "%luTB", total);
- return str;
- }
-
- /* begin show_ctx */
- char utime[25], stime[25], ctx_uptime[25];
- char vmsize[25], vmrss[25];
- long uptime = get_uptime();
-
- // now we have all the active context, fetch the name
- // from /var/run/vservers/*.ctx
- bind_ctx_name(list);
-
- printf("CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME DESCRIPTION\n");
- while(list != NULL)
- {
- char descrip[1000];
- if (list->ctx == 1)
- strncpy(list->name, "monitoring server", CTX_NAME_MAX_LEN);
-
- read_description (list->name,descrip);
-
- printf("%-4d %4d %6s %6s %9s %9s %9s %-8s %s\n", list->ctx, list->process_count,
- convert_mem(list->VmSize_total, vmsize), convert_mem(list->VmRSS_total, vmrss),
- convert_time(list->utime_total, utime), convert_time(list->stime_total, stime), convert_time(uptime - list->start_time_oldest, ctx_uptime)
- , list->name,descrip);
- list = list->next;
- }
+ struct XidData * obj = obj_v;
+
+ switch (obj->xid) {
+ case 0 :
+ obj->cfgstyle = vcCFG_NONE;
+ obj->name = strdup("root server");
+ break;
+
+ case 1 :
+ obj->cfgstyle = vcCFG_NONE;
+ obj->name = strdup("monitoring server");
+ break;
+
+ default : {
+ char * cfgpath;
+
+ if ((cfgpath = vc_getVserverByCtx(obj->xid, &obj->cfgstyle, 0))==0 ||
+ (obj->name = vc_getVserverName(cfgpath, obj->cfgstyle))==0) {
+ obj->name = 0;
+ obj->cfgstyle = vcCFG_NONE;
+ }
+
+ free(cfgpath);
+
+ break;
+ }
+ }
}
-// open the process's status file to get the ctx number, and other stat
-struct process_info *get_process_info(char *pid)
+static void UNUSED
+freeXidData(void *obj_v, void UNUSED * a)
{
- int fd;
- char buffer[1024];
- char *p;
- static struct process_info process;
-
- // open the proc/#/status file
- snprintf(buffer, sizeof(buffer), "/proc/%s/status", pid);
- if ((fd = open(buffer, O_RDONLY, 0)) == -1)
- return NULL;
- // put the file in a buffer
- if (read(fd, buffer, sizeof(buffer)) < 1)
- return NULL;
-
- close(fd);
-
- // find the s_context entry
- if ((p = strstr(buffer, "s_context:")) == NULL)
- return NULL;
-
- sscanf(p, "s_context: %d", &process.s_context);
-
- // open the /proc/#/stat file
- snprintf(buffer, sizeof(buffer), "/proc/%s/stat", pid);
- if ((fd = open(buffer, O_RDONLY, 0)) == -1)
- return NULL;
- // put the file in a buffer
- if (read(fd, buffer, sizeof(buffer)) < 1)
- return NULL;
-
- close(fd);
-
- p = strchr(buffer, ')'); // go after the PID (process_name)
- sscanf(p + 2,
- "%*s "
- "%*s %*s %*s %*s %*s "
- "%*s %*s %*s %*s %*s %ld %ld "
- "%ld %ld %*s %*s %*s %*s "
- "%ld %ld "
- "%ld ", &process.utime, &process.stime,
- &process.cutime, &process.cstime,
- &process.start_time,
- &process.VmSize, &process.VmRSS);
-
- return &process;
+ struct XidData * obj = obj_v;
+
+ free(const_cast(char *)(obj->name));
}
int main(int argc, char **argv)
{
- DIR *proc_dir;
- struct dirent *dir_entry;
- pid_t my_pid;
-
- // for error msg
- process_name = argv[0];
-
- if (argc > 1)
- {
- usage();
- return 0;
- }
-
- // do not include own stat
- my_pid = getpid();
-
- // try to switch in context 1
- if (vc_new_s_context(1,0, 0) < 0)
- {
- fprintf(stderr, "%s: unable to switch in context security #1\n", process_name);
- return -1;
- }
-
- // create the fist...
- my_ctx_list = insert_ctx(0, NULL);
- // init with the default name for the context 0
- strncpy(my_ctx_list->name, "root server", CTX_NAME_MAX_LEN);
-
- // open the /proc dir
- if ((proc_dir = opendir(PROC_DIR_NAME)) == NULL)
- {
- fprintf(stderr, "%s: %s\n", process_name, strerror(errno));
- return -1;
- }
-
- chdir(PROC_DIR_NAME);
- while ((dir_entry = readdir(proc_dir)) != NULL)
- {
- // select only process file
- if (!isdigit(*dir_entry->d_name))
- continue;
-
- if (atoi(dir_entry->d_name) != my_pid)
- count_ctx(my_ctx_list, get_process_info(dir_entry->d_name));
-
- }
- closedir(proc_dir);
-
- // output the ctx_list
- show_ctx(my_ctx_list);
-
- // free the ctx_list
- free_ctx(my_ctx_list);
-
- return 0;
+ DIR * proc_dir;
+ struct dirent* dir_entry;
+ pid_t my_pid;
+ struct Vector xid_data;
+ char const * errptr;
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+O:", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(argv[0]);
+ case CMD_VERSION : showVersion();
+ case 'O' : break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+
+ if (optind!=argc) {
+ WRITE_MSG(2, "Unknown parameter, use '--help' for more information\n");
+ return EXIT_FAILURE;
+ }
+
+ if (hertz==0x42) initHertz();
+ if (pagesize==0x42) initPageSize();
+
+ my_pid = getpid();
+
+ if (!switchToWatchXid(&errptr)) {
+ perror(errptr);
+ exit(1);
+ }
+
+ if (access("/proc/uptime",R_OK)==-1 && errno==ENOENT)
+ WRITE_MSG(2,
+ "WARNING: can not access /proc/uptime. Usually, this is caused by\n"
+ " procfs-security. Please read the FAQ for more details\n"
+ " http://www.linux-vserver.org/index.php?page=Linux-Vserver+FAQ\n");
+
+ Vector_init(&xid_data, sizeof(struct XidData));
+
+ Echdir(PROC_DIR_NAME);
+ proc_dir = Eopendir(".");
+ while ((dir_entry = readdir(proc_dir)) != NULL)
+ {
+ // select only process file
+ if (!isdigit(*dir_entry->d_name))
+ continue;
+
+ if (atoi(dir_entry->d_name) != my_pid) {
+ struct process_info * info = get_process_info(dir_entry->d_name);
+ if (info)
+ registerXid(&xid_data, info);
+ }
+ }
+ closedir(proc_dir);
+
+ Vector_foreach(&xid_data, fillName, 0);
+
+ // output the ctx_list
+ showContexts(&xid_data);
+
+#ifndef NDEBUG
+ Vector_foreach(&xid_data, freeXidData, 0);
+ Vector_free(&xid_data);
+#endif
+
+ return 0;
}
--- /dev/null
+// $Id: vserver-visitdir.hc,v 1.1 2004/02/18 04:42:38 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+static uint64_t
+visitDirEntry(struct dirent const *ent);
+
+static uint64_t
+visitDir(char const *name, struct stat const *expected_stat)
+{
+ int fd = Eopen(".", O_RDONLY, 0);
+ PathInfo old_state = global_info.state;
+ PathInfo rhs_path = {
+ .d = name,
+ .l = strlen(name)
+ };
+ char new_path[ENSC_PI_APPSZ(global_info.state, rhs_path)];
+ DIR * dir;
+ uint64_t res = 0;
+
+ PathInfo_append(&global_info.state, &rhs_path, new_path);
+
+ if (expected_stat!=0)
+ EsafeChdir(name, expected_stat);
+
+ dir = Eopendir(".");
+
+ for (;;) {
+ struct dirent *ent = Ereaddir(dir);
+ if (ent==0) break;
+
+ res += visitDirEntry(ent);
+ }
+
+ Eclosedir(dir);
+
+ Efchdir(fd);
+ Eclose(fd);
+
+ global_info.state = old_state;
+ return res;
+}
--- /dev/null
+// $Id: vshelper-sync.c,v 1.5 2005/05/05 09:21:21 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+
+#include <stdlib.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <signal.h>
+#include <stdio.h>
+#include <assert.h>
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [--] <pipe> <timeout>\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vshelper-sync " VERSION " -- waits for data from a pipe"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+int main(int argc, char *argv[])
+{
+ int fd;
+ int idx = 1;
+ struct timeval timeout;
+
+ if (argc>=2) {
+ if (strcmp(argv[1], "--help") ==0) showHelp(1, argv[0], 0);
+ if (strcmp(argv[1], "--version")==0) showVersion();
+ if (strcmp(argv[1], "--") ==0) ++idx;
+ }
+
+ if (argc<idx+2) {
+ WRITE_MSG(2, "Not enough parameters; use '--help' for more information\n");
+ return EXIT_FAILURE;
+ }
+
+ fd = open(argv[idx], O_RDONLY|O_NONBLOCK, 0);
+ if (fd==-1) {
+ perror("vshelper-sync: open()");
+ return EXIT_FAILURE;
+ }
+
+ timeout.tv_sec = atoi(argv[idx+1]);
+ timeout.tv_usec = 0;
+
+ for (;;) {
+ char buf[512];
+ ssize_t len;
+ fd_set fds;
+
+ FD_ZERO(&fds);
+ FD_SET(fd, &fds);
+
+#ifndef __linux__
+# error vshelper relies on the Linux select() behavior (timeout holds remaining time)
+#endif
+
+ switch (select(fd+1, &fds, 0,0, &timeout)) {
+ case 0 : return EXIT_FAILURE; // timeout
+ case -1 :
+ perror("vshelper: select()");
+ return EXIT_FAILURE;
+ default : break;
+ }
+
+ assert(FD_ISSET(fd, &fds));
+
+ len = read(fd,buf,sizeof buf);
+ if (len==0) break;
+ if (len==-1) {
+ perror("vshelper-sync: read()");
+ return EXIT_FAILURE;
+ }
+ }
+
+ return EXIT_SUCCESS;
+}
--- /dev/null
+// $Id: vuname.c,v 1.7 2005/03/24 12:44:17 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "util.h"
+
+#include <getopt.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
+#include <libgen.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <ctype.h>
+#include <strings.h>
+
+#define ENSC_WRAPPERS_PREFIX "vuname: "
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_IO 1
+#define ENSC_WRAPPERS_VSERVER 1
+#include <wrappers.h>
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+#define CMD_DIR 0x4007
+#define CMD_MISSINGOK 0x4008
+
+int wrapper_exit_code = 255;
+
+static vc_uts_type const UTS_MAPPING[7] = {
+ vcVHI_CONTEXT, vcVHI_SYSNAME, vcVHI_NODENAME,
+ vcVHI_RELEASE, vcVHI_VERSION, vcVHI_MACHINE,
+ vcVHI_DOMAINNAME };
+
+#define DECL(UTS) [vcVHI_ ## UTS] = #UTS
+static char const * const UTS_STRINGS[] = {
+ DECL(CONTEXT), DECL(SYSNAME), DECL(NODENAME),
+ DECL(RELEASE), DECL(VERSION), DECL(MACHINE),
+ DECL(DOMAINNAME)
+};
+
+struct Tag {
+ bool is_set;
+ char const * value;
+};
+
+struct Arguments {
+ struct Tag tags[DIM_OF(UTS_MAPPING)];
+ xid_t xid;
+ bool do_set;
+ char const * dir;
+ bool is_missingok;
+};
+
+static struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "xid", required_argument, 0, 'x' },
+ { "set", no_argument, 0, 's' },
+ { "get", no_argument, 0, 'g' },
+ { "dir", required_argument, 0, CMD_DIR },
+ { "missingok", no_argument, 0, CMD_MISSINGOK },
+ { 0,0,0,0 }
+};
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ VSERVER_DECLARE_CMD(cmd);
+
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [-g] --xid <xid> <TAG>*\n"
+ " or ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " -s --xid <xid> -t <TAG>=<VALUE> [--] [<command> <args>*]\n"
+ " or ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " --dir <dir> --xid <xid> [--missingok] [--] [<command> <args>*]\n\n"
+ " Options:\n"
+ " -g ... get and print the value\n"
+ " -s ... set the value\n\n"
+ " --xid <xid> ... operate on this context; 'self' means the current one\n"
+ " -t <TAG>=<VALUE>\n"
+ " ... set <TAG> to <VALUE>; this option can be repeated multiple time\n"
+ " --dir <dir> ... read values from files in <dir>. These files must\n"
+ " have a valid TAG as their name\n"
+ " --missingok ... do not fail when the <DIR> from '--dir' does not exist.\n"
+ "\n"
+ " Possible values for TAG are:\n"
+ " context, sysname, nodename, release, version, machine, domainname\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vuname " VERSION " -- modifies and shows uname entries of vserver contexts\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static void
+setFromDir(char const *pathname, bool is_missingok, xid_t xid)
+{
+ struct stat st;
+ size_t i;
+ size_t l_pathname = strlen(pathname);
+ char buf[l_pathname + sizeof("/domainname") + 32];
+
+ if (stat(pathname, &st)==-1) {
+ if (errno==ENOENT && is_missingok) return;
+ PERROR_Q(ENSC_WRAPPERS_PREFIX "fstat", pathname);
+ exit(wrapper_exit_code);
+ }
+
+ memcpy(buf, pathname, l_pathname);
+ if (l_pathname>0 && pathname[l_pathname-1]!='/')
+ buf[l_pathname++] = '/';
+
+ for (i=0; i<DIM_OF(UTS_STRINGS); ++i) {
+ char * ptr = buf+l_pathname;
+ int fd;
+
+ // ignore unimplemented uts-names
+ if (UTS_STRINGS[i]==0) continue;
+ strcpy(ptr, UTS_STRINGS[i]);
+ for (;*ptr;++ptr) *ptr = tolower(*ptr);
+ fd = open(buf, O_RDONLY);
+ if (fd!=-1) {
+ size_t l = Elseek(fd, 0, SEEK_END);
+ char name[l+1];
+ Elseek(fd,0,SEEK_SET);
+ EreadAll(fd, name, l);
+ while (l>0 && name[l-1]=='\n') --l;
+ name[l] = '\0';
+ Eclose(fd);
+
+ if (vc_set_vhi_name(xid, (vc_uts_type)(i), name, l)==-1) {
+ PERROR_U(ENSC_WRAPPERS_PREFIX "vc_set_vhi_name", UTS_STRINGS[i]);
+ exit(wrapper_exit_code);
+ }
+ }
+ }
+}
+
+static size_t
+findUtsIdx(char const *str, size_t len)
+{
+ size_t i;
+ for (i=0; i<DIM_OF(UTS_STRINGS); ++i)
+ if (UTS_STRINGS[i]!=0 && strncasecmp(UTS_STRINGS[i], str, len)==0)
+ return i;
+
+ WRITE_MSG(2, "Tag '");
+ Vwrite (2, str, len);
+ WRITE_STR(2, "' not recognized\n");
+ exit(wrapper_exit_code);
+}
+
+static void
+registerValue(char const *str, struct Tag tags[DIM_OF(UTS_MAPPING)])
+{
+ char const * ptr = strchr(str, '=');
+ size_t idx;
+
+ if (ptr==0) ptr = str + strlen(str);
+ assert(*ptr=='=' || *ptr=='\0');
+
+ idx = findUtsIdx(str, ptr-str);
+
+ if (*ptr=='=') ++ptr;
+ tags[idx].is_set = true;
+ tags[idx].value = ptr;
+}
+
+static void
+printUtsValue(xid_t xid, int val)
+{
+ char buf[128];
+ if (vc_get_vhi_name(xid, val, buf, sizeof(buf)-1)==-1)
+ WRITE_MSG(1, "???");
+ else
+ WRITE_STR(1, buf);
+
+}
+
+int main(int argc, char *argv[])
+{
+ struct Arguments args = {
+ .tags = { [0] = {false,0} },
+ .do_set = false,
+ .dir = 0,
+ .is_missingok= false,
+ .xid = VC_NOCTX,
+ };
+ size_t i;
+
+ assert(DIM_OF(UTS_MAPPING) == DIM_OF(args.tags));
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+gst:", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_DIR : args.dir = optarg; break;
+ case CMD_MISSINGOK: args.is_missingok = true; break;
+ case 'g' : args.do_set = false; break;
+ case 's' : args.do_set = true; break;
+ case 'x' : args.xid = Evc_xidopt2xid(optarg,true); break;
+ case 't' : registerValue(optarg, args.tags); break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+
+ if (args.xid==VC_NOCTX) {
+ WRITE_MSG(2, "No context specified; try '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+
+ if (args.dir)
+ setFromDir(args.dir, args.is_missingok, args.xid);
+ else if (args.do_set) {
+ for (i=0; i<DIM_OF(args.tags); ++i) {
+ if (!args.tags[i].is_set) continue;
+ Evc_set_vhi_name(args.xid, i, args.tags[i].value, strlen(args.tags[i].value));
+ }
+ }
+ else if (optind==argc) {
+ char const * delim = "";
+ for (i=0; i<DIM_OF(UTS_MAPPING); ++i) {
+ WRITE_STR(1, delim);
+ printUtsValue(args.xid, i);
+ delim = " ";
+ }
+ WRITE_MSG(1, "\n");
+
+ return EXIT_SUCCESS;
+ }
+ else {
+ char const * delim = "";
+ while (optind <argc) {
+ int idx = findUtsIdx(argv[optind], strlen(argv[optind]));
+ WRITE_STR(1, delim);
+ printUtsValue(args.xid, idx);
+ delim = " ";
+
+ ++optind;
+ }
+ WRITE_MSG(1, "\n");
+
+ return EXIT_SUCCESS;
+ }
+
+ if (optind<argc)
+ EexecvpD(argv[optind], argv+optind);
+
+ return wrapper_exit_code;
+}
--- /dev/null
+// $Id: vunify-init.hc,v 1.7 2005/03/18 00:24:27 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+#include "pathconfig.h"
+
+static void
+initModeManually(struct Arguments const UNUSED *args, int argc, char *argv[])
+{
+ int i, count=argc/2;
+
+ if (argc%2) {
+ WRITE_MSG(2, "Odd number of (path,excludelist) arguments\n");
+ exit(1);
+ }
+
+ if (count<2) {
+ WRITE_MSG(2, "No reference path(s) given\n");
+ exit(1);
+ }
+
+ MatchList_initManually(&global_info.dst_list, 0, strdup(argv[0]), argv[1]);
+
+ --count;
+ global_info.src_lists.v = Emalloc(sizeof(struct MatchList) * count);
+ global_info.src_lists.l = count;
+
+ for (i=0; i<count; ++i)
+ MatchList_initManually(global_info.src_lists.v+i, 0,
+ strdup(argv[2 + i*2]), argv[3 + i*2]);
+}
+
+
+static void
+initModeVserver(struct Arguments const UNUSED *args, int argc, char *argv[])
+{
+ struct MatchVserverInfo vserver = {
+ .name = argv[0],
+ .use_pkgmgmt = true
+ };
+
+ if (!MatchVserverInfo_init(&vserver)) {
+ WRITE_MSG(2, "Failed to initialize unification for this vserver\n");
+ exit(1);
+ }
+
+ if (argc!=1) {
+ WRITE_MSG(2, "More than one vserver is not supported\n");
+ exit(1);
+ }
+
+ if (!MatchList_initByVserver(&global_info.dst_list, &vserver)) {
+ WRITE_MSG(2, "unification not configured for this vserver\n");
+ exit(1);
+ }
+
+ MatchList_initRefserverList(&global_info.src_lists.v,
+ &global_info.src_lists.l,
+ vserver.appdir.d);
+
+ MatchVserverInfo_free(&vserver);
+}
--- /dev/null
+// $Id: vunify.c,v 1.15 2005/03/24 12:44:17 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vunify.h"
+#include "util.h"
+
+#include "lib_internal/unify.h"
+#include "lib_internal/matchlist.h"
+#include "lib_internal/util-dotfile.h"
+#include "lib_internal/util-safechdir.h"
+#include <lib/vserver.h>
+
+#include <getopt.h>
+#include <dirent.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <errno.h>
+#include <wait.h>
+#include <fcntl.h>
+#include <assert.h>
+
+#define ENSC_WRAPPERS_IO 1
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_DIRENT 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_STDLIB 1
+#include <wrappers.h>
+
+int wrapper_exit_code = 1;
+
+
+#define CMD_HELP 0x8000
+#define CMD_VERSION 0x8001
+#define CMD_MANUALLY 0x8002
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "manually", no_argument, 0, CMD_MANUALLY },
+ { 0,0,0,0 }
+};
+
+static struct WalkdownInfo global_info;
+static struct SkipReason skip_reason;
+static struct Arguments const * global_args;
+
+int Global_getVerbosity() {
+ return global_args->verbosity;
+}
+
+bool Global_doRenew() {
+ return global_args->do_renew;
+}
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage:\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " [-Rnv] <vserver>\n or\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " --manually [-Rnvx] [--] <path> <excludelist> [<path> <excludelist>]+\n\n"
+ " --manually ... unify generic paths; excludelists must be generated\n"
+ " manually\n"
+ " -R ... revert operation; deunify files\n"
+ " -n ... do not modify anything; just show what there will be\n"
+ " done (in combination with '-v')\n"
+ " -v ... verbose mode\n"
+ " -x ... do not cross filesystems; this is valid in manual\n"
+ " mode only and will be ignored for vserver unification\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+#if 0
+ " -C ... use cached excludelists; usually they will be\n"
+ " regenerated after package installation to reflect e.g.\n"
+ " added/removed configuration files\n\n"
+#endif
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vunify " VERSION " -- unifies vservers and/or directories\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2003,2004 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+// Returns 'false' iff one of the files is not existing, or of the files are different/not unifyable
+static bool
+checkFstat(struct MatchList const * const mlist,
+ PathInfo const * const basename,
+ PathInfo const * const path,
+ struct stat const ** const dst_fstat, struct stat * const dst_fstat_buf,
+ struct stat * const src_fstat)
+{
+ assert(basename->d[0] != '/');
+
+ if (*dst_fstat==0) {
+ // local file does not exist... strange
+ // TODO: message
+ skip_reason.r = rsFSTAT;
+ if (lstat(basename->d, dst_fstat_buf)==-1) return false;
+ *dst_fstat = dst_fstat_buf;
+ }
+
+ assert(*dst_fstat!=0);
+
+
+ PathInfo src_path = mlist->root;
+ char src_path_buf[ENSC_PI_APPSZ(src_path, *path)];
+
+ PathInfo_append(&src_path, path, src_path_buf);
+
+ // source file does not exist
+ skip_reason.r = rsNOEXISTS;
+ if (lstat(src_path.d, src_fstat)==-1) return false;
+
+ // these are directories; this succeeds everytime
+ if (S_ISDIR((*dst_fstat)->st_mode) && S_ISDIR(src_fstat->st_mode)) return true;
+
+ // both files are different, so return false
+ skip_reason.r = rsDIFFERENT;
+ if ((!global_args->do_revert && !Unify_isUnifyable(*dst_fstat, src_fstat)) ||
+ ( global_args->do_revert && !Unify_isUnified (*dst_fstat, src_fstat)))
+ return false;
+
+ // these are the same files
+ return true;
+}
+
+static struct MatchList const *
+checkDirEntry(PathInfo const *path,
+ PathInfo const *d_path, bool *is_dir,
+ struct stat *src_stat, struct stat *dst_stat)
+{
+ struct WalkdownInfo const * const info = &global_info;
+ struct MatchList const * mlist;
+ struct stat const * cache_stat;
+
+ // Check if it is in the exclude/include list of the destination vserver and
+ // abort when it is not matching an allowed entry
+ skip_reason.r = rsEXCL_DST;
+ skip_reason.d.list = &info->dst_list;
+ if (MatchList_compare(&info->dst_list, path->d)!=stINCLUDE) return 0;
+
+ // Now, go through the reference vservers and do the lightweigt list-check
+ // first and compare then the fstat's.
+ for (mlist=info->src_lists.v; mlist<info->src_lists.v+info->src_lists.l; ++mlist) {
+ cache_stat = 0;
+ skip_reason.r = rsEXCL_SRC;
+ skip_reason.d.list = mlist;
+ if (MatchList_compare(mlist, path->d)==stINCLUDE &&
+ checkFstat(mlist, d_path, path, &cache_stat, dst_stat, src_stat)) {
+
+ // Failed the check or is it a symlink which can not be handled
+ if (cache_stat==0) return 0;
+
+ skip_reason.r = rsSYMLINK;
+ if (S_ISLNK(dst_stat->st_mode)) return 0;
+
+ skip_reason.r = rsSPECIAL;
+ if (!S_ISREG(dst_stat->st_mode) &&
+ !S_ISDIR(dst_stat->st_mode)) return 0;
+
+ *is_dir = S_ISDIR(dst_stat->st_mode);
+ return mlist;
+ }
+ else if (cache_stat!=0 && !global_args->do_revert &&
+ skip_reason.r == rsDIFFERENT &&
+ Unify_isUnified(cache_stat, src_stat)) {
+ skip_reason.r = rsUNIFIED;
+ skip_reason.d.list = mlist;
+ return 0;
+ }
+ }
+
+ // No luck...
+ return 0;
+}
+
+static bool
+updateSkipDepth(PathInfo const *path, bool walk_down)
+{
+ struct WalkdownInfo const * const info = &global_info;
+ struct MatchList * mlist;
+ bool result = false;
+
+ for (mlist=info->src_lists.v; mlist<info->src_lists.v+info->src_lists.l; ++mlist) {
+ // The easy way... this path is being skipped already
+ if (mlist->skip_depth>0) {
+ if (walk_down) ++mlist->skip_depth;
+ else --mlist->skip_depth;
+ continue;
+ }
+ else if (walk_down) {
+ PathInfo src_path = mlist->root;
+ char src_path_buf[ENSC_PI_APPSZ(src_path, *path)];
+ struct stat src_fstat;
+
+ PathInfo_append(&src_path, path, src_path_buf);
+
+ // when the file/dir exist, we have do go deeper.
+ // else skip it in deeper runs for *this* matchlist
+ if (lstat(src_path.d, &src_fstat)!=-1) result = true;
+ else ++mlist->skip_depth;
+ }
+ else {
+ // TODO: warning
+ }
+ }
+
+ return result;
+}
+
+static bool
+doit(struct MatchList const *mlist,
+ PathInfo const *src_path, struct stat const *src_stat,
+ char const *dst_path, struct stat const UNUSED *dst_stat)
+{
+ PathInfo path = mlist->root;
+ char path_buf[ENSC_PI_APPSZ(path, *src_path)];
+
+ if (global_args->do_dry_run || Global_getVerbosity()>=2) {
+ if (global_args->do_revert) WRITE_MSG(1, "deunifying '");
+ else WRITE_MSG(1, "unifying '");
+
+ Vwrite(1, src_path->d, src_path->l);
+ WRITE_MSG(1, "'");
+
+ if (Global_getVerbosity()>=4) {
+ WRITE_MSG(1, " (from ");
+ if (Global_getVerbosity()==4 && mlist->id.d)
+ Vwrite(1, mlist->id.d, mlist->id.l);
+ else
+ Vwrite(1, mlist->root.d, mlist->root.l);
+ WRITE_MSG(1, ")");
+ }
+ WRITE_MSG(1, "\n");
+ }
+
+ PathInfo_append(&path, src_path, path_buf);
+ return (global_args->do_dry_run ||
+ (!global_args->do_revert && Unify_unify (path.d, src_stat, dst_path, false)) ||
+ ( global_args->do_revert && Unify_deUnify(dst_path)));
+}
+
+
+static void
+printSkipReason()
+{
+ WRITE_MSG(1, " (");
+ switch (skip_reason.r) {
+ case rsDOTFILE : WRITE_MSG(1, "dotfile"); break;
+ case rsEXCL_DST :
+ case rsEXCL_SRC :
+ WRITE_MSG(1, "excluded by ");
+ MatchList_printId(skip_reason.d.list, 1);
+ break;
+ case rsFSTAT : WRITE_MSG(1, "fstat error"); break;
+ case rsNOEXISTS : WRITE_MSG(1, "does not exist in refserver(s)"); break;
+ case rsSYMLINK : WRITE_MSG(1, "symlink"); break;
+ case rsSPECIAL : WRITE_MSG(1, "non regular file"); break;
+ case rsUNIFIED : WRITE_MSG(1, "already unified"); break;
+ case rsDIFFERENT : WRITE_MSG(1, "different"); break;
+ default : assert(false); abort();
+ }
+ WRITE_MSG(1, ")");
+}
+
+#include "vserver-visitdir.hc"
+
+static uint64_t
+visitDirEntry(struct dirent const *ent)
+{
+ bool is_dir;
+ struct MatchList const * match;
+ struct stat f_stat = { .st_dev = 0 };
+ char const * dirname = ent->d_name;
+ PathInfo path = global_info.state;
+ PathInfo d_path = {
+ .d = dirname,
+ .l = strlen(dirname)
+ };
+ char path_buf[ENSC_PI_APPSZ(path, d_path)];
+ bool is_dotfile;
+ struct stat src_stat;
+ uint64_t res = 1;
+
+ PathInfo_append(&path, &d_path, path_buf);
+
+ is_dotfile = isDotfile(dirname);
+ skip_reason.r = rsDOTFILE;
+
+ if (is_dotfile ||
+ (match=checkDirEntry(&path, &d_path, &is_dir, &src_stat, &f_stat))==0) {
+ bool is_link = is_dotfile ? false : S_ISLNK(f_stat.st_mode);
+
+ if (Global_getVerbosity()>=1 &&
+ (Global_getVerbosity()>=3 || skip_reason.r!=rsUNIFIED) &&
+ ((!is_dotfile && !is_link) ||
+ (Global_getVerbosity()>=6 && is_dotfile) ||
+ (Global_getVerbosity()>=6 && is_link)) ) {
+ WRITE_MSG(1, " skipping '");
+ Vwrite(1, path.d, path.l);
+ WRITE_MSG(1, "'");
+ if (Global_getVerbosity()>=2) printSkipReason();
+ WRITE_MSG(1, "\n");
+ }
+ return 0;
+ }
+
+ if (is_dir) {
+ if (updateSkipDepth(&path, true)) {
+ res = visitDir(dirname, &f_stat);
+ updateSkipDepth(&path, false);
+ }
+ else
+ res = 0;
+ }
+ else if (!doit(match, &path, &src_stat, dirname, &f_stat)) {
+ // TODO: message
+ }
+ else
+ res = 0;
+
+ return res;
+}
+
+#include "vunify-init.hc"
+
+int main(int argc, char *argv[])
+{
+ struct Arguments args = {
+ .mode = mdVSERVER,
+ .do_revert = false,
+ .do_dry_run = false,
+ .verbosity = 0,
+ .local_fs = false,
+ .do_renew = true,
+ };
+
+ global_args = &args;
+ while (1) {
+ int c = getopt_long(argc, argv, "Rnvcx",
+ CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_MANUALLY : args.mode = mdMANUALLY; break;
+ case 'R' : args.do_revert = true; break;
+ case 'n' : args.do_dry_run = true; break;
+ case 'x' : args.local_fs = true; break;
+ //case 'C' : args.do_renew = false; break;
+ case 'v' : ++args.verbosity; break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+
+ if (argc==optind) {
+ WRITE_MSG(2, "No directory/vserver given\n");
+ return EXIT_FAILURE;
+ }
+
+ switch (args.mode) {
+ case mdMANUALLY : initModeManually(&args, argc-optind, argv+optind); break;
+ case mdVSERVER : initModeVserver (&args, argc-optind, argv+optind); break;
+ default : assert(false); return EXIT_FAILURE;
+ }
+
+ global_info.state.d = "";
+ global_info.state.l = 0;
+
+
+ if (Global_getVerbosity()>=1) WRITE_MSG(1, "Starting to traverse directories...\n");
+ Echdir(global_info.dst_list.root.d);
+ visitDir("/", 0);
+
+#ifndef NDEBUG
+ {
+ size_t i;
+ MatchList_destroy(&global_info.dst_list);
+ for (i=0; i<global_info.src_lists.l; ++i)
+ MatchList_destroy(global_info.src_lists.v+i);
+
+ free(global_info.src_lists.v);
+ }
+#endif
+}
--- /dev/null
+// $Id: vunify.h,v 1.7 2005/03/18 03:56:06 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_SRC_VUNIFY_H
+#define H_UTIL_VSERVER_SRC_VUNIFY_H
+
+#include "lib_internal/matchlist.h"
+
+#include <sys/stat.h>
+
+struct dirent;
+struct WalkdownInfo
+{
+ PathInfo state;
+ struct MatchList dst_list;
+ struct {
+ struct MatchList * v;
+ size_t l;
+ } src_lists;
+};
+
+struct SkipReason {
+ enum { rsDOTFILE, rsEXCL_DST, rsEXCL_SRC,
+ rsFSTAT, rsNOEXISTS, rsSYMLINK, rsUNIFIED,
+ rsSPECIAL, rsDIFFERENT } r;
+
+ union {
+ struct MatchList const * list;
+ } d;
+};
+
+struct Arguments {
+ enum {mdMANUALLY, mdVSERVER} mode;
+ bool do_revert;
+ bool do_dry_run;
+ unsigned int verbosity;
+ bool local_fs;
+ bool do_renew;
+};
+
+static bool checkFstat(struct MatchList const * const,
+ PathInfo const * const,
+ PathInfo const * const,
+ struct stat const ** const, struct stat * const,
+ struct stat *) NONNULL((1,2,3,4,5,6));
+
+static struct MatchList const *
+checkDirEntry(PathInfo const *,
+ PathInfo const *,
+ bool *, struct stat *, struct stat *) NONNULL((1,2,3,4,5));
+
+static bool updateSkipDepth(PathInfo const *, bool) NONNULL((1));
+static bool doit(struct MatchList const *,
+ PathInfo const *, struct stat const *,
+ char const *dst_path, struct stat const *) NONNULL((1,2,3));
+
+#endif // H_UTIL_VSERVER_SRC_VUNIFY_H
--- /dev/null
+// $Id: vwait.c,v 1.1 2005/05/05 09:22:03 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "lib/vserver.h"
+#include "lib/internal.h"
+#include "linuxvirtual.h"
+#include "util.h"
+
+#include <getopt.h>
+#include <signal.h>
+#include <time.h>
+#include <errno.h>
+#include <libgen.h>
+
+#define ENSC_WRAPPERS_PREFIX "vwait: "
+#define ENSC_WRAPPERS_STDLIB 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_VSERVER 1
+#include <wrappers.h>
+
+#define CMD_HELP 0x8000
+#define CMD_VERSION 0x8001
+
+#define CMD_TIMEOUT 0x4000
+#define CMD_TERMINATE 0x4001
+#define CMD_STATUS_FD 0x4002
+
+static struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "timeout", required_argument, 0, CMD_TIMEOUT },
+ { "terminate", no_argument, 0, CMD_TERMINATE },
+ { "status-fd", required_argument, 0, CMD_STATUS_FD },
+ { 0,0,0,0 }
+};
+
+int wrapper_exit_code = 1;
+static sig_atomic_t aborted = 0;
+
+struct StatusType {
+ enum {stERROR, stFINISHED, stKILLED,
+ stTIMEOUT} status;
+ int rc;
+};
+
+struct Arguments
+{
+ xid_t xid;
+ int timeout;
+ int status_fd;
+ bool do_terminate;
+};
+
+static void
+showHelp(char const *cmd)
+{
+ VSERVER_DECLARE_CMD(cmd);
+
+ WRITE_MSG(1, "Usage: ");
+ WRITE_STR(1, cmd);
+ WRITE_STR(1,
+ " [--timeout <timeout>] [--terminate] [--status-fd <fd>] [--] <xid>\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+ exit(0);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vwait " VERSION " -- waits for a context to finish\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2005 Enrico Scholz\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static void
+handler(int UNUSED num)
+{
+ aborted = 1;
+}
+
+static struct StatusType
+doit(struct Arguments const *args)
+{
+ time_t end_time = 0;
+ struct StatusType res;
+
+ if (args->timeout>0) {
+ end_time = time(0) + args->timeout;
+ signal(SIGALRM, handler);
+ alarm(args->timeout);
+ }
+
+ for (;;) {
+ res.rc = vc_wait_exit(args->xid);
+
+ if (res.rc==-1 && errno!=EAGAIN && errno!=EINTR) {
+ res.rc = errno;
+ res.status = stERROR;
+ perror(ENSC_WRAPPERS_PREFIX "vc_wait_exit()");
+ }
+ else if (res.rc==-1 && args->timeout>0 && time(0)>=end_time) {
+ if (!args->do_terminate)
+ res.status = stTIMEOUT;
+ else {
+ vc_ctx_kill(args->xid, 1, 9);
+ vc_ctx_kill(args->xid, 0, 9);
+ res.status = stKILLED;
+ }
+ }
+ else if (res.rc==-1)
+ continue; // signal
+ else
+ res.status = stFINISHED;
+
+ break;
+ }
+
+ alarm(0);
+ return res;
+}
+
+static void
+writeStatus(int fd, char const *str, int const *rc, int exit_code)
+{
+ if (fd==-1) exit(exit_code);
+
+ WRITE_STR(fd, str);
+ if (rc) {
+ char buf[sizeof(*rc)*3 + 2];
+ size_t len = utilvserver_fmt_long(buf, *rc);
+ WRITE_MSG(fd, " ");
+ Vwrite (fd, buf, len);
+ }
+ WRITE_MSG(fd, "\n");
+
+ exit(exit_code);
+}
+
+int main(int argc, char *argv[])
+{
+ struct StatusType res;
+ struct Arguments args = {
+ .xid = VC_NOCTX,
+ .timeout = -1,
+ .status_fd = -1,
+ .do_terminate = false,
+ };
+
+ while (1) {
+ int c = getopt_long(argc, argv, "c:", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(argv[0]);
+ case CMD_VERSION : showVersion();
+ case CMD_TERMINATE : args.do_terminate = true; break;
+ case CMD_TIMEOUT : args.timeout = atoi(optarg); break;
+ case CMD_STATUS_FD : args.status_fd = atoi(optarg); break;
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help\" for more information.\n");
+ return EXIT_FAILURE;
+ break;
+ }
+ }
+
+ if (optind+1 > argc) {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "no context specified; try '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+
+ if (optind+1 < argc) {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "can not wait for more than one context; try '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+
+ args.xid = Evc_xidopt2xid(argv[optind], true);
+
+ if (args.xid==VC_NOCTX) {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "invalid context specified; try '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+
+ res = doit(&args);
+
+ switch (res.status) {
+ case stERROR : writeStatus(args.status_fd, "ERROR", &res.rc, 127);
+ case stFINISHED : writeStatus(args.status_fd, "FINISHED", &res.rc, 0);
+ case stKILLED : writeStatus(args.status_fd, "KILLED", 0, 1);
+ case stTIMEOUT : writeStatus(args.status_fd, "TIMEOUT", 0, 2);
+ default : writeStatus(args.status_fd, "???", &res.rc, 126);
+ }
+}
-## $Id: Makefile-files,v 1.1.4.2 2003/10/30 15:16:30 ensc Exp $ -*- makefile -*-
+## $Id: Makefile-files,v 1.8 2004/03/24 01:44:43 ensc Exp $ -*- makefile -*-
## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
-sysv_XTRAS = sysv/rebootmgr.subst \
- sysv/v_gated.subst \
- sysv/v_httpd.subst \
- sysv/v_named.subst \
- sysv/v_portmap.subst \
- sysv/v_sendmail.subst \
- sysv/v_smb.subst \
- sysv/v_sshd.subst \
- sysv/v_xinetd.subst \
- sysv/vservers.subst
-
-sysv_GENSCRPTS = sysv/rebootmgr \
- sysv/v_gated \
- sysv/v_httpd \
- sysv/v_named \
- sysv/v_portmap \
- sysv/v_sendmail \
- sysv/v_smb \
- sysv/v_sshd \
- sysv/v_xinetd \
- sysv/vservers
-
-sysv_SCRPTS = $(sysv_GENSCRPTS)
-
-sysv_CFG = sysv/vservers.conf
+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT += \
+ $(sysv_src_SCRPTS) \
+ $(sysv_gen_SCRPTS)
+sysv_src_SCRPTS = sysv/rebootmgr \
+ sysv/vprocunhide \
+ sysv/vservers-default \
+ sysv/vservers-legacy
+sysv_gen_SCRPTS = sysv/v_gated \
+ sysv/v_httpd \
+ sysv/v_named \
+ sysv/v_portmap \
+ sysv/v_sendmail \
+ sysv/v_smb \
+ sysv/v_sshd \
+ sysv/v_xinetd
+sysv_conf_DTA = sysv/vservers.conf
+
+sysconf_DATA += $(sysv_conf_DTA)
+EXTRA_DIST += sysv/v_gated.subst \
+ sysv/v_httpd.subst \
+ sysv/v_named.subst \
+ sysv/v_portmap.subst \
+ sysv/v_sendmail.subst \
+ sysv/v_smb.subst \
+ sysv/v_sshd.subst \
+ sysv/v_xinetd.subst \
+ $(sysv_src_SCRPTS) \
+ $(sysv_conf_DTA)
+
+initrd_SCRIPTS += $(sysv_src_SCRPTS) \
+ $(sysv_gen_SCRPTS)
+
+CLEANFILES += $(sysv_gen_SCRPTS)
+
+sysv_SUBSTRULE = s!/usr/lib/util-vserver!$(pkglibdir)!g; \
+ s!^USR_SBIN=/usr/sbin$$!USR_SBIN=$(sbindir)!g; \
+ s!^DEFAULT_VSERVERDIR=/vservers$$!DEFAULT_VSERVERDIR=$(vserverdir)!g
sysv/%: sysv/%.subst
@mkdir -p $$(dirname '$@')
- sed -e 's!/usr/lib/util-vserver!$(pkglibdir)!g; \
- s!^USR_SBIN=/usr/sbin$$!USR_SBIN=$(sbindir)!g; \
- s!^VROOTDIR=/vservers$$!VROOTDIR=$(vserverdir)!g; \
- ' '$<' >'$@.tmp'
- if cmp -s '$<' '$@.tmp'; then \
+ sed -e '$(sysv_SUBSTRULE)' '$<' >'$@.tmp'
+ @rm -f '$@'
+ @if cmp -s '$<' '$@.tmp'; then \
cp -p '$<' '$@'; \
else \
mv -f '$@.tmp' '$@'; \
fi
- -rm -f '$@.tmp'
+ @rm -f '$@.tmp'
@chmod a-w '$@'
--- /dev/null
+#!/bin/sh
+# chkconfig: - 98 02
+# description: The rebootmgr service is monitoring all virtual servers \
+# and restart them as need. Virtual servers are using \
+# the /sbin/vreboot command to talk with the reboot manager
+# processname: rebootmgr
+# config: /etc/vservers
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+
+PIDFILE=/var/run/rebootmgr.pid
+# See how we were called.
+case "$1" in
+ start)
+ echo "Starting the reboot manager"
+ cd $__CONFDIR
+ VSERVERS=
+ for serv in *.conf
+ do
+ test -f "$serv" || continue
+
+ serv=`basename $serv .conf`
+ if [ -d $__DEFAULT_VSERVERDIR/$serv ] ; then
+ VSERVERS="$VSERVERS $serv"
+ fi
+ done
+ $_REBOOTMGR --pidfile $PIDFILE $VSERVERS &
+ touch /var/lock/subsys/rebootmgr
+ ;;
+ stop)
+ echo "Stopping the reboot manager"
+ kill `cat $PIDFILE`
+ rm -f /var/lock/subsys/rebootmgr
+ rm -f $PIDFILE
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ reload)
+ echo Not implemented
+ ;;
+ status)
+ if [ -f $PIDFILE ] ; then
+ if kill -0 `cat $PIDFILE`
+ then
+ echo rebootmgr is running
+ else
+ echo rebootmgr is NOT running
+ fi
+ fi
+ ;;
+ *)
+ echo "Usage: rebootmgr {start|stop|restart|reload|status}"
+ exit 1
+esac
+
+exit 0
+
+
+
+
+
--- /dev/null
+#!/bin/bash
+#
+# vprocunhide sets vserver related attributes for /proc
+#
+# chkconfig: 2345 26 74
+# description: Makes some /proc entries visibly for vservers
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+
+$_VSERVER_INFO - FEATURE iattr || exit 0
+
+f=/etc/rc.d/init.d/functions
+if test -e "$f"; then
+ . "$f"
+ lockfile=/var/lock/subsys/vprocunhide
+else
+ success() { echo .; }
+ passed() { echo .; }
+ failure() { echo ERROR; }
+ lockfile=/var/run/vprocunhide
+fi
+
+
+function start()
+{
+ echo -n $"Fixing /proc entries visibility..."
+ $_VPROCUNHIDE
+ retval=$?
+ case "$retval" in
+ 0) success;;
+ 2) passed; retval=0;;
+ *) failure;
+ esac
+ echo
+ test "$retval" -ne 0 || touch "$lockfile"
+ return $retval
+}
+
+function stop()
+{
+ rm -f "$lockfile"
+}
+
+function restart()
+{
+ stop
+ start
+}
+
+case "$1" in
+ start|stop|restart) $1;;
+ reload) ;;
+ condrestart)
+ test -f $lockfile && restart || :
+ ;;
+ status)
+ test -f $lockfile && {
+ echo $"/proc entries were fixed"
+ exit 0
+ }
+ echo $"/proc entries are not fixed"
+ exit 1
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|reload|restart|condrestart|status}"
+ exit 2
+ ;;
+esac
--- /dev/null
+#!/bin/sh
+# chkconfig: - 98 02
+# description: Wrapper to start the default vservers
+
+## The *basename* of the lockfile; this must be the same name like
+## this if the initscript. Else, the vservers will not be stopped at
+## shutdown
+#LOCKFILE=vserver-default
+
+## Number of vservers which shall be started in parallel; since most
+## initmethods are spending much time time in sleeps, it is safe to
+## use a high number here
+#NUMPARALLEL=99
+
+## The vserver-flavor; the 'default' vservers will be started very late
+## which may be inappropriately for early services like nameservers or
+## VPN tunnels. By copying this initscript to a new name and adapting
+## the startup-position (for RH/Fedora the numbers in line 2), other
+## vservers can be selected. Identification of vservers happens by
+## putting the flavor into /etc/vservers/<vserver-id>/apps/init/mark.
+#MARK=default
+
+export MARK NUMPARALLEL LOCKFILE
+exec /usr/lib/util-vserver/vserver-wrapper "$@"
+
--- /dev/null
+#!/bin/sh
+# chkconfig: 345 98 02
+# description: The vservers service is used to start and stop all
+# the virtual servers.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+
+# Print the vserver name in priority/alpha order
+sortserver(){
+ (
+ cd $__CONFDIR
+ for serv in *.conf
+ do
+ test -f "$serv" || continue
+
+ PRIORITY=100
+ . $serv
+ test "$ONBOOT" || continue
+ printf "%03d %s\n" $PRIORITY `basename $serv .conf`
+ done
+ ) | sort $* | (while read a b; do echo $b; done)
+}
+
+startservers(){
+ echo "Starting the virtual servers"
+ cd $__CONFDIR
+ for name in `sortserver`
+ do
+ ONBOOT=
+ . $name.conf
+ if [ "$ONBOOT" = "yes" ] ; then
+ $_VSERVER_LEGACY $name start
+ else
+ echo virtual server $name not configured for on boot start
+ fi
+ done
+}
+
+BACKGROUND=off
+if [ -f /etc/vservers.conf ] ; then
+ . /etc/vservers.conf
+fi
+
+
+# See how we were called.
+case "$1" in
+ start)
+ if [ "$BACKGROUND" = "yes" ] ; then
+ startservers >/dev/tty8 </dev/tty8 2>/dev/tty8 &
+ else
+ startservers
+ fi
+ touch /var/lock/subsys/vservers-legacy
+ ;;
+ stop)
+ echo "Stopping the virtual servers"
+ cd $__CONFDIR
+ for name in `sortserver -r`
+ do
+ $_VSERVER_LEGACY $name stop
+ done
+ rm -f /var/lock/subsys/vservers-legacy
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ reload)
+ echo Not implemented
+ ;;
+ status)
+ cd $__CONFDIR
+ for serv in *.conf
+ do
+ ONBOOT=no
+ name=`basename $serv .conf`
+ . $serv
+ echo -n ONBOOT=$ONBOOT " "
+ $_VSERVER_LEGACY $name running
+ done
+ ;;
+ *)
+ echo "Usage: vservers {start|stop|restart|reload|status}"
+ exit 1
+esac
+
+exit 0
-## $Id: Makefile-files,v 1.1.4.1 2003/11/28 23:10:08 ensc Exp $ -*- makefile -*-
+## $Id: Makefile-files,v 1.9 2004/08/19 14:01:33 ensc Exp $ -*- makefile -*-
## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
-test_PRGS = tests/escaperoot \
- tests/forkbomb \
- tests/testipc \
- tests/testlimit \
- tests/testopenf
-
-tests_escaperoot_SOURCES = tests/escaperoot.cc
-tests_forkbomb_SOURCES = tests/forkbomb.cc
-tests_testipc_SOURCES = tests/testipc.cc
-tests_testlimit_SOURCES = tests/testlimit.cc
-tests_testopenf_SOURCES = tests/testopenf.cc
+tests_dietprogs = tests/getctx \
+ tests/getinitpid \
+ tests/vserver-info
+
+noinst_PROGRAMS += tests/escaperoot \
+ tests/forkbomb \
+ tests/testipc \
+ tests/testlimit \
+ tests/testopenf \
+ $(tests_dietprogs)
+
+
+DIETPROGS += $(tests_dietprogs)
+
+tests_escaperoot_SOURCES = tests/escaperoot.c
+tests_forkbomb_SOURCES = tests/forkbomb.c
+tests_testipc_SOURCES = tests/testipc.c
+tests_testlimit_SOURCES = tests/testlimit.c
+tests_testopenf_SOURCES = tests/testopenf.c
+
+tests_getctx_SOURCES = tests/getctx.c
+tests_getctx_LDADD = $(VSERVER_LDADDS)
+tests_getctx_LDFLAGS = $(VSERVER_LDFLGS)
+
+tests_getinitpid_SOURCES = tests/getinitpid.c
+tests_getinitpid_LDADD = $(VSERVER_LDADDS)
+tests_getinitpid_LDFLAGS = $(VSERVER_LDFLGS)
+
+tests_vserver_info_SOURCES = tests/vserver-info.c
+tests_vserver_info_LDADD = $(VSERVER_LDADDS)
+tests_vserver_info_LDFLAGS = $(VSERVER_LDFLGS)
--- /dev/null
+// $Id: escaperoot.c,v 1.3 2004/01/13 14:56:26 ensc Exp $
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+// based on tests/escaperoot.cc by Jacques Gelinas
+//
+// 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.
+
+/*
+ This program tries to escape out of a vserver using chroot flaws.
+ Once escaped, it exec a shell.
+
+ None of this works on 2.4.13.
+*/
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <wait.h>
+#include <limits.h>
+
+static void print_pwd()
+{
+ char path[PATH_MAX];
+ if (getcwd(path,sizeof(path)-1)!=NULL){
+ printf ("PWD: %s\n",path);
+ }
+}
+/*
+ Just set a chroot in a sub-directory and keep the
+ current directory behind
+*/
+static void test1()
+{
+ printf ("test1\n");
+ print_pwd();
+ mkdir ("dummy_dir",0755);
+ if (chroot ("dummy_dir")==-1){
+ fprintf (stderr,"Can't chroot into dummy_dir (%s)\n",strerror(errno));
+ }else{
+ int i;
+ // Try to chdir into the real root
+ for (i=0; i<1000; i++) chdir("..");
+ print_pwd();
+ if (execl ("/bin/sh","/bin/sh",NULL)==-1){
+ fprintf (stderr,"execl /bin/sh failed (%s)\n",strerror(errno));
+ }
+ }
+}
+
+/*
+ Same as test1, except we open the current directory and do
+ a fchdir() to it before trying to escape to the real root.
+*/
+static void test2()
+{
+ int fd;
+
+ printf ("test2\n");
+ print_pwd();
+ mkdir ("dummy_dir",0755);
+ fd = open (".",O_RDONLY);
+ if (fd == -1){
+ fprintf (stderr,"Can't open current directory (%s)\n",strerror(errno));
+ }else if (chroot ("dummy_dir")==-1){
+ fprintf (stderr,"Can't chroot into dummy_dir (%s)\n",strerror(errno));
+ }else if (fchdir(fd)==-1){
+ fprintf (stderr,"Can't fchdir to the current directory (%s)\n"
+ ,strerror(errno));
+ }else{
+ int i;
+ // Try to chdir into the real root
+ for (i=0; i<1000; i++) chdir("..");
+ print_pwd();
+ if (execl ("/bin/sh","/bin/sh",NULL)==-1){
+ fprintf (stderr,"execl /bin/sh failed (%s)\n",strerror(errno));
+ }
+ }
+}
+
+/*
+ Perform the test in a sub-process so it won't affect the current one
+*/
+static void dotest (void (*f)())
+{
+ pid_t pid = fork();
+ if (pid == 0){
+ f();
+ _exit (0);
+ }else if (pid == -1){
+ fprintf (stderr,"Can't fork (%s)\n",strerror(errno));
+ }else{
+ int status;
+ wait (&status);
+ }
+}
+
+int main ()
+{
+ dotest (test1);
+ dotest (test2);
+ printf ("All attempts failed\n");
+ return 0;
+}
+
+
--- /dev/null
+// $Id: forkbomb.c,v 1.2 2003/12/26 00:48:26 uid68581 Exp $
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+// based on tests/forkbomb.cc by Jacques Gelinas
+//
+// 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.
+
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <stdio.h>
+
+typedef enum {MODE_SLEEP,MODE_LOOP,MODE_FORK, MODE_FORKSHELL} MODE;
+
+
+static void forkbomb_userfork (MODE mode)
+{
+ pid_t pid = fork();
+ if (pid==-1){
+ fprintf (stderr,"Fork failed (%s)\n",strerror(errno));
+ }else if (pid == 0){
+ if (mode == MODE_SLEEP){
+ sleep(20);
+ }else if (mode == MODE_LOOP){
+ int k=0;
+ while (1) k++;
+ }else if (mode == MODE_FORKSHELL){
+ system ("/bin/false");
+ }
+ _exit (0);
+ }
+}
+
+
+int main (int argc, char *argv[])
+{
+ if (argc != 4){
+ fprintf (stderr,"formboom N M mode\n"
+ "where N is the number of process to start\n"
+ "and M is the number of user to start\n"
+ "Each user will try to start N process\n"
+ "\n"
+ "mode is:\n"
+ " sleep: Each process sleeps for 20 seconds and exits\n"
+ " loop: Each process loops forever\n"
+ " fork: Each process exits immediatly and is restarted\n"
+ " by the parent\n"
+ " forkshell: Each process runs /bin/false in a shell and\n"
+ " exits, then the parent start a new one\n"
+ );
+ }else{
+ MODE mode;
+ int i;
+ if (strcmp(argv[3],"sleep")==0){
+ mode = MODE_SLEEP;
+ }else if (strcmp(argv[3],"loop")==0){
+ mode = MODE_LOOP;
+ }else if (strcmp(argv[3],"fork")==0){
+ mode = MODE_FORK;
+ }else if (strcmp(argv[3],"forkshell")==0){
+ mode = MODE_FORKSHELL;
+ }else{
+ fprintf (stderr,"Invalid mode\n");
+ exit (-1);
+ }
+ for (i=0; i<atoi(argv[2]); i++){
+ if (fork()==0){
+ if (setuid (i+1)==-1){
+ fprintf (stderr,"Can't setuid to uid %d (%s)\n",i+1
+ ,strerror(errno));
+ }else{
+ int j;
+ for (j=0; j<atoi(argv[1]); j++){
+ forkbomb_userfork (mode);
+ }
+ if (mode == MODE_FORK || mode == MODE_FORKSHELL){
+ // Ok, all processes are started, in MODE_FORK
+ // we create a new one all the time
+ int status;
+ while (wait(&status)!=-1) forkbomb_userfork(mode);
+ }
+ }
+ _exit (0);
+ }
+ }
+ system ("ps ax | wc -l");
+ printf ("All the process are running now\n");
+ printf ("Exit to end all processes\n");
+ system ("/bin/sh");
+ system ("killall forkbomb");
+ }
+ return 0;
+}
+
--- /dev/null
+// $Id: getctx.c,v 1.9 2004/01/21 19:01:01 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "compat.h"
+#include "vserver.h"
+#include "internal.h"
+#include "src/util.h"
+
+#include <stdlib.h>
+#include <unistd.h>
+
+int main(int argc, char *argv[])
+{
+ char buf[sizeof(int)*3+2];
+ xid_t ctx;
+
+ if (argc==1) ctx = vc_get_task_xid(0);
+ else ctx = vc_get_task_xid(atoi(argv[1]));
+
+ utilvserver_fmt_int(buf, ctx);
+
+ WRITE_STR(1, buf);
+ WRITE_MSG(1, "\n");
+
+ return 0;
+}
--- /dev/null
+// $Id: getinitpid.c,v 1.3 2004/01/21 19:06:14 ensc Exp $ --*- c++ -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "compat.h"
+#include "vserver.h"
+#include "internal.h"
+#include "src/util.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int main(int argc, char *argv[])
+{
+ char buf[sizeof(int)*3+2];
+ xid_t xid;
+ struct vc_vx_info info;
+
+ if (argc==1) xid = vc_get_task_xid(0);
+ else xid = vc_get_task_xid(atoi(argv[1]));
+
+ if (xid==VC_NOCTX) {
+ perror("vc_get_task_xid()");
+ return EXIT_FAILURE;
+ }
+
+ if (vc_get_vx_info(xid, &info)==-1) {
+ perror("vc_get_vx_info()");
+ return EXIT_FAILURE;
+ }
+
+ utilvserver_fmt_int(buf, info.initpid);
+
+ WRITE_STR(1, buf);
+ WRITE_MSG(1, "\n");
+
+ return 0;
+}
--- /dev/null
+// $Id: testipc.c,v 1.2 2004/01/13 14:56:26 ensc Exp $
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+// based on tests/testipc.cc by Jacques Gelinas
+//
+// 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.
+
+/*
+ Test to see isolation of the various IPC resources
+ between security context
+*/
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#include <sys/sem.h>
+
+int main (int argc, char *argv[])
+{
+ int ret = -1;
+ if (argc < 2){
+ fprintf (stderr,
+ "testipc createshm\n"
+ );
+ }else if(strcmp(argv[1],"createshm")==0){
+ int id = shmget (1,1024,IPC_CREAT|0666);
+ if (id == -1){
+ fprintf (stderr,"shmget failed (%s)\n",strerror(errno));
+ }else{
+ void *pt = shmat (id,NULL,0);
+ printf ("shmget id %d\n",id);
+ if (pt == NULL){
+ fprintf (stderr,"can't shmat to id %d (%s)\n",id,strerror(errno));
+ }else{
+ char tmp[100];
+ int ok;
+ strcpy ((char*)pt,"original string");
+
+ printf ("Letting a sub-program attach to this memory\n");
+ sprintf (tmp,"./testipc accessshm %d",id);
+ ok = system (tmp);
+ printf ("\tSub-program returned %d\n",ok);
+
+ printf ("\tThe segment now hold :%s:\n",(char*)pt);
+ shmdt (pt);
+
+ printf ("A sub-program in another context can't attach\n");
+ sprintf (tmp,"/usr/sbin/chcontext ./testipc accessshm %d",id);
+ ok = system (tmp);
+ printf ("\tSub-program returned %d\n",ok);
+
+ printf ("Executing a sub-shell\n");
+ system ("/bin/sh");
+ }
+ printf ("Delete the share memory segment\n");
+ if (shmctl (id,IPC_RMID,NULL)==-1){
+ fprintf (stderr,"shmctl failed (%s)\n",strerror(errno));
+ }else{
+ ret = 0;
+ }
+ }
+ }else if(strcmp(argv[1],"accessshm")==0){
+ int id = atoi(argv[2]);
+ void *pt = shmat (id,NULL,0);
+ if (pt == (void*)-1){
+ fprintf (stderr,"can't shmat to id %d (%s)\n",id,strerror(errno));
+ }else{
+ printf ("\tWriting hello in share memory\n");
+ strcpy ((char*)pt,"hello");
+ ret = 0;
+ }
+ }else if(strcmp(argv[1],"createsem")==0){
+ int id = semget (1,1,IPC_CREAT|0666);
+ if (id == -1){
+ fprintf (stderr,"semget failed (%s)\n",strerror(errno));
+ }else{
+ char tmp[100];
+ int ok;
+ printf ("semget id %d\n",id);
+
+ printf ("Letting a sub-program play with this semaphore\n");
+ sprintf (tmp,"./testipc accesssem %d",id);
+ ok = system (tmp);
+ printf ("\tSub-program returned %d\n",ok);
+
+ printf ("A sub-program in another context can't use the semaphore\n");
+ sprintf (tmp,"/usr/sbin/chcontext ./testipc accesssem %d",id);
+ ok = system (tmp);
+ printf ("\tSub-program returned %d\n",ok);
+
+ printf ("Executing a sub-shell\n");
+ system ("/bin/sh");
+
+ printf ("Delete the semaphore\n");
+ if (semctl (id,0,IPC_RMID,NULL)==-1){
+ fprintf (stderr,"semctl failed (%s)\n",strerror(errno));
+ }else{
+ ret = 0;
+ }
+ }
+ }else if(strcmp(argv[1],"accesssem")==0){
+ int id = atoi(argv[2]);
+ struct sembuf ops[]={
+ {0,0,0}
+ };
+ if (semop (id,ops,1) == -1){
+ fprintf (stderr,"can't semop with id %d (%s)\n",id,strerror(errno));
+ }else{
+ ret = 0;
+ }
+ }
+ return ret;
+}
+
+
--- /dev/null
+// $Id: testlimit.c,v 1.3 2004/01/13 14:56:26 ensc Exp $
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+// based on tests/testlimit.cc by Jacques Gelinas
+//
+// 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.
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/wait.h>
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+
+int main (int argc, char *argv[])
+{
+ if (argc != 3){
+ fprintf (stderr,"testlimit nbprocess malloc_size\n");
+ }else{
+ int nbproc = atoi(argv[1]);
+ int size = atoi(argv[2]);
+ int i;
+ int status;
+ for (i=0; i<nbproc; i++){
+ if (fork()==0){
+ void *pt = malloc(size);
+ if (pt == NULL){
+ fprintf (stderr,"Child %d: can't malloc (%s)\n"
+ ,i,strerror(errno));
+ }else{
+ memset (pt,1,size);
+ }
+ sleep (100);
+ _exit (0);
+ }
+ }
+ while (wait(&status)!=-1);
+ }
+ return 0;
+}
+
--- /dev/null
+// $Id: testopenf.c,v 1.3 2004/01/13 14:56:26 ensc Exp $
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+// based on tests/testopenf.cc by Jacques Gelinas
+//
+// 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.
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/wait.h>
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+
+int main (int argc, char *argv[])
+{
+ if (argc != 3){
+ fprintf (stderr,"testlimit nbprocess nbopen\n");
+ }else{
+ int nbproc = atoi(argv[1]);
+ int nbopen = atoi(argv[2]);
+ int i;
+ int status;
+ for (i=0; i<nbproc; i++){
+ if (fork()==0){
+ int j;
+ for (j=0; j<nbopen; j++){
+ FILE *fin = fopen ("/proc/self/status","r");
+ if (fin == NULL){
+ fprintf (stderr,"Can't open %d (%s)\n",errno,strerror(errno));
+ break;
+ }
+ }
+ printf ("%d open files, sleeping\n",j);
+ sleep (100);
+ _exit (0);
+ }
+ }
+ while (wait(&status)!=-1);
+ }
+ return 0;
+}
+
--- /dev/null
+// $Id: vserver-info.c,v 1.3 2004/01/17 05:25:04 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+
+#include "src/util.h"
+#include <stdlib.h>
+
+static void
+checkArgs(int argc, char *argv[])
+{
+ if (argc==2) {
+ if (strcmp(argv[1], "--help")==0) {
+ WRITE_MSG(1, "Usage: vserver-info <vserver>\n");
+ exit(0);
+ }
+ if (strcmp(argv[1], "--version")==0) {
+ WRITE_MSG(1, "vserver-info " VERSION "\n");
+ exit(0);
+ }
+ }
+ else {
+ WRITE_MSG(2, "No vserver specified; try '--help' for more inforamtion\n");
+ exit(1);
+ }
+}
+
+int
+main(int argc, char *argv[])
+{
+ vcCfgStyle style = (checkArgs(argc, argv), vc_getVserverCfgStyle(argv[1]));
+ char const * name = vc_getVserverName(argv[1], style);
+ char const * vdir = vc_getVserverVdir(argv[1], style, true);
+
+ WRITE_MSG(2, "Style: ");
+ switch (style) {
+ case vcCFG_NONE : WRITE_MSG(2, "CFG_NONE"); break;
+ case vcCFG_AUTO : WRITE_MSG(2, "CFG_AUTO"); break;
+ case vcCFG_LEGACY : WRITE_MSG(2, "CFG_LEGACY"); break;
+ case vcCFG_RECENT_FULL : WRITE_MSG(2, "CFG_RECENT_FULL"); break;
+ case vcCFG_RECENT_SHORT : WRITE_MSG(2, "CFG_RECENT_SHORT"); break;
+ default : WRITE_MSG(2, "???"); break;
+ }
+
+ WRITE_MSG(2, "\nName: ");
+ if (name==0) WRITE_MSG(2, "<null>");
+ else WRITE_STR(2, name);
+
+ WRITE_MSG(2, "\nVdir: ");
+ if (vdir==0) WRITE_MSG(2, "<null>");
+ else WRITE_STR(2, vdir);
+
+ WRITE_MSG(2, "\n");
+ return EXIT_SUCCESS;
+}
-%define __chattr /usr/bin/chattr
+# $Id: util-vserver.spec.in,v 1.49 2005/07/15 19:06:58 ensc Exp $
+
+## This package understands the following switches:
+## --without dietlibc ... disable usage of dietlibc
+## --without xalan ... do not require/use the xalan xslt processor
+
+%global confdir %_sysconfdir/vservers
+%global confdefaultdir %confdir/.defaults
+%global pkglibdir %_libdir/%name
+%global __chattr /usr/bin/chattr
+%global chkconfig /sbin/chkconfig
+
+%global _localstatedir %_var
+
+
+%{!?release_func:%global release_func() %1%{?dist}}
Summary: Linux virtual server utilities
Name: util-vserver
-Version: 0.30
-Release: 0
-Epoch: 0
-Copyright: GPL
+Version: 0.30.208
+Release: %release_func 0
+License: GPL
Group: System Environment/Base
URL: http://savannah.nongnu.org/projects/util-vserver/
Source0: http://savannah.nongnu.org/download/util-vserver/stable.pkg/%version/%name-%version.tar.bz2
-Provides: %name-devel = %epoch:%version-%release
BuildRoot: %_tmppath/%name-%version-%release-root
-Provides: vserver = %epoch:%version-%release
-Conflicts: vserver < %epoch:%version-%release
-Conflicts: vserver > %epoch:%version-%release
-BuildRequires: e2fsprogs-devel
-Requires(post): %__chattr
-
-%package linuxconf
-Summary: Linuxconf administration modules for vservers
-Group: Applications/System
-Requires: %name = %epoch:%version-%release
-Provides: vserver-admin = %epoch:%version-%release
-Conflicts: vserver-admin < %epoch:%version-%release
-Conflicts: vserver-admin > %epoch:%version-%release
+Requires: init(%name)
+Requires: %name-core = %version-%release
+Requires: %name-lib = %version-%release
+Requires: diffutils mktemp sed
+Provides: vserver = %version-%release
+Obsoletes: vserver < %version
+BuildRequires: mount vconfig gawk iproute iptables
+BuildRequires: gcc-c++ wget which diffutils
+BuildRequires: e2fsprogs-devel beecrypt-devel
+BuildRequires: doxygen tetex-latex
+Requires(post): %__chattr
+Requires(pre): %pkglibdir
+Requires(postun): %pkglibdir
+%{!?_without_dietlibc:BuildRequires: dietlibc >= 0:0.25}
+%{!?_without_xalan:BuildRequires: xalan-j}
+
+%package lib
+Summary: Dynamic libraries for util-vserver
+Group: System Environment/Libraries
+
+%package core
+Summary: The core-utilities for util-vserver
+Group: Applications/System
+Requires: util-linux
+
+%package build
+Summary: Tools which can be used to build vservers
+Group: Applications/System
+Requires: rpm wget binutils tar e2fsprogs
+Requires: %name = %version-%release
+Requires(pre): %confdir
+Requires(postun): %confdir
+
+%ifarch %ix86
+Requires: apt
+%endif
+
+%package sysv
+Summary: SysV-initscripts for vserver
+Group: System Environment/Base
+Provides: init(%name) = sysv
+Requires: make diffutils
+Requires: initscripts
+Requires: %name = %version-%release
+Requires(post): %chkconfig
+Requires(preun): %chkconfig
+Requires(pre): %_initrddir %pkglibdir
+requires(postun): %_initrddir %pkglibdir
+
+%package legacy
+Summary: Legacy utilities for util-vserver
+Group: Applications/System
+Requires: %name = %version-%release
+Requires(post): %chkconfig
+Requires(preun): %chkconfig
+Requires(pre): %_initrddir %pkglibdir
+requires(postun): %_initrddir %pkglibdir
+
+%package devel
+Summary: Header-files and libraries needed to develop vserver based applications
+Group: Development/Libraries
+Requires: pkgconfig
+Requires: %name-lib = %version-%release
+
%description
-This package provides the components and a framework to setup virtual
+util-vserver provides the components and a framework to setup virtual
servers. A virtual server runs inside a linux server. It is nevertheless
highly independent. As such, you can run various services with normal
configuration. The various vservers can't interact with each other and
This requires a special kernel supporting the new new_s_context and
set_ipv4root system call.
+%description lib
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains the shared libraries needed by all other
+'util-vserver' subpackages.
+
+%description core
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains utilities which are required to communicate with
+the Linux-Vserver enabled kernel.
+
+
+%description build
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains utilities which assist in building Vservers.
-%description linuxconf
-This package provides the components to setup virtual servers with
-linuxconf.
+%description sysv
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains the SysV initscripts which start and stop
+VServers and related tools.
+
+
+%description legacy
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains the tools which are needed to work with VServers
+having an old-style configuration.
+
+
+%description devel
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains header files and libraries which are needed to
+develop VServer related applications.
%prep
%build
-%configure --enable-linuxconf
-%__make %{?_smp_mflags}
+%configure --with-initrddir=%_initrddir --enable-release \
+ %{?_without_dietlibc:--disable-dietlibc}
+
+%__make %{?_smp_mflags} all
+%__make %{?_smp_mflags} doc
%install
rm -rf $RPM_BUILD_ROOT
-%__make DESTDIR=$RPM_BUILD_ROOT install
+%__make DESTDIR="$RPM_BUILD_ROOT" install install-distribution
-mkdir -p $RPM_BUILD_ROOT/vservers
-test "%_initrddir" = %_sysconfdir/init.d || {
- mkdir -p ${RPM_BUILD_ROOT}%_initrddir
- mv ${RPM_BUILD_ROOT}%_sysconfdir/init.d/* ${RPM_BUILD_ROOT}%_initrddir/
-}
+rm -f $RPM_BUILD_ROOT/%_libdir/*.la
+
+MANIFEST_CONFIG='%config' \
+MANIFEST_CONFIG_NOREPLACE='%config(noreplace)' \
+contrib/make-manifest %name $RPM_BUILD_ROOT contrib/manifest.dat
+
+
+%check || :
+%__make check
%clean
rm -rf $RPM_BUILD_ROOT
-%define v_services httpd named portmap sendmail smb sshd xinetd
%post
-/sbin/chkconfig --add vservers
-/sbin/chkconfig --add rebootmgr
+test -d /vservers || mkdir -m0000 /vservers
+test -d /vservers/.pkg || mkdir -m0755 /vservers/.pkg
+
+f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers "$f"
+f="%confdefaultdir/run.rev"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f"
+
+%_sbindir/setattr --barrier /vservers || :
+
+
+%post lib -p /sbin/ldconfig
+%postun lib -p /sbin/ldconfig
+
+
+%post sysv
+%chkconfig --add vservers-default
+%chkconfig --add vprocunhide
+
+
+
+%preun sysv
+test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || :
+
+test "$1" != 0 || %chkconfig --del vprocunhide
+test "$1" != 0 || %chkconfig --del vservers-default
+
+
+%postun sysv
+test "$1" = 0 || %_initrddir/vprocunhide condrestart >/dev/null || :
+
+
+%triggerin build -- fedora-release
+function copy()
+{
+ base=$1
+ shift
+
+ for i; do
+ test -r "$i" || continue
+ target=%confdir/.distributions/.common/pubkeys/$base-$(basename "$i")
+ cp -a "$i" "$target"
+ done
+}
+copy fedora /usr/share/doc/fedora-release-*/RPM-GPG-*
+copy fedora /etc/pki/rpm-gpg/RPM-GPG-*
+
+
+%preun build
+test "$1" != 0 || rm -f %confdir/.distributions/.common/pubkeys/fedora-*
+
+
+## Temporary workaround to remove old v_* files; it will conflict
+## somehow with the -legacy package but can be fixed by reinstalling
+## this package.
+## TODO: remove me in the final .spec file
+%define v_services httpd named portmap sendmail smb sshd xinetd gated
+%triggerun sysv -- util-vserver-sysv < 0.30.198
for i in %v_services; do
- /sbin/chkconfig --add v_$i
+ %chkconfig --del v_$i || :
done
-%__chattr +t /vservers || :
+%post legacy
+%chkconfig --add rebootmgr
+%chkconfig --add vservers-legacy
-%preun
-test "$1" != 0 || for i in %v_services; do
- /sbin/chkconfig --del v_$i
+for i in %v_services; do
+ %chkconfig --add v_$i
done
-test "$1" != 0 || %{_initrddir}/rebootmgr stop &>/dev/null || :
-test "$1" != 0 || /sbin/chkconfig --del rebootmgr
-test "$1" != 0 || /sbin/chkconfig --del vservers
+%preun legacy
+test "$1" != 0 || %_initrddir/rebootmgr stop &>/dev/null || :
+
+test "$1" != 0 || for i in %v_services; do
+ %chkconfig --del v_$i
+done
+
+test "$1" != 0 || %chkconfig --del rebootmgr
+test "$1" != 0 || %chkconfig --del vservers-legacy
-%postun
-test "$1" = 0 || %{_initrddir}/rebootmgr condrestart >/dev/null || :
+%postun legacy
+test "$1" = 0 || %_initrddir/rebootmgr condrestart >/dev/null || :
-%files
-%defattr(-,root,root)
+%files -f %name-base.list
+%defattr(-,root,root,-)
%doc AUTHORS COPYING ChangeLog NEWS README THANKS
-%_sbindir/*
-%_libdir/%name
-%_includedir/vserver.h
-%_libdir/libvserver.a
-%_mandir/man8/*
-%config %_initrddir/*
-%config(noreplace) /etc/vservers.conf
-%attr(0,root,root) %dir /vservers
+%doc doc/*.html doc/*.css
+/sbin/vshelper
+%dir %confdir
+%dir %confdefaultdir
+%dir %confdefaultdir/apps
+%dir %confdefaultdir/files
+%dir %pkglibdir/defaults
+%ghost %confdefaultdir/vdirbase
+%ghost %confdefaultdir/run.rev
-%exclude %_sbindir/newvserver
-%exclude %_mandir/man8/newvserver*
+%dir %_localstatedir/run/vservers
+%dir %_localstatedir/run/vservers.rev
+%dir %_localstatedir/run/vshelper
-%files linuxconf
-%defattr(-,root,root)
-%config(noreplace) /etc/vservers/newvserver.defaults
-%_sbindir/newvserver
-%_mandir/man8/newvserver*
+%files lib -f %name-lib.list
+%files sysv -f %name-sysv.list
-%changelog
-* Thu Mar 18 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.3-0
-- removed '%%doc doc/FAQ.txt' since file does not exist anymore
+%files core -f %name-core.list
+%defattr(-,root,root,-)
+%dir %pkglibdir
+
+
+%files build -f %name-build.list
+%defattr(-,root,root,-)
+%doc contrib/yum*.patch
+%dir %confdir/.distributions
+%dir %confdir/.distributions/*
+%dir %confdir/.distributions/*/apt
+%dir %confdir/.distributions/.common
+%dir %confdir/.distributions/.common/pubkeys
+%dir %confdefaultdir/apps/vunify
+%dir %confdefaultdir/apps/vunify/hash
+
-* Fri Sep 26 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.4-1
-- initial build.
+%files legacy -f %name-legacy.list
+%defattr(-,root,root,-)
+%dir %pkglibdir/legacy
+
+
+%files devel -f %name-devel.list
+%defattr(-,root,root,-)
+%doc lib/apidoc/latex/refman.pdf
+%doc lib/apidoc/html
+
+
+%changelog
+* Fri Jul 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-1
+- require the -lib subpackage by -devel
+- copy GPG keys from /etc/pki/rpm-gpg/
+
+* Fri Apr 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.206-1
+- added patches to make yum work in chroot environments
+- version 0.30.206
+
+* Thu Mar 24 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.205-0
+- added some %%descriptions
+- copy GPG keys from the system into the confdir
+- buildrequire dietlibc-0.25
+- BuildRequire beecrypt-devel
+- cleanups
+- use %%global instead of %%define
+- removed 'run.rev' as a vserver-local variable and made it a system-wide setting
+
+* Wed Jan 26 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.198-0.3
+- updated BuildRequires:
+- use 'setattr --barrier' instead of 'chattr +t' in the %%post scriptlet
+- moved the v_* initscripts to legacy
+- do not ship the /vservers directory itself; as it is immutable, the
+ extraction will fail else
+
+* Thu Sep 9 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.194-0
+- documented switches for 'rpmbuild'
+
+* Wed May 26 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.215-0
+- (re)added the MANIFEST_* variables which were lost some time ago;
+ this will preserve %%config files...
+
+* Mon Mar 15 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.202-0
+- use file-list for sysv scripts also
+
+* Sat Mar 6 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.198-0
+- added vprocunhide-service support
+- added doxygen support
+- updated Requires:
+
+* Wed Oct 1 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.5-0
+- Initial build.
-%define __chattr /usr/bin/chattr
+# $Id: util-vserver.spec.in,v 1.49 2005/07/15 19:06:58 ensc Exp $
+
+## This package understands the following switches:
+## --without dietlibc ... disable usage of dietlibc
+## --without xalan ... do not require/use the xalan xslt processor
+
+%global confdir %_sysconfdir/vservers
+%global confdefaultdir %confdir/.defaults
+%global pkglibdir %_libdir/%name
+%global __chattr /usr/bin/chattr
+%global chkconfig /sbin/chkconfig
+
+%global _localstatedir %_var
+
+
+%{!?release_func:%global release_func() %1%{?dist}}
Summary: Linux virtual server utilities
Name: @PACKAGE@
Version: @VERSION@
-Release: 0
-Epoch: 0
-Copyright: GPL
+Release: %release_func 0
+License: GPL
Group: System Environment/Base
URL: http://savannah.nongnu.org/projects/util-vserver/
Source0: http://savannah.nongnu.org/download/util-vserver/stable.pkg/%version/%name-%version.tar.bz2
-Provides: %name-devel = %epoch:%version-%release
BuildRoot: %_tmppath/%name-%version-%release-root
-Provides: vserver = %epoch:%version-%release
-Conflicts: vserver < %epoch:%version-%release
-Conflicts: vserver > %epoch:%version-%release
-BuildRequires: e2fsprogs-devel
-Requires(post): %__chattr
-
-%package linuxconf
-Summary: Linuxconf administration modules for vservers
-Group: Applications/System
-Requires: %name = %epoch:%version-%release
-Provides: vserver-admin = %epoch:%version-%release
-Conflicts: vserver-admin < %epoch:%version-%release
-Conflicts: vserver-admin > %epoch:%version-%release
+Requires: init(%name)
+Requires: %name-core = %version-%release
+Requires: %name-lib = %version-%release
+Requires: diffutils mktemp sed
+Provides: vserver = %version-%release
+Obsoletes: vserver < %version
+BuildRequires: mount vconfig gawk iproute iptables
+BuildRequires: gcc-c++ wget which diffutils
+BuildRequires: e2fsprogs-devel beecrypt-devel
+BuildRequires: doxygen tetex-latex
+Requires(post): %__chattr
+Requires(pre): %pkglibdir
+Requires(postun): %pkglibdir
+%{!?_without_dietlibc:BuildRequires: dietlibc >= 0:0.25}
+%{!?_without_xalan:BuildRequires: xalan-j}
+
+%package lib
+Summary: Dynamic libraries for util-vserver
+Group: System Environment/Libraries
+
+%package core
+Summary: The core-utilities for util-vserver
+Group: Applications/System
+Requires: util-linux
+
+%package build
+Summary: Tools which can be used to build vservers
+Group: Applications/System
+Requires: rpm wget binutils tar e2fsprogs
+Requires: %name = %version-%release
+Requires(pre): %confdir
+Requires(postun): %confdir
+
+%ifarch %ix86
+Requires: apt
+%endif
+
+%package sysv
+Summary: SysV-initscripts for vserver
+Group: System Environment/Base
+Provides: init(%name) = sysv
+Requires: make diffutils
+Requires: initscripts
+Requires: %name = %version-%release
+Requires(post): %chkconfig
+Requires(preun): %chkconfig
+Requires(pre): %_initrddir %pkglibdir
+requires(postun): %_initrddir %pkglibdir
+
+%package legacy
+Summary: Legacy utilities for util-vserver
+Group: Applications/System
+Requires: %name = %version-%release
+Requires(post): %chkconfig
+Requires(preun): %chkconfig
+Requires(pre): %_initrddir %pkglibdir
+requires(postun): %_initrddir %pkglibdir
+
+%package devel
+Summary: Header-files and libraries needed to develop vserver based applications
+Group: Development/Libraries
+Requires: pkgconfig
+Requires: %name-lib = %version-%release
+
%description
-This package provides the components and a framework to setup virtual
+util-vserver provides the components and a framework to setup virtual
servers. A virtual server runs inside a linux server. It is nevertheless
highly independent. As such, you can run various services with normal
configuration. The various vservers can't interact with each other and
This requires a special kernel supporting the new new_s_context and
set_ipv4root system call.
+%description lib
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains the shared libraries needed by all other
+'util-vserver' subpackages.
+
+%description core
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains utilities which are required to communicate with
+the Linux-Vserver enabled kernel.
+
+
+%description build
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains utilities which assist in building Vservers.
-%description linuxconf
-This package provides the components to setup virtual servers with
-linuxconf.
+%description sysv
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains the SysV initscripts which start and stop
+VServers and related tools.
+
+
+%description legacy
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains the tools which are needed to work with VServers
+having an old-style configuration.
+
+
+%description devel
+util-vserver provides the components and a framework to setup virtual
+servers. A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains header files and libraries which are needed to
+develop VServer related applications.
%prep
%build
-%configure --enable-linuxconf
-%__make %{?_smp_mflags}
+%configure --with-initrddir=%_initrddir --enable-release \
+ %{?_without_dietlibc:--disable-dietlibc}
+
+%__make %{?_smp_mflags} all
+%__make %{?_smp_mflags} doc
%install
rm -rf $RPM_BUILD_ROOT
-%__make DESTDIR=$RPM_BUILD_ROOT install
+%__make DESTDIR="$RPM_BUILD_ROOT" install install-distribution
-mkdir -p $RPM_BUILD_ROOT/vservers
-test "%_initrddir" = %_sysconfdir/init.d || {
- mkdir -p ${RPM_BUILD_ROOT}%_initrddir
- mv ${RPM_BUILD_ROOT}%_sysconfdir/init.d/* ${RPM_BUILD_ROOT}%_initrddir/
-}
+rm -f $RPM_BUILD_ROOT/%_libdir/*.la
+
+MANIFEST_CONFIG='%config' \
+MANIFEST_CONFIG_NOREPLACE='%config(noreplace)' \
+contrib/make-manifest %name $RPM_BUILD_ROOT contrib/manifest.dat
+
+
+%check || :
+%__make check
%clean
rm -rf $RPM_BUILD_ROOT
-%define v_services httpd named portmap sendmail smb sshd xinetd
%post
-/sbin/chkconfig --add vservers
-/sbin/chkconfig --add rebootmgr
+test -d /vservers || mkdir -m0000 /vservers
+test -d /vservers/.pkg || mkdir -m0755 /vservers/.pkg
+
+f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers "$f"
+f="%confdefaultdir/run.rev"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f"
+
+%_sbindir/setattr --barrier /vservers || :
+
+
+%post lib -p /sbin/ldconfig
+%postun lib -p /sbin/ldconfig
+
+
+%post sysv
+%chkconfig --add vservers-default
+%chkconfig --add vprocunhide
+
+
+
+%preun sysv
+test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || :
+
+test "$1" != 0 || %chkconfig --del vprocunhide
+test "$1" != 0 || %chkconfig --del vservers-default
+
+
+%postun sysv
+test "$1" = 0 || %_initrddir/vprocunhide condrestart >/dev/null || :
+
+
+%triggerin build -- fedora-release
+function copy()
+{
+ base=$1
+ shift
+
+ for i; do
+ test -r "$i" || continue
+ target=%confdir/.distributions/.common/pubkeys/$base-$(basename "$i")
+ cp -a "$i" "$target"
+ done
+}
+copy fedora /usr/share/doc/fedora-release-*/RPM-GPG-*
+copy fedora /etc/pki/rpm-gpg/RPM-GPG-*
+
+
+%preun build
+test "$1" != 0 || rm -f %confdir/.distributions/.common/pubkeys/fedora-*
+
+
+## Temporary workaround to remove old v_* files; it will conflict
+## somehow with the -legacy package but can be fixed by reinstalling
+## this package.
+## TODO: remove me in the final .spec file
+%define v_services httpd named portmap sendmail smb sshd xinetd gated
+%triggerun sysv -- util-vserver-sysv < 0.30.198
for i in %v_services; do
- /sbin/chkconfig --add v_$i
+ %chkconfig --del v_$i || :
done
-%__chattr +t /vservers || :
+%post legacy
+%chkconfig --add rebootmgr
+%chkconfig --add vservers-legacy
-%preun
-test "$1" != 0 || for i in %v_services; do
- /sbin/chkconfig --del v_$i
+for i in %v_services; do
+ %chkconfig --add v_$i
done
-test "$1" != 0 || %{_initrddir}/rebootmgr stop &>/dev/null || :
-test "$1" != 0 || /sbin/chkconfig --del rebootmgr
-test "$1" != 0 || /sbin/chkconfig --del vservers
+%preun legacy
+test "$1" != 0 || %_initrddir/rebootmgr stop &>/dev/null || :
+
+test "$1" != 0 || for i in %v_services; do
+ %chkconfig --del v_$i
+done
+
+test "$1" != 0 || %chkconfig --del rebootmgr
+test "$1" != 0 || %chkconfig --del vservers-legacy
-%postun
-test "$1" = 0 || %{_initrddir}/rebootmgr condrestart >/dev/null || :
+%postun legacy
+test "$1" = 0 || %_initrddir/rebootmgr condrestart >/dev/null || :
-%files
-%defattr(-,root,root)
+%files -f %name-base.list
+%defattr(-,root,root,-)
%doc AUTHORS COPYING ChangeLog NEWS README THANKS
-%_sbindir/*
-%_libdir/%name
-%_includedir/vserver.h
-%_libdir/libvserver.a
-%_mandir/man8/*
-%config %_initrddir/*
-%config(noreplace) /etc/vservers.conf
-%attr(0,root,root) %dir /vservers
+%doc doc/*.html doc/*.css
+/sbin/vshelper
+%dir %confdir
+%dir %confdefaultdir
+%dir %confdefaultdir/apps
+%dir %confdefaultdir/files
+%dir %pkglibdir/defaults
+%ghost %confdefaultdir/vdirbase
+%ghost %confdefaultdir/run.rev
-%exclude %_sbindir/newvserver
-%exclude %_mandir/man8/newvserver*
+%dir %_localstatedir/run/vservers
+%dir %_localstatedir/run/vservers.rev
+%dir %_localstatedir/run/vshelper
-%files linuxconf
-%defattr(-,root,root)
-%config(noreplace) /etc/vservers/newvserver.defaults
-%_sbindir/newvserver
-%_mandir/man8/newvserver*
+%files lib -f %name-lib.list
+%files sysv -f %name-sysv.list
-%changelog
-* Thu Mar 18 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.3-0
-- removed '%%doc doc/FAQ.txt' since file does not exist anymore
+%files core -f %name-core.list
+%defattr(-,root,root,-)
+%dir %pkglibdir
+
+
+%files build -f %name-build.list
+%defattr(-,root,root,-)
+%doc contrib/yum*.patch
+%dir %confdir/.distributions
+%dir %confdir/.distributions/*
+%dir %confdir/.distributions/*/apt
+%dir %confdir/.distributions/.common
+%dir %confdir/.distributions/.common/pubkeys
+%dir %confdefaultdir/apps/vunify
+%dir %confdefaultdir/apps/vunify/hash
+
-* Fri Sep 26 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.4-1
-- initial build.
+%files legacy -f %name-legacy.list
+%defattr(-,root,root,-)
+%dir %pkglibdir/legacy
+
+
+%files devel -f %name-devel.list
+%defattr(-,root,root,-)
+%doc lib/apidoc/latex/refman.pdf
+%doc lib/apidoc/html
+
+
+%changelog
+* Fri Jul 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-1
+- require the -lib subpackage by -devel
+- copy GPG keys from /etc/pki/rpm-gpg/
+
+* Fri Apr 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.206-1
+- added patches to make yum work in chroot environments
+- version 0.30.206
+
+* Thu Mar 24 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.205-0
+- added some %%descriptions
+- copy GPG keys from the system into the confdir
+- buildrequire dietlibc-0.25
+- BuildRequire beecrypt-devel
+- cleanups
+- use %%global instead of %%define
+- removed 'run.rev' as a vserver-local variable and made it a system-wide setting
+
+* Wed Jan 26 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.198-0.3
+- updated BuildRequires:
+- use 'setattr --barrier' instead of 'chattr +t' in the %%post scriptlet
+- moved the v_* initscripts to legacy
+- do not ship the /vservers directory itself; as it is immutable, the
+ extraction will fail else
+
+* Thu Sep 9 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.194-0
+- documented switches for 'rpmbuild'
+
+* Wed May 26 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.215-0
+- (re)added the MANIFEST_* variables which were lost some time ago;
+ this will preserve %%config files...
+
+* Mon Mar 15 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.202-0
+- use file-list for sysv scripts also
+
+* Sat Mar 6 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.198-0
+- added vprocunhide-service support
+- added doxygen support
+- updated Requires:
+
+* Wed Oct 1 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.5-0
+- Initial build.
--- /dev/null
+## $Id: Makefile-files,v 1.7 2005/03/18 00:33:20 ensc Exp $ --*- makefile -*--
+
+## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+##
+## 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.
+##
+## 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.
+
+
+if ENSC_HAVE_C99_COMPILER
+DIETPROGS += vserver-start/vserver.start.bin
+pkglib_PROGRAMS += vserver-start/vserver.start.bin
+endif
+
+## HACK: for now...
+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT += vserver-start/vserver.start.bin
+
+vserver_start_vserver_start_bin_SOURCES = \
+ vserver-start/main.c \
+ vserver-start/mount.c \
+ vserver-start/mount.h \
+ vserver-start/defaulttty.c \
+ vserver-start/scriptlets.c \
+ vserver-start/undo.c \
+ vserver-start/undo.h \
+ vserver-start/vshelper.c \
+ vserver-start/vshelper.h \
+ vserver-start/interface.c \
+ vserver-start/interface.h \
+ vserver-start/interface-add.c \
+ vserver-start/interface-read.c \
+ vserver-start/interface-free.hc \
+ vserver-start/interface-init.hc \
+ vserver-start/interface-remove.c \
+ vserver-start/interface-print.c \
+ vserver-start/configuration.c \
+ vserver-start/configuration-init.c \
+ vserver-start/configuration.h \
+ vserver-start/vserver-start.h
+
+vserver_start_vserver_start_bin_LDADD = $(VSERVER_LDADDS) \
+ $(LIBINTERNAL) \
+ $(LIBENSCVECTOR)
+vserver_start_vserver_start_bin_LDFLAGS = $(VSERVER_LDFLGS)
--- /dev/null
+// $Id: configuration-init.c,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "configuration.h"
+#include "interface.h"
+void
+Cfg_init(struct Configuration *cfg)
+{
+ struct vc_ctx_caps const caps = {
+ .bcaps = 0,
+ .bmask = 0,
+ .ccaps = 0,
+ .cmask = 0
+ };
+
+ struct vc_ctx_flags const flags = {
+ .flagword = 0,
+ .mask = 0
+ };
+
+ Vector_init(&cfg->interfaces, sizeof(struct Interface));
+ cfg->vdir = 0;
+ cfg->xid = VC_DYNAMIC_XID;
+ cfg->broadcast = 0;
+ cfg->ctx_caps = caps;
+ cfg->ctx_flags = flags;
+}
--- /dev/null
+// $Id: configuration.c,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "configuration.h"
+#include "interface.h"
+
+#include <lib_internal/util.h>
+#include <lib_internal/filecfg.h>
+#include <ensc_vector/vector.h>
+#include <lib/internal.h>
+
+#include <dirent.h>
+#include <string.h>
+
+static inline bool
+getSingleInterface(struct Interface *res,
+ struct Interface const *tmpl,
+ PathInfo const *basedir, char const *d_entry)
+{
+ PathInfo ent = { .d = d_entry, .l = strlen(d_entry) };
+ PathInfo path = *basedir;
+ char path_buf[ENSC_PI_APPSZ(path, ent)];
+
+ PathInfo_append(&path, &ent, path_buf);
+ if (!utilvserver_isDirectory(path.d, true))
+ return true; // skip non-directories
+
+ return Iface_read(res, &path, tmpl);
+}
+
+static inline bool
+getInterfaces(struct Configuration *cfg)
+{
+ ENSC_PI_DECLARE(iface_subdir, "interfaces");
+ PathInfo ifacepath = cfg->cfgdir;
+ char path_buf[ENSC_PI_APPSZ(ifacepath, iface_subdir)];
+ struct Interface iface_default;
+ DIR *dir;
+ bool rc = true;
+
+ PathInfo_append(&ifacepath, &iface_subdir, path_buf);
+
+ if (!utilvserver_isDirectory(ifacepath.d, true))
+ return true; // no interface configuration -> ok
+
+ Iface_init(&iface_default);
+ if (!Iface_read(&iface_default, &ifacepath, 0))
+ return false;
+
+ // iterate through dir-entries...
+ dir = opendir(ifacepath.d);
+ while (dir!=0) {
+ struct dirent *ent = readdir(dir);
+ struct Interface iface;
+
+ if (ent==0) break;
+ if (isDotfile(ent->d_name)) continue; // skip dot-files
+
+ Iface_init(&iface);
+ if (!getSingleInterface(&iface, &iface_default, &ifacepath, ent->d_name))
+ rc = false;
+ else if (iface.addr.ipv4.ip!=0) { // HACK: non-directory entries would return true also
+ struct Interface *new_iface = Vector_pushback(&cfg->interfaces);
+ *new_iface = iface;
+ }
+ }
+
+ if (dir!=0)
+ closedir(dir);
+
+ return rc;
+}
+
+static bool
+initVdir(char const **vdir, PathInfo const *cfgdir)
+{
+ *vdir = vc_getVserverVdir(cfgdir->d, vcCFG_RECENT_FULL, true);
+ if (*vdir==0) {
+ WRITE_MSG(2, "Can not find root-directory of the vserver\n");
+ return false;
+ }
+
+ return true;
+}
+
+static bool
+setFlag(void *flags_v, char const *str, size_t len)
+{
+ struct vc_ctx_flags *flags = flags_v;
+ int rc = vc_list2cflag(str,len, 0,flags);
+
+ return rc!=-1;
+}
+
+static bool
+setCCap(void *caps_v, char const *str, size_t len)
+{
+ struct vc_ctx_caps *caps = caps_v;
+ int rc = vc_list2ccap(str,len, 0,caps);
+
+ return rc!=-1;
+}
+
+static bool
+setBCap(void *caps_v, char const *str, size_t len)
+{
+ struct vc_ctx_caps *caps = caps_v;
+ int rc = vc_list2bcap(str,len, 0,caps);
+
+ return rc!=-1;
+}
+
+static bool
+readSomething(void *dest, PathInfo const *cfgdir, char const *item,
+ FileCfg_MultiLineHandler handler)
+{
+ char const *data = FileCfg_readEntryStr(cfgdir, item, true, 0);
+ bool res = false;
+
+ if (!data) return true;
+ if (!FileCfg_iterateOverMultiLine(data, handler, dest)) {
+ WRITE_MSG(2, "Failed to parse '");
+ WRITE_STR(2, item);
+ WRITE_MSG(2, "' configuration\n");
+ goto finish;
+ }
+
+ res = true;
+ finish:
+ free(const_cast(char *)(data));
+ return res;
+}
+
+bool
+getConfiguration(struct Configuration *cfg, PathInfo const *cfgdir)
+{
+ cfg->cfgdir = *cfgdir;
+ cfg->nice = FileCfg_readEntryStr(cfgdir, "nice", false, 0);
+
+ return (initVdir(&cfg->vdir, cfgdir) &&
+ readSomething(&cfg->ctx_flags, cfgdir, "flags", setFlag) &&
+ readSomething(&cfg->ctx_caps, cfgdir, "ccapabilities", setCCap) &&
+ readSomething(&cfg->ctx_caps, cfgdir, "bcapabilities", setBCap) &&
+ getInterfaces(cfg));
+}
--- /dev/null
+// $Id: configuration.h,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_VSERVER_START_CONFIGURATION_H
+#define H_UTIL_VSERVER_VSERVER_START_CONFIGURATION_H
+
+#include <lib/vserver.h>
+#include <ensc_vector/vector.h>
+#include <lib_internal/pathinfo.h>
+
+#include <stdbool.h>
+
+typedef struct Vector InterfaceList;
+
+struct Configuration {
+ PathInfo cfgdir;
+ char const * vdir;
+ xid_t xid;
+ uint32_t broadcast;
+ InterfaceList interfaces;
+ char const * nice;
+
+ struct vc_ctx_caps ctx_caps;
+ struct vc_ctx_flags ctx_flags;
+};
+
+ //extern struct Configuration cfg;
+
+void Cfg_init(struct Configuration *);
+bool getConfiguration(struct Configuration *, PathInfo const *cfgdir);
+
+
+#endif // H_UTIL_VSERVER_VSERVER_START_CONFIGURATION_H
--- /dev/null
+// $Id: defaulttty.c,v 1.2 2005/01/26 15:30:40 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver-start.h"
+#include <pathconfig.h>
+
+#include <lib_internal/string.h>
+
+#include <string.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_FCNTL 1
+#include <wrappers.h>
+
+
+inline static bool
+checkTTY(char const /*@null@*/ *p)
+{
+ return p!=0 && access(p, R_OK|W_OK)==0;
+}
+
+void
+setDefaultTTY(PathInfo const *cfgdir, char const *dflt)
+{
+ PathInfo subpath = ENSC_STRING_FIXED("/apps/init/tty");
+ char buf[ENSC_PI_APPSZ(*cfgdir, subpath)];
+ char const * new_tty = 0;
+
+ do {
+ PathInfo ttypath = *cfgdir;
+
+ PathInfo_append(&ttypath, &subpath, buf);
+ new_tty = String_c_str(&ttypath, buf);
+ if (checkTTY(new_tty)) break;
+
+ new_tty = CONFDIR "/.defaults/apps/init/tty";
+ if (checkTTY(new_tty)) break;
+
+ new_tty = dflt;
+ if (checkTTY(new_tty)) break;
+
+ new_tty = "/dev/null";
+ } while (false);
+
+ int fd_in = Eopen(new_tty, O_RDONLY, 0);
+ if (fd_in!=0) {
+ Edup2(fd_in, 0);
+ Eclose(fd_in);
+ }
+
+ int fd_out = Eopen(new_tty, O_WRONLY, 0600);
+ if (fd_out!=1) {
+ Edup2(fd_out, 1);
+ Eclose(fd_out);
+ }
+
+ Edup2(1, 2);
+}
--- /dev/null
+// $Id: interface-add.c,v 1.3 2005/03/19 02:07:40 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "interface.h"
+#include "pathconfig.h"
+
+#include <lib_internal/command.h>
+#include <lib_internal/util.h>
+#include <ensc_fmt/fmt.h>
+
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+unsigned int
+Iface_getIPv4Prefix(struct Interface const *iface)
+{
+ uint32_t mask = iface->addr.ipv4.mask;
+ unsigned int res = 0;
+ while (mask!=0) {
+ res += mask & 1;
+ mask >>= 1;
+ }
+
+ return res;
+}
+
+static bool
+invokeIpAddr(struct Interface const *iface)
+{
+ struct Command cmd;
+ unsigned int prefix = Iface_getIPv4Prefix(iface);
+ char * tmp = inet_ntoa(*reinterpret_cast(struct in_addr *)(&iface->addr.ipv4.ip));
+ size_t l = strlen(tmp);
+ char addr[l + sizeof("/") + sizeof(unsigned int)*3 + 1];
+ char * ptr;
+ size_t l1 = strlen(iface->dev);
+ size_t l2 = iface->name ? strlen(iface->name) : 0;
+ char devlabel[l1 + l2 + sizeof(":")];
+ bool result = true;
+
+ ptr = Xmemcpy(addr, tmp, l);
+ *ptr++ = '/';
+ l = utilvserver_fmt_uint(ptr, prefix);
+ ptr[l] = '\0';
+
+ Command_init(&cmd);
+
+ size_t idx = 6;
+ char const * argv[] = {
+ "/bin/echo",
+ PROG_IP, "addr", "add",
+ addr,
+ "broadcast", 0,
+ 0, 0, // label <name>
+ 0, 0, // dev <dev>
+ 0
+ };
+
+ if (iface->addr.ipv4.bcast!=0)
+ argv[idx++] = inet_ntoa(*reinterpret_cast(struct in_addr *)(&iface->addr.ipv4.bcast));
+ else
+ argv[idx++] = "+";
+
+ if (iface->name) {
+ ptr = Xmemcpy(devlabel, iface->dev, l1);
+ *ptr++ = ':';
+ ptr = Xmemcpy(ptr, iface->name, l2);
+ *ptr = '\0';
+
+ argv[idx++] = "label";
+ argv[idx++] = devlabel;
+ }
+
+ argv[idx++] = "dev";
+ argv[idx++] = iface->dev;
+
+ Command_setParams(&cmd, argv);
+ if (!Command_exec(&cmd, true) ||
+ !Command_wait(&cmd, true) ||
+ cmd.rc!=0)
+ result = false;
+
+ Command_free(&cmd);
+
+ return result;
+}
+
+static bool
+addVLAN(struct Interface const UNUSED *iface)
+{
+ abort(); // TODO: implement me
+}
+
+static bool
+addIndirect(struct Interface const UNUSED *iface)
+{
+ abort(); // TODO: implement me
+}
+
+static bool
+addIP(struct Interface const *iface)
+{
+ return invokeIpAddr(iface);
+ //invokeIpLink(iface);
+}
+
+bool
+Iface_add(struct Interface const *iface)
+{
+ if (iface->nodev) return true;
+ if (strchr(iface->dev, '.')!=0) return addVLAN(iface);
+ if (!iface->direct) return addIndirect(iface);
+ return addIP(iface);
+}
--- /dev/null
+// $Id: interface-free.hc,v 1.1 2004/07/03 00:07:42 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+static inline UNUSED void
+Iface_free(struct Interface *iface)
+{
+ free(const_cast(char *)(iface->name));
+ free(const_cast(char *)(iface->scope));
+ free(const_cast(char *)(iface->dev));
+ free(const_cast(char *)(iface->mac));
+}
--- /dev/null
+// $Id: interface-init.hc,v 1.1 2004/07/03 00:07:42 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+#include <string.h>
+
+static inline UNUSED void
+Iface_init(struct Interface *iface)
+{
+ memset(&iface->addr, 0, sizeof (iface->addr));
+ iface->name = 0;
+ iface->scope = 0;
+ iface->dev = 0;
+ iface->mac = 0;
+ iface->nodev = false;
+ iface->direct = false;
+ iface->up = true;
+}
--- /dev/null
+// $Id: interface-print.c,v 1.2 2005/03/19 02:07:40 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "interface.h"
+
+void
+Iface_print(struct Interface const UNUSED *iface, int UNUSED fd)
+{
+
+}
--- /dev/null
+// $Id: interface-read.c,v 1.3 2005/03/24 12:44:17 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "interface.h"
+
+#include <lib_internal/filecfg.h>
+#include <lib_internal/util.h>
+
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+static inline char *
+readEntryStr(PathInfo const *cfgdir, char const *file, char const *dflt)
+{
+ return FileCfg_readEntryStr(cfgdir, file, false, dflt);
+}
+
+static inline bool
+readEntryFlag(PathInfo const *cfgdir, char const *file, bool dflt)
+{
+ return FileCfg_readEntryFlag(cfgdir, file, dflt);
+}
+
+static int
+assumeNonNull(PathInfo const *cfgdir, char const *file, char const *val)
+{
+ if (val!=0) return 0;
+
+ WRITE_MSG(2, "vserver-start: no value configured for '");
+ Vwrite (2, cfgdir->d, cfgdir->l);
+ WRITE_MSG(2, "/");
+ WRITE_STR(2, file);
+ WRITE_STR(2, "'\n");
+ return 1;
+}
+
+bool
+Iface_read(struct Interface *res, PathInfo *cfgdir,
+ struct Interface const *dflt)
+{
+ char const * extip;
+ char const * ip;
+ char const * mask;
+ char const * prefix;
+ char const * bcast;
+ bool rc = false;
+
+ // skip 'disabled' interfaces
+ if (readEntryFlag(cfgdir, "disabled", false)) return true;
+
+ ip = readEntryStr (cfgdir, "ip", 0);
+ mask = readEntryStr (cfgdir, "mask", 0);
+ prefix = readEntryStr (cfgdir, "prefix", 0);
+ extip = readEntryStr (cfgdir, "extip", 0);
+ bcast = readEntryStr (cfgdir, "bcast", 0);
+ res->mac = readEntryStr (cfgdir, "mac", 0);
+ res->name = readEntryStr (cfgdir, "name", 0);
+ res->dev = readEntryStr (cfgdir, "dev", dflt ? dflt->dev : 0);
+ res->scope = readEntryStr (cfgdir, "scope", dflt ? dflt->scope : 0);
+ res->nodev = readEntryFlag(cfgdir, "nodev", false);
+ res->direct = !readEntryFlag(cfgdir, "indirect", false);
+ res->up = !readEntryFlag(cfgdir, "down", false);
+
+ if (dflt && (
+ assumeNonNull(cfgdir, "ip", ip) +
+ assumeNonNull(cfgdir, "dev", res->dev) +
+ (dflt->addr.ipv4.mask>0) ? 0 : (
+ (mask ? 0 : assumeNonNull(cfgdir, "prefix", prefix)) +
+ (prefix ? 0 : assumeNonNull(cfgdir, "mask", mask))
+ )))
+ goto err;
+
+ if (mask && prefix) {
+ WRITE_MSG(2, "vserver-start: both 'prefix' and 'mask' specified in '");
+ Vwrite (2, cfgdir->d, cfgdir->l);
+ WRITE_MSG(2, "'\n");
+ goto err;
+ }
+
+ if (bcast)
+ res->addr.ipv4.bcast = inet_addr(bcast);
+
+ if (ip)
+ res->addr.ipv4.ip = inet_addr(ip);
+
+ if (extip)
+ res->addr.ipv4.extip = inet_addr(extip);
+
+ if (prefix) {
+ int p = atoi(prefix);
+ if (p==0) {
+ WRITE_MSG(2, "vserver-start: invalid 'prefix' specified in '");
+ Vwrite (2, cfgdir->d, cfgdir->l);
+ WRITE_MSG(2, "'\n");
+ goto err;
+ }
+
+ res->addr.ipv4.mask = htonl(-1u << (32-p));
+ }
+ else if (mask)
+ res->addr.ipv4.mask = inet_addr(mask);
+ else if (dflt)
+ res->addr.ipv4.mask = dflt->addr.ipv4.mask;
+
+ rc = true;
+
+ err:
+ free(const_cast(void *)(bcast));
+ free(const_cast(void *)(extip));
+ free(const_cast(void *)(ip));
+ free(const_cast(void *)(mask));
+ free(const_cast(void *)(prefix));
+
+ return rc;
+}
--- /dev/null
+// $Id: interface-remove.c,v 1.2 2005/03/19 02:07:40 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "interface.h"
+
+bool
+Iface_remove(struct Interface const UNUSED *iface)
+{
+ return true;
+}
--- /dev/null
+// $Id: interface.c,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "interface.h"
+
+#include "vserver-start.h"
+#include "configuration.h"
+#include "undo.h"
+
+#include <lib_internal/util.h>
+
+static void
+Iface_removeWrapper(void const *iface)
+{
+ (void)Iface_remove(iface);
+}
+
+void
+activateInterfaces(InterfaceList const *interfaces)
+{
+ struct Interface const * iface;
+
+ for (iface=Vector_begin_const(interfaces);
+ iface!=Vector_end_const(interfaces);
+ ++iface) {
+ if (!Iface_add(iface)) {
+ WRITE_MSG(2, "Failed to add interface ");
+ Iface_print(iface, 2);
+ WRITE_MSG(2, "\n");
+
+ exit(1);
+ }
+ Undo_addTask(Iface_removeWrapper, iface);
+ }
+}
--- /dev/null
+// $Id: interface.h,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_VSERVER_START_INTERFACE_H
+#define H_UTIL_VSERVER_VSERVER_START_INTERFACE_H
+
+#include "configuration.h"
+
+#include <lib_internal/util-cast.h>
+#include <lib_internal/pathinfo.h>
+#include <lib/vserver.h>
+#include <stdbool.h>
+
+struct Interface {
+ union {
+ struct {
+ uint32_t ip;
+ uint32_t mask;
+ uint32_t extip;
+ uint32_t bcast;
+ } ipv4;
+ } addr;
+
+ char const * name;
+ char const * scope;
+ char const * dev;
+ char const * mac;
+ bool nodev;
+ bool direct;
+ bool up;
+};
+
+void activateInterfaces(InterfaceList const *interfaces);
+void deactivateInterfaces(InterfaceList const *interfaces);
+
+static void Iface_init(struct Interface *);
+static void Iface_free(struct Interface *);
+bool Iface_read(struct Interface *, PathInfo *cfgdir,
+ struct Interface const *dflt);
+bool Iface_add(struct Interface const *);
+bool Iface_del(struct Interface const *);
+bool Iface_remove(struct Interface const *);
+void Iface_print(struct Interface const *, int fd);
+
+#include "interface-init.hc"
+#include "interface-free.hc"
+
+#endif // H_UTIL_VSERVER_VSERVER_START_INTERFACE_H
--- /dev/null
+// $Id: main.c,v 1.5 2005/03/19 02:07:40 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver-start.h"
+#include "vshelper.h"
+#include "pathconfig.h"
+#include "interface.h"
+#include "configuration.h"
+#include "mount.h"
+#include "undo.h"
+
+#include "lib_internal/util.h"
+#include "lib_internal/errinfo.h"
+#include "lib_internal/sys_clone.h"
+#include "lib/vserver.h"
+#include "lib/internal.h"
+
+#include <sys/file.h>
+#include <sched.h>
+#include <signal.h>
+#include <unistd.h>
+#include <sys/socket.h>
+
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_SOCKET 1
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_STDLIB 1
+#include <ensc_wrappers/wrappers.h>
+
+struct Options opts;
+struct Configuration cfg;
+int wrapper_exit_code;
+
+static void
+env2Str(char const **var, char const *env, bool req)
+{
+ char const * tmp = getenv(env);
+ if (req && tmp==0) {
+ WRITE_MSG(2, "vserver.start: required environment variable $");
+ WRITE_STR(2, env);
+ WRITE_STR(2, " not set; aborting...\n");
+ exit(1);
+ }
+
+ *var = tmp;
+ unsetenv(env);
+}
+
+static void
+env2Bool(bool *var, char const *env, bool req)
+{
+ char const * tmp;
+ env2Str(&tmp, env, req);
+ *var = !(tmp==0 || atoi(tmp)==0);
+}
+
+static void
+initGlobals()
+{
+ env2Str (&opts.VSERVER_DIR, "VSERVER_DIR", true);
+ env2Str (&opts.VSERVER_NAME, "VSERVER_NAME", true);
+ env2Bool(&opts.OPTION_DEBUG, "OPTION_DEBUG", false);
+ env2Bool(&opts.OPTION_DEFAULTTTY, "OPTION_DEFAULTTTY", false);
+}
+
+static void
+initLock()
+{
+ size_t l = strlen(opts.VSERVER_DIR);
+ char tmp[sizeof(LOCKDIR "/vserver..startup") + l];
+ char * ptr = tmp;
+ struct ErrorInformation err = { .app = 0 };
+ int fd;
+
+ ptr = Xmemcpy(ptr, LOCKDIR "/vserver.", sizeof(LOCKDIR "/vserver.")-1);
+ ((char *)(Xmemcpy(ptr, opts.VSERVER_DIR, l)))[0] = '\0';
+ ptr += canonifyVserverName(ptr);
+ ptr = Xmemcpy(ptr, ".startup", sizeof(".startup"));
+ *ptr = '\0';
+
+ if (!lockfile(&fd, tmp, LOCK_EX, 30, &err)) {
+ WRITE_MSG(2, "vserver.start: failed to lock '");
+ WRITE_STR(2, tmp);
+ WRITE_MSG(2, "': ");
+ ErrInfo_writeErrno(&err);
+ exit(1);
+ }
+}
+
+static void
+checkConstraints()
+{
+ xid_t xid;
+ bool is_running;
+ struct vc_vx_info info;
+
+ xid = vc_getVserverCtx(opts.VSERVER_DIR, vcCFG_RECENT_FULL,
+ true, &is_running);
+
+ if (xid!=VC_NOCTX && vc_get_vx_info(xid, &info)!=-1) {
+ WRITE_MSG(2, "vserver.start: vserver '");
+ WRITE_STR(2, opts.VSERVER_NAME);
+ WRITE_MSG(2, "' already running; aborting...\n");
+ exit(1);
+ }
+
+ Vshelper_doSanityCheck();
+}
+
+static void
+setCFlag(xid_t xid, uint_least64_t value)
+{
+ struct vc_ctx_flags flags = {
+ .flagword = value,
+ .mask = value
+ };
+
+ Evc_set_cflags(xid, &flags);
+}
+
+int main(int UNUSED argc, char UNUSED *argv[])
+{
+ Cfg_init(&cfg);
+
+ initGlobals();
+ initLock();
+ checkConstraints();
+
+ int sync_fd[2];
+ char c;
+ xid_t xid;
+ char buf[sizeof(xid)*3 + 2];
+ PathInfo cfgdir = { .d = opts.VSERVER_DIR, .l = strlen(opts.VSERVER_DIR) };
+
+ Esocketpair(AF_UNIX, SOCK_STREAM, 0, sync_fd);
+ Efcntl(sync_fd[0], F_SETFD, FD_CLOEXEC);
+ Efcntl(sync_fd[1], F_SETFD, FD_CLOEXEC);
+
+ getConfiguration(&cfg, &cfgdir);
+ pid_t pid = sys_clone(CLONE_NEWNS|SIGCHLD, 0);
+ FatalErrnoError(pid==-1, "sys_clone()");
+
+ switch (pid) {
+ case 0 :
+ Undo_init();
+ execScriptlets(&cfgdir, opts.VSERVER_NAME, "prepre-start");
+ activateInterfaces(&cfg.interfaces);
+
+ xid = Evc_ctx_create(cfg.xid);
+ setCFlag(xid, VC_VXF_INFO_NAMESPACE);
+
+ mountVserver(&cfg);
+ // prepareInit(&cfg, &cfgdir);
+
+ Esend(sync_fd[0], &xid, sizeof xid, MSG_NOSIGNAL);
+ // 'pre-start.parent' will be executed now in the parent-context
+ Erecv(sync_fd[0], &c, 1, 0);
+ execScriptlets(&cfgdir, opts.VSERVER_NAME, "pre-start");
+
+ if (cfg.nice)
+ Enice(atoi(cfg.nice));
+ if (opts.OPTION_DEFAULTTTY)
+ setDefaultTTY(&cfgdir, 0);
+
+
+
+ Undo_detach();
+ break;
+
+ default :
+ Erecv(sync_fd[1], &xid, sizeof xid, 0);
+ utilvserver_fmt_uint(buf, xid);
+ Esetenv("CHILD_XID", buf, 1);
+
+ execScriptlets(&cfgdir, opts.VSERVER_NAME, "pre-start.parent");
+ Esend(sync_fd[1], ".", 1, MSG_NOSIGNAL);
+
+ break;
+ }
+}
--- /dev/null
+// $Id: mount.c,v 1.2 2004/08/25 00:11:50 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "mount.h"
+#include "configuration.h"
+#include "undo.h"
+
+#include <pathconfig.h>
+
+#include <lib/internal.h>
+#include <lib_internal/command.h>
+
+#include <unistd.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <wait.h>
+#include <string.h>
+
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_FCNTL 1
+#include <ensc_wrappers/wrappers.h>
+
+static char const *
+findMtab(char const *vserver_mtab)
+{
+ char const *tmp;
+
+ if (utilvserver_isFile(vserver_mtab, true)) return vserver_mtab;
+
+ tmp=CONFDIR "/.defaults/init/mtab";
+ if (utilvserver_isFile(tmp, true)) return tmp;
+
+ tmp=PKGLIBDEFAULTDIR "/mtab";
+ if (utilvserver_isFile(tmp, true)) return tmp;
+
+ return 0;
+}
+
+static void
+initMtab(struct Configuration const *cfg)
+{
+ ENSC_PI_DECLARE(mtab_subpath, "apps/init/mtab");
+ PathInfo mtab_path = cfg->cfgdir;
+ char mtab_buf[ENSC_PI_APPSZ(mtab_path, mtab_subpath)];
+
+ PathInfo_append(&mtab_path, &mtab_subpath, mtab_buf);
+ char const * mtab = findMtab(mtab_path.d);
+ pid_t pid;
+ int p[2];
+
+ Epipe(p);
+ pid = Efork();
+ if (pid==0) {
+ Undo_detach();
+ Eclose(p[1]);
+
+ Echdir(cfg->vdir);
+ Echroot(".");
+
+ int fd = Eopen("/etc/mtab", O_WRONLY|O_CREAT, 0644);
+ for (;;) {
+ char buf[4096];
+ ssize_t len = TEMP_FAILURE_RETRY(read(p[0], buf, sizeof buf));
+ if (len==0) break;
+ if (len==-1) {
+ perror("vserver-start: initMtab/read():");
+ _exit(1);
+ }
+
+ Ewrite(fd, buf, len);
+ }
+ Eclose(fd);
+ Eclose(p[0]);
+ _exit(0);
+ }
+ else {
+ Eclose(p[0]);
+
+ if (mtab!=0) {
+ int fd = Eopen(mtab, O_RDONLY, 0644);
+
+ for (;;) {
+ char buf[4096];
+ ssize_t len = TEMP_FAILURE_RETRY(read(fd, buf, sizeof buf));
+ if (len==0) break;
+ if (len==-1) {
+ perror("vserver-start: initMtab/read():");
+ _exit(1);
+ }
+
+ Ewrite(p[1], buf, len);
+ }
+
+ Eclose(fd);
+ }
+
+ Eclose(p[1]);
+
+ int status;
+ TEMP_FAILURE_RETRY(wait4(pid, &status, 0,0));
+
+ if (!WIFEXITED(status) || WEXITSTATUS(status)!=0) {
+ exit(1);
+ }
+ }
+}
+
+static void
+mountVserverInternal(struct Configuration const *cfg,
+ PathInfo const *path, bool use_chbind)
+{
+ if (!utilvserver_isFile(path->d,true)) return;
+
+ pid_t pid = Efork();
+ if (pid==0) {
+ Undo_detach();
+
+ Echdir(cfg->vdir);
+
+ if (use_chbind) {
+ // TODO
+ }
+
+ struct Command cmd;
+ char const * argv[] = {
+ PROG_SECURE_MOUNT,
+ "-a",
+ "--chroot",
+ "--fstab", path->d,
+ 0
+ };
+
+ Command_init(&cmd);
+ Command_setParams(&cmd, argv);
+ Command_exec(&cmd, false);
+ }
+ else {
+ int status;
+ TEMP_FAILURE_RETRY(wait4(pid, &status, 0,0));
+
+ if (!WIFEXITED(status) || WEXITSTATUS(status)!=0)
+ exit(1);
+ }
+}
+
+void
+mountVserver(struct Configuration const *cfg)
+{
+ ENSC_PI_DECLARE(fstab_subpath, "fstab");
+ ENSC_PI_DECLARE(fstabl_subpath, "fstab.local");
+
+ PathInfo fstab_path = cfg->cfgdir;
+ char fstab_buf[ENSC_PI_APPSZ(fstab_path, fstab_subpath)];
+
+ PathInfo fstabl_path = cfg->cfgdir;
+ char fstabl_buf[ENSC_PI_APPSZ(fstabl_path, fstabl_subpath)];
+
+
+ PathInfo_append(&fstab_path, &fstab_subpath, fstab_buf);
+ PathInfo_append(&fstabl_path, &fstabl_subpath, fstabl_buf);
+ initMtab(cfg);
+
+ mountVserverInternal(cfg, &fstab_path, true);
+ mountVserverInternal(cfg, &fstabl_path, false);
+}
--- /dev/null
+// $Id: mount.h,v 1.1 2004/08/19 15:02:57 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_VSERVER_START_MOUNT_H
+#define H_UTIL_VSERVER_VSERVER_START_MOUNT_H
+
+#include <lib_internal/pathinfo.h>
+
+struct Configuration;
+void mountVserver(struct Configuration const *cfg);
+
+#endif // H_UTIL_VSERVER_VSERVER_START_MOUNT_H
--- /dev/null
+// $Id: scriptlets.c,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver-start.h"
+
+#include <pathconfig.h>
+#include <lib_internal/command.h>
+#include <lib_internal/util.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/param.h>
+#include <unistd.h>
+#include <dirent.h>
+
+#define HAS_SUFFIX(STR, LEN, SUF) \
+ (LEN>sizeof(SUF) && strcmp(STR+LEN-sizeof(SUF), SUF)==0)
+
+static bool
+visitFile(char const *fname, char const *vname, char const *style)
+{
+ struct stat st;
+ struct Command cmd;
+
+ if (stat(fname, &st)==-1 ||
+ !S_ISREG(st.st_mode))
+ return false;
+
+ if ((st.st_mode & 0111)==0) {
+ WRITE_MSG(2,
+ "!!!LEGACY ALERT!!!\n"
+ "The special handling of non-executable scriptlets which allows to\n"
+ "override environment variables is not supported anymore. This change\n"
+ "was needed as 'vserver ... start' is done by a native C program now.\n"
+ "If you need the old functionality please fill a bugreport so that\n"
+ "workarounds can be found/implemented.\n"
+ "The file triggering this message was\n"
+ " '");
+ WRITE_STR(2, fname);
+ WRITE_MSG(2, "'\n");
+
+ return false;
+ }
+
+ char const *par[] = { fname, style, vname, 0 };
+ Command_setParams(&cmd, par);
+
+ if (!Command_exec(&cmd, true) ||
+ !Command_wait(&cmd, true)) {
+ WRITE_MSG(2, "vserver-start: exec('");
+ WRITE_STR(2, fname);
+ WRITE_MSG(2, "'): ");
+ WRITE_STR(2, strerror(cmd.err));
+ WRITE_MSG(2, "; aborting...\n");
+
+ exit(1);
+ }
+
+ if (cmd.rc!=0) {
+ WRITE_MSG(2, "vserver-start: scriptlet '");
+ WRITE_STR(2, fname);
+ WRITE_MSG(2, "' failed; aborting...\n");
+
+ exit (1);
+ }
+
+ Command_free(&cmd);
+
+ return true;
+}
+
+static bool
+visitDirentry(PathInfo const *basepath, char const *d_name,
+ char const *vname,
+ char const *style)
+{
+ size_t l = strlen(d_name);
+ char path[basepath->l + l + 1];
+ char * ptr;
+
+ if (isDotfile(d_name) ||
+ HAS_SUFFIX(d_name, l, ".rpmnew") ||
+ HAS_SUFFIX(d_name, l, ".rpmsave") ||
+ HAS_SUFFIX(d_name, l, ".rpmorig") ||
+ HAS_SUFFIX(d_name, l, ".cfsaved"))
+ return false;
+
+ ptr = Xmemcpy(path, basepath->d, basepath->l);
+ ptr = Xmemcpy(ptr, d_name, l);
+ *ptr = '\0';
+
+ return visitFile(path, vname, style);
+}
+
+static bool
+visitPath(PathInfo const *basepath,
+ char const *vname,
+ PathInfo const *style)
+{
+ char tmp[basepath->l + style->l + sizeof(".d/")];
+ PathInfo path = { .d = tmp };
+ char * ptr;
+ DIR * dir;
+ bool did_something = false;
+
+ ptr = Xmemcpy(tmp, basepath->d, basepath->l);
+ ptr = Xmemcpy(ptr, style->d, style->l);
+ *ptr = '\0';
+ path.l = ptr-tmp;
+
+ did_something = visitFile(path.d, vname, style->d) || did_something;
+
+ ptr = Xmemcpy(ptr, ".d/", sizeof(".d/"));
+ path.l = ptr-tmp;
+
+ dir = opendir(tmp);
+ while (dir) {
+ struct dirent *ent = readdir(dir);
+ if (ent==0) break;
+
+ did_something = visitDirentry(&path, ent->d_name, vname, style->d) || did_something;
+ }
+ if (dir!=0) closedir(dir);
+
+ return did_something;
+}
+
+void
+execScriptlets(PathInfo const *cfgdir, char const *vname, char const *style)
+{
+ char path_buf[MAX(cfgdir->l, sizeof(CONFDIR "/.defaults")) +
+ sizeof("/scripts/")];
+ PathInfo basepath = { .d = path_buf };
+ PathInfo styledir = {
+ .d = style,
+ .l = strlen(style)
+ };
+ char * ptr;
+ bool doit = true;
+
+ ptr = Xmemcpy(path_buf, cfgdir->d, cfgdir->l);
+ ptr = Xmemcpy(ptr, "/scripts/", sizeof("/scripts/"));
+ basepath.l = ptr-path_buf-1;
+ doit = !visitPath(&basepath, vname, &styledir);
+
+ if (doit) {
+ ptr = Xmemcpy(path_buf, CONFDIR "/.defaults/scripts/",
+ sizeof(CONFDIR "/.defaults/scripts/"));
+ basepath.l = ptr-path_buf-1;
+ doit = !visitPath(&basepath, vname, &styledir);
+ }
+}
--- /dev/null
+// $Id: undo.c,v 1.1 2004/08/19 15:02:57 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "undo.h"
+
+#include <lib_internal/util.h>
+#include <ensc_vector/vector.h>
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <assert.h>
+
+struct FuncData
+{
+ ExitFunction fn;
+ void const * args;
+};
+
+struct Undo
+{
+ pid_t pid_;
+ struct Vector funcs;
+};
+
+
+static struct Undo undo_data = {
+ .pid_ = -1
+};
+
+static void
+atexitHandler()
+{
+ struct FuncData const * ptr;
+
+ if (undo_data.pid_ != getpid())
+ return; // skip 'exit()' from forked processes
+
+ for (ptr=Vector_end(&undo_data.funcs);
+ ptr!=Vector_begin(&undo_data.funcs);
+ --ptr)
+ (ptr[-1].fn)(ptr[-1].args);
+}
+
+void
+Undo_init()
+{
+ if (undo_data.pid_!=-1) {
+ WRITE_MSG(2, "Undo already initialized; internal error...\n");
+ _exit(1);
+ }
+
+ undo_data.pid_ = getpid();
+ Vector_init(&undo_data.funcs, sizeof(struct FuncData));
+
+ atexit(&atexitHandler);
+}
+
+void
+Undo_addTask(ExitFunction fn, void const *args)
+{
+ struct FuncData *tmp = Vector_pushback(&undo_data.funcs);
+ assert(tmp!=0); // Vector_pushback never returns a null-pointer
+
+ tmp->fn = fn;
+ tmp->args = args;
+}
+
+void
+Undo_detach()
+{
+ Vector_free(&undo_data.funcs);
+ undo_data.pid_ = -1;
+}
--- /dev/null
+// $Id: undo.h,v 1.1 2004/08/19 15:02:57 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_VSERVER_START_UNDO_H
+#define H_UTIL_VSERVER_VSERVER_START_UNDO_H
+
+typedef void (*ExitFunction)(void const *);
+
+void Undo_init();
+void Undo_addTask(ExitFunction fn, void const *args);
+void Undo_detach();
+
+#endif // H_UTIL_VSERVER_VSERVER_START_UNDO_H
--- /dev/null
+// $Id: vserver-start.h,v 1.2 2004/10/19 21:11:10 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_VSERVER_START_VSERVER_START_H
+#define H_UTIL_VSERVER_VSERVER_START_VSERVER_START_H
+
+#include <lib_internal/pathinfo.h>
+#include <stdbool.h>
+
+struct Options {
+ char const * VSERVER_DIR;
+ char const * VSERVER_NAME;
+ bool OPTION_DEBUG;
+ bool OPTION_DEFAULTTTY;
+ bool OPTION_SECURE;
+};
+
+extern struct Options opts;
+
+void execScriptlets(PathInfo const *cfgdir, char const *name, char const *style);
+void setDefaultTTY(PathInfo const *cfgdir, char const *dflt);
+
+#endif // H_UTIL_VSERVER_VSERVER_START_VSERVER_START_H
--- /dev/null
+// $Id: vshelper.c,v 1.2 2004/08/19 16:06:37 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver-start.h"
+#include "pathconfig.h"
+
+#include <lib_internal/util.h>
+#include <lib_internal/command.h>
+
+void
+Vshelper_doSanityCheck()
+{
+ struct Command cmd;
+ char const * argv[] = {
+ "/bin/bash", "-c",
+ ". " PATH_UTILVSERVER_VARS ";. " PATH_FUNCTIONS "; vshelper.doSanityCheck",
+ 0
+ };
+
+ Command_init(&cmd);
+ Command_setParams(&cmd, argv);
+ if (!Command_exec(&cmd, true) ||
+ !Command_wait(&cmd, true))
+ WRITE_MSG(2, "vserver-start: failed to do the vshelper-sanitycheck\n");
+
+ if (cmd.rc!=0)
+ exit(0);
+}
--- /dev/null
+// $Id: vshelper.h,v 1.1 2004/07/03 00:07:42 ensc Exp $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+//
+// 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.
+//
+// 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.
+
+
+#ifndef H_UTIL_VSERVER_VSERVER_START_VSHELPER_H
+#define H_UTIL_VSERVER_VSERVER_START_VSHELPER_H
+
+void Vshelper_doSanityCheck();
+
+
+#endif // H_UTIL_VSERVER_VSERVER_START_VSHELPER_H