Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

module installation



-----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-----



Messages sorted by: Reverse Date, Date, Thread, Author