From: Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
To: zsh-workers@sunsite.auc.dk (Zsh hackers list)
Subject: PATCH: omit modules from compilation and installation process
Date: Sun, 13 Feb 2000 18:44:33 +0000 [thread overview]
Message-ID: <E12K3x4-0008IA-00.2000-02-13-18-40-58@mail1.svr.pol.co.uk> (raw)
This was easier than I'd expected. Zefram, does this look right to you?
It seems to fit in quite naturally with the form of mkmodindex.sh.
Now you can give configure a comma-separated list of modules not to compile
nor install as --enable-omit-modules=zsh/example,zsh/zpty. Having to use
the `enable' in front is a bit tacky, but as far as I can see there's no
way round it. There's no restriction on what you can omit, so it requires
a bit of discretion on the part of the compiler. I can foresee one of its
major uses will be to put instructions into Etc/MACHINES on the lines of
`the zsh/zpty module doesn't work on the Kray TWINNE, give configure the
argument --enable-omit-modules=zsh/zpty'.
I haven't allowed it to use patterns, which seems a bit dangerous, though
potentially if there are add-on modules from different `vendors' you might
want to do --enable-omit-modules="foo/*".
Index: INSTALL
===================================================================
RCS file: /home/pws/CVSROOT/projects/zsh/INSTALL,v
retrieving revision 1.5
diff -u -r1.5 INSTALL
--- INSTALL 2000/01/20 19:47:34 1.5
+++ INSTALL 2000/02/13 18:30:55
@@ -59,8 +59,8 @@
unless given explicitly, and PREFIX defaults to /usr/local. See the end of
this file for options to configure to change these.
-Adding more modules
--------------------
+Adding and removing modules
+---------------------------
The zsh distribution contains several modules, in the Src/Builtins,
Src/Modules and Src/Zle directories. If you have any additional zsh
@@ -73,6 +73,18 @@
have already run make, then after adding or removing the modules run:
make prep
+You can also instruct the configuration process that a certain module
+should neither be compiled nor installed without modifying any files. To
+do this, give the argument `--enable-omit-modules=mod1,mod2,...' to
+configure. The module arguments are the full names of the modules,
+probably including the prefix `zsh/'. For example,
+`configure --enable-omit-modules=zsh/zpty,zsh/example' says that the
+modules zsh/zpty and zsh/example are not to be compiled nor installed.
+Note that it is up to you to make sure the modules in question are not going
+to be compiled into the main zsh binary, as described in the next section.
+It is unlikely you would want to omit any of the modules liable to be
+compiled in by default.
+
Controlling what is compiled into the main zsh binary
-----------------------------------------------------
@@ -365,6 +377,7 @@
fndir=directory # the directory where shell functions will go
site-fndir=directory# the directory where site-specific functions can go
function-subdirs # if functions will be installed into subdirectories
+ omit-modules=mod1,..# don't compile nor install the modules named mod1,...
dynamic # allow dynamically loaded binary modules
lfs # allow configure check for large files
locale # allow use of locale library
Index: configure.in
===================================================================
RCS file: /home/pws/CVSROOT/projects/zsh/configure.in,v
retrieving revision 1.15
diff -u -r1.15 configure.in
--- configure.in 2000/01/20 19:47:34 1.15
+++ configure.in 2000/02/13 18:12:36
@@ -186,6 +186,16 @@
[ --disable-dynamic turn off dynamically loaded binary modules],
[dynamic="$enableval"], [dynamic=yes])
+dnl Do you want to disable a list of modules?
+dnl Unfortunately we can't give --disable-* a value, so we'll have
+dnl to do it as an `--enable-*', rather unnaturally.
+undefine([OMIT_MODULES])dnl
+AC_ARG_ENABLE(omit-modules,
+[ --enable-omit-modules give comma-separated list of modules to ignore],
+[OMIT_MODULES="$enableval"], [OMIT_MODULES=])
+
+AC_SUBST(OMIT_MODULES)dnl
+
dnl Do you want to compile as K&R C.
AC_ARG_ENABLE(ansi2knr,
[ --enable-ansi2knr translate source to K&R C before compiling],
Index: Config/defs.mk.in
===================================================================
RCS file: /home/pws/CVSROOT/projects/zsh/Config/defs.mk.in,v
retrieving revision 1.5
diff -u -r1.5 defs.mk.in
--- Config/defs.mk.in 2000/01/20 19:47:34 1.5
+++ Config/defs.mk.in 2000/02/13 18:10:41
@@ -62,6 +62,9 @@
EXPOPT = @EXPOPT@
IMPOPT = @IMPOPT@
+# choose modules not to compile and install
+OMIT_MODULES = @OMIT_MODULES@
+
# utilities
AWK = @AWK@
YODL = @YODL@
Index: Src/Makefile.in
===================================================================
RCS file: /home/pws/CVSROOT/projects/zsh/Src/Makefile.in,v
retrieving revision 1.11
diff -u -r1.11 Makefile.in
--- Src/Makefile.in 2000/01/04 22:04:35 1.11
+++ Src/Makefile.in 2000/02/13 18:16:11
@@ -101,7 +101,8 @@
@CONFIG_MK@
Makemod modules.index prep: modules-bltin $(CONFIG_INCS)
- ( cd $(sdir_top) && $(SHELL) $(subdir)/mkmodindex.sh $(subdir) ) \
+ ( cd $(sdir_top) && OMIT_MODULES="$(OMIT_MODULES)" \
+ $(SHELL) $(subdir)/mkmodindex.sh $(subdir) ) \
> modules.index.tmp
@if cmp -s modules.index.tmp modules.index; then \
rm -f modules.index.tmp; \
Index: Src/mkmodindex.sh
===================================================================
RCS file: /home/pws/CVSROOT/projects/zsh/Src/mkmodindex.sh,v
retrieving revision 1.2
diff -u -r1.2 mkmodindex.sh
--- Src/mkmodindex.sh 1999/12/21 15:18:28 1.2
+++ Src/mkmodindex.sh 2000/02/13 18:22:47
@@ -8,6 +8,8 @@
echo "# module index generated by mkmodindex.sh"
echo
+omit_modules="`echo $OMIT_MODULES | sed 's/,/ /'`"
+
module_list=' '
while test $# -ne 0; do
dir=$1
@@ -25,6 +27,11 @@
eval "omodfile=\$modfile_$q_name"
echo >&2 "WARNING: module \`$name' (in $omodfile) duplicated in $modfile"
echo >&2 " (ignoring duplicate)"
+ continue
+ ;; esac
+ case " $omit_modules " in *" $name "*)
+ echo >&2 "Module \`$name' found in \$OMIT_MODULES"
+ echo >&2 " (omitting it)"
continue
;; esac
module_list="$module_list$name "
--
Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
next reply other threads:[~2000-02-13 18:42 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-02-13 18:44 Peter Stephenson [this message]
2000-02-14 1:16 ` Bart Schaefer
2000-02-14 7:14 ` Andrej Borsenkow
2000-02-14 19:10 ` Peter Stephenson
2000-02-14 10:11 ` Zefram
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E12K3x4-0008IA-00.2000-02-13-18-40-58@mail1.svr.pol.co.uk \
--to=pws@pwstephenson.fsnet.co.uk \
--cc=zsh-workers@sunsite.auc.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).