Import version 1.3.3
This commit is contained in:
parent
3fff521fa1
commit
502cee75a5
21 changed files with 5533 additions and 1996 deletions
8
AUTHORS
8
AUTHORS
|
@ -5,3 +5,11 @@ Contributions from Gord Matzigkeit <gord@enci.ucalgary.ca>.
|
||||||
|
|
||||||
John Bazik wrote `fastcwd', the Perl subroutine for computing the
|
John Bazik wrote `fastcwd', the Perl subroutine for computing the
|
||||||
current working directory.
|
current working directory.
|
||||||
|
|
||||||
|
Charles Briscoe-Smith <cpbs@debian.org> wrote the fix to prevent
|
||||||
|
stow -D / stow -R removing initially-empty directories.
|
||||||
|
|
||||||
|
Adam Lackorzynski <al10@inf.tu-dresden.de> wrote the fix to prevente
|
||||||
|
the generation of wrong links if there are links in the stow directory.
|
||||||
|
|
||||||
|
Stow is currently maintained by Guillaume Morin <gmorin@gnu.org>.
|
||||||
|
|
32
ChangeLog
32
ChangeLog
|
@ -1,3 +1,35 @@
|
||||||
|
Sun Jan 06 12:18:50 2002 Guillaume Morin <gmorin@gnu.org>
|
||||||
|
|
||||||
|
* Makefile.am: use EXTRA_DIST to include manpage in distribution
|
||||||
|
|
||||||
|
Wed Jan 02 21:33:41 2002 Guillaume Morin <gmorin@gnu.org>
|
||||||
|
|
||||||
|
* stow.in: Stow now only warns the user if a subdirectory
|
||||||
|
is unreadable during unstowing.
|
||||||
|
|
||||||
|
Wed Jan 02 20:58:05 2002 Guillaume Morin <gmorin@gnu.org>
|
||||||
|
|
||||||
|
* stow.in: fixed JoinPaths so that subdirs called "0" are
|
||||||
|
correctly pushed. Thanks a lot to Gergely Nagy
|
||||||
|
<algernon@bonehunter.rulez.org> who patiently helped me to chase
|
||||||
|
this bug.
|
||||||
|
|
||||||
|
Sun Dec 30 21:58:25 2001 Guillaume Morin <gmorin@gnu.org>
|
||||||
|
|
||||||
|
* stow.in: fixed a bug introduced by previous changes when
|
||||||
|
Target argument was relative. (thanks to Luca Filipozzi
|
||||||
|
<lfilipoz@debian.org> for pointing this out)
|
||||||
|
|
||||||
|
Sun Dec 30 18:23:25 2001 Guillaume Morin <gmorin@gnu.org>
|
||||||
|
|
||||||
|
* stow.in: now requires Perl 5. Use POSIX getcwd instead of broken
|
||||||
|
fastcwd. Fixed bug when CommonParent is /. Stow does not remove
|
||||||
|
initially empty directories anymore.
|
||||||
|
|
||||||
|
Sun Dec 30 18:07:51 2001 Guillaume Morin <gmorin@gnu.org>
|
||||||
|
|
||||||
|
* configure.in: automake fixes (fp_ -> AC, +AC_INIT_AUTOMAKE)
|
||||||
|
|
||||||
Fri Oct 11 22:09:45 1996 Bob Glickstein <bobg@hiro.zanshin.com>
|
Fri Oct 11 22:09:45 1996 Bob Glickstein <bobg@hiro.zanshin.com>
|
||||||
|
|
||||||
* stow.html, configure.in: Version 1.3.2.
|
* stow.html, configure.in: Version 1.3.2.
|
||||||
|
|
4
INSTALL
4
INSTALL
|
@ -1,8 +1,8 @@
|
||||||
Basic Installation
|
Basic Installation
|
||||||
==================
|
==================
|
||||||
|
|
||||||
Stow is a Perl script. You must have Perl 4 or Perl 5 in order for it
|
Stow is a Perl script. You must have Perl 5.005 or later in order for
|
||||||
to run.
|
it to run.
|
||||||
|
|
||||||
The steps in building stow are:
|
The steps in building stow are:
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,8 @@ AUTOMAKE_OPTIONS = dist-shar
|
||||||
|
|
||||||
bin_SCRIPTS = stow
|
bin_SCRIPTS = stow
|
||||||
info_TEXINFOS = stow.texi
|
info_TEXINFOS = stow.texi
|
||||||
|
man_MANS = stow.8
|
||||||
|
EXTRA_DIST = $(man_MANS)
|
||||||
|
|
||||||
CLEANFILES = stow manual.html manual.texi
|
CLEANFILES = stow manual.html manual.texi
|
||||||
|
|
||||||
|
|
518
Makefile.in
518
Makefile.in
|
@ -1,11 +1,19 @@
|
||||||
# Makefile.in generated automatically by automake 1.0 from Makefile.am
|
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
|
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy, distribute and modify it.
|
# 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.
|
||||||
|
|
||||||
SHELL = /bin/sh
|
@SET_MAKE@
|
||||||
|
|
||||||
|
SHELL = @SHELL@
|
||||||
|
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
|
@ -25,241 +33,420 @@ infodir = @infodir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
oldincludedir = /usr/include
|
oldincludedir = /usr/include
|
||||||
|
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
|
||||||
top_builddir = .
|
top_builddir = .
|
||||||
|
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
|
||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
transform = @program_transform_name@
|
transform = @program_transform_name@
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AWK = @AWK@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PERL = @PERL@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = dist-shar
|
AUTOMAKE_OPTIONS = dist-shar
|
||||||
|
|
||||||
bin_SCRIPTS = stow
|
bin_SCRIPTS = stow
|
||||||
info_TEXINFOS = stow.texi
|
info_TEXINFOS = stow.texi
|
||||||
|
man_MANS = stow.8
|
||||||
|
EXTRA_DIST = $(man_MANS)
|
||||||
|
|
||||||
CLEANFILES = stow manual.html manual.texi
|
CLEANFILES = stow manual.html manual.texi
|
||||||
ACLOCAL = aclocal.m4
|
subdir = .
|
||||||
mkinstalldirs = $(top_srcdir)/mkinstalldirs
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
CONFIG_CLEAN_FILES = stow
|
||||||
SCRIPTS = $(bin_SCRIPTS)
|
SCRIPTS = $(bin_SCRIPTS)
|
||||||
|
|
||||||
|
DIST_SOURCES =
|
||||||
MAKEINFO = makeinfo
|
|
||||||
TEXI2DVI = texi2dvi
|
|
||||||
INFOS = stow.info*
|
|
||||||
INFO_DEPS = stow.info
|
INFO_DEPS = stow.info
|
||||||
DVIS = stow.dvi
|
DVIS = stow.dvi
|
||||||
TEXINFOS = stow.texi
|
TEXINFOS = stow.texi
|
||||||
|
|
||||||
|
NROFF = nroff
|
||||||
|
MANS = $(man_MANS)
|
||||||
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
|
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
|
||||||
Makefile.in NEWS README THANKS TODO aclocal.m4 configure configure.in \
|
Makefile.in NEWS THANKS TODO aclocal.m4 configure configure.in \
|
||||||
install-sh mdate-sh mkinstalldirs stamp-vti stow.in texinfo.tex \
|
install-sh mdate-sh missing mkinstalldirs stamp-vti stow.in \
|
||||||
version.texi
|
texinfo.tex version.texi
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .dvi .info .ps .texi
|
||||||
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
|
cd $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
cd $(top_builddir) && \
|
||||||
|
CONFIG_HEADERS= CONFIG_LINKS= \
|
||||||
|
CONFIG_FILES=$@ $(SHELL) ./config.status
|
||||||
|
|
||||||
PACKAGE = @PACKAGE@
|
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
VERSION = @VERSION@
|
$(SHELL) ./config.status --recheck
|
||||||
|
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
||||||
|
cd $(srcdir) && $(AUTOCONF)
|
||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(BUILT_SOURCES) $(HEADERS) \
|
$(ACLOCAL_M4): configure.in
|
||||||
$(TEXINFOS) $(INFOS) $(MANS) $(EXTRA_DIST) $(DATA)
|
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||||
DEP_DISTFILES = $(DIST_COMMON) $(SOURCES) $(BUILT_SOURCES) $(HEADERS) \
|
|
||||||
$(TEXINFOS) $(INFO_DEPS) $(MANS) $(EXTRA_DIST) $(DATA)
|
|
||||||
|
|
||||||
TAR = tar
|
|
||||||
default: all
|
|
||||||
|
|
||||||
|
|
||||||
$(srcdir)/Makefile.in: Makefile.am configure.in
|
|
||||||
cd $(srcdir) && automake Makefile
|
|
||||||
|
|
||||||
# For an explanation of the following Makefile rules, see node
|
|
||||||
# `Automatic Remaking' in GNU Autoconf documentation.
|
|
||||||
Makefile: Makefile.in config.status
|
|
||||||
CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
|
|
||||||
config.status: configure
|
|
||||||
./config.status --recheck
|
|
||||||
$(srcdir)/configure: configure.in $(ACLOCAL) $(CONFIGURE_DEPENDENCIES)
|
|
||||||
cd $(srcdir) && autoconf
|
|
||||||
stow: $(top_builddir)/config.status stow.in
|
stow: $(top_builddir)/config.status stow.in
|
||||||
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
|
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
|
||||||
|
|
||||||
install-binSCRIPTS: $(bin_SCRIPTS)
|
install-binSCRIPTS: $(bin_SCRIPTS)
|
||||||
$(mkinstalldirs) $(bindir)
|
@$(NORMAL_INSTALL)
|
||||||
list="$(bin_SCRIPTS)"; for p in $$list; do \
|
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
||||||
|
@list='$(bin_SCRIPTS)'; for p in $$list; do \
|
||||||
|
f="`echo $$p|sed '$(transform)'`"; \
|
||||||
if test -f $$p; then \
|
if test -f $$p; then \
|
||||||
$(INSTALL_SCRIPT) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \
|
echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/$$f"; \
|
||||||
else if test -f $(srcdir)/$$p; then \
|
$(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/$$f; \
|
||||||
$(INSTALL_SCRIPT) $(srcdir)/$$p \
|
elif test -f $(srcdir)/$$p; then \
|
||||||
$(bindir)/`echo $$p|sed '$(transform)'`; \
|
echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/$$f"; \
|
||||||
else :; fi; fi; \
|
$(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/$$f; \
|
||||||
|
else :; fi; \
|
||||||
done
|
done
|
||||||
|
|
||||||
uninstall-binSCRIPTS:
|
uninstall-binSCRIPTS:
|
||||||
list="$(bin_SCRIPTS)"; for p in $$list; do \
|
@$(NORMAL_UNINSTALL)
|
||||||
rm -f $(bindir)/`echo $$p|sed '$(transform)'`; \
|
@list='$(bin_SCRIPTS)'; for p in $$list; do \
|
||||||
|
f="`echo $$p|sed '$(transform)'`"; \
|
||||||
|
echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
|
||||||
|
rm -f $(DESTDIR)$(bindir)/$$f; \
|
||||||
done
|
done
|
||||||
|
|
||||||
version.texi: stamp-vti
|
$(srcdir)/version.texi: $(srcdir)/stamp-vti
|
||||||
|
@:
|
||||||
stamp-vti: stow.texi $(top_srcdir)/configure.in
|
$(srcdir)/stamp-vti: stow.texi $(top_srcdir)/configure.in
|
||||||
echo "@set UPDATED `cd $(srcdir) \
|
@(set `$(SHELL) $(srcdir)/mdate-sh $(srcdir)/stow.texi`; \
|
||||||
&& $(SHELL) ./mdate-sh stow.texi`" > vti.tmp
|
echo "@set UPDATED $$1 $$2 $$3"; \
|
||||||
echo "@set EDITION $(VERSION)" >> vti.tmp
|
echo "@set UPDATED-MONTH $$2 $$3"; \
|
||||||
echo "@set VERSION $(VERSION)" >> vti.tmp
|
echo "@set EDITION $(VERSION)"; \
|
||||||
if cmp -s vti.tmp $(srcdir)/version.texi; then \
|
echo "@set VERSION $(VERSION)") > vti.tmp
|
||||||
rm vti.tmp; \
|
@cmp -s vti.tmp $(srcdir)/version.texi \
|
||||||
else \
|
|| (echo "Updating $(srcdir)/version.texi"; \
|
||||||
mv vti.tmp $(srcdir)/version.texi; \
|
cp vti.tmp $(srcdir)/version.texi)
|
||||||
fi
|
-@rm -f vti.tmp
|
||||||
echo timestamp > $(srcdir)/stamp-vti
|
@cp $(srcdir)/version.texi $@
|
||||||
|
|
||||||
mostlyclean-vti:
|
mostlyclean-vti:
|
||||||
rm -f vti.tmp
|
-rm -f vti.tmp
|
||||||
|
|
||||||
clean-vti:
|
|
||||||
|
|
||||||
distclean-vti:
|
|
||||||
|
|
||||||
maintainer-clean-vti:
|
maintainer-clean-vti:
|
||||||
rm -f stamp-vti version.texi
|
-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
|
||||||
|
|
||||||
stow.info: stow.texi version.texi
|
|
||||||
|
|
||||||
|
stow.info: stow.texi $(srcdir)/version.texi
|
||||||
|
stow.dvi: stow.texi $(srcdir)/version.texi
|
||||||
|
|
||||||
.texi.info:
|
.texi.info:
|
||||||
$(MAKEINFO) -I$(srcdir) $< -o $(srcdir)/$@
|
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||||
|
cd $(srcdir) \
|
||||||
|
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
|
||||||
|
`echo $< | sed 's,.*/,,'`
|
||||||
|
|
||||||
.texi.dvi:
|
.texi.dvi:
|
||||||
TEXINPUTS=$(srcdir):$$TEXINPUTS $(TEXI2DVI) $<
|
TEXINPUTS=$(srcdir):$$TEXINPUTS \
|
||||||
|
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||||
|
$(TEXI2DVI) $<
|
||||||
|
|
||||||
install-info: $(INFO_DEPS)
|
.texi:
|
||||||
$(mkinstalldirs) $(infodir)
|
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||||
for file in $(INFO_DEPS); do \
|
cd $(srcdir) \
|
||||||
for ifile in `cd $(srcdir) && echo $$file*`; do \
|
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
|
||||||
$(INSTALL_DATA) $(srcdir)/$$ifile $(infodir)/$$ifile; \
|
`echo $< | sed 's,.*/,,'`
|
||||||
|
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
TEXI2DVI = texi2dvi
|
||||||
|
DVIPS = dvips
|
||||||
|
.dvi.ps:
|
||||||
|
$(DVIPS) $< -o $@
|
||||||
|
|
||||||
|
uninstall-info-am:
|
||||||
|
$(PRE_UNINSTALL)
|
||||||
|
@if (install-info --version && \
|
||||||
|
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
|
||||||
|
list='$(INFO_DEPS)'; \
|
||||||
|
for file in $$list; do \
|
||||||
|
echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
|
||||||
|
install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \
|
||||||
|
done; \
|
||||||
|
else :; fi
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(INFO_DEPS)'; \
|
||||||
|
for file in $$list; do \
|
||||||
|
(if cd $(DESTDIR)$(infodir); then \
|
||||||
|
echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
|
||||||
|
rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
|
||||||
|
else :; fi); \
|
||||||
|
done
|
||||||
|
|
||||||
|
dist-info: $(INFO_DEPS)
|
||||||
|
list='$(INFO_DEPS)'; \
|
||||||
|
for base in $$list; do \
|
||||||
|
d=$(srcdir); \
|
||||||
|
for file in `CDPATH=: && cd $$d && eval echo $$base*`; do \
|
||||||
|
test -f $(distdir)/$$file \
|
||||||
|
|| cp -p $$d/$$file $(distdir)/$$file; \
|
||||||
done; \
|
done; \
|
||||||
done
|
done
|
||||||
|
|
||||||
uninstall-info:
|
mostlyclean-aminfo:
|
||||||
cd $(srcdir) && for file in *.info*; do \
|
-rm -f stow.aux stow.cp stow.cps stow.dvi stow.fn stow.ky stow.log stow.pg \
|
||||||
rm -f $(infodir)/$$file; \
|
stow.ps stow.toc stow.tp stow.vr
|
||||||
|
|
||||||
|
maintainer-clean-aminfo:
|
||||||
|
cd $(srcdir) && \
|
||||||
|
for i in $(INFO_DEPS); do \
|
||||||
|
rm -f $$i; \
|
||||||
|
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
|
||||||
|
rm -f $$i-[0-9]*; \
|
||||||
|
fi; \
|
||||||
done
|
done
|
||||||
|
|
||||||
mostlyclean-info:
|
man8dir = $(mandir)/man8
|
||||||
rm -f stow.aux stow.cp stow.cps stow.dvi stow.fn stow.fns stow.ky \
|
install-man8: $(man8_MANS) $(man_MANS)
|
||||||
stow.log stow.pg stow.toc stow.tp stow.vr stow.op
|
@$(NORMAL_INSTALL)
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(man8dir)
|
||||||
clean-info:
|
@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
|
||||||
|
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||||
distclean-info:
|
for i in $$l2; do \
|
||||||
|
case "$$i" in \
|
||||||
maintainer-clean-info:
|
*.8*) list="$$list $$i" ;; \
|
||||||
rm -f $(INFOS)
|
esac; \
|
||||||
|
done; \
|
||||||
|
for i in $$list; do \
|
||||||
|
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
||||||
|
else file=$$i; fi; \
|
||||||
|
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||||
|
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||||
|
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||||
|
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||||
|
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
|
||||||
|
$(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
|
||||||
|
done
|
||||||
|
uninstall-man8:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
|
||||||
|
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||||
|
for i in $$l2; do \
|
||||||
|
case "$$i" in \
|
||||||
|
*.8*) list="$$list $$i" ;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
for i in $$list; do \
|
||||||
|
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||||
|
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||||
|
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||||
|
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||||
|
echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
|
||||||
|
rm -f $(DESTDIR)$(man8dir)/$$inst; \
|
||||||
|
done
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
TAGS:
|
TAGS:
|
||||||
|
|
||||||
|
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
|
top_distdir = .
|
||||||
|
# Avoid unsightly `./'.
|
||||||
distdir = $(PACKAGE)-$(VERSION)
|
distdir = $(PACKAGE)-$(VERSION)
|
||||||
|
|
||||||
|
GZIP_ENV = --best
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
|
||||||
|
mkdir $(distdir)
|
||||||
|
$(mkinstalldirs) $(distdir)/.
|
||||||
|
@for file in $(DISTFILES); do \
|
||||||
|
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||||
|
$(mkinstalldirs) "$(distdir)/$$dir"; \
|
||||||
|
fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
cp -pR $$d/$$file $(distdir) \
|
||||||
|
|| exit 1; \
|
||||||
|
else \
|
||||||
|
test -f $(distdir)/$$file \
|
||||||
|
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) \
|
||||||
|
top_distdir="${top_distdir}" distdir="$(distdir)" \
|
||||||
|
dist-info
|
||||||
|
-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: distdir
|
||||||
|
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
|
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
|
||||||
|
|
||||||
|
dist-shar: distdir
|
||||||
|
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||||
|
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
|
||||||
|
|
||||||
# This target untars the dist file and tries a VPATH configuration. Then
|
# This target untars the dist file and tries a VPATH configuration. Then
|
||||||
# it guarantees that the distribution is self-contained by making another
|
# it guarantees that the distribution is self-contained by making another
|
||||||
# tarfile.
|
# tarfile.
|
||||||
distcheck: dist
|
distcheck: dist
|
||||||
rm -rf $(distdir)
|
-chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
|
||||||
$(TAR) zxf $(distdir).tar.gz
|
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
|
||||||
|
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||||
mkdir $(distdir)/=build
|
mkdir $(distdir)/=build
|
||||||
mkdir $(distdir)/=inst
|
mkdir $(distdir)/=inst
|
||||||
dc_install_base=`cd $(distdir)/=inst && pwd`; \
|
chmod a-w $(distdir)
|
||||||
cd $(distdir)/=build \
|
dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \
|
||||||
|
&& cd $(distdir)/=build \
|
||||||
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
|
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
|
||||||
&& $(MAKE) \
|
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||||
&& $(MAKE) check \
|
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||||
&& $(MAKE) install \
|
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||||
&& $(MAKE) installcheck \
|
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||||
&& $(MAKE) dist
|
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||||
rm -rf $(distdir)
|
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||||
@echo "========================"; \
|
&& (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
|
||||||
echo "$(distdir).tar.gz is ready for distribution"; \
|
|| (echo "Error: files left after uninstall" 1>&2; \
|
||||||
echo "========================"
|
exit 1) ) \
|
||||||
dist: distdir
|
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||||
chmod -R a+r $(distdir)
|
&& $(MAKE) $(AM_MAKEFLAGS) distclean \
|
||||||
$(TAR) chozf $(distdir).tar.gz $(distdir)
|
&& rm -f $(distdir).tar.gz \
|
||||||
rm -rf $(distdir)
|
&& (test `find . -type f -print | wc -l` -eq 0 \
|
||||||
dist-shar: distdir
|
|| (echo "Error: files left after distclean" 1>&2; \
|
||||||
chmod -R a+r $(distdir)
|
exit 1) )
|
||||||
shar $(distdir) | gzip > $(distdir).shar.gz
|
-chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
|
||||||
rm -rf $(distdir)
|
@echo "$(distdir).tar.gz is ready for distribution" | \
|
||||||
distdir: $(DEP_DISTFILES)
|
sed 'h;s/./=/g;p;x;p;x'
|
||||||
rm -rf $(distdir)
|
check-am: all-am
|
||||||
mkdir $(distdir)
|
check: check-am
|
||||||
chmod 777 $(distdir)
|
all-am: Makefile $(INFO_DEPS) $(SCRIPTS) $(MANS)
|
||||||
@for file in `cd $(srcdir) && echo $(DISTFILES)`; do \
|
|
||||||
test -f $(distdir)/$$file \
|
|
||||||
|| ln $(srcdir)/$$file $(distdir)/$$file 2> /dev/null \
|
|
||||||
|| cp -p $(srcdir)/$$file $(distdir)/$$file; \
|
|
||||||
done
|
|
||||||
info: $(INFO_DEPS)
|
|
||||||
|
|
||||||
dvi: $(DVIS)
|
|
||||||
|
|
||||||
check: all
|
|
||||||
|
|
||||||
installcheck:
|
|
||||||
|
|
||||||
install-exec: install-binSCRIPTS
|
|
||||||
|
|
||||||
install-data: install-info
|
|
||||||
|
|
||||||
install: install-exec install-data all
|
|
||||||
@:
|
|
||||||
|
|
||||||
uninstall: uninstall-binSCRIPTS uninstall-info
|
|
||||||
|
|
||||||
all: $(INFO_DEPS) $(SCRIPTS) Makefile
|
|
||||||
|
|
||||||
install-strip:
|
|
||||||
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
|
|
||||||
installdirs:
|
installdirs:
|
||||||
$(mkinstalldirs) $(bindir) $(infodir)
|
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(infodir) $(DESTDIR)$(man8dir)
|
||||||
|
|
||||||
|
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)" \
|
||||||
|
`test -z '$(STRIP)' || \
|
||||||
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
|
|
||||||
|
|
||||||
clean-generic:
|
clean-generic:
|
||||||
test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
rm -f Makefile $(DISTCLEANFILES)
|
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
|
||||||
rm -f config.cache config.log $(CONFIG_HEADER) stamp-h
|
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
@echo "This command is intended for maintainers to use"
|
||||||
test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
|
|
||||||
mostlyclean: mostlyclean-vti mostlyclean-info mostlyclean-generic
|
|
||||||
|
|
||||||
clean: clean-vti clean-info clean-generic mostlyclean
|
|
||||||
|
|
||||||
distclean: distclean-vti distclean-info distclean-generic clean
|
|
||||||
rm -f config.status
|
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-vti maintainer-clean-info \
|
|
||||||
maintainer-clean-generic distclean
|
|
||||||
@echo "This command is intended for maintainers to use;"
|
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
rm -f config.status
|
clean: clean-am
|
||||||
|
|
||||||
.PHONY: default uninstall-binSCRIPTS install-binSCRIPTS mostlyclean-vti \
|
clean-am: clean-generic mostlyclean-am
|
||||||
distclean-vti clean-vti maintainer-clean-vti install-info \
|
|
||||||
uninstall-info mostlyclean-info distclean-info clean-info \
|
dist-all: distdir
|
||||||
maintainer-clean-info tags distdir info dvi check installcheck \
|
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
install-exec install-data install uninstall all installdirs \
|
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||||
mostlyclean-generic distclean-generic clean-generic \
|
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
|
||||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
distclean: distclean-am
|
||||||
|
-rm -f config.status config.cache config.log
|
||||||
|
distclean-am: clean-am distclean-generic
|
||||||
|
|
||||||
|
dvi: dvi-am
|
||||||
|
|
||||||
|
dvi-am: $(DVIS)
|
||||||
|
|
||||||
|
info: info-am
|
||||||
|
|
||||||
|
info-am: $(INFO_DEPS)
|
||||||
|
|
||||||
|
install-data-am: install-info-am install-man
|
||||||
|
|
||||||
|
install-exec-am: install-binSCRIPTS
|
||||||
|
|
||||||
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-info-am: $(INFO_DEPS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(infodir)
|
||||||
|
@list='$(INFO_DEPS)'; \
|
||||||
|
for file in $$list; do \
|
||||||
|
d=$(srcdir); \
|
||||||
|
for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
|
||||||
|
if test -f $$d/$$ifile; then \
|
||||||
|
echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
|
||||||
|
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
|
||||||
|
else : ; fi; \
|
||||||
|
done; \
|
||||||
|
done
|
||||||
|
@$(POST_INSTALL)
|
||||||
|
@if (install-info --version && \
|
||||||
|
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
|
||||||
|
list='$(INFO_DEPS)'; \
|
||||||
|
for file in $$list; do \
|
||||||
|
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
|
||||||
|
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
|
||||||
|
done; \
|
||||||
|
else : ; fi
|
||||||
|
install-man: install-man8
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-aminfo \
|
||||||
|
maintainer-clean-generic maintainer-clean-vti
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti
|
||||||
|
|
||||||
|
uninstall-am: uninstall-binSCRIPTS uninstall-info-am uninstall-man
|
||||||
|
|
||||||
|
uninstall-man: uninstall-man8
|
||||||
|
|
||||||
|
.PHONY: all all-am check check-am clean clean-generic dist dist-all \
|
||||||
|
dist-info dist-shar distcheck distclean distclean-generic \
|
||||||
|
distdir dvi dvi-am info info-am install install-am \
|
||||||
|
install-binSCRIPTS install-data install-data-am install-exec \
|
||||||
|
install-exec-am install-info install-info-am install-man \
|
||||||
|
install-man8 install-strip installcheck installcheck-am \
|
||||||
|
installdirs maintainer-clean maintainer-clean-aminfo \
|
||||||
|
maintainer-clean-generic maintainer-clean-vti mostlyclean \
|
||||||
|
mostlyclean-aminfo mostlyclean-generic mostlyclean-vti \
|
||||||
|
uninstall uninstall-am uninstall-binSCRIPTS uninstall-info-am \
|
||||||
|
uninstall-man uninstall-man8
|
||||||
|
|
||||||
|
|
||||||
# The rules for manual.html and manual.texi are only used by
|
# The rules for manual.html and manual.texi are only used by
|
||||||
|
@ -271,9 +458,6 @@ manual.html: manual.texi
|
||||||
manual.texi: stow.texi
|
manual.texi: stow.texi
|
||||||
-rm -f $@
|
-rm -f $@
|
||||||
cp $< $@
|
cp $< $@
|
||||||
.SUFFIXES:
|
|
||||||
.SUFFIXES: .texi .info .dvi
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# 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.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
.NOEXPORT:
|
.NOEXPORT:
|
||||||
|
|
8
NEWS
8
NEWS
|
@ -1,5 +1,13 @@
|
||||||
News file for Stow.
|
News file for Stow.
|
||||||
|
|
||||||
|
* Changes in version 1.3.3:
|
||||||
|
** Now requires Perl 5.005 or later
|
||||||
|
** Initially empty directories are not removed anymore
|
||||||
|
** Removed buggy fastcwd (we use POSIX::getcwd instead)
|
||||||
|
** Fixed bug when the common Parent of Target dir and Stow dir was "/"
|
||||||
|
** Fixed bug when handling directories named "0"
|
||||||
|
** Stow now only warns the user if a directory is unreadable during unstowing.
|
||||||
|
|
||||||
* Changes in version 1.3:
|
* Changes in version 1.3:
|
||||||
** Added --restow option.
|
** Added --restow option.
|
||||||
** Fixed handling of slashes in package names.
|
** Fixed handling of slashes in package names.
|
||||||
|
|
2
THANKS
2
THANKS
|
@ -1,3 +1,5 @@
|
||||||
|
Bob Glickstein:
|
||||||
|
|
||||||
Thanks to the following people for testing, using, commenting on, and
|
Thanks to the following people for testing, using, commenting on, and
|
||||||
otherwise aiding the creation of Stow:
|
otherwise aiding the creation of Stow:
|
||||||
|
|
||||||
|
|
496
aclocal.m4
vendored
496
aclocal.m4
vendored
|
@ -1,7 +1,493 @@
|
||||||
dnl This definition comes from automake 1.0
|
# aclocal.m4 generated automatically by aclocal 1.5
|
||||||
|
|
||||||
AC_DEFUN(fp_PROG_INSTALL,
|
# Copyright 1996, 1997, 1998, 1999, 2000, 2001
|
||||||
[AC_PROG_INSTALL
|
# Free Software Foundation, Inc.
|
||||||
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL} -m 755'
|
# This file is free software; the Free Software Foundation
|
||||||
AC_SUBST(INSTALL_SCRIPT)dnl
|
# 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.
|
||||||
|
|
||||||
|
# Do all the work for Automake. 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.
|
||||||
|
|
||||||
|
# serial 5
|
||||||
|
|
||||||
|
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||||
|
# written in clear, in which case automake, when reading aclocal.m4,
|
||||||
|
# will think it sees a *use*, and therefore will trigger all it's
|
||||||
|
# C support machinery. Also note that it means that autoscan, seeing
|
||||||
|
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||||
|
|
||||||
|
|
||||||
|
# We require 2.13 because we rely on SHELL being computed by configure.
|
||||||
|
AC_PREREQ([2.13])
|
||||||
|
|
||||||
|
# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
|
||||||
|
# -----------------------------------------------------------
|
||||||
|
# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED.
|
||||||
|
# The purpose of this macro is to provide the user with a means to
|
||||||
|
# check macros which are provided without letting her know how the
|
||||||
|
# information is coded.
|
||||||
|
# If this macro is not defined by Autoconf, define it here.
|
||||||
|
ifdef([AC_PROVIDE_IFELSE],
|
||||||
|
[],
|
||||||
|
[define([AC_PROVIDE_IFELSE],
|
||||||
|
[ifdef([AC_PROVIDE_$1],
|
||||||
|
[$2], [$3])])])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE])
|
||||||
|
# ----------------------------------------------
|
||||||
|
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||||
|
[AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||||
|
# test to see if srcdir already configured
|
||||||
|
if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
|
||||||
|
test -f $srcdir/config.status; then
|
||||||
|
AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Define the identity of the package.
|
||||||
|
PACKAGE=$1
|
||||||
|
AC_SUBST(PACKAGE)dnl
|
||||||
|
VERSION=$2
|
||||||
|
AC_SUBST(VERSION)dnl
|
||||||
|
ifelse([$3],,
|
||||||
|
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||||
|
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
|
||||||
|
|
||||||
|
# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
|
||||||
|
# the ones we care about.
|
||||||
|
ifdef([m4_pattern_allow],
|
||||||
|
[m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl
|
||||||
|
|
||||||
|
# Autoconf 2.50 always computes EXEEXT. However we need to be
|
||||||
|
# compatible with 2.13, for now. So we always define EXEEXT, but we
|
||||||
|
# don't compute it.
|
||||||
|
AC_SUBST(EXEEXT)
|
||||||
|
# Similar for OBJEXT -- only we only use OBJEXT if the user actually
|
||||||
|
# requests that it be used. This is a bit dumb.
|
||||||
|
: ${OBJEXT=o}
|
||||||
|
AC_SUBST(OBJEXT)
|
||||||
|
|
||||||
|
# Some tools Automake needs.
|
||||||
|
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||||
|
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||||
|
AM_MISSING_PROG(ACLOCAL, aclocal)
|
||||||
|
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||||
|
AM_MISSING_PROG(AUTOMAKE, automake)
|
||||||
|
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||||
|
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||||
|
AM_MISSING_PROG(AMTAR, tar)
|
||||||
|
AM_PROG_INSTALL_SH
|
||||||
|
AM_PROG_INSTALL_STRIP
|
||||||
|
# We need awk for the "check" target. The system "awk" is bad on
|
||||||
|
# some platforms.
|
||||||
|
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||||
|
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||||
|
AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||||
|
AC_PROVIDE_IFELSE([AC_PROG_][CC],
|
||||||
|
[_AM_DEPENDENCIES(CC)],
|
||||||
|
[define([AC_PROG_][CC],
|
||||||
|
defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||||
|
AC_PROVIDE_IFELSE([AC_PROG_][CXX],
|
||||||
|
[_AM_DEPENDENCIES(CXX)],
|
||||||
|
[define([AC_PROG_][CXX],
|
||||||
|
defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check to make sure that the build environment is sane.
|
||||||
|
#
|
||||||
|
|
||||||
|
# serial 3
|
||||||
|
|
||||||
|
# AM_SANITY_CHECK
|
||||||
|
# ---------------
|
||||||
|
AC_DEFUN([AM_SANITY_CHECK],
|
||||||
|
[AC_MSG_CHECKING([whether build environment is sane])
|
||||||
|
# Just in case
|
||||||
|
sleep 1
|
||||||
|
echo timestamp > conftest.file
|
||||||
|
# Do `set' in a subshell so we don't clobber the current shell's
|
||||||
|
# arguments. Must try -L first in case configure is actually a
|
||||||
|
# symlink; some systems play weird games with the mod time of symlinks
|
||||||
|
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||||
|
# directory).
|
||||||
|
if (
|
||||||
|
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
|
||||||
|
if test "$[*]" = "X"; then
|
||||||
|
# -L didn't work.
|
||||||
|
set X `ls -t $srcdir/configure conftest.file`
|
||||||
|
fi
|
||||||
|
rm -f conftest.file
|
||||||
|
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||||
|
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||||
|
|
||||||
|
# If neither matched, then we have a broken ls. This can happen
|
||||||
|
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||||
|
# broken ls alias from the environment. This has actually
|
||||||
|
# happened. Such a system could not be considered "sane".
|
||||||
|
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||||
|
alias in your environment])
|
||||||
|
fi
|
||||||
|
|
||||||
|
test "$[2]" = conftest.file
|
||||||
|
)
|
||||||
|
then
|
||||||
|
# Ok.
|
||||||
|
:
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||||
|
Check your system clock])
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT(yes)])
|
||||||
|
|
||||||
|
|
||||||
|
# serial 2
|
||||||
|
|
||||||
|
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||||
|
# ------------------------------
|
||||||
|
AC_DEFUN([AM_MISSING_PROG],
|
||||||
|
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||||
|
$1=${$1-"${am_missing_run}$2"}
|
||||||
|
AC_SUBST($1)])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_MISSING_HAS_RUN
|
||||||
|
# ------------------
|
||||||
|
# Define MISSING if not defined so far and test if it supports --run.
|
||||||
|
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||||||
|
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||||
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||||
|
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
|
||||||
|
# Use eval to expand $SHELL
|
||||||
|
if eval "$MISSING --run true"; then
|
||||||
|
am_missing_run="$MISSING --run "
|
||||||
|
else
|
||||||
|
am_missing_run=
|
||||||
|
am_backtick='`'
|
||||||
|
AC_MSG_WARN([${am_backtick}missing' script is too old or missing])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
# AM_AUX_DIR_EXPAND
|
||||||
|
|
||||||
|
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||||
|
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||||
|
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||||
|
#
|
||||||
|
# Of course, Automake must honor this variable whenever it calls a
|
||||||
|
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||||
|
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||||
|
# depending on how configure is run. This is pretty annoying, since
|
||||||
|
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||||
|
# source directory, any form will work fine, but in subdirectories a
|
||||||
|
# relative path needs to be adjusted first.
|
||||||
|
#
|
||||||
|
# $ac_aux_dir/missing
|
||||||
|
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||||
|
# $top_srcdir/$ac_aux_dir/missing
|
||||||
|
# fails if $ac_aux_dir is absolute,
|
||||||
|
# fails when called from a subdirectory in a VPATH build with
|
||||||
|
# a relative $ac_aux_dir
|
||||||
|
#
|
||||||
|
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||||
|
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||||
|
# harmless because $srcdir is `.', but things will broke when you
|
||||||
|
# start a VPATH build or use an absolute $srcdir.
|
||||||
|
#
|
||||||
|
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||||
|
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||||
|
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||||
|
# and then we would define $MISSING as
|
||||||
|
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||||
|
# This will work as long as MISSING is not called from configure, because
|
||||||
|
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||||
|
# However there are other variables, like CC, which are often used in
|
||||||
|
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||||
|
#
|
||||||
|
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||||
|
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||||
|
# configured tree to be moved without reconfiguration.
|
||||||
|
|
||||||
|
AC_DEFUN([AM_AUX_DIR_EXPAND], [
|
||||||
|
# expand $ac_aux_dir to an absolute path
|
||||||
|
am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
|
||||||
|
])
|
||||||
|
|
||||||
|
# AM_PROG_INSTALL_SH
|
||||||
|
# ------------------
|
||||||
|
# Define $install_sh.
|
||||||
|
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)])
|
||||||
|
|
||||||
|
# One issue with vendor `install' (even GNU) is that you can't
|
||||||
|
# specify the program used to strip binaries. This is especially
|
||||||
|
# annoying in cross-compiling environments, where the build's strip
|
||||||
|
# is unlikely to handle the host's binaries.
|
||||||
|
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||||
|
# always use install-sh in `make install-strip', and initialize
|
||||||
|
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||||
|
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||||
|
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||||
|
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
|
||||||
|
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||||
|
|
||||||
|
# serial 4 -*- Autoconf -*-
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||||
|
# written in clear, in which case automake, when reading aclocal.m4,
|
||||||
|
# will think it sees a *use*, and therefore will trigger all it's
|
||||||
|
# C support machinery. Also note that it means that autoscan, seeing
|
||||||
|
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# _AM_DEPENDENCIES(NAME)
|
||||||
|
# ---------------------
|
||||||
|
# See how the compiler implements dependency checking.
|
||||||
|
# NAME is "CC", "CXX" or "OBJC".
|
||||||
|
# We try a few techniques and use that to set a single cache variable.
|
||||||
|
#
|
||||||
|
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||||
|
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||||
|
# dependency, and given that the user is not expected to run this macro,
|
||||||
|
# just rely on AC_PROG_CC.
|
||||||
|
AC_DEFUN([_AM_DEPENDENCIES],
|
||||||
|
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||||
|
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||||
|
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||||
|
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||||
|
|
||||||
|
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||||
|
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||||
|
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc']
|
||||||
|
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||||
|
[depcc="$$1" am_compiler_list=])
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([dependency style of $depcc],
|
||||||
|
[am_cv_$1_dependencies_compiler_type],
|
||||||
|
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||||
|
# We make a subdir and do the tests there. Otherwise we can end up
|
||||||
|
# making bogus files that we don't know about and never remove. For
|
||||||
|
# instance it was reported that on HP-UX the gcc test will end up
|
||||||
|
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||||
|
# in D'.
|
||||||
|
mkdir conftest.dir
|
||||||
|
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||||
|
# using a relative directory.
|
||||||
|
cp "$am_depcomp" conftest.dir
|
||||||
|
cd conftest.dir
|
||||||
|
|
||||||
|
am_cv_$1_dependencies_compiler_type=none
|
||||||
|
if test "$am_compiler_list" = ""; then
|
||||||
|
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||||
|
fi
|
||||||
|
for depmode in $am_compiler_list; do
|
||||||
|
# We need to recreate these files for each test, as the compiler may
|
||||||
|
# overwrite some of them when testing with obscure command lines.
|
||||||
|
# This happens at least with the AIX C compiler.
|
||||||
|
echo '#include "conftest.h"' > conftest.c
|
||||||
|
echo 'int i;' > conftest.h
|
||||||
|
echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
|
||||||
|
|
||||||
|
case $depmode in
|
||||||
|
nosideeffect)
|
||||||
|
# after this tag, mechanisms are not by side-effect, so they'll
|
||||||
|
# only be used when explicitly requested
|
||||||
|
if test "x$enable_dependency_tracking" = xyes; then
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
none) break ;;
|
||||||
|
esac
|
||||||
|
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||||
|
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||||
|
# handle `-M -o', and we need to detect this.
|
||||||
|
if depmode=$depmode \
|
||||||
|
source=conftest.c object=conftest.o \
|
||||||
|
depfile=conftest.Po tmpdepfile=conftest.TPo \
|
||||||
|
$SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
|
||||||
|
grep conftest.h conftest.Po > /dev/null 2>&1 &&
|
||||||
|
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||||
|
am_cv_$1_dependencies_compiler_type=$depmode
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf conftest.dir
|
||||||
|
else
|
||||||
|
am_cv_$1_dependencies_compiler_type=none
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
$1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type"
|
||||||
|
AC_SUBST([$1DEPMODE])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_SET_DEPDIR
|
||||||
|
# -------------
|
||||||
|
# Choose a directory name for dependency files.
|
||||||
|
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||||
|
AC_DEFUN([AM_SET_DEPDIR],
|
||||||
|
[rm -f .deps 2>/dev/null
|
||||||
|
mkdir .deps 2>/dev/null
|
||||||
|
if test -d .deps; then
|
||||||
|
DEPDIR=.deps
|
||||||
|
else
|
||||||
|
# MS-DOS does not allow filenames that begin with a dot.
|
||||||
|
DEPDIR=_deps
|
||||||
|
fi
|
||||||
|
rmdir .deps 2>/dev/null
|
||||||
|
AC_SUBST(DEPDIR)
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_DEP_TRACK
|
||||||
|
# ------------
|
||||||
|
AC_DEFUN([AM_DEP_TRACK],
|
||||||
|
[AC_ARG_ENABLE(dependency-tracking,
|
||||||
|
[ --disable-dependency-tracking Speeds up one-time builds
|
||||||
|
--enable-dependency-tracking Do not reject slow dependency extractors])
|
||||||
|
if test "x$enable_dependency_tracking" != xno; then
|
||||||
|
am_depcomp="$ac_aux_dir/depcomp"
|
||||||
|
AMDEPBACKSLASH='\'
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||||
|
pushdef([subst], defn([AC_SUBST]))
|
||||||
|
subst(AMDEPBACKSLASH)
|
||||||
|
popdef([subst])
|
||||||
|
])
|
||||||
|
|
||||||
|
# Generate code to set up dependency tracking.
|
||||||
|
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||||
|
# Usage:
|
||||||
|
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
|
|
||||||
|
#
|
||||||
|
# This code is only required when automatic dependency tracking
|
||||||
|
# is enabled. FIXME. This creates each `.P' file that we will
|
||||||
|
# need in order to bootstrap the dependency handling code.
|
||||||
|
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[
|
||||||
|
AC_OUTPUT_COMMANDS([
|
||||||
|
test x"$AMDEP_TRUE" != x"" ||
|
||||||
|
for mf in $CONFIG_FILES; do
|
||||||
|
case "$mf" in
|
||||||
|
Makefile) dirpart=.;;
|
||||||
|
*/Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
|
||||||
|
*) continue;;
|
||||||
|
esac
|
||||||
|
grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
|
||||||
|
# Extract the definition of DEP_FILES from the Makefile without
|
||||||
|
# running `make'.
|
||||||
|
DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
|
||||||
|
test -z "$DEPDIR" && continue
|
||||||
|
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||||
|
U=`sed -n -e '/^U = / s///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 -e '
|
||||||
|
/^DEP_FILES = .*\\\\$/ {
|
||||||
|
s/^DEP_FILES = //
|
||||||
|
:loop
|
||||||
|
s/\\\\$//
|
||||||
|
p
|
||||||
|
n
|
||||||
|
/\\\\$/ b loop
|
||||||
|
p
|
||||||
|
}
|
||||||
|
/^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
|
||||||
|
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||||
|
# Make sure the directory exists.
|
||||||
|
test -f "$dirpart/$file" && continue
|
||||||
|
fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
|
||||||
|
$ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
|
||||||
|
# echo "creating $dirpart/$file"
|
||||||
|
echo '# dummy' > "$dirpart/$file"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
], [AMDEP_TRUE="$AMDEP_TRUE"
|
||||||
|
ac_aux_dir="$ac_aux_dir"])])
|
||||||
|
|
||||||
|
# AM_MAKE_INCLUDE()
|
||||||
|
# -----------------
|
||||||
|
# Check to see how make treats includes.
|
||||||
|
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||||
|
[am_make=${MAKE-make}
|
||||||
|
cat > confinc << 'END'
|
||||||
|
doit:
|
||||||
|
@echo done
|
||||||
|
END
|
||||||
|
# If we don't find an include directive, just comment out the code.
|
||||||
|
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||||
|
am__include='#'
|
||||||
|
am__quote=
|
||||||
|
_am_result=none
|
||||||
|
# First try GNU make style include.
|
||||||
|
echo "include confinc" > confmf
|
||||||
|
# We grep out `Entering directory' and `Leaving directory'
|
||||||
|
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||||
|
# In particular we don't look at `^make:' because GNU make might
|
||||||
|
# be invoked under some other name (usually "gmake"), in which
|
||||||
|
# case it prints its new name instead of `make'.
|
||||||
|
if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
|
||||||
|
am__include=include
|
||||||
|
am__quote=
|
||||||
|
_am_result=GNU
|
||||||
|
fi
|
||||||
|
# Now try BSD make style include.
|
||||||
|
if test "$am__include" = "#"; then
|
||||||
|
echo '.include "confinc"' > confmf
|
||||||
|
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||||
|
am__include=.include
|
||||||
|
am__quote='"'
|
||||||
|
_am_result=BSD
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST(am__include)
|
||||||
|
AC_SUBST(am__quote)
|
||||||
|
AC_MSG_RESULT($_am_result)
|
||||||
|
rm -f confinc confmf
|
||||||
|
])
|
||||||
|
|
||||||
|
# serial 3
|
||||||
|
|
||||||
|
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||||
|
# -------------------------------------
|
||||||
|
# Define a conditional.
|
||||||
|
#
|
||||||
|
# FIXME: Once using 2.50, use this:
|
||||||
|
# m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||||
|
AC_DEFUN([AM_CONDITIONAL],
|
||||||
|
[ifelse([$1], [TRUE],
|
||||||
|
[errprint(__file__:__line__: [$0: invalid condition: $1
|
||||||
|
])dnl
|
||||||
|
m4exit(1)])dnl
|
||||||
|
ifelse([$1], [FALSE],
|
||||||
|
[errprint(__file__:__line__: [$0: invalid condition: $1
|
||||||
|
])dnl
|
||||||
|
m4exit(1)])dnl
|
||||||
|
AC_SUBST([$1_TRUE])
|
||||||
|
AC_SUBST([$1_FALSE])
|
||||||
|
if $2; then
|
||||||
|
$1_TRUE=
|
||||||
|
$1_FALSE='#'
|
||||||
|
else
|
||||||
|
$1_TRUE='#'
|
||||||
|
$1_FALSE=
|
||||||
|
fi])
|
||||||
|
|
||||||
|
|
475
configure
vendored
475
configure
vendored
|
@ -1,7 +1,7 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated automatically using autoconf version 2.10
|
# Generated automatically using autoconf version 2.13
|
||||||
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
|
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This configure script is free software; the Free Software Foundation
|
# This configure script is free software; the Free Software Foundation
|
||||||
|
@ -11,6 +11,9 @@
|
||||||
ac_help=
|
ac_help=
|
||||||
ac_default_prefix=/usr/local
|
ac_default_prefix=/usr/local
|
||||||
# Any additions from configure.in:
|
# Any additions from configure.in:
|
||||||
|
ac_help="$ac_help
|
||||||
|
--disable-dependency-tracking Speeds up one-time builds
|
||||||
|
--enable-dependency-tracking Do not reject slow dependency extractors"
|
||||||
|
|
||||||
# Initialize some variables set by options.
|
# Initialize some variables set by options.
|
||||||
# The variables have the same names as the options, with
|
# The variables have the same names as the options, with
|
||||||
|
@ -49,6 +52,9 @@ mandir='${prefix}/man'
|
||||||
# Initialize some other variables.
|
# Initialize some other variables.
|
||||||
subdirs=
|
subdirs=
|
||||||
MFLAGS= MAKEFLAGS=
|
MFLAGS= MAKEFLAGS=
|
||||||
|
SHELL=${CONFIG_SHELL-/bin/sh}
|
||||||
|
# Maximum number of lines to put in a shell here document.
|
||||||
|
ac_max_here_lines=12
|
||||||
|
|
||||||
ac_prev=
|
ac_prev=
|
||||||
for ac_option
|
for ac_option
|
||||||
|
@ -330,7 +336,7 @@ EOF
|
||||||
verbose=yes ;;
|
verbose=yes ;;
|
||||||
|
|
||||||
-version | --version | --versio | --versi | --vers)
|
-version | --version | --versio | --versi | --vers)
|
||||||
echo "configure generated by autoconf version 2.10"
|
echo "configure generated by autoconf version 2.13"
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
|
||||||
-with-* | --with-*)
|
-with-* | --with-*)
|
||||||
|
@ -432,11 +438,14 @@ do
|
||||||
done
|
done
|
||||||
|
|
||||||
# NLS nuisances.
|
# NLS nuisances.
|
||||||
# Only set LANG and LC_ALL to C if already set.
|
# Only set these to C if already set. These must not be set unconditionally
|
||||||
# These must not be set unconditionally because not all systems understand
|
# because not all systems understand e.g. LANG=C (notably SCO).
|
||||||
# e.g. LANG=C (notably SCO).
|
# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
|
||||||
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
|
# Non-C LC_CTYPE values break the ctype check.
|
||||||
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
|
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
|
||||||
|
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
|
||||||
|
if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
|
||||||
|
if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
|
||||||
|
|
||||||
# confdefs.h avoids OS command line length limits that DEFS can exceed.
|
# confdefs.h avoids OS command line length limits that DEFS can exceed.
|
||||||
rm -rf conftest* confdefs.h
|
rm -rf conftest* confdefs.h
|
||||||
|
@ -497,8 +506,11 @@ ac_ext=c
|
||||||
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
||||||
ac_cpp='$CPP $CPPFLAGS'
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
|
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
|
||||||
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
|
ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
|
||||||
|
cross_compiling=$ac_cv_prog_cc_cross
|
||||||
|
|
||||||
|
ac_exeext=
|
||||||
|
ac_objext=o
|
||||||
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
|
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
|
||||||
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
|
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
|
||||||
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
|
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
|
||||||
|
@ -514,7 +526,312 @@ fi
|
||||||
|
|
||||||
|
|
||||||
PACKAGE=stow
|
PACKAGE=stow
|
||||||
VERSION=1.3.2
|
VERSION=1.3.3
|
||||||
|
ac_aux_dir=
|
||||||
|
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
|
||||||
|
if test -f $ac_dir/install-sh; then
|
||||||
|
ac_aux_dir=$ac_dir
|
||||||
|
ac_install_sh="$ac_aux_dir/install-sh -c"
|
||||||
|
break
|
||||||
|
elif test -f $ac_dir/install.sh; then
|
||||||
|
ac_aux_dir=$ac_dir
|
||||||
|
ac_install_sh="$ac_aux_dir/install.sh -c"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if test -z "$ac_aux_dir"; then
|
||||||
|
{ echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
|
||||||
|
fi
|
||||||
|
ac_config_guess=$ac_aux_dir/config.guess
|
||||||
|
ac_config_sub=$ac_aux_dir/config.sub
|
||||||
|
ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
|
||||||
|
|
||||||
|
|
||||||
|
# expand $ac_aux_dir to an absolute path
|
||||||
|
am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
|
||||||
|
|
||||||
|
# Find a good install program. We prefer a C program (faster),
|
||||||
|
# so one script is as good as another. But avoid the broken or
|
||||||
|
# incompatible versions:
|
||||||
|
# SysV /etc/install, /usr/sbin/install
|
||||||
|
# SunOS /usr/etc/install
|
||||||
|
# IRIX /sbin/install
|
||||||
|
# AIX /bin/install
|
||||||
|
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
|
||||||
|
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
|
||||||
|
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
||||||
|
# ./install, which can be erroneously created by make from ./install.sh.
|
||||||
|
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
|
||||||
|
echo "configure:566: checking for a BSD compatible install" >&5
|
||||||
|
if test -z "$INSTALL"; then
|
||||||
|
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
|
||||||
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
else
|
||||||
|
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
|
||||||
|
for ac_dir in $PATH; do
|
||||||
|
# Account for people who put trailing slashes in PATH elements.
|
||||||
|
case "$ac_dir/" in
|
||||||
|
/|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
|
||||||
|
*)
|
||||||
|
# OSF1 and SCO ODT 3.0 have their own names for install.
|
||||||
|
# Don't use installbsd from OSF since it installs stuff as root
|
||||||
|
# by default.
|
||||||
|
for ac_prog in ginstall scoinst install; do
|
||||||
|
if test -f $ac_dir/$ac_prog; then
|
||||||
|
if test $ac_prog = install &&
|
||||||
|
grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
|
||||||
|
# AIX install. It has an incompatible calling convention.
|
||||||
|
:
|
||||||
|
else
|
||||||
|
ac_cv_path_install="$ac_dir/$ac_prog -c"
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
IFS="$ac_save_IFS"
|
||||||
|
|
||||||
|
fi
|
||||||
|
if test "${ac_cv_path_install+set}" = set; then
|
||||||
|
INSTALL="$ac_cv_path_install"
|
||||||
|
else
|
||||||
|
# As a last resort, use the slow shell script. We don't cache a
|
||||||
|
# path for INSTALL within a source directory, because that will
|
||||||
|
# break other packages using the cache if that directory is
|
||||||
|
# removed, or if the path is relative.
|
||||||
|
INSTALL="$ac_install_sh"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "$ac_t""$INSTALL" 1>&6
|
||||||
|
|
||||||
|
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
|
||||||
|
# It thinks the first close brace ends the variable substitution.
|
||||||
|
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
|
||||||
|
|
||||||
|
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
|
||||||
|
|
||||||
|
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
||||||
|
|
||||||
|
echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
|
||||||
|
echo "configure:619: checking whether build environment is sane" >&5
|
||||||
|
# Just in case
|
||||||
|
sleep 1
|
||||||
|
echo timestamp > conftest.file
|
||||||
|
# Do `set' in a subshell so we don't clobber the current shell's
|
||||||
|
# arguments. Must try -L first in case configure is actually a
|
||||||
|
# symlink; some systems play weird games with the mod time of symlinks
|
||||||
|
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||||
|
# directory).
|
||||||
|
if (
|
||||||
|
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
|
||||||
|
if test "$*" = "X"; then
|
||||||
|
# -L didn't work.
|
||||||
|
set X `ls -t $srcdir/configure conftest.file`
|
||||||
|
fi
|
||||||
|
rm -f conftest.file
|
||||||
|
if test "$*" != "X $srcdir/configure conftest.file" \
|
||||||
|
&& test "$*" != "X conftest.file $srcdir/configure"; then
|
||||||
|
|
||||||
|
# If neither matched, then we have a broken ls. This can happen
|
||||||
|
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||||
|
# broken ls alias from the environment. This has actually
|
||||||
|
# happened. Such a system could not be considered "sane".
|
||||||
|
{ echo "configure: error: ls -t appears to fail. Make sure there is not a broken
|
||||||
|
alias in your environment" 1>&2; exit 1; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
test "$2" = conftest.file
|
||||||
|
)
|
||||||
|
then
|
||||||
|
# Ok.
|
||||||
|
:
|
||||||
|
else
|
||||||
|
{ echo "configure: error: newly created file is older than distributed files!
|
||||||
|
Check your system clock" 1>&2; exit 1; }
|
||||||
|
fi
|
||||||
|
echo "$ac_t""yes" 1>&6
|
||||||
|
if test "$program_transform_name" = s,x,x,; then
|
||||||
|
program_transform_name=
|
||||||
|
else
|
||||||
|
# Double any \ or $. echo might interpret backslashes.
|
||||||
|
cat <<\EOF_SED > conftestsed
|
||||||
|
s,\\,\\\\,g; s,\$,$$,g
|
||||||
|
EOF_SED
|
||||||
|
program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
|
||||||
|
rm -f conftestsed
|
||||||
|
fi
|
||||||
|
test "$program_prefix" != NONE &&
|
||||||
|
program_transform_name="s,^,${program_prefix},; $program_transform_name"
|
||||||
|
# Use a double $ so make ignores it.
|
||||||
|
test "$program_suffix" != NONE &&
|
||||||
|
program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
|
||||||
|
|
||||||
|
# sed with no file args requires a program.
|
||||||
|
test "$program_transform_name" = "" && program_transform_name="s,x,x,"
|
||||||
|
|
||||||
|
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
|
||||||
|
# Use eval to expand $SHELL
|
||||||
|
if eval "$MISSING --run true"; then
|
||||||
|
am_missing_run="$MISSING --run "
|
||||||
|
else
|
||||||
|
am_missing_run=
|
||||||
|
am_backtick='`'
|
||||||
|
echo "configure: warning: ${am_backtick}missing' script is too old or missing" 1>&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
for ac_prog in mawk gawk nawk awk
|
||||||
|
do
|
||||||
|
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||||
|
set dummy $ac_prog; ac_word=$2
|
||||||
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
|
echo "configure:690: checking for $ac_word" >&5
|
||||||
|
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
|
||||||
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
else
|
||||||
|
if test -n "$AWK"; then
|
||||||
|
ac_cv_prog_AWK="$AWK" # Let the user override the test.
|
||||||
|
else
|
||||||
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
|
||||||
|
ac_dummy="$PATH"
|
||||||
|
for ac_dir in $ac_dummy; do
|
||||||
|
test -z "$ac_dir" && ac_dir=.
|
||||||
|
if test -f $ac_dir/$ac_word; then
|
||||||
|
ac_cv_prog_AWK="$ac_prog"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$ac_save_ifs"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AWK="$ac_cv_prog_AWK"
|
||||||
|
if test -n "$AWK"; then
|
||||||
|
echo "$ac_t""$AWK" 1>&6
|
||||||
|
else
|
||||||
|
echo "$ac_t""no" 1>&6
|
||||||
|
fi
|
||||||
|
|
||||||
|
test -n "$AWK" && break
|
||||||
|
done
|
||||||
|
|
||||||
|
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
|
||||||
|
echo "configure:720: checking whether ${MAKE-make} sets \${MAKE}" >&5
|
||||||
|
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
|
||||||
|
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
|
||||||
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
else
|
||||||
|
cat > conftestmake <<\EOF
|
||||||
|
all:
|
||||||
|
@echo 'ac_maketemp="${MAKE}"'
|
||||||
|
EOF
|
||||||
|
# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
|
||||||
|
eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
|
||||||
|
if test -n "$ac_maketemp"; then
|
||||||
|
eval ac_cv_prog_make_${ac_make}_set=yes
|
||||||
|
else
|
||||||
|
eval ac_cv_prog_make_${ac_make}_set=no
|
||||||
|
fi
|
||||||
|
rm -f conftestmake
|
||||||
|
fi
|
||||||
|
if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
|
||||||
|
echo "$ac_t""yes" 1>&6
|
||||||
|
SET_MAKE=
|
||||||
|
else
|
||||||
|
echo "$ac_t""no" 1>&6
|
||||||
|
SET_MAKE="MAKE=${MAKE-make}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
|
||||||
|
if test "${enable_dependency_tracking+set}" = set; then
|
||||||
|
enableval="$enable_dependency_tracking"
|
||||||
|
:
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$enable_dependency_tracking" != xno; then
|
||||||
|
am_depcomp="$ac_aux_dir/depcomp"
|
||||||
|
AMDEPBACKSLASH='\'
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if test "x$enable_dependency_tracking" != xno; then
|
||||||
|
AMDEP_TRUE=
|
||||||
|
AMDEP_FALSE='#'
|
||||||
|
else
|
||||||
|
AMDEP_TRUE='#'
|
||||||
|
AMDEP_FALSE=
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
rm -f .deps 2>/dev/null
|
||||||
|
mkdir .deps 2>/dev/null
|
||||||
|
if test -d .deps; then
|
||||||
|
DEPDIR=.deps
|
||||||
|
else
|
||||||
|
# MS-DOS does not allow filenames that begin with a dot.
|
||||||
|
DEPDIR=_deps
|
||||||
|
fi
|
||||||
|
rmdir .deps 2>/dev/null
|
||||||
|
|
||||||
|
|
||||||
|
# test to see if srcdir already configured
|
||||||
|
if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
|
||||||
|
test -f $srcdir/config.status; then
|
||||||
|
{ echo "configure: error: source directory already configured; run \"make distclean\" there first" 1>&2; exit 1; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Define the identity of the package.
|
||||||
|
PACKAGE=stow
|
||||||
|
VERSION=$VERSION
|
||||||
|
cat >> confdefs.h <<EOF
|
||||||
|
#define PACKAGE "$PACKAGE"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat >> confdefs.h <<EOF
|
||||||
|
#define VERSION "$VERSION"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
|
||||||
|
# the ones we care about.
|
||||||
|
|
||||||
|
# Autoconf 2.50 always computes EXEEXT. However we need to be
|
||||||
|
# compatible with 2.13, for now. So we always define EXEEXT, but we
|
||||||
|
# don't compute it.
|
||||||
|
|
||||||
|
# Similar for OBJEXT -- only we only use OBJEXT if the user actually
|
||||||
|
# requests that it be used. This is a bit dumb.
|
||||||
|
: ${OBJEXT=o}
|
||||||
|
|
||||||
|
|
||||||
|
# Some tools Automake needs.
|
||||||
|
|
||||||
|
ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal"}
|
||||||
|
|
||||||
|
|
||||||
|
AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
|
||||||
|
|
||||||
|
|
||||||
|
AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake"}
|
||||||
|
|
||||||
|
|
||||||
|
AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
|
||||||
|
|
||||||
|
|
||||||
|
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
|
||||||
|
|
||||||
|
|
||||||
|
AMTAR=${AMTAR-"${am_missing_run}tar"}
|
||||||
|
|
||||||
|
install_sh=${install_sh-"$am_aux_dir/install-sh"}
|
||||||
|
|
||||||
|
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
|
||||||
|
|
||||||
|
# We need awk for the "check" target. The system "awk" is bad on
|
||||||
|
# some platforms.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -538,25 +855,6 @@ test "$program_suffix" != NONE &&
|
||||||
test "$program_transform_name" = "" && program_transform_name="s,x,x,"
|
test "$program_transform_name" = "" && program_transform_name="s,x,x,"
|
||||||
|
|
||||||
|
|
||||||
ac_aux_dir=
|
|
||||||
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
|
|
||||||
if test -f $ac_dir/install-sh; then
|
|
||||||
ac_aux_dir=$ac_dir
|
|
||||||
ac_install_sh="$ac_aux_dir/install-sh -c"
|
|
||||||
break
|
|
||||||
elif test -f $ac_dir/install.sh; then
|
|
||||||
ac_aux_dir=$ac_dir
|
|
||||||
ac_install_sh="$ac_aux_dir/install.sh -c"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test -z "$ac_aux_dir"; then
|
|
||||||
{ echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
|
|
||||||
fi
|
|
||||||
ac_config_guess=$ac_aux_dir/config.guess
|
|
||||||
ac_config_sub=$ac_aux_dir/config.sub
|
|
||||||
ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
|
|
||||||
|
|
||||||
# Find a good install program. We prefer a C program (faster),
|
# Find a good install program. We prefer a C program (faster),
|
||||||
# so one script is as good as another. But avoid the broken or
|
# so one script is as good as another. But avoid the broken or
|
||||||
# incompatible versions:
|
# incompatible versions:
|
||||||
|
@ -564,27 +862,30 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
|
||||||
# SunOS /usr/etc/install
|
# SunOS /usr/etc/install
|
||||||
# IRIX /sbin/install
|
# IRIX /sbin/install
|
||||||
# AIX /bin/install
|
# AIX /bin/install
|
||||||
|
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
|
||||||
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
|
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
|
||||||
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
||||||
# ./install, which can be erroneously created by make from ./install.sh.
|
# ./install, which can be erroneously created by make from ./install.sh.
|
||||||
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
|
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
|
||||||
|
echo "configure:871: checking for a BSD compatible install" >&5
|
||||||
if test -z "$INSTALL"; then
|
if test -z "$INSTALL"; then
|
||||||
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
|
||||||
for ac_dir in $PATH; do
|
for ac_dir in $PATH; do
|
||||||
# Account for people who put trailing slashes in PATH elements.
|
# Account for people who put trailing slashes in PATH elements.
|
||||||
case "$ac_dir/" in
|
case "$ac_dir/" in
|
||||||
/|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
|
/|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
|
||||||
*)
|
*)
|
||||||
# OSF1 and SCO ODT 3.0 have their own names for install.
|
# OSF1 and SCO ODT 3.0 have their own names for install.
|
||||||
for ac_prog in ginstall installbsd scoinst install; do
|
# Don't use installbsd from OSF since it installs stuff as root
|
||||||
|
# by default.
|
||||||
|
for ac_prog in ginstall scoinst install; do
|
||||||
if test -f $ac_dir/$ac_prog; then
|
if test -f $ac_dir/$ac_prog; then
|
||||||
if test $ac_prog = install &&
|
if test $ac_prog = install &&
|
||||||
grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
|
grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
|
||||||
# AIX install. It has an incompatible calling convention.
|
# AIX install. It has an incompatible calling convention.
|
||||||
# OSF/1 installbsd also uses dspmsg, but is usable.
|
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
ac_cv_path_install="$ac_dir/$ac_prog -c"
|
ac_cv_path_install="$ac_dir/$ac_prog -c"
|
||||||
|
@ -595,7 +896,7 @@ else
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
IFS="$ac_save_ifs"
|
IFS="$ac_save_IFS"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
if test "${ac_cv_path_install+set}" = set; then
|
if test "${ac_cv_path_install+set}" = set; then
|
||||||
|
@ -614,16 +915,17 @@ echo "$ac_t""$INSTALL" 1>&6
|
||||||
# It thinks the first close brace ends the variable substitution.
|
# It thinks the first close brace ends the variable substitution.
|
||||||
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
|
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
|
||||||
|
|
||||||
|
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
|
||||||
|
|
||||||
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
||||||
|
|
||||||
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL} -m 755'
|
|
||||||
|
|
||||||
|
for ac_prog in perl perl5
|
||||||
for ac_prog in perl perl5 perl4
|
|
||||||
do
|
do
|
||||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||||
set dummy $ac_prog; ac_word=$2
|
set dummy $ac_prog; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
|
echo "configure:929: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -631,9 +933,13 @@ else
|
||||||
/*)
|
/*)
|
||||||
ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
|
ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
|
||||||
;;
|
;;
|
||||||
|
?:/*)
|
||||||
|
ac_cv_path_PERL="$PERL" # Let the user override the test with a dos path.
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
|
||||||
for ac_dir in $PATH; do
|
ac_dummy="$PATH"
|
||||||
|
for ac_dir in $ac_dummy; do
|
||||||
test -z "$ac_dir" && ac_dir=.
|
test -z "$ac_dir" && ac_dir=.
|
||||||
if test -f $ac_dir/$ac_word; then
|
if test -f $ac_dir/$ac_word; then
|
||||||
ac_cv_path_PERL="$ac_dir/$ac_word"
|
ac_cv_path_PERL="$ac_dir/$ac_word"
|
||||||
|
@ -678,11 +984,25 @@ cat > confcache <<\EOF
|
||||||
# --recheck option to rerun configure.
|
# --recheck option to rerun configure.
|
||||||
#
|
#
|
||||||
EOF
|
EOF
|
||||||
|
# The following way of writing the cache mishandles newlines in values,
|
||||||
|
# but we know of no workaround that is simple, portable, and efficient.
|
||||||
|
# So, don't put newlines in cache variables' values.
|
||||||
# Ultrix sh set writes to stderr and can't be redirected directly,
|
# Ultrix sh set writes to stderr and can't be redirected directly,
|
||||||
# and sets the high bit in the cache file unless we assign to the vars.
|
# and sets the high bit in the cache file unless we assign to the vars.
|
||||||
(set) 2>&1 |
|
(set) 2>&1 |
|
||||||
sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \
|
case `(ac_space=' '; set | grep ac_space) 2>&1` in
|
||||||
>> confcache
|
*ac_space=\ *)
|
||||||
|
# `set' does not quote correctly, so add quotes (double-quote substitution
|
||||||
|
# turns \\\\ into \\, and sed turns \\ into \).
|
||||||
|
sed -n \
|
||||||
|
-e "s/'/'\\\\''/g" \
|
||||||
|
-e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# `set' quotes correctly as required by POSIX, so do not add quotes.
|
||||||
|
sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
|
||||||
|
;;
|
||||||
|
esac >> confcache
|
||||||
if cmp -s $cache_file confcache; then
|
if cmp -s $cache_file confcache; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
|
@ -749,7 +1069,7 @@ do
|
||||||
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
|
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
|
||||||
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
|
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
|
||||||
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
|
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
|
||||||
echo "$CONFIG_STATUS generated by autoconf version 2.10"
|
echo "$CONFIG_STATUS generated by autoconf version 2.13"
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
-help | --help | --hel | --he | --h)
|
-help | --help | --hel | --he | --h)
|
||||||
echo "\$ac_cs_usage"; exit 0 ;;
|
echo "\$ac_cs_usage"; exit 0 ;;
|
||||||
|
@ -769,9 +1089,11 @@ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
|
||||||
s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
|
s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
|
||||||
$ac_vpsub
|
$ac_vpsub
|
||||||
$extrasub
|
$extrasub
|
||||||
|
s%@SHELL@%$SHELL%g
|
||||||
s%@CFLAGS@%$CFLAGS%g
|
s%@CFLAGS@%$CFLAGS%g
|
||||||
s%@CPPFLAGS@%$CPPFLAGS%g
|
s%@CPPFLAGS@%$CPPFLAGS%g
|
||||||
s%@CXXFLAGS@%$CXXFLAGS%g
|
s%@CXXFLAGS@%$CXXFLAGS%g
|
||||||
|
s%@FFLAGS@%$FFLAGS%g
|
||||||
s%@DEFS@%$DEFS%g
|
s%@DEFS@%$DEFS%g
|
||||||
s%@LDFLAGS@%$LDFLAGS%g
|
s%@LDFLAGS@%$LDFLAGS%g
|
||||||
s%@LIBS@%$LIBS%g
|
s%@LIBS@%$LIBS%g
|
||||||
|
@ -790,29 +1112,81 @@ s%@includedir@%$includedir%g
|
||||||
s%@oldincludedir@%$oldincludedir%g
|
s%@oldincludedir@%$oldincludedir%g
|
||||||
s%@infodir@%$infodir%g
|
s%@infodir@%$infodir%g
|
||||||
s%@mandir@%$mandir%g
|
s%@mandir@%$mandir%g
|
||||||
|
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
|
||||||
|
s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
|
||||||
|
s%@INSTALL_DATA@%$INSTALL_DATA%g
|
||||||
s%@PACKAGE@%$PACKAGE%g
|
s%@PACKAGE@%$PACKAGE%g
|
||||||
s%@VERSION@%$VERSION%g
|
s%@VERSION@%$VERSION%g
|
||||||
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
|
s%@EXEEXT@%$EXEEXT%g
|
||||||
s%@INSTALL_DATA@%$INSTALL_DATA%g
|
s%@OBJEXT@%$OBJEXT%g
|
||||||
s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
|
s%@ACLOCAL@%$ACLOCAL%g
|
||||||
|
s%@AUTOCONF@%$AUTOCONF%g
|
||||||
|
s%@AUTOMAKE@%$AUTOMAKE%g
|
||||||
|
s%@AUTOHEADER@%$AUTOHEADER%g
|
||||||
|
s%@MAKEINFO@%$MAKEINFO%g
|
||||||
|
s%@AMTAR@%$AMTAR%g
|
||||||
|
s%@install_sh@%$install_sh%g
|
||||||
|
s%@INSTALL_STRIP_PROGRAM@%$INSTALL_STRIP_PROGRAM%g
|
||||||
|
s%@AWK@%$AWK%g
|
||||||
|
s%@SET_MAKE@%$SET_MAKE%g
|
||||||
|
s%@AMDEP_TRUE@%$AMDEP_TRUE%g
|
||||||
|
s%@AMDEP_FALSE@%$AMDEP_FALSE%g
|
||||||
|
s%@AMDEPBACKSLASH@%$AMDEPBACKSLASH%g
|
||||||
|
s%@DEPDIR@%$DEPDIR%g
|
||||||
s%@PERL@%$PERL%g
|
s%@PERL@%$PERL%g
|
||||||
|
|
||||||
CEOF
|
CEOF
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
cat >> $CONFIG_STATUS <<\EOF
|
||||||
|
|
||||||
|
# Split the substitutions into bite-sized pieces for seds with
|
||||||
|
# small command number limits, like on Digital OSF/1 and HP-UX.
|
||||||
|
ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
|
||||||
|
ac_file=1 # Number of current file.
|
||||||
|
ac_beg=1 # First line for current file.
|
||||||
|
ac_end=$ac_max_sed_cmds # Line after last line for current file.
|
||||||
|
ac_more_lines=:
|
||||||
|
ac_sed_cmds=""
|
||||||
|
while $ac_more_lines; do
|
||||||
|
if test $ac_beg -gt 1; then
|
||||||
|
sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
|
||||||
|
else
|
||||||
|
sed "${ac_end}q" conftest.subs > conftest.s$ac_file
|
||||||
|
fi
|
||||||
|
if test ! -s conftest.s$ac_file; then
|
||||||
|
ac_more_lines=false
|
||||||
|
rm -f conftest.s$ac_file
|
||||||
|
else
|
||||||
|
if test -z "$ac_sed_cmds"; then
|
||||||
|
ac_sed_cmds="sed -f conftest.s$ac_file"
|
||||||
|
else
|
||||||
|
ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
|
||||||
|
fi
|
||||||
|
ac_file=`expr $ac_file + 1`
|
||||||
|
ac_beg=$ac_end
|
||||||
|
ac_end=`expr $ac_end + $ac_max_sed_cmds`
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if test -z "$ac_sed_cmds"; then
|
||||||
|
ac_sed_cmds=cat
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
cat >> $CONFIG_STATUS <<EOF
|
cat >> $CONFIG_STATUS <<EOF
|
||||||
|
|
||||||
CONFIG_FILES=\${CONFIG_FILES-"Makefile stow"}
|
CONFIG_FILES=\${CONFIG_FILES-"Makefile stow"}
|
||||||
EOF
|
EOF
|
||||||
cat >> $CONFIG_STATUS <<\EOF
|
cat >> $CONFIG_STATUS <<\EOF
|
||||||
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
|
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
|
||||||
# Support "outfile[:infile]", defaulting infile="outfile.in".
|
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
|
||||||
case "$ac_file" in
|
case "$ac_file" in
|
||||||
*:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
|
*:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
|
||||||
ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
|
ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
|
||||||
*) ac_file_in="${ac_file}.in" ;;
|
*) ac_file_in="${ac_file}.in" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Adjust relative srcdir, etc. for subdirectories.
|
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
|
||||||
|
|
||||||
# Remove last slash and all that follows it. Not all systems have dirname.
|
# Remove last slash and all that follows it. Not all systems have dirname.
|
||||||
ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
|
ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
|
||||||
|
@ -840,6 +1214,7 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
|
||||||
[/$]*) INSTALL="$ac_given_INSTALL" ;;
|
[/$]*) INSTALL="$ac_given_INSTALL" ;;
|
||||||
*) INSTALL="$ac_dots$ac_given_INSTALL" ;;
|
*) INSTALL="$ac_dots$ac_given_INSTALL" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo creating "$ac_file"
|
echo creating "$ac_file"
|
||||||
rm -f "$ac_file"
|
rm -f "$ac_file"
|
||||||
configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
|
configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
|
||||||
|
@ -848,16 +1223,22 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
|
||||||
# $configure_input" ;;
|
# $configure_input" ;;
|
||||||
*) ac_comsub= ;;
|
*) ac_comsub= ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
|
||||||
sed -e "$ac_comsub
|
sed -e "$ac_comsub
|
||||||
s%@configure_input@%$configure_input%g
|
s%@configure_input@%$configure_input%g
|
||||||
s%@srcdir@%$srcdir%g
|
s%@srcdir@%$srcdir%g
|
||||||
s%@top_srcdir@%$top_srcdir%g
|
s%@top_srcdir@%$top_srcdir%g
|
||||||
s%@INSTALL@%$INSTALL%g
|
s%@INSTALL@%$INSTALL%g
|
||||||
" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
|
" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
|
||||||
fi; done
|
fi; done
|
||||||
rm -f conftest.subs
|
rm -f conftest.s*
|
||||||
|
|
||||||
|
EOF
|
||||||
|
cat >> $CONFIG_STATUS <<EOF
|
||||||
|
|
||||||
|
EOF
|
||||||
|
cat >> $CONFIG_STATUS <<\EOF
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
EOF
|
EOF
|
||||||
|
|
|
@ -3,15 +3,16 @@ dnl Process this file with Autoconf to produce configure
|
||||||
AC_INIT(stow.in)
|
AC_INIT(stow.in)
|
||||||
|
|
||||||
PACKAGE=stow
|
PACKAGE=stow
|
||||||
VERSION=1.3.2
|
VERSION=1.3.3
|
||||||
|
AM_INIT_AUTOMAKE(stow, $VERSION)
|
||||||
AC_SUBST(PACKAGE)
|
AC_SUBST(PACKAGE)
|
||||||
AC_SUBST(VERSION)
|
AC_SUBST(VERSION)
|
||||||
|
|
||||||
AC_ARG_PROGRAM
|
AC_ARG_PROGRAM
|
||||||
|
|
||||||
fp_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
|
|
||||||
AC_PATH_PROGS(PERL, perl perl5 perl4, false)
|
AC_PATH_PROGS(PERL, perl perl5, false)
|
||||||
|
|
||||||
if test "x$PERL" = xfalse
|
if test "x$PERL" = xfalse
|
||||||
then
|
then
|
||||||
|
|
21
install-sh
21
install-sh
|
@ -1,15 +1,27 @@
|
||||||
#! /bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# install - install a program, script, or datafile
|
# install - install a program, script, or datafile
|
||||||
# This comes from X11R5.
|
# This comes from X11R5 (mit/util/scripts/install.sh).
|
||||||
|
#
|
||||||
|
# Copyright 1991 by the Massachusetts Institute of Technology
|
||||||
|
#
|
||||||
|
# Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
|
# documentation for any purpose is hereby granted without fee, provided that
|
||||||
|
# the above copyright notice appear in all copies and that both that
|
||||||
|
# copyright notice and this permission notice appear in supporting
|
||||||
|
# documentation, and that the name of M.I.T. not be used in advertising or
|
||||||
|
# publicity pertaining to distribution of the software without specific,
|
||||||
|
# written prior permission. M.I.T. makes no representations about the
|
||||||
|
# suitability of this software for any purpose. It is provided "as is"
|
||||||
|
# without express or implied warranty.
|
||||||
#
|
#
|
||||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||||
# `make' implicit rules from creating a file called install from it
|
# `make' implicit rules from creating a file called install from it
|
||||||
# when there is no Makefile.
|
# when there is no Makefile.
|
||||||
#
|
#
|
||||||
# This script is compatible with the BSD install script, but was written
|
# This script is compatible with the BSD install script, but was written
|
||||||
# from scratch.
|
# from scratch. It can only install one file at a time, a restriction
|
||||||
#
|
# shared with many OS's install programs.
|
||||||
|
|
||||||
|
|
||||||
# set DOITPROG to echo to test this script
|
# set DOITPROG to echo to test this script
|
||||||
|
@ -106,6 +118,7 @@ if [ x"$dir_arg" != x ]; then
|
||||||
|
|
||||||
if [ -d $dst ]; then
|
if [ -d $dst ]; then
|
||||||
instcmd=:
|
instcmd=:
|
||||||
|
chmodcmd=""
|
||||||
else
|
else
|
||||||
instcmd=mkdir
|
instcmd=mkdir
|
||||||
fi
|
fi
|
||||||
|
|
26
mdate-sh
26
mdate-sh
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# mdate-sh - get modification time of a file and pretty-print it
|
# Get modification time of a file or directory and pretty-print it.
|
||||||
# Copyright (C) 1995 Software Foundation, Inc.
|
# Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||||
# Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
|
# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -14,8 +14,13 @@
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software Foundation,
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
# 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.
|
||||||
|
|
||||||
# Prevent date giving response in another language.
|
# Prevent date giving response in another language.
|
||||||
LANG=C
|
LANG=C
|
||||||
|
@ -25,14 +30,15 @@ export LC_ALL
|
||||||
LC_TIME=C
|
LC_TIME=C
|
||||||
export LC_TIME
|
export LC_TIME
|
||||||
|
|
||||||
# Get the extended ls output of the file.
|
# Get the extended ls output of the file or directory.
|
||||||
|
# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
|
||||||
if ls -L /dev/null 1>/dev/null 2>&1; then
|
if ls -L /dev/null 1>/dev/null 2>&1; then
|
||||||
set - `ls -L -l $1`
|
set - x`ls -L -l -d $1`
|
||||||
else
|
else
|
||||||
set - `ls -l $1`
|
set - x`ls -l -d $1`
|
||||||
fi
|
fi
|
||||||
# The month is at least the fourth argument.
|
# The month is at least the fourth argument
|
||||||
# (3 shifts here, the next inside the loop)
|
# (3 shifts here, the next inside the loop).
|
||||||
shift
|
shift
|
||||||
shift
|
shift
|
||||||
shift
|
shift
|
||||||
|
|
283
missing
Executable file
283
missing
Executable file
|
@ -0,0 +1,283 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# Common stub for a few missing GNU programs while installing.
|
||||||
|
# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
|
||||||
|
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
|
# 02111-1307, USA.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
if test $# -eq 0; then
|
||||||
|
echo 1>&2 "Try \`$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
run=:
|
||||||
|
|
||||||
|
# In the cases where this matters, `missing' is being run in the
|
||||||
|
# srcdir already.
|
||||||
|
if test -f configure.ac; then
|
||||||
|
configure_ac=configure.ac
|
||||||
|
else
|
||||||
|
configure_ac=configure.in
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
--run)
|
||||||
|
# Try to run requested program, and just exit if it succeeds.
|
||||||
|
run=
|
||||||
|
shift
|
||||||
|
"$@" && exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If it does not exist, or fails to run (possibly an outdated version),
|
||||||
|
# try to emulate it.
|
||||||
|
case "$1" in
|
||||||
|
|
||||||
|
-h|--h|--he|--hel|--help)
|
||||||
|
echo "\
|
||||||
|
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||||
|
|
||||||
|
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||||
|
error status if there is no known handling for PROGRAM.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --help display this help and exit
|
||||||
|
-v, --version output version information and exit
|
||||||
|
--run try to run the given command, and emulate it if it fails
|
||||||
|
|
||||||
|
Supported PROGRAM values:
|
||||||
|
aclocal touch file \`aclocal.m4'
|
||||||
|
autoconf touch file \`configure'
|
||||||
|
autoheader touch file \`config.h.in'
|
||||||
|
automake touch all \`Makefile.in' files
|
||||||
|
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||||
|
flex create \`lex.yy.c', if possible, from existing .c
|
||||||
|
help2man touch the output file
|
||||||
|
lex create \`lex.yy.c', if possible, from existing .c
|
||||||
|
makeinfo touch the output file
|
||||||
|
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||||
|
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
|
||||||
|
;;
|
||||||
|
|
||||||
|
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||||
|
echo "missing 0.3 - GNU automake"
|
||||||
|
;;
|
||||||
|
|
||||||
|
-*)
|
||||||
|
echo 1>&2 "$0: Unknown \`$1' option"
|
||||||
|
echo 1>&2 "Try \`$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
aclocal)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||||
|
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||||
|
any GNU archive site."
|
||||||
|
touch aclocal.m4
|
||||||
|
;;
|
||||||
|
|
||||||
|
autoconf)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified \`${configure_ac}'. You might want to install the
|
||||||
|
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||||
|
archive site."
|
||||||
|
touch configure
|
||||||
|
;;
|
||||||
|
|
||||||
|
autoheader)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||||
|
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||||
|
from any GNU archive site."
|
||||||
|
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||||
|
test -z "$files" && files="config.h"
|
||||||
|
touch_files=
|
||||||
|
for f in $files; do
|
||||||
|
case "$f" in
|
||||||
|
*:*) touch_files="$touch_files "`echo "$f" |
|
||||||
|
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||||
|
*) touch_files="$touch_files $f.in";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
touch $touch_files
|
||||||
|
;;
|
||||||
|
|
||||||
|
automake)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||||
|
You might want to install the \`Automake' and \`Perl' packages.
|
||||||
|
Grab them from any GNU archive site."
|
||||||
|
find . -type f -name Makefile.am -print |
|
||||||
|
sed 's/\.am$/.in/' |
|
||||||
|
while read f; do touch "$f"; done
|
||||||
|
;;
|
||||||
|
|
||||||
|
bison|yacc)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified a \`.y' file. You may need the \`Bison' package
|
||||||
|
in order for those modifications to take effect. You can get
|
||||||
|
\`Bison' from any GNU archive site."
|
||||||
|
rm -f y.tab.c y.tab.h
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
eval LASTARG="\${$#}"
|
||||||
|
case "$LASTARG" in
|
||||||
|
*.y)
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" y.tab.c
|
||||||
|
fi
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" y.tab.h
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if [ ! -f y.tab.h ]; then
|
||||||
|
echo >y.tab.h
|
||||||
|
fi
|
||||||
|
if [ ! -f y.tab.c ]; then
|
||||||
|
echo 'main() { return 0; }' >y.tab.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
lex|flex)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified a \`.l' file. You may need the \`Flex' package
|
||||||
|
in order for those modifications to take effect. You can get
|
||||||
|
\`Flex' from any GNU archive site."
|
||||||
|
rm -f lex.yy.c
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
eval LASTARG="\${$#}"
|
||||||
|
case "$LASTARG" in
|
||||||
|
*.l)
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" lex.yy.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if [ ! -f lex.yy.c ]; then
|
||||||
|
echo 'main() { return 0; }' >lex.yy.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
help2man)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified a dependency of a manual page. You may need the
|
||||||
|
\`Help2man' package in order for those modifications to take
|
||||||
|
effect. You can get \`Help2man' from any GNU archive site."
|
||||||
|
|
||||||
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||||
|
if test -z "$file"; then
|
||||||
|
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
||||||
|
fi
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
touch $file
|
||||||
|
else
|
||||||
|
test -z "$file" || exec >$file
|
||||||
|
echo ".ab help2man is required to generate this page"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
makeinfo)
|
||||||
|
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
|
||||||
|
# We have makeinfo, but it failed.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is missing on your system. You should only need it if
|
||||||
|
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||||
|
indirectly affecting the aspect of the manual. The spurious
|
||||||
|
call might also be the consequence of using a buggy \`make' (AIX,
|
||||||
|
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||||
|
the \`GNU make' package. Grab either from any GNU archive site."
|
||||||
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||||
|
if test -z "$file"; then
|
||||||
|
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||||
|
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
|
||||||
|
fi
|
||||||
|
touch $file
|
||||||
|
;;
|
||||||
|
|
||||||
|
tar)
|
||||||
|
shift
|
||||||
|
if test -n "$run"; then
|
||||||
|
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We have already tried tar in the generic part.
|
||||||
|
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||||
|
# messages.
|
||||||
|
if (gnutar --version > /dev/null 2>&1); then
|
||||||
|
gnutar ${1+"$@"} && exit 0
|
||||||
|
fi
|
||||||
|
if (gtar --version > /dev/null 2>&1); then
|
||||||
|
gtar ${1+"$@"} && exit 0
|
||||||
|
fi
|
||||||
|
firstarg="$1"
|
||||||
|
if shift; then
|
||||||
|
case "$firstarg" in
|
||||||
|
*o*)
|
||||||
|
firstarg=`echo "$firstarg" | sed s/o//`
|
||||||
|
tar "$firstarg" ${1+"$@"} && exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "$firstarg" in
|
||||||
|
*h*)
|
||||||
|
firstarg=`echo "$firstarg" | sed s/h//`
|
||||||
|
tar "$firstarg" ${1+"$@"} && exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||||
|
You may want to install GNU tar or Free paxutils, or check the
|
||||||
|
command line arguments."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is needed, and you do not seem to have it handy on your
|
||||||
|
system. You might have modified some files without having the
|
||||||
|
proper tools for further handling them. Check the \`README' file,
|
||||||
|
it often tells you about the needed prerequirements for installing
|
||||||
|
this package. You may also peek at any GNU archive site, in case
|
||||||
|
some other package would contain this missing \`$1' program."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
|
@ -2,30 +2,34 @@
|
||||||
# mkinstalldirs --- make directory hierarchy
|
# mkinstalldirs --- make directory hierarchy
|
||||||
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
|
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||||
# Created: 1993-05-16
|
# Created: 1993-05-16
|
||||||
# Last modified: 1994-03-25
|
|
||||||
# Public domain
|
# Public domain
|
||||||
|
|
||||||
|
# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $
|
||||||
|
|
||||||
errstatus=0
|
errstatus=0
|
||||||
|
|
||||||
for file in ${1+"$@"} ; do
|
for file
|
||||||
|
do
|
||||||
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
|
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
|
||||||
shift
|
shift
|
||||||
|
|
||||||
pathcomp=
|
pathcomp=
|
||||||
for d in ${1+"$@"} ; do
|
for d
|
||||||
|
do
|
||||||
pathcomp="$pathcomp$d"
|
pathcomp="$pathcomp$d"
|
||||||
case "$pathcomp" in
|
case "$pathcomp" in
|
||||||
-* ) pathcomp=./$pathcomp ;;
|
-* ) pathcomp=./$pathcomp ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if test ! -d "$pathcomp"; then
|
if test ! -d "$pathcomp"; then
|
||||||
echo "mkdir $pathcomp" 1>&2
|
echo "mkdir $pathcomp"
|
||||||
mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$?
|
|
||||||
fi
|
mkdir "$pathcomp" || lasterr=$?
|
||||||
|
|
||||||
if test ! -d "$pathcomp"; then
|
if test ! -d "$pathcomp"; then
|
||||||
errstatus=$lasterr
|
errstatus=$lasterr
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
pathcomp="$pathcomp/"
|
pathcomp="$pathcomp/"
|
||||||
done
|
done
|
||||||
|
|
|
@ -1 +1,4 @@
|
||||||
timestamp
|
@set UPDATED 5 January 2002
|
||||||
|
@set UPDATED-MONTH January 2002
|
||||||
|
@set EDITION 1.3.3
|
||||||
|
@set VERSION 1.3.3
|
||||||
|
|
448
stow.8
Normal file
448
stow.8
Normal file
|
@ -0,0 +1,448 @@
|
||||||
|
.TH STOW 8 "28 March 1998"
|
||||||
|
.SH NAME
|
||||||
|
stow \- software package installation manager
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B stow
|
||||||
|
.RI [ options ]
|
||||||
|
.IR package ...
|
||||||
|
.SH DESCRIPTION
|
||||||
|
This manual page describes GNU Stow 1.3.3, a program for managing the
|
||||||
|
installation of software packages. This is not the definitive
|
||||||
|
documentation for stow; for that, see the info manual.
|
||||||
|
.PP
|
||||||
|
Stow is a tool for managing the installation of multiple software
|
||||||
|
packages in the same run-time directory tree. One historical difficulty
|
||||||
|
of this task has been the need to administer, upgrade, install, and
|
||||||
|
remove files in independent packages without confusing them with other
|
||||||
|
files sharing the same filesystem space. For instance, it is common to
|
||||||
|
install Perl and Emacs in
|
||||||
|
.IR /usr/local .
|
||||||
|
When one does so, one winds up
|
||||||
|
(as of Perl 4.036 and Emacs 19.22)
|
||||||
|
with the following files in
|
||||||
|
.IR /usr/local/man/man1 :
|
||||||
|
.IR a2p.1 ;
|
||||||
|
.IR ctags.1 ;
|
||||||
|
.IR emacs.1 ;
|
||||||
|
.IR etags.1 ;
|
||||||
|
.IR h2ph.1 ;
|
||||||
|
.IR perl.1 ;
|
||||||
|
and
|
||||||
|
.IR s2p.1 .
|
||||||
|
Now
|
||||||
|
suppose it's time to uninstall Perl. Which man pages get removed?
|
||||||
|
Obviously
|
||||||
|
.I perl.1
|
||||||
|
is one of them, but it should not be the
|
||||||
|
administrator's responsibility to memorize the ownership of individual
|
||||||
|
files by separate packages.
|
||||||
|
.PP
|
||||||
|
The approach used by Stow is to install each package into its own
|
||||||
|
tree, then use symbolic links to make it appear as though the files are
|
||||||
|
installed in the common tree. Administration can be performed in the
|
||||||
|
package's private tree in isolation from clutter from other packages.
|
||||||
|
Stow can then be used to update the symbolic links. The structure of
|
||||||
|
each private tree should reflect the desired structure in the common
|
||||||
|
tree; i.e. (in the typical case) there should be a
|
||||||
|
.I bin
|
||||||
|
directory
|
||||||
|
containing executables, a
|
||||||
|
.I man/man1
|
||||||
|
directory containing section 1 man
|
||||||
|
pages, and so on.
|
||||||
|
.PP
|
||||||
|
Stow was inspired by Carnegie Mellon's Depot program, but is
|
||||||
|
substantially simpler and safer. Whereas Depot required database files
|
||||||
|
to keep things in sync, Stow stores no extra state between runs, so
|
||||||
|
there's no danger (as there was in Depot) of mangling directories when
|
||||||
|
file hierarchies don't match the database. Also unlike Depot, Stow will
|
||||||
|
never delete any files, directories, or links that appear in a Stow
|
||||||
|
directory (e.g.,
|
||||||
|
.IR /usr/local/stow/emacs ),
|
||||||
|
so it's always possible to
|
||||||
|
rebuild the target tree (e.g.,
|
||||||
|
.IR /usr/local ).
|
||||||
|
.SH TERMINOLOGY
|
||||||
|
A ``package'' is a related collection of files and directories that
|
||||||
|
you wish to administer as a unit--e.g., Perl or Emacs--and that needs
|
||||||
|
to be installed in a particular directory structure--e.g., with
|
||||||
|
.IR bin ,
|
||||||
|
.IR lib ,
|
||||||
|
and
|
||||||
|
.I man
|
||||||
|
subdirectories.
|
||||||
|
.PP
|
||||||
|
A ``target directory'' is the root of a tree in which one or more
|
||||||
|
packages wish to
|
||||||
|
.B appear
|
||||||
|
to be installed. A common, but by no means
|
||||||
|
the only such location is
|
||||||
|
.IR /usr/local .
|
||||||
|
The examples in this manual page
|
||||||
|
will use
|
||||||
|
.I /usr/local
|
||||||
|
as the target directory.
|
||||||
|
.PP
|
||||||
|
A ``stow directory'' is the root of a tree containing separate
|
||||||
|
packages in private subtrees. When Stow runs, it uses the current
|
||||||
|
directory as the default stow directory. The examples in this manual
|
||||||
|
page will use
|
||||||
|
.I /usr/local/stow
|
||||||
|
as the stow directory, so that individual
|
||||||
|
packages will be, for example,
|
||||||
|
.I /usr/local/stow/perl
|
||||||
|
and
|
||||||
|
.IR /usr/local/stow/emacs .
|
||||||
|
.PP
|
||||||
|
An ``installation image'' is the layout of files and directories
|
||||||
|
required by a package, relative to the target directory. Thus, the
|
||||||
|
installation image for Perl includes: a
|
||||||
|
.I bin
|
||||||
|
directory containing
|
||||||
|
.I perl
|
||||||
|
and
|
||||||
|
.I a2p
|
||||||
|
(among others); an
|
||||||
|
.I info
|
||||||
|
directory containing Texinfo
|
||||||
|
documentation; a
|
||||||
|
.I lib/perl
|
||||||
|
directory containing Perl libraries; and a
|
||||||
|
.I man/man1
|
||||||
|
directory containing man pages.
|
||||||
|
.PP
|
||||||
|
A ``package directory'' is the root of a tree containing the
|
||||||
|
installation image for a particular package. Each package directory
|
||||||
|
must reside in a stow directory--e.g., the package directory
|
||||||
|
.I /usr/local/stow/perl
|
||||||
|
must reside in the stow directory
|
||||||
|
.IR /usr/local/stow .
|
||||||
|
The ``name'' of a package is the name of its
|
||||||
|
directory within the stow directory--e.g.,
|
||||||
|
.IR perl .
|
||||||
|
.PP
|
||||||
|
Thus, the Perl executable might reside in
|
||||||
|
.IR /usr/local/stow/perl/bin/perl ,
|
||||||
|
where
|
||||||
|
.I /usr/local
|
||||||
|
is the target
|
||||||
|
directory,
|
||||||
|
.I /usr/local/stow
|
||||||
|
is the stow directory,
|
||||||
|
.I /usr/local/stow/perl
|
||||||
|
is the package directory, and
|
||||||
|
.I bin/perl
|
||||||
|
within
|
||||||
|
is part of the installation image.
|
||||||
|
.PP
|
||||||
|
A ``symlink'' is a symbolic link. A symlink can be ``relative'' or
|
||||||
|
``absolute''. An absolute symlink names a full path; that is, one
|
||||||
|
starting from
|
||||||
|
.IR / .
|
||||||
|
A relative symlink names a relative path; that is,
|
||||||
|
one not starting from
|
||||||
|
.IR / .
|
||||||
|
The target of a relative symlink is
|
||||||
|
computed starting from the symlink's own directory. Stow only creates
|
||||||
|
relative symlinks.
|
||||||
|
.SH OPTIONS
|
||||||
|
The stow directory is assumed to be the current directory, and the
|
||||||
|
target directory is assumed to be the parent of the current directory
|
||||||
|
(so it is typical to execute
|
||||||
|
.I stow
|
||||||
|
from the directory
|
||||||
|
.IR /usr/local/stow ).
|
||||||
|
Each
|
||||||
|
.I package
|
||||||
|
given on the command line is the name of a package in the stow
|
||||||
|
directory (e.g.,
|
||||||
|
.IR perl ).
|
||||||
|
By default, they are installed into the
|
||||||
|
target directory (but they can be deleted instead using `-D').
|
||||||
|
.TP
|
||||||
|
.I -n
|
||||||
|
.TP
|
||||||
|
.I --no
|
||||||
|
Do not perform any operations that modify the filesystem; merely
|
||||||
|
show what would happen. Since no actual operations are performed,
|
||||||
|
.I stow -n
|
||||||
|
could report conflicts when none would actually take
|
||||||
|
place (see ``Conflicts'' in the info manual);
|
||||||
|
but it won't fail to report conflicts
|
||||||
|
that
|
||||||
|
.B would
|
||||||
|
take place.
|
||||||
|
.TP
|
||||||
|
.I -c
|
||||||
|
.TP
|
||||||
|
.I --conflicts
|
||||||
|
Do not exit immediately when a conflict is encountered. This
|
||||||
|
option implies `-n', and is used to search for all conflicts that
|
||||||
|
might arise from an actual Stow operation. As with `-n', however,
|
||||||
|
false conflicts might be reported (see ``Conflicts'' in the info manual).
|
||||||
|
.TP
|
||||||
|
.I "-d DIR"
|
||||||
|
.TP
|
||||||
|
.I --dir=DIR
|
||||||
|
Set the stow directory to DIR instead of the current directory.
|
||||||
|
This also has the effect of making the default target directory be
|
||||||
|
the parent of DIR.
|
||||||
|
.TP
|
||||||
|
.I "-t DIR"
|
||||||
|
.TP
|
||||||
|
.I --target=DIR
|
||||||
|
Set the target directory to DIR instead of the parent of the stow
|
||||||
|
directory.
|
||||||
|
.TP
|
||||||
|
.I -v
|
||||||
|
.TP
|
||||||
|
.I --verbose[=N]
|
||||||
|
Send verbose output to standard error describing what Stow is
|
||||||
|
doing. Verbosity levels are 0, 1, 2, and 3; 0 is the default.
|
||||||
|
Using `-v' or `--verbose' increases the verbosity by one; using
|
||||||
|
`--verbose=N' sets it to N.
|
||||||
|
.TP
|
||||||
|
.I -D
|
||||||
|
.TP
|
||||||
|
.I --delete
|
||||||
|
Delete packages from the target directory rather than installing
|
||||||
|
them.
|
||||||
|
.TP
|
||||||
|
.I -R
|
||||||
|
.TP
|
||||||
|
.I --restow
|
||||||
|
Restow packages (first unstow, then stow again). This is useful
|
||||||
|
for pruning obsolete symlinks from the target tree after updating
|
||||||
|
the software in a package.
|
||||||
|
.TP
|
||||||
|
.I -V
|
||||||
|
.TP
|
||||||
|
.I --version
|
||||||
|
Show Stow version number, and exit.
|
||||||
|
.TP
|
||||||
|
.I -h
|
||||||
|
.TP
|
||||||
|
.I --help
|
||||||
|
Show Stow command syntax, and exit.
|
||||||
|
.SH "INSTALLING PACKAGES"
|
||||||
|
The default action of Stow is to install a package. This means
|
||||||
|
creating symlinks in the target tree that point into the package tree.
|
||||||
|
Stow attempts to do this with as few symlinks as possible; in other
|
||||||
|
words, if Stow can create a single symlink that points to an entire
|
||||||
|
subtree within the package tree, it will choose to do that rather than
|
||||||
|
create a directory in the target tree and populate it with symlinks.
|
||||||
|
.PP
|
||||||
|
For example, suppose that no packages have yet been installed in
|
||||||
|
.IR /usr/local ;
|
||||||
|
it's completely empty (except for the
|
||||||
|
.I stow
|
||||||
|
subdirectory, of course). Now suppose the Perl package is installed.
|
||||||
|
Recall that it includes the following directories in its installation
|
||||||
|
image:
|
||||||
|
.IR bin ;
|
||||||
|
.IR info ;
|
||||||
|
.IR lib/perl ;
|
||||||
|
.IR man/man1 .
|
||||||
|
Rather than creating
|
||||||
|
the directory
|
||||||
|
.I /usr/local/bin
|
||||||
|
and populating it with symlinks to
|
||||||
|
.I ../stow/perl/bin/perl
|
||||||
|
and
|
||||||
|
.I ../stow/perl/bin/a2p
|
||||||
|
(and so on), Stow
|
||||||
|
will create a single symlink,
|
||||||
|
.IR /usr/local/bin ,
|
||||||
|
which points to
|
||||||
|
.IR stow/perl/bin .
|
||||||
|
In this way, it still works to refer to
|
||||||
|
.I /usr/local/bin/perl
|
||||||
|
and
|
||||||
|
.IR /usr/local/bin/a2p ,
|
||||||
|
and fewer symlinks have
|
||||||
|
been created. This is called ``tree folding'', since an entire subtree
|
||||||
|
is ``folded'' into a single symlink.
|
||||||
|
.PP
|
||||||
|
To complete this example, Stow will also create the symlink
|
||||||
|
.I /usr/local/info
|
||||||
|
pointing to
|
||||||
|
.IR stow/perl/info ;
|
||||||
|
the symlink
|
||||||
|
.I /usr/local/lib
|
||||||
|
pointing to
|
||||||
|
.IR stow/perl/lib ;
|
||||||
|
and the symlink
|
||||||
|
.I /usr/local/man
|
||||||
|
pointing to
|
||||||
|
.IR stow/perl/man .
|
||||||
|
.PP
|
||||||
|
Now suppose that instead of installing the Perl package into an empty
|
||||||
|
target tree, the target tree is not empty to begin with. Instead, it
|
||||||
|
contains several files and directories installed under a different
|
||||||
|
system-administration philosophy. In particular,
|
||||||
|
.I /usr/local/bin
|
||||||
|
already exists and is a directory, as are
|
||||||
|
.I /usr/local/lib
|
||||||
|
and
|
||||||
|
.IR /usr/local/man/man1 .
|
||||||
|
In this case, Stow will descend into
|
||||||
|
.I /usr/local/bin
|
||||||
|
and create symlinks to
|
||||||
|
.I ../stow/perl/bin/perl
|
||||||
|
and
|
||||||
|
.I ../stow/perl/bin/a2p
|
||||||
|
(etc.), and it will descend into
|
||||||
|
.I /usr/local/lib
|
||||||
|
and create the tree-folding symlink
|
||||||
|
.I perl
|
||||||
|
pointing to
|
||||||
|
.IR ../stow/perl/lib/perl ,
|
||||||
|
and so on. As a rule, Stow only descends as
|
||||||
|
far as necessary into the target tree when it can create a tree-folding
|
||||||
|
symlink.
|
||||||
|
.PP
|
||||||
|
The time often comes when a tree-folding symlink has to be undone
|
||||||
|
because another package uses one or more of the folded subdirectories in
|
||||||
|
its installation image. This operation is called ``splitting open'' a
|
||||||
|
folded tree. It involves removing the original symlink from the target
|
||||||
|
tree, creating a true directory in its place, and then populating the
|
||||||
|
new directory with symlinks to the newly-installed package
|
||||||
|
.B and
|
||||||
|
to the
|
||||||
|
old package that used the old symlink. For example, suppose that after
|
||||||
|
installing Perl into an empty
|
||||||
|
.IR /usr/local ,
|
||||||
|
we wish to install Emacs.
|
||||||
|
Emacs's installation image includes a
|
||||||
|
.I bin
|
||||||
|
directory containing the
|
||||||
|
.I emacs
|
||||||
|
and
|
||||||
|
.I etags
|
||||||
|
executables, among others. Stow must make these
|
||||||
|
files appear to be installed in
|
||||||
|
.IR /usr/local/bin ,
|
||||||
|
but presently
|
||||||
|
.I /usr/local/bin
|
||||||
|
is a symlink to
|
||||||
|
.IR stow/perl/bin .
|
||||||
|
Stow therefore takes
|
||||||
|
the following steps: the symlink
|
||||||
|
.I /usr/local/bin
|
||||||
|
is deleted; the
|
||||||
|
directory
|
||||||
|
.I /usr/local/bin
|
||||||
|
is created; links are made from
|
||||||
|
.I /usr/local/bin
|
||||||
|
to
|
||||||
|
.I ../stow/emacs/bin/emacs
|
||||||
|
and
|
||||||
|
.IR ../stow/emacs/bin/etags ;
|
||||||
|
and links are made from
|
||||||
|
.I /usr/local/bin
|
||||||
|
to
|
||||||
|
.I ../stow/perl/bin/perl
|
||||||
|
and
|
||||||
|
.IR ../stow/perl/bin/a2p .
|
||||||
|
.PP
|
||||||
|
When splitting open a folded tree, Stow makes sure that the symlink
|
||||||
|
it is about to remove points inside a valid package in the current stow
|
||||||
|
directory.
|
||||||
|
.BR "Stow will never delete anything that it doesn't own" .
|
||||||
|
Stow ``owns'' everything living in the target tree that points into a
|
||||||
|
package in the stow directory. Anything Stow owns, it can recompute if
|
||||||
|
lost. Note that by this definition, Stow doesn't ``own'' anything
|
||||||
|
.B in
|
||||||
|
the stow directory or in any of the packages.
|
||||||
|
.PP
|
||||||
|
If Stow needs to create a directory or a symlink in the target tree
|
||||||
|
and it cannot because that name is already in use and is not owned by
|
||||||
|
Stow, then a conflict has arisen. See ``Conflicts'' in the info manual.
|
||||||
|
.SH "DELETING PACKAGES"
|
||||||
|
When the `-D' option is given, the action of Stow is to delete a
|
||||||
|
package from the target tree. Note that Stow will not delete anything
|
||||||
|
it doesn't ``own''. Deleting a package does
|
||||||
|
.B not
|
||||||
|
mean removing it from
|
||||||
|
the stow directory or discarding the package tree.
|
||||||
|
.PP
|
||||||
|
To delete a package, Stow recursively scans the target tree,
|
||||||
|
skipping over the stow directory (since that is usually a subdirectory
|
||||||
|
of the target tree) and any other stow directories it encounters (see
|
||||||
|
``Multiple stow directories'' in the info manual). Any symlink it finds that points into
|
||||||
|
the package being deleted is removed. Any directory that contained
|
||||||
|
only symlinks to the package being deleted is removed. Any directory
|
||||||
|
that, after removing symlinks and empty subdirectories, contains only
|
||||||
|
symlinks to a single other package, is considered to be a previously
|
||||||
|
``folded'' tree that was ``split open.'' Stow will re-fold the tree by
|
||||||
|
removing the symlinks to the surviving package, removing the directory,
|
||||||
|
then linking the directory back to the surviving package.
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
The info manual ``Stow 1.3.3:
|
||||||
|
Managing the installation of software packages''
|
||||||
|
by Bob Glickstein, Zanshin Software, Inc.
|
||||||
|
.SH BUGS
|
||||||
|
Please report bugs in Stow using the Debian bug tracking system.
|
||||||
|
.PP
|
||||||
|
Currently known bugs include:
|
||||||
|
.IP *
|
||||||
|
The empty-directory problem. If package FOO includes an empty
|
||||||
|
directory--say, FOO/BAR--then:
|
||||||
|
.IP
|
||||||
|
1.
|
||||||
|
if no other package has a BAR subdirectory, everything's fine.
|
||||||
|
.IP
|
||||||
|
2.
|
||||||
|
if another stowed package, QUUX, has a BAR subdirectory, then
|
||||||
|
when stowing, TARGETDIR/BAR will be ``split open'' and the
|
||||||
|
contents of QUUX/BAR will be individually stowed. So far, so
|
||||||
|
good. But when unstowing QUUX, TARGETDIR/BAR will be
|
||||||
|
removed, even though FOO/BAR needs it to remain. A
|
||||||
|
workaround for this problem is to create a file in FOO/BAR as
|
||||||
|
a placeholder. If you name that file
|
||||||
|
.IR .placeholder ,
|
||||||
|
it will
|
||||||
|
be easy to find and remove such files when this bug is fixed.
|
||||||
|
.IP *
|
||||||
|
When using multiple stow directories (see ``Multiple stow
|
||||||
|
directories'' in the info manual), Stow fails to ``split open'' tree-folding symlinks
|
||||||
|
(see ``Installing packages'' in the info manual) that point into a stow directory
|
||||||
|
which is not the one in use by the current Stow command. Before
|
||||||
|
failing, it should search the target of the link to see whether
|
||||||
|
any element of the path contains a
|
||||||
|
.I .stow
|
||||||
|
file. If it finds one,
|
||||||
|
it can ``learn'' about the cooperating stow directory to
|
||||||
|
short-circuit the
|
||||||
|
.I .stow
|
||||||
|
search the next time it encounters a
|
||||||
|
tree-folding symlink.
|
||||||
|
.SH AUTHOR
|
||||||
|
This man page was constructed by Charles Briscoe-Smith from
|
||||||
|
parts of Stow's info manual. That manual contained the following
|
||||||
|
notice, which, as it says, applied to this manual page, too. The text
|
||||||
|
of the section entitled ``GNU General Public License'' can be found in
|
||||||
|
the file
|
||||||
|
.I /usr/share/common-licenses/GPL
|
||||||
|
on any Debian GNU/Linux system. If you don't have access to a Debian
|
||||||
|
system, or the GPL is not there, write to the Free Software Foundation,
|
||||||
|
Inc., 59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA.
|
||||||
|
.IP
|
||||||
|
Software and documentation Copyright (C) 1993, 1994, 1995, 1996 by
|
||||||
|
Bob Glickstein <bobg+stow@zanshin.com>.
|
||||||
|
.IP
|
||||||
|
Permission is granted to make and distribute verbatim copies of this
|
||||||
|
manual provided the copyright notice and this permission notice are
|
||||||
|
preserved on all copies.
|
||||||
|
.IP
|
||||||
|
Permission is granted to copy and distribute modified versions of
|
||||||
|
this manual under the conditions for verbatim copying, provided also
|
||||||
|
that the section entitled ``GNU General Public License'' is included with
|
||||||
|
the modified manual, and provided that the entire resulting derived
|
||||||
|
work is distributed under the terms of a permission notice identical to
|
||||||
|
this one.
|
||||||
|
.IP
|
||||||
|
Permission is granted to copy and distribute translations of this
|
||||||
|
manual into another language, under the above conditions for modified
|
||||||
|
versions, except that this permission notice may be stated in a
|
||||||
|
translation approved by the Free Software Foundation.
|
91
stow.in
91
stow.in
|
@ -1,7 +1,8 @@
|
||||||
#!@PERL@
|
#!@PERL@
|
||||||
|
|
||||||
# GNU Stow - manage the installation of multiple software packages
|
# GNU Stow - manage the installation of multiple software packages
|
||||||
# Copyright 1993, 1994, 1995, 1996 by Bob Glickstein
|
# Copyright (C) 1993, 1994, 1995, 1996 by Bob Glickstein
|
||||||
|
# Copyright (C) 2000,2001 Guillaume Morin
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -16,6 +17,14 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
#
|
||||||
|
# $Id: stow.in,v 1.8 2002/01/05 11:27:01 gmorin Exp $
|
||||||
|
# $Source: /cvsroot/stow/stow/stow.in,v $
|
||||||
|
# $Date: 2002/01/05 11:27:01 $
|
||||||
|
# $Author: gmorin $
|
||||||
|
|
||||||
|
require 5.005;
|
||||||
|
use POSIX;
|
||||||
|
|
||||||
$ProgramName = $0;
|
$ProgramName = $0;
|
||||||
$ProgramName =~ s,.*/,,;
|
$ProgramName =~ s,.*/,,;
|
||||||
|
@ -27,10 +36,12 @@ $Delete = 0;
|
||||||
$NotReally = 0;
|
$NotReally = 0;
|
||||||
$Verbose = 0;
|
$Verbose = 0;
|
||||||
$ReportHelp = 0;
|
$ReportHelp = 0;
|
||||||
$Stow = &fastcwd;
|
$Stow = undef;
|
||||||
$Target = undef;
|
$Target = undef;
|
||||||
$Restow = 0;
|
$Restow = 0;
|
||||||
|
|
||||||
|
|
||||||
|
# FIXME: use Getopt::Long
|
||||||
while (@ARGV && ($_ = $ARGV[0]) && /^-/) {
|
while (@ARGV && ($_ = $ARGV[0]) && /^-/) {
|
||||||
$opt = $';
|
$opt = $';
|
||||||
shift;
|
shift;
|
||||||
|
@ -105,10 +116,21 @@ while (@ARGV && ($_ = $ARGV[0]) && /^-/) {
|
||||||
|
|
||||||
&usage("No packages named") unless @ARGV;
|
&usage("No packages named") unless @ARGV;
|
||||||
|
|
||||||
|
# Changing dirs helps a lot when soft links are used
|
||||||
|
$current_dir = &getcwd;
|
||||||
|
if ($Stow) {
|
||||||
|
chdir($Stow) || die "Cannot chdir to target tree $Stow ($!)\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
# This prevents problems if $Target was supplied as a relative path
|
||||||
|
$Stow = &getcwd;
|
||||||
|
|
||||||
|
chdir($current_dir) || die "Your directory does not seem to exist anymore ($!)\n";
|
||||||
|
|
||||||
$Target = &parent($Stow) unless $Target;
|
$Target = &parent($Stow) unless $Target;
|
||||||
|
|
||||||
chdir($Target) || die "Cannot chdir to target tree $Target ($!)\n";
|
chdir($Target) || die "Cannot chdir to target tree $Target ($!)\n";
|
||||||
$Target = &fastcwd;
|
$Target = &getcwd;
|
||||||
|
|
||||||
foreach $package (@ARGV) {
|
foreach $package (@ARGV) {
|
||||||
$package =~ s,/+$,,; # delete trailing slashes
|
$package =~ s,/+$,,; # delete trailing slashes
|
||||||
|
@ -142,6 +164,9 @@ sub CommonParent {
|
||||||
$result;
|
$result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Find the relative patch between
|
||||||
|
# two paths given as arguments.
|
||||||
|
|
||||||
sub RelativePath {
|
sub RelativePath {
|
||||||
local($a, $b) = @_;
|
local($a, $b) = @_;
|
||||||
local($c) = &CommonParent($a, $b);
|
local($c) = &CommonParent($a, $b);
|
||||||
|
@ -149,12 +174,20 @@ sub RelativePath {
|
||||||
local(@b) = split(/\/+/, $b);
|
local(@b) = split(/\/+/, $b);
|
||||||
local(@c) = split(/\/+/, $c);
|
local(@c) = split(/\/+/, $c);
|
||||||
|
|
||||||
splice(@a, 0, @c + 0);
|
# if $c == "/something", scalar(@c) >= 2
|
||||||
splice(@b, 0, @c + 0);
|
# but if $c == "/", scalar(@c) == 0
|
||||||
|
# but we want 1
|
||||||
|
my $length = scalar(@c) ? scalar(@c) : 1;
|
||||||
|
splice(@a, 0, $length);
|
||||||
|
splice(@b, 0, $length);
|
||||||
|
|
||||||
unshift(@b, (('..') x (@a + 0)));
|
unshift(@b, (('..') x (@a + 0)));
|
||||||
&JoinPaths(@b);
|
&JoinPaths(@b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Basically concatenates the paths given
|
||||||
|
# as arguments
|
||||||
|
|
||||||
sub JoinPaths {
|
sub JoinPaths {
|
||||||
local(@paths, @parts);
|
local(@paths, @parts);
|
||||||
local ($x, $y);
|
local ($x, $y);
|
||||||
|
@ -164,7 +197,7 @@ sub JoinPaths {
|
||||||
foreach $x (@_) {
|
foreach $x (@_) {
|
||||||
@parts = split(/\/+/, $x);
|
@parts = split(/\/+/, $x);
|
||||||
foreach $y (@parts) {
|
foreach $y (@parts) {
|
||||||
push(@paths, $y) if $y;
|
push(@paths, $y) if ($y ne "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$result .= join('/', @paths);
|
$result .= join('/', @paths);
|
||||||
|
@ -178,18 +211,21 @@ sub Unstow {
|
||||||
local(@stowmember);
|
local(@stowmember);
|
||||||
local($pure, $othercollection) = (1, '');
|
local($pure, $othercollection) = (1, '');
|
||||||
local($subpure, $subother);
|
local($subpure, $subother);
|
||||||
|
local($empty) = (1);
|
||||||
local(@puresubdirs);
|
local(@puresubdirs);
|
||||||
|
|
||||||
return (0, '') if (&JoinPaths($Target, $targetdir) eq $Stow);
|
return (0, '') if (&JoinPaths($Target, $targetdir) eq $Stow);
|
||||||
return (0, '') if (-e &JoinPaths($Target, $targetdir, '.stow'));
|
return (0, '') if (-e &JoinPaths($Target, $targetdir, '.stow'));
|
||||||
warn sprintf("Unstowing in %s\n", &JoinPaths($Target, $targetdir))
|
warn sprintf("Unstowing in %s\n", &JoinPaths($Target, $targetdir))
|
||||||
if ($Verbose > 1);
|
if ($Verbose > 1);
|
||||||
opendir(DIR, &JoinPaths($Target, $targetdir)) ||
|
if (!opendir(DIR, &JoinPaths($Target, $targetdir))) {
|
||||||
die "$ProgramName: Cannot read directory \"$dir\" ($!)\n";
|
warn "Warning: $ProgramName: Cannot read directory \"$dir\" ($!). Stow might leave some links. If you think, it does. Rerun Stow with appropriate rights.\n";
|
||||||
|
}
|
||||||
@contents = readdir(DIR);
|
@contents = readdir(DIR);
|
||||||
closedir(DIR);
|
closedir(DIR);
|
||||||
foreach $content (@contents) {
|
foreach $content (@contents) {
|
||||||
next if (($content eq '.') || ($content eq '..'));
|
next if (($content eq '.') || ($content eq '..'));
|
||||||
|
$empty = 0;
|
||||||
if (-l &JoinPaths($Target, $targetdir, $content)) {
|
if (-l &JoinPaths($Target, $targetdir, $content)) {
|
||||||
($linktarget = readlink(&JoinPaths($Target,
|
($linktarget = readlink(&JoinPaths($Target,
|
||||||
$targetdir,
|
$targetdir,
|
||||||
|
@ -240,6 +276,9 @@ sub Unstow {
|
||||||
$pure = 0;
|
$pure = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
# This directory was an initially empty directory therefore
|
||||||
|
# We do not remove it.
|
||||||
|
$pure = 0 if $empty;
|
||||||
if ((!$pure || !$targetdir) && @puresubdirs) {
|
if ((!$pure || !$targetdir) && @puresubdirs) {
|
||||||
&CoalesceTrees($targetdir, $stow, @puresubdirs);
|
&CoalesceTrees($targetdir, $stow, @puresubdirs);
|
||||||
}
|
}
|
||||||
|
@ -501,42 +540,6 @@ sub version {
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
# This is from Perl 4's fastcwd.pl, by John Bazik.
|
|
||||||
#
|
|
||||||
# Usage: $cwd = &fastcwd;
|
|
||||||
#
|
|
||||||
# This is a faster version of getcwd. It's also more dangerous
|
|
||||||
# because you might chdir out of a directory that you can't chdir back
|
|
||||||
# into.
|
|
||||||
|
|
||||||
sub fastcwd {
|
|
||||||
local($odev, $oino, $cdev, $cino, $tdev, $tino);
|
|
||||||
local(@path, $path);
|
|
||||||
local(*DIR);
|
|
||||||
|
|
||||||
($cdev, $cino) = stat('.');
|
|
||||||
for (;;) {
|
|
||||||
($odev, $oino) = ($cdev, $cino);
|
|
||||||
chdir('..');
|
|
||||||
($cdev, $cino) = stat('.');
|
|
||||||
last if $odev == $cdev && $oino == $cino;
|
|
||||||
opendir(DIR, '.');
|
|
||||||
for (;;) {
|
|
||||||
$_ = readdir(DIR);
|
|
||||||
next if $_ eq '.';
|
|
||||||
next if $_ eq '..';
|
|
||||||
|
|
||||||
last unless $_;
|
|
||||||
($tdev, $tino) = lstat($_);
|
|
||||||
last unless $tdev != $odev || $tino != $oino;
|
|
||||||
}
|
|
||||||
closedir(DIR);
|
|
||||||
unshift(@path, $_);
|
|
||||||
}
|
|
||||||
chdir($path = '/' . join('/', @path));
|
|
||||||
$path;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# mode: perl
|
# mode: perl
|
||||||
# End:
|
# End:
|
||||||
|
|
114
stow.info
114
stow.info
|
@ -1,11 +1,17 @@
|
||||||
This is Info file ./stow.info, produced by Makeinfo version 1.67 from
|
Ceci est le fichier Info stow.info, produit par Makeinfo version 4.0b à
|
||||||
the input file stow.texi.
|
partir stow.texi.
|
||||||
|
|
||||||
This file describes GNU Stow version 1.3.2, a program for managing
|
INFO-DIR-SECTION Administration
|
||||||
|
START-INFO-DIR-ENTRY
|
||||||
|
* Stow: (stow). GNU Stow.
|
||||||
|
END-INFO-DIR-ENTRY
|
||||||
|
|
||||||
|
This file describes GNU Stow version 1.3.3, a program for managing
|
||||||
the installation of software packages.
|
the installation of software packages.
|
||||||
|
|
||||||
Software and documentation Copyright (C) 1993, 1994, 1995, 1996 by
|
Software and documentation Copyright (C) 1993, 1994, 1995, 1996 by
|
||||||
Bob Glickstein <bobg+stow@zanshin.com>.
|
Bob Glickstein <bobg+stow@zanshin.com>. Copyright (C) 2000,2001
|
||||||
|
Guillaume Morin <gmorin@gnu.org>
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of this
|
Permission is granted to make and distribute verbatim copies of this
|
||||||
manual provided the copyright notice and this permission notice are
|
manual provided the copyright notice and this permission notice are
|
||||||
|
@ -26,7 +32,7 @@ translation approved by the Free Software Foundation.
|
||||||
|
|
||||||
File: stow.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
|
File: stow.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
|
||||||
|
|
||||||
This manual describes GNU Stow 1.3.2, a program for managing the
|
This manual describes GNU Stow 1.3.3, a program for managing the
|
||||||
installation of software packages.
|
installation of software packages.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
@ -43,7 +49,7 @@ installation of software packages.
|
||||||
* GNU General Public License:: Copying terms.
|
* GNU General Public License:: Copying terms.
|
||||||
* Index:: Index of concepts.
|
* Index:: Index of concepts.
|
||||||
|
|
||||||
-- The Detailed Node Listing --
|
--- The Detailed Node Listing ---
|
||||||
|
|
||||||
Caveats
|
Caveats
|
||||||
|
|
||||||
|
@ -97,7 +103,7 @@ directory (e.g., `/usr/local/stow/emacs'), so it's always possible to
|
||||||
rebuild the target tree (e.g., `/usr/local').
|
rebuild the target tree (e.g., `/usr/local').
|
||||||
|
|
||||||
For information about the latest version of Stow, you can refer to
|
For information about the latest version of Stow, you can refer to
|
||||||
http://www.gnu.ai.mit.edu/software/stow/stow.html.
|
http://www.gnu.org/software/stow/.
|
||||||
|
|
||||||
---------- Footnotes ----------
|
---------- Footnotes ----------
|
||||||
|
|
||||||
|
@ -115,7 +121,7 @@ to be installed in a particular directory structure--e.g., with `bin',
|
||||||
`lib', and `man' subdirectories.
|
`lib', and `man' subdirectories.
|
||||||
|
|
||||||
A "target directory" is the root of a tree in which one or more
|
A "target directory" is the root of a tree in which one or more
|
||||||
packages wish to *appear* to be installed. A common, but by no means
|
packages wish to _appear_ to be installed. A common, but by no means
|
||||||
the only such location is `/usr/local'. The examples in this manual
|
the only such location is `/usr/local'. The examples in this manual
|
||||||
will use `/usr/local' as the target directory.
|
will use `/usr/local' as the target directory.
|
||||||
|
|
||||||
|
@ -177,15 +183,15 @@ target directory (but they can be deleted instead using `-D').
|
||||||
Do not perform any operations that modify the filesystem; merely
|
Do not perform any operations that modify the filesystem; merely
|
||||||
show what would happen. Since no actual operations are performed,
|
show what would happen. Since no actual operations are performed,
|
||||||
`stow -n' could report conflicts when none would actually take
|
`stow -n' could report conflicts when none would actually take
|
||||||
place (*note Conflicts::.); but it won't fail to report conflicts
|
place (*note Conflicts::); but it won't fail to report conflicts
|
||||||
that *would* take place.
|
that _would_ take place.
|
||||||
|
|
||||||
`-c'
|
`-c'
|
||||||
`--conflicts'
|
`--conflicts'
|
||||||
Do not exit immediately when a conflict is encountered. This
|
Do not exit immediately when a conflict is encountered. This
|
||||||
option implies `-n', and is used to search for all conflicts that
|
option implies `-n', and is used to search for all conflicts that
|
||||||
might arise from an actual Stow operation. As with `-n', however,
|
might arise from an actual Stow operation. As with `-n', however,
|
||||||
false conflicts might be reported (*note Conflicts::.).
|
false conflicts might be reported (*note Conflicts::).
|
||||||
|
|
||||||
`-d DIR'
|
`-d DIR'
|
||||||
`--dir=DIR'
|
`--dir=DIR'
|
||||||
|
@ -273,7 +279,7 @@ because another package uses one or more of the folded subdirectories in
|
||||||
its installation image. This operation is called "splitting open" a
|
its installation image. This operation is called "splitting open" a
|
||||||
folded tree. It involves removing the original symlink from the target
|
folded tree. It involves removing the original symlink from the target
|
||||||
tree, creating a true directory in its place, and then populating the
|
tree, creating a true directory in its place, and then populating the
|
||||||
new directory with symlinks to the newly-installed package *and* to the
|
new directory with symlinks to the newly-installed package _and_ to the
|
||||||
old package that used the old symlink. For example, suppose that after
|
old package that used the old symlink. For example, suppose that after
|
||||||
installing Perl into an empty `/usr/local', we wish to install Emacs.
|
installing Perl into an empty `/usr/local', we wish to install Emacs.
|
||||||
Emacs's installation image includes a `bin' directory containing the
|
Emacs's installation image includes a `bin' directory containing the
|
||||||
|
@ -288,10 +294,10 @@ directory `/usr/local/bin' is created; links are made from
|
||||||
|
|
||||||
When splitting open a folded tree, Stow makes sure that the symlink
|
When splitting open a folded tree, Stow makes sure that the symlink
|
||||||
it is about to remove points inside a valid package in the current stow
|
it is about to remove points inside a valid package in the current stow
|
||||||
directory. *Stow will never delete anything that it doesn't own*.
|
directory. _Stow will never delete anything that it doesn't own_.
|
||||||
Stow "owns" everything living in the target tree that points into a
|
Stow "owns" everything living in the target tree that points into a
|
||||||
package in the stow directory. Anything Stow owns, it can recompute if
|
package in the stow directory. Anything Stow owns, it can recompute if
|
||||||
lost. Note that by this definition, Stow doesn't "own" anything *in*
|
lost. Note that by this definition, Stow doesn't "own" anything _in_
|
||||||
the stow directory or in any of the packages.
|
the stow directory or in any of the packages.
|
||||||
|
|
||||||
If Stow needs to create a directory or a symlink in the target tree
|
If Stow needs to create a directory or a symlink in the target tree
|
||||||
|
@ -306,13 +312,13 @@ Deleting packages
|
||||||
|
|
||||||
When the `-D' option is given, the action of Stow is to delete a
|
When the `-D' option is given, the action of Stow is to delete a
|
||||||
package from the target tree. Note that Stow will not delete anything
|
package from the target tree. Note that Stow will not delete anything
|
||||||
it doesn't "own". Deleting a package does *not* mean removing it from
|
it doesn't "own". Deleting a package does _not_ mean removing it from
|
||||||
the stow directory or discarding the package tree.
|
the stow directory or discarding the package tree.
|
||||||
|
|
||||||
To delete a package, Stow recursively scans the target tree,
|
To delete a package, Stow recursively scans the target tree,
|
||||||
skipping over the stow directory (since that is usually a subdirectory
|
skipping over the stow directory (since that is usually a subdirectory
|
||||||
of the target tree) and any other stow directories it encounters (*note
|
of the target tree) and any other stow directories it encounters (*note
|
||||||
Multiple stow directories::.). Any symlink it finds that points into
|
Multiple stow directories::). Any symlink it finds that points into
|
||||||
the package being deleted is removed. Any directory that contained
|
the package being deleted is removed. Any directory that contained
|
||||||
only symlinks to the package being deleted is removed. Any directory
|
only symlinks to the package being deleted is removed. Any directory
|
||||||
that, after removing symlinks and empty subdirectories, contains only
|
that, after removing symlinks and empty subdirectories, contains only
|
||||||
|
@ -421,7 +427,7 @@ GNU Emacs
|
||||||
|
|
||||||
Although the Free Software Foundation has many enlightened practices
|
Although the Free Software Foundation has many enlightened practices
|
||||||
regarding Makefiles and software installation (see *note Other FSF
|
regarding Makefiles and software installation (see *note Other FSF
|
||||||
software::.), Emacs, its flagship program, doesn't quite follow the
|
software::), Emacs, its flagship program, doesn't quite follow the
|
||||||
rules. In particular, most GNU software allows you to write:
|
rules. In particular, most GNU software allows you to write:
|
||||||
|
|
||||||
make
|
make
|
||||||
|
@ -479,7 +485,7 @@ are `gdb', `gnats', and `dejagnu'.
|
||||||
|
|
||||||
Cygnus packages have the peculiarity that each one unpacks into a
|
Cygnus packages have the peculiarity that each one unpacks into a
|
||||||
directory tree with a generic top-level Makefile, which is set up to
|
directory tree with a generic top-level Makefile, which is set up to
|
||||||
compile *all* of Cygnus' packages, any number of which may reside under
|
compile _all_ of Cygnus' packages, any number of which may reside under
|
||||||
the top-level directory. In other words, even if you're only building
|
the top-level directory. In other words, even if you're only building
|
||||||
`gnats', the top-level Makefile will look for, and try to build, `gdb'
|
`gnats', the top-level Makefile will look for, and try to build, `gdb'
|
||||||
and `dejagnu' subdirectories, among many others.
|
and `dejagnu' subdirectories, among many others.
|
||||||
|
@ -518,7 +524,7 @@ Depot, not from AFS.
|
||||||
|
|
||||||
The result of this confusion is that Perl 5's configuration script
|
The result of this confusion is that Perl 5's configuration script
|
||||||
doesn't even offer the option of separating install-time and run-time
|
doesn't even offer the option of separating install-time and run-time
|
||||||
trees *unless* you're running AFS. Fortunately, after you've entered
|
trees _unless_ you're running AFS. Fortunately, after you've entered
|
||||||
all the configuration settings, Perl's setup script gives you the
|
all the configuration settings, Perl's setup script gives you the
|
||||||
opportunity to edit those settings in a file called `config.sh'. When
|
opportunity to edit those settings in a file called `config.sh'. When
|
||||||
prompted, you should edit this file and replace occurrences of
|
prompted, you should edit this file and replace occurrences of
|
||||||
|
@ -572,7 +578,7 @@ Perl 5 extensions. This way, it's easy to tell at a glance which of
|
||||||
the subdirectories of `/usr/local/stow' are Perl 5 extensions.
|
the subdirectories of `/usr/local/stow' are Perl 5 extensions.
|
||||||
|
|
||||||
When you stow separate Perl 5 modules separately, you are likely to
|
When you stow separate Perl 5 modules separately, you are likely to
|
||||||
encounter conflicts (*note Conflicts::.) with files named `.exists' and
|
encounter conflicts (*note Conflicts::) with files named `.exists' and
|
||||||
`perllocal.pod'. One way to work around this is to remove those files
|
`perllocal.pod'. One way to work around this is to remove those files
|
||||||
before stowing the module. If you use the `cpan.MODULE' naming
|
before stowing the module. If you use the `cpan.MODULE' naming
|
||||||
convention, you can simply do this:
|
convention, you can simply do this:
|
||||||
|
@ -592,10 +598,10 @@ software separately, or if there is any other reason to want two or more
|
||||||
stow directories, it can be done by creating a file named `.stow' in
|
stow directories, it can be done by creating a file named `.stow' in
|
||||||
each stow directory. The presence of `/usr/local/foo/.stow' informs
|
each stow directory. The presence of `/usr/local/foo/.stow' informs
|
||||||
Stow that, though `foo' is not the current stow directory, and though
|
Stow that, though `foo' is not the current stow directory, and though
|
||||||
it is a subdirectory of the target directory, nevertheless it is *a*
|
it is a subdirectory of the target directory, nevertheless it is _a_
|
||||||
stow directory and as such Stow doesn't "own" anything in it (*note
|
stow directory and as such Stow doesn't "own" anything in it (*note
|
||||||
Installing packages::.). This will protect the contents of `foo' from
|
Installing packages::). This will protect the contents of `foo' from a
|
||||||
a `stow -D', for instance.
|
`stow -D', for instance.
|
||||||
|
|
||||||
When multiple stow directories share a target tree, the effectiveness
|
When multiple stow directories share a target tree, the effectiveness
|
||||||
of Stow is reduced. If a tree-folding symlink is encountered and needs
|
of Stow is reduced. If a tree-folding symlink is encountered and needs
|
||||||
|
@ -682,7 +688,7 @@ mail. The address to use is `<bobg+stow@zanshin.com>'. Please include:
|
||||||
Before reporting a bug, please read the manual carefully, especially
|
Before reporting a bug, please read the manual carefully, especially
|
||||||
*Note Known bugs::, and *Note Caveats::, to see whether you're
|
*Note Known bugs::, and *Note Caveats::, to see whether you're
|
||||||
encountering something that doesn't need reporting, such as a "false
|
encountering something that doesn't need reporting, such as a "false
|
||||||
conflict" (*note Conflicts::.).
|
conflict" (*note Conflicts::).
|
||||||
|
|
||||||
|
|
||||||
File: stow.info, Node: Known bugs, Next: GNU General Public License, Prev: Reporting bugs, Up: Top
|
File: stow.info, Node: Known bugs, Next: GNU General Public License, Prev: Reporting bugs, Up: Top
|
||||||
|
@ -690,23 +696,9 @@ File: stow.info, Node: Known bugs, Next: GNU General Public License, Prev: Re
|
||||||
Known bugs
|
Known bugs
|
||||||
**********
|
**********
|
||||||
|
|
||||||
* The empty-directory problem. If package FOO includes an empty
|
|
||||||
directory--say, FOO/BAR--then:
|
|
||||||
|
|
||||||
1. if no other package has a BAR subdirectory, everything's fine.
|
|
||||||
|
|
||||||
2. if another stowed package, QUUX, has a BAR subdirectory, then
|
|
||||||
when stowing, TARGETDIR/BAR will be "split open" and the
|
|
||||||
contents of QUUX/BAR will be individually stowed. So far, so
|
|
||||||
good. But when unstowing QUUX, TARGETDIR/BAR will be
|
|
||||||
removed, even though FOO/BAR needs it to remain. A
|
|
||||||
workaround for this problem is to create a file in FOO/BAR as
|
|
||||||
a placeholder. If you name that file `.placeholder', it will
|
|
||||||
be easy to find and remove such files when this bug is fixed.
|
|
||||||
|
|
||||||
* When using multiple stow directories (*note Multiple stow
|
* When using multiple stow directories (*note Multiple stow
|
||||||
directories::.), Stow fails to "split open" tree-folding symlinks
|
directories::), Stow fails to "split open" tree-folding symlinks
|
||||||
(*note Installing packages::.) that point into a stow directory
|
(*note Installing packages::) that point into a stow directory
|
||||||
which is not the one in use by the current Stow command. Before
|
which is not the one in use by the current Stow command. Before
|
||||||
failing, it should search the target of the link to see whether
|
failing, it should search the target of the link to see whether
|
||||||
any element of the path contains a `.stow' file. If it finds one,
|
any element of the path contains a `.stow' file. If it finds one,
|
||||||
|
@ -721,7 +713,6 @@ GNU General Public License
|
||||||
**************************
|
**************************
|
||||||
|
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
675 Mass Ave, Cambridge, MA 02139, USA
|
675 Mass Ave, Cambridge, MA 02139, USA
|
||||||
|
|
||||||
|
@ -780,7 +771,6 @@ patent must be licensed for everyone's free use or not licensed at all.
|
||||||
modification follow.
|
modification follow.
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains a
|
0. This License applies to any program or other work which contains a
|
||||||
notice placed by the copyright holder saying it may be distributed
|
notice placed by the copyright holder saying it may be distributed
|
||||||
under the terms of this General Public License. The "Program",
|
under the terms of this General Public License. The "Program",
|
||||||
|
@ -1108,24 +1098,26 @@ Index
|
||||||
|
|
||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top1103
|
Node: Top1264
|
||||||
Node: Introduction2273
|
Node: Introduction2436
|
||||||
Node: Terminology4480
|
Ref: Introduction-Footnote-14584
|
||||||
Node: Invoking Stow6830
|
Node: Terminology4626
|
||||||
Node: Installing packages9026
|
Node: Invoking Stow6976
|
||||||
Node: Deleting packages13143
|
Node: Installing packages9170
|
||||||
Node: Caveats14294
|
Node: Deleting packages13287
|
||||||
Node: Compile-time and install-time14661
|
Node: Caveats14437
|
||||||
Node: GNU Emacs17963
|
Node: Compile-time and install-time14804
|
||||||
Node: Other FSF software19013
|
Node: GNU Emacs18106
|
||||||
Node: Cygnus software19769
|
Ref: GNU Emacs-Footnote-119090
|
||||||
Node: Perl and Perl 5 modules21242
|
Node: Other FSF software19154
|
||||||
Node: Multiple stow directories24792
|
Node: Cygnus software19910
|
||||||
Node: Conflicts25941
|
Node: Perl and Perl 5 modules21383
|
||||||
Node: Bootstrapping27099
|
Node: Multiple stow directories24932
|
||||||
Node: Reporting bugs27856
|
Node: Conflicts26080
|
||||||
Node: Known bugs28737
|
Node: Bootstrapping27238
|
||||||
Node: GNU General Public License30169
|
Node: Reporting bugs27995
|
||||||
Node: Index49343
|
Node: Known bugs28875
|
||||||
|
Node: GNU General Public License29572
|
||||||
|
Node: Index48744
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|
26
stow.texi
26
stow.texi
|
@ -7,6 +7,10 @@
|
||||||
@c @setchapternewpage odd
|
@c @setchapternewpage odd
|
||||||
@c @footnotestyle separate
|
@c @footnotestyle separate
|
||||||
@c %**end of header
|
@c %**end of header
|
||||||
|
@dircategory Administration
|
||||||
|
@direntry
|
||||||
|
* Stow: (stow). GNU Stow.
|
||||||
|
@end direntry
|
||||||
|
|
||||||
@include version.texi
|
@include version.texi
|
||||||
|
|
||||||
|
@ -16,6 +20,7 @@ managing the installation of software packages.
|
||||||
|
|
||||||
Software and documentation Copyright @copyright{} 1993, 1994, 1995, 1996
|
Software and documentation Copyright @copyright{} 1993, 1994, 1995, 1996
|
||||||
by Bob Glickstein <bobg+stow@@zanshin.com>.
|
by Bob Glickstein <bobg+stow@@zanshin.com>.
|
||||||
|
Copyright @copyright{} 2000,2001 Guillaume Morin <gmorin@@gnu.org>
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of this
|
Permission is granted to make and distribute verbatim copies of this
|
||||||
manual provided the copyright notice and this permission notice are
|
manual provided the copyright notice and this permission notice are
|
||||||
|
@ -143,7 +148,7 @@ directory (e.g., @file{/usr/local/stow/emacs}), so it's always possible
|
||||||
to rebuild the target tree (e.g., @file{/usr/local}).
|
to rebuild the target tree (e.g., @file{/usr/local}).
|
||||||
|
|
||||||
For information about the latest version of Stow, you can refer to
|
For information about the latest version of Stow, you can refer to
|
||||||
http://www.gnu.ai.mit.edu/software/stow/stow.html.
|
http://www.gnu.org/software/stow/.
|
||||||
|
|
||||||
@node Terminology, Invoking Stow, Introduction, Top
|
@node Terminology, Invoking Stow, Introduction, Top
|
||||||
@chapter Terminology
|
@chapter Terminology
|
||||||
|
@ -765,25 +770,6 @@ something that doesn't need reporting, such as a ``false conflict''
|
||||||
@chapter Known bugs
|
@chapter Known bugs
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item
|
|
||||||
The empty-directory problem. If package @var{foo} includes an empty
|
|
||||||
directory---say, @var{foo}/@var{bar}---then:
|
|
||||||
|
|
||||||
@enumerate
|
|
||||||
@item
|
|
||||||
if no other package has a @var{bar} subdirectory, everything's fine.
|
|
||||||
|
|
||||||
@item
|
|
||||||
if another stowed package, @var{quux}, has a @var{bar} subdirectory,
|
|
||||||
then when stowing, @var{targetdir}/@var{bar} will be ``split open'' and
|
|
||||||
the contents of @var{quux}/@var{bar} will be individually stowed. So
|
|
||||||
far, so good. But when unstowing @var{quux}, @var{targetdir}/@var{bar}
|
|
||||||
will be removed, even though @var{foo}/@var{bar} needs it to remain. A
|
|
||||||
workaround for this problem is to create a file in @var{foo}/@var{bar}
|
|
||||||
as a placeholder. If you name that file @file{.placeholder}, it will be
|
|
||||||
easy to find and remove such files when this bug is fixed.
|
|
||||||
@end enumerate
|
|
||||||
|
|
||||||
@item
|
@item
|
||||||
When using multiple stow directories (@pxref{Multiple stow
|
When using multiple stow directories (@pxref{Multiple stow
|
||||||
directories}), Stow fails to ``split open'' tree-folding symlinks
|
directories}), Stow fails to ``split open'' tree-folding symlinks
|
||||||
|
|
4666
texinfo.tex
4666
texinfo.tex
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,4 @@
|
||||||
@set UPDATED 11 October 1996
|
@set UPDATED 5 January 2002
|
||||||
@set EDITION 1.3.2
|
@set UPDATED-MONTH January 2002
|
||||||
@set VERSION 1.3.2
|
@set EDITION 1.3.3
|
||||||
|
@set VERSION 1.3.3
|
||||||
|
|
Loading…
Reference in a new issue