1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-05-09 09:06:38 +02:00

Function installation information now in config.modules

This commit is contained in:
Peter Stephenson 2000-11-30 18:36:21 +00:00
parent 4b1191e209
commit a59b51006b
11 changed files with 89 additions and 307 deletions

View File

@ -1,86 +0,0 @@
#
# Makefile for Completion subdirectory
#
# Copyright (c) 1999 Peter Stephensons
# All rights reserved.
#
# Permission is hereby granted, without written agreement and without
# license or royalty fees, to use, copy, modify, and distribute this
# software and to distribute modified versions of this software for any
# purpose, provided that the above copyright notice and the following
# two paragraphs appear in all copies of this software.
#
# In no event shall Peter Stephenson or the Zsh Development Group be liable
# to any party for direct, indirect, special, incidental, or consequential
# damages arising out of the use of this software and its documentation,
# even if Peter Stephenson and the Zsh Development Group have been advised of
# the possibility of such damage.
#
# Peter Stephenson and the Zsh Development Group specifically disclaim any
# warranties, including, but not limited to, the implied warranties of
# merchantability and fitness for a particular purpose. The software
# provided hereunder is on an "as is" basis, and Peter Stephenson and the
# Zsh Development Group have no obligation to provide maintenance,
# support, updates, enhancements, or modifications.
#
subdir = Completion
dir_top = ..
SUBDIRS =
@VERSION_MK@
# source/build directories
VPATH = @srcdir@
sdir = @srcdir@
sdir_top = @top_srcdir@
INSTALL = @INSTALL@
@DEFS_MK@
# ========== DEPENDENCIES FOR BUILDING ==========
all:
# ========== DEPENDENCIES FOR INSTALLING ==========
install: install.fns
uninstall: uninstall.fns
# install functions, including those in subdirectories, creating
# install directory if necessary
install.fns:
if test x$(fndir) != x && test x$(fndir) != xno; then \
$(sdir_top)/mkinstalldirs $(fndir) || exit 1; \
for file in $(FUNCTIONS_INSTALL); do \
if test -f $$file; then \
$(INSTALL_DATA) $$file $(fndir) || exit 1; \
fi; \
done; \
fi; \
exit 0
uninstall.fns:
if test x$(fndir) != x && test x$(fndir) != xno; then \
for file in $(FUNCTIONS_INSTALL); do \
if test -f $$file; then \
rm -f "$(fndir)/`echo $$file | sed -e 's%^.*/%%'`"; \
fi; \
done; \
fi; \
exit 0
# ========== DEPENDENCIES FOR CLEANUP ==========
@CLEAN_MK@
mostlyclean-here:
distclean-here:
realclean-here:
# ========== DEPENDENCIES FOR MAINTENANCE ==========
@CONFIG_MK@

View File

@ -1,47 +0,0 @@
#
# Makefile definitions for installing shell functions
#
# Copyright (c) 1999 Peter Stephenson
# All rights reserved.
#
# Permission is hereby granted, without written agreement and without
# license or royalty fees, to use, copy, modify, and distribute this
# software and to distribute modified versions of this software for any
# purpose, provided that the above copyright notice and the following
# two paragraphs appear in all copies of this software.
#
# In no event shall Peter Stephenson or the Zsh Development Group be liable
# to any party for direct, indirect, special, incidental, or consequential
# damages arising out of the use of this software and its documentation,
# even if Peter Stephenson and the Zsh Development Group have been advised of
# the possibility of such damage.
#
# Peter Stephenson and the Zsh Development Group specifically disclaim any
# warranties, including, but not limited to, the implied warranties of
# merchantability and fitness for a particular purpose. The software
# provided hereunder is on an "as is" basis, and Peter Stephenson and the
# Zsh Development Group have no obligation to provide maintenance,
# support, updates, enhancements, or modifications.
#
# install functions, including those in subdirectories, creating
# install directory if necessary
install.fns:
if test x$(fndir) != x && test x$(fndir) != xno; then \
sdir_top="$(sdir_top)" fndir="$(fndir)" sdir="$(sdir)" \
FUNCTIONS_INSTALL="$(FUNCTIONS_INSTALL)" \
FUNCTIONS_SUBDIRS="$(FUNCTIONS_SUBDIRS)" \
INSTALL_DATA="$(INSTALL_DATA)" \
$(SHELL) $(sdir_top)/Config/installfns.sh || exit 1; \
fi; \
exit 0
uninstall.fns:
if test x$(fndir) != x && test x$(fndir) != xno; then \
fndir="$(fndir)" sdir="$(sdir)" \
FUNCTIONS_INSTALL="$(FUNCTIONS_INSTALL)" \
FUNCTIONS_SUBDIRS="$(FUNCTIONS_SUBDIRS)" \
$(SHELL) $(sdir_top)/Config/uninstallfns.sh || exit 1; \
fi; \
exit 0

