From: Zefram <zefram@dcs.warwick.ac.uk>
To: zsh-workers@math.gatech.edu (Z Shell workers mailing list)
Subject: module installation
Date: Sat, 23 Nov 1996 15:44:54 +0000 (GMT) [thread overview]
Message-ID: <14767.199611231544@stone.dcs.warwick.ac.uk> (raw)
-----BEGIN PGP SIGNED MESSAGE-----
This patch implements automatic installation of modules, by default in
$(libdir)/zsh/$(VERSION). It also automatically initialises $module_path
to point to this directory (previously it was initialised to be empty).
The way I get the path from the Makefile into the source is by
automatically generating an extra header, which is included in (and a
dependency of) only one source file. I think it would be a good idea
to handle the version number in the same way, so that changing the
version number doesn't require rebuilding all the Makefiles or even all
the objects.
The Src/Makefile.in patch is textually very dependent on my recent patch
2455, but the changes are logically independent.
-zefram
Index: Makefile.in
===================================================================
RCS file: /home/zefram/usr/cvsroot/zsh/Makefile.in,v
retrieving revision 1.3
diff -c -r1.3 Makefile.in
*** Makefile.in 1996/11/21 01:28:25 1.3
--- Makefile.in 1996/11/23 00:12:10
***************
*** 44,49 ****
--- 44,50 ----
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
+ libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
manext = 1
***************
*** 67,73 ****
MAKEDEFS = CC='$(CC)' CPPFLAGS='$(CPPFLAGS)' DEFS='$(DEFS)' \
CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' LIBS='$(LIBS)' \
prefix='$(prefix)' exec_prefix='$(exec_prefix)' bindir='$(bindir)' \
! infodir='$(infodir)' mandir='$(mandir)' manext='$(manext)'
# subdirectories in distribution
SUBDIRS = Src Doc Etc Functions StartupFiles Misc Util
--- 68,74 ----
MAKEDEFS = CC='$(CC)' CPPFLAGS='$(CPPFLAGS)' DEFS='$(DEFS)' \
CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' LIBS='$(LIBS)' \
prefix='$(prefix)' exec_prefix='$(exec_prefix)' bindir='$(bindir)' \
! libdir='$(libdir)' infodir='$(infodir)' mandir='$(mandir)' manext='$(manext)'
# subdirectories in distribution
SUBDIRS = Src Doc Etc Functions StartupFiles Misc Util
Index: Src/Makefile.in
===================================================================
RCS file: /home/zefram/usr/cvsroot/zsh/Src/Makefile.in,v
retrieving revision 1.8
diff -c -r1.8 Makefile.in
*** Makefile.in 1996/11/22 02:20:05 1.8
--- Makefile.in 1996/11/23 00:12:32
***************
*** 38,43 ****
--- 38,45 ----
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
+ libdir = @libdir@
+ MODDIR = $(libdir)/zsh/$(VERSION)
CC = @CC@
CPPFLAGS = @CPPFLAGS@
***************
*** 71,77 ****
MAKEDEFS = CC='$(CC)' CPPFLAGS='$(CPPFLAGS)' DEFS='$(DEFS)' \
CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' LIBS='$(LIBS)' \
prefix='$(prefix)' exec_prefix='$(exec_prefix)' bindir='$(bindir)' \
! infodir='$(infodir)' mandir='$(mandir)' manext='$(manext)'
MODBINS = $(srcdir)/modules-bltin
--- 73,79 ----
MAKEDEFS = CC='$(CC)' CPPFLAGS='$(CPPFLAGS)' DEFS='$(DEFS)' \
CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' LIBS='$(LIBS)' \
prefix='$(prefix)' exec_prefix='$(exec_prefix)' bindir='$(bindir)' \
! libdir='$(libdir)' infodir='$(infodir)' mandir='$(mandir)' manext='$(manext)'
MODBINS = $(srcdir)/modules-bltin
***************
*** 211,223 ****
$(OBJS): $(HDRS)
! init.o: bltinmods.list
bltinmods.list: $(MODBINS)
( for mod in `cat $(MODBINS)`; do \
echo "DOMOD(mod_boot_$$mod, mod_cleanup_$$mod)"; \
done ) > $@
$(PROTO): makepro.sed
$(NSTMP).force:
--- 213,233 ----
$(OBJS): $(HDRS)
! init.o: bltinmods.list paths.h
bltinmods.list: $(MODBINS)
( for mod in `cat $(MODBINS)`; do \
echo "DOMOD(mod_boot_$$mod, mod_cleanup_$$mod)"; \
done ) > $@
+ paths.h.force:
+ echo '#define MODULE_DIR "'$(MODDIR)'"' > paths.h.tmp
+ if cmp -s paths.h paths.h.tmp; then \
+ rm -f paths.h.tmp; \
+ else \
+ mv -f paths.h.tmp paths.h; \
+ fi
+
$(PROTO): makepro.sed
$(NSTMP).force:
***************
*** 239,247 ****
# ========== DEPENDENCIES FOR INSTALLING ==========
! install: install.bin
! uninstall: uninstall.bin
# install binary, creating install directory if necessary
install.bin: zsh
--- 249,257 ----
# ========== DEPENDENCIES FOR INSTALLING ==========
! install: install.bin install.modules
! uninstall: uninstall.bin uninstall.modules
# install binary, creating install directory if necessary
install.bin: zsh
***************
*** 256,261 ****
--- 266,292 ----
-if [ -f $(bindir)/zsh ]; then rm -f $(bindir)/zsh; fi
-if [ -f $(bindir)/zsh-$(VERSION) ]; then rm -f $(bindir)/zsh-$(VERSION); fi
+ # install modules
+ install.modules:
+ if test -n '$(MO@D@ULES)'; then \
+ $(top_srcdir)/mkinstalldirs $(MODDIR); \
+ for mod in .. $(MO@D@ULES); do \
+ if test .$$mod = ...; then :; else \
+ modname=`echo $$mod | $(SED) 's,.*/,,'`; \
+ $(INSTALL_PROGRAM) $$mod $(MODDIR)/$$modname; \
+ fi; \
+ done; \
+ fi
+
+ # uninstall modules
+ uninstall.modules:
+ for mod in .. $(MO@D@ULES); do \
+ if test .$$mod = ...; then :; else \
+ modname=`echo $$mod | $(SED) 's,.*/,,'`; \
+ test -f $(MODDIR)/$$modname && rm -f $(MODDIR)/$$modname; \
+ fi; \
+ done
+
# ========== DEPENDENCIES FOR CLEANUP ==========
DLCLEAN = $(MODULE_DIR)/*.$(DL_EXT) $(MODULE_DIR)/*.*.[co] $(MODULE_DIR)/*.pro
***************
*** 264,270 ****
rm -f core stamp-modobjs* *.o $(MODULE_DIR)/*.o *~
clean: mostlyclean
! rm -f zsh ansi2knr $(@D@LCLEAN) signames.h bltinmods.list *.*.c *.pro
distclean: clean
rm -f Makefile
--- 295,301 ----
rm -f core stamp-modobjs* *.o $(MODULE_DIR)/*.o *~
clean: mostlyclean
! rm -f zsh ansi2knr $(@D@LCLEAN) signames.h paths.h bltinmods.list *.*.c *.pro
distclean: clean
rm -f Makefile
Index: Src/init.c
===================================================================
RCS file: /home/zefram/usr/cvsroot/zsh/Src/init.c,v
retrieving revision 1.24
diff -c -r1.24 init.c
*** init.c 1996/11/22 02:20:06 1.24
--- init.c 1996/11/23 00:04:38
***************
*** 32,37 ****
--- 32,39 ----
#define GLOBALS
#include "zsh.h"
+ #include "paths.h"
+
int noexitct = 0;
/* keep executing lists until EOF found */
***************
*** 456,462 ****
watch = mkarray(NULL);
psvar = mkarray(NULL);
#ifdef DYNAMIC
! module_path = mkarray(NULL);
#endif
/* Set default prompts */
--- 458,464 ----
watch = mkarray(NULL);
psvar = mkarray(NULL);
#ifdef DYNAMIC
! module_path = mkarray(MODULE_DIR);
#endif
/* Set default prompts */
-----BEGIN PGP SIGNATURE-----
Version: 2.6.2
iQCVAwUBMpZDg3D/+HJTpU/hAQFH9wQAg34BkNinUlDW+P5tY8LU7BWitA8EIrbk
+bYHbmSmv32pNERjaTdjI3KPIlRTcqYpeDY+BjCcc3HnMI0HQlON/PkXIwYI+HPS
JgDre/xHdwxEl2t+fL1ARly9kau+bg4qeDF7u3Lb1WSlwQSm5ggmliUY17faAwqt
KXjYjH0wH60=
=PvvF
-----END PGP SIGNATURE-----
reply other threads:[~1996-11-23 15:51 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=14767.199611231544@stone.dcs.warwick.ac.uk \
--to=zefram@dcs.warwick.ac.uk \
--cc=zsh-workers@math.gatech.edu \
/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).