View File

@ -1,48 +1,26 @@
#!/bin/sh
if test -d $fndir.old; then
add_old=1
fi
fndir=$DESTDIR$fndir
$sdir_top/mkinstalldirs $fndir || exit 1;
# If the source directory is somewhere else, we need to force
# the shell to expand it in that directory, then strip it off.
install=
for file in $FUNCTIONS_INSTALL; do
if test -f "$sdir/$file"; then
install="$install $file"
else
install="$install `echo $sdir/$file | sed -e \"s%$sdir/%%g\"`"
fi
done
allfuncs="`grep ' functions=' ${dir_top}/config.modules |
sed -e '/^#/d' -e '/ link=no/d' -e 's/^.* functions=//'`"
for file in $install; do
if test -f $sdir/$file; then
allfuncs="`cd $sdir_top; echo ${allfuncs}`"
# We now have a list of files, but we need to use `test -f' to check
# (1) the glob got expanded (2) we are not looking at directories.
for file in $allfuncs; do
if test -f $sdir_top/$file; then
if test x$FUNCTIONS_SUBDIRS != x -a x$FUNCTIONS_SUBDIRS != xno; then
subfile="$file"
subdir="`echo $file | sed -e 's%/[^/]*$%%'`"
olddir="$fndir.old/$subdir"
subdir="`echo $file | sed -e 's%/[^/]*$%%' \
-e s%^Functions/%% -e s%^Completion/%%`"
instdir="$fndir/$subdir"
else
subfile="`echo $file | sed -e 's%^.*/%%'`"
olddir="$fndir.old"
instdir="$fndir"
fi
if test -f $fndir/$subfile; then
if cmp $fndir/$subfile $sdir/$file >/dev/null; then :; else
$sdir_top/mkinstalldirs $olddir
mv $fndir/$subfile $olddir
: ${add_old:=1}
fi
fi
$sdir_top/mkinstalldirs $instdir || exit 1
$INSTALL_DATA $sdir/$file $instdir || exit 1
test -d $instdir || $sdir_top/mkinstalldirs $instdir || exit 1
$INSTALL_DATA $sdir_top/$file $instdir || exit 1
fi
done
if test x$add_old != x1; then
rm -rf $fndir.old
fi
exit 0

View File

@ -1,31 +1,38 @@
#!/bin/sh
# If the source directory is somewhere else, we need to force
# the shell to expand it in that directory, then strip it off.
install=
for file in $FUNCTIONS_INSTALL; do
if test -f "$sdir/$file"; then
install="$install $file"
else
install="$install `echo $sdir/$file | sed -e \"s%$sdir/%%g\"`"
fi
done
fndir=$DESTDIR$fndir
for file in $install; do
if test -f $sdir/$file; then
if test x$FUNCTIONS_SUBDIRS != x -a x$FUNCTIONS_SUBDIRS != xno; then
rm -f $fndir/$file;
if test -f $fndir.old/$file; then
mv $fndir.old/$file $fndir/$file
fi
else
bfile="`echo $file | sed -e 's%^.*/%%'`"
rm -f "$fndir/$bfile"; \
if test -f $fndir.old/$bfile; then
mv $fndir.old/$bfile $fndir/$bfile
fi
fi
fi
done
allfuncs="`grep ' functions=' ${dir_top}/config.modules |
sed -e '/^#/d' -e '/ link=no/d' -e 's/^.* functions=//'`"
allfuncs="`cd ${sdir_top}; echo ${allfuncs}`"
case $fndir in
*$VERSION*)
# Version specific function directory, safe to remove completely.
# However, we don't remove the top-level version directory since
# it could have other things than functions in it. We could
# do that instead in the top-level Makefile on a full uninstall,
# if we wanted.
rm -rf $fndir
;;
*) # The following will only apply with a custom install directory
# with no version information. This is rather undesirable.
# But let's try and do the best we can.
# We now have a list of files, but we need to use `test -f' to check
# (1) the glob got expanded (2) we are not looking at directories.
for file in $allfuncs; do
if test -f $sdir_top/$file; then
if test x$FUNCTIONS_SUBDIRS != x -a x$FUNCTIONS_SUBDIRS != xno; then
file=`echo $file | sed -e 's%%^Completion/%' -e 's%%^Functions%'`
rm -f $fndir/$file;
else
bfile="`echo $file | sed -e 's%^.*/%%'`"
rm -f "$fndir/$bfile"; \
fi
fi
done
;;
esac
exit 0

View File

@ -1,86 +0,0 @@
#
# Makefile for Functions subdirectory
#
# Copyright (c) 1999 Peter Stephensons
# All rights reserved.
#
# Permission is hereby granted, without written agreement and without
# license or royalty fees, to use, copy, modify, and distribute this
# software and to distribute modified versions of this software for any
# purpose, provided that the above copyright notice and the following
# two paragraphs appear in all copies of this software.
#
# In no event shall Peter Stephenson or the Zsh Development Group be liable
# to any party for direct, indirect, special, incidental, or consequential
# damages arising out of the use of this software and its documentation,
# even if Peter Stephenson and the Zsh Development Group have been advised of
# the possibility of such damage.
#
# Peter Stephenson and the Zsh Development Group specifically disclaim any
# warranties, including, but not limited to, the implied warranties of
# merchantability and fitness for a particular purpose. The software
# provided hereunder is on an "as is" basis, and Peter Stephenson and the
# Zsh Development Group have no obligation to provide maintenance,
# support, updates, enhancements, or modifications.
#
subdir = Functions
dir_top = ..
SUBDIRS =
@VERSION_MK@
# source/build directories
VPATH = @srcdir@
sdir = @srcdir@
sdir_top = @top_srcdir@
INSTALL = @INSTALL@
@DEFS_MK@
# ========== DEPENDENCIES FOR BUILDING ==========
all:
# ========== DEPENDENCIES FOR INSTALLING ==========
install: install.fns
uninstall: uninstall.fns
# install functions, including those in subdirectories, creating
# install directory if necessary
install.fns:
if test x$(fndir) != x && test x$(fndir) != xno; then \
$(sdir_top)/mkinstalldirs $(fndir) || exit 1; \
for file in $(FUNCTIONS_INSTALL); do \
if test -f $$file; then \
$(INSTALL_DATA) $$file $(fndir) || exit 1; \
fi; \
done; \
fi; \
exit 0
uninstall.fns:
if test x$(fndir) != x && test x$(fndir) != xno; then \
for file in $(FUNCTIONS_INSTALL); do \
if test -f $$file; then \
rm -f "$(fndir)/`echo $$file | sed -e 's%^.*/%%'`"; \
fi; \
done; \
fi; \
exit 0
# ========== DEPENDENCIES FOR CLEANUP ==========
@CLEAN_MK@
mostlyclean-here:
distclean-here:
realclean-here:
# ========== DEPENDENCIES FOR MAINTENANCE ==========
@CONFIG_MK@

View File

@ -77,14 +77,25 @@ install.man uninstall.man:
# install/uninstall just the shell functions
install.fns:
test x$(sitefndir) != xno && $(sdir_top)/mkinstalldirs $(DESTDIR)$(sitefndir)
@cd Completion && $(MAKE) $(MAKEDEFS) $@
@cd Functions && $(MAKE) $(MAKEDEFS) $@
if test x$(fndir) != x && test x$(fndir) != xno; then \
test x$(sitefndir) != xno && \
$(sdir_top)/mkinstalldirs $(DESTDIR)$(sitefndir); \
sdir_top="$(sdir_top)" fndir="$(fndir)" dir_top="$(dir_top)" \
FUNCTIONS_SUBDIRS="$(FUNCTIONS_SUBDIRS)" \
INSTALL_DATA="$(INSTALL_DATA)" \
DESTDIR="$(DESTDIR)" VERSION="$(VERSION)" \
$(SHELL) $(sdir_top)/Config/installfns.sh || exit 1; \
fi; \
exit 0
uninstall.fns:
# never attempt to remove $(sitefndir)
@cd Completion && $(MAKE) $(MAKEDEFS) $@
@cd Functions && $(MAKE) $(MAKEDEFS) $@
if test x$(fndir) != x && test x$(fndir) != xno; then \
fndir="$(fndir)" dir_top="$(dir_top)" \
FUNCTIONS_SUBDIRS="$(FUNCTIONS_SUBDIRS)" \
DESTDIR="$(DESTDIR)" VERSION="$(VERSION)" \
$(SHELL) $(sdir_top)/Config/uninstallfns.sh || exit 1; \
fi; \
exit 0
# install/uninstall just the info pages
install.info uninstall.info:

View File

@ -1,6 +1,7 @@
name=zsh/zftp
link=dynamic
load=no
functions='Functions/Zftp/*'
autobins="zftp"

View File

@ -1,6 +1,7 @@
name=zsh/complete
link=either
load=yes
functions='Completion/Core/* Completion/Base/* Completion/Builtins/* Completion/User/* Completion/Commands/* Completion/Debian/* Completion/Linux/* Completion/Bsd/* Completion/AIX/* Completion/X/*'
moddeps="zsh/zle"

View File

@ -1,6 +1,7 @@
name=zsh/zle
link=either
load=yes
functions='Functions/Zle/*'
autobins="bindkey vared zle"

View File

@ -2,6 +2,7 @@ name=zsh/main
link=static
load=yes
# load=static should replace use of alwayslink
functions='Functions/Misc/* Functions/Prompts/*'
nozshdep=1
alwayslink=1

View File

@ -236,16 +236,8 @@ undefine([function_subdirs])
AC_ARG_ENABLE(function-subdirs,
[ --enable-function-subdirs install functions in subdirectories])
if test "x${FUNCTIONS_INSTALL+set}" != xset; then
FUNCTIONS_INSTALL="Core/* Base/* Builtins/* User/* Commands/* Debian/* Linux/* Bsd/* AIX/* X/* Zle/* Prompts/* Misc/*"
if test $dynamic != no; then
FUNCTIONS_INSTALL="${FUNCTIONS_INSTALL} Zftp/*"
fi
fi
if test "x${enable_function_subdirs}" != x -a \
"x${enable_function_subdirs}" != xno -a \
"x$FUNCTIONS_INSTALL" != x; then
"x${enable_function_subdirs}" != xno; then
FUNCTIONS_SUBDIRS=yes
else
FUNCTIONS_SUBDIRS=no
@ -253,7 +245,6 @@ fi
AC_SUBST(fndir)dnl
AC_SUBST(sitefndir)dnl
AC_SUBST(FUNCTIONS_INSTALL)dnl
AC_SUBST(FUNCTIONS_SUBDIRS)dnl
dnl Do you want maildir support?
@ -1733,15 +1724,19 @@ echo "# Values of \`auto' are \`yes' or \`no'. configure sets the value to"
echo "# \`yes'. If you set it by hand to \`no', the line will be retained"
echo "# when the file is regenerated in future."
echo "#"
echo "# Note that the \`functions' entry extends to the end of the line."
echo "# It should not be quoted; it is used verbatim to find files to install."
echo "#"
echo "# You will need to run \`config.status --recheck' if you add a new"
echo "# module."
echo "#"
echo "# You should not change the values for the pseudo-module zsh/main,"
echo "# which is the main shell."
echo "# which is the main shell (apart from the functions entry)."
for modfile in `cd ${srcdir}; echo */*.mdd */*/*.mdd`; do
name=
link=
load=
functions=
. ${srcdir}/$modfile
if test x$name != x -a x"$link" != x; then
case "$userlist" in
@ -1758,26 +1753,32 @@ for modfile in `cd ${srcdir}; echo */*.mdd */*/*.mdd`; do
*) load=" load=no"
;;
esac
if test "x$functions" != x; then
# N.B. no additional quotes
f=" functions=$functions"
else
f=
fi
case "$link" in
static) echo "name=$name modfile=$modfile link=static auto=yes${load}"
static) echo "name=$name modfile=$modfile link=static auto=yes${load}$f"
;;
dynamic) if test $dynamic != no; then
echo "name=$name modfile=$modfile link=dynamic\
auto=yes${load}"
auto=yes${load}$f"
else
echo "name=$name modfile=$modfile link=no\
auto=yes load=no"
auto=yes load=no$f"
fi
;;
either) if test $dynamic != no; then
echo "name=$name modfile=$modfile link=dynamic\
auto=yes${load}"
auto=yes${load}$f"
else
echo "name=$name modfile=$modfile link=static\
auto=yes${load}"
auto=yes${load}$f"
fi
;;
*) echo "name=$name modfile=$modfile link=no auto=yes load=no"
*) echo "name=$name modfile=$modfile link=no auto=yes load=no$f"
;;
esac
;;
@ -1803,7 +1804,7 @@ real_no_create=$no_create
no_create=yes
AC_OUTPUT(Config/defs.mk Makefile Doc/Makefile Etc/Makefile Src/Makefile \
Test/Makefile Completion/Makefile Functions/Makefile, \
Test/Makefile, \
[test -z "$CONFIG_HEADERS" || echo > stamp-h])
dnl The standard config.status is missing some essential features.
@ -1848,7 +1849,7 @@ binary install path : ${zshbin2}
man page install path : ${zshman}
info install path : ${zshinfo}"
if test "$zshfndir" != no; then
echo "functions install path : ${zshfndir}
installed functions : ${FUNCTIONS_INSTALL}
"
echo "functions install path : ${zshfndir}"
fi
echo "See config.modules for installed modules and functions.
"