From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24416 invoked from network); 12 Sep 2004 19:13:50 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 12 Sep 2004 19:13:50 -0000 Received: (qmail 94937 invoked from network); 12 Sep 2004 19:13:43 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 12 Sep 2004 19:13:43 -0000 Received: (qmail 18216 invoked by alias); 12 Sep 2004 19:13:41 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 20359 Received: (qmail 18206 invoked from network); 12 Sep 2004 19:13:40 -0000 Received: from unknown (HELO a.mx.sunsite.dk) (130.225.247.88) by sunsite.dk with SMTP; 12 Sep 2004 19:13:40 -0000 Received: (qmail 94459 invoked from network); 12 Sep 2004 19:12:41 -0000 Received: from acolyte.scowler.net (216.254.112.45) by a.mx.sunsite.dk with SMTP; 12 Sep 2004 19:12:39 -0000 Received: by acolyte.scowler.net (Postfix, from userid 1000) id 21F347004C; Sun, 12 Sep 2004 15:12:42 -0400 (EDT) Date: Sun, 12 Sep 2004 15:12:42 -0400 From: Clint Adams To: zsh-workers@sunsite.dk Subject: forward-port of 19495 (don't link pcre to anything but pcre module) Message-ID: <20040912191242.GA7671@scowler.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6+20040722i X-Spam-Checker-Version: SpamAssassin 2.63 on a.mx.sunsite.dk X-Spam-Level: *** X-Spam-Status: No, hits=3.1 required=6.0 tests=BAYES_50,DONT_DELETE, NO_OBLIGATION autolearn=no version=2.63 X-Spam-Hits: 3.1 This is 19495 adapted to current CVS. I don't imagine that the NetBSD make failure will be any different. Index: aclocal.m4 =================================================================== RCS file: /cvsroot/zsh/zsh/aclocal.m4,v retrieving revision 1.1.1.3 diff -u -r1.1.1.3 aclocal.m4 --- aclocal.m4 6 Aug 1999 18:01:38 -0000 1.1.1.3 +++ aclocal.m4 12 Sep 2004 18:49:34 -0000 @@ -1,59 +1,5 @@ -# Local additions to Autoconf macros. -# Copyright (C) 1992, 1994 Free Software Foundation, Inc. -# Francois Pinard , 1992. - -# @defmac fp_PROG_CC_STDC -# @maindex PROG_CC_STDC -# @ovindex CC -# If the C compiler in not in ANSI C mode by default, try to add an option -# to output variable @code{CC} to make it so. This macro tries various -# options that select ANSI C on some system or another. It considers the -# compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and -# handles function prototypes correctly. -# -# If you use this macro, you should check after calling it whether the C -# compiler has been set to accept ANSI C; if not, the shell variable -# @code{fp_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source -# code in ANSI C, you can make an un-ANSIfied copy of it by using the -# program @code{ansi2knr}, which comes with Ghostscript. -# @end defmac - -define(fp_PROG_CC_STDC, -[AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, -fp_cv_prog_cc_stdc, -[fp_cv_prog_cc_stdc=no -ac_save_CFLAGS="$CFLAGS" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX -Ae or -Aa -D_HPUX_SOURCE -# SVR4 -Xc -# For HP-UX, we try -Ae first; this turns on ANSI but also extensions, -# as well as defining _HPUX_SOURCE, and we can then use long long. -# We keep the old version for backward compatibility. -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" -Xc -do - CFLAGS="$ac_save_CFLAGS $ac_arg" - AC_TRY_COMPILE( -[#ifndef __STDC__ -choke me -#endif -], [int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);};], -[fp_cv_prog_cc_stdc="$ac_arg"; break]) -done -CFLAGS="$ac_save_CFLAGS" -]) -case "x$fp_cv_prog_cc_stdc" in - x|xno) ;; - *) CC="$CC $fp_cv_prog_cc_stdc" ;; -esac -]) - -AC_DEFUN(AC_PROG_LN, -[AC_MSG_CHECKING(whether ln works) +AC_DEFUN([AC_PROG_LN], +[AC_MSG_CHECKING([whether ln works]) AC_CACHE_VAL(ac_cv_prog_LN, [rm -f conftestdata conftestlink echo > conftestdata @@ -74,4 +20,67 @@ AC_SUBST(LN)dnl ]) +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. + +# 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. + +# serial 2 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +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 | grep -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 +]) + builtin(include, aczsh.m4) Index: configure.ac =================================================================== RCS file: /cvsroot/zsh/zsh/configure.ac,v retrieving revision 1.19 diff -u -r1.19 configure.ac --- configure.ac 30 Jul 2004 11:09:17 -0000 1.19 +++ configure.ac 12 Sep 2004 18:49:34 -0000 @@ -310,11 +310,6 @@ [AC_DEFINE(MAX_FUNCTION_DEPTH, 4096)] ) -dnl Do you want to look for pcre support? -AC_ARG_ENABLE(pcre, -AC_HELP_STRING([--enable-pcre], -[enable the search for the pcre library (may create run-time library dependencies)])) - dnl Do you want to look for capability support? AC_ARG_ENABLE(cap, AC_HELP_STRING([--enable-cap], @@ -419,7 +414,6 @@ darwin*) CPP="$CPP -traditional-cpp" ;; esac -fp_PROG_CC_STDC AC_MSG_CHECKING([whether to use prototypes]) if test ."$ansi2knr" = .yes || test ."$ansi2knr" = .no; then msg="(overridden) " @@ -511,24 +505,12 @@ AC_HEADER_STAT AC_HEADER_SYS_WAIT -oldcflags="$CFLAGS" -if test x$enable_pcre = xyes; then -AC_CHECK_PROG([PCRECONF], pcre-config, pcre-config) -dnl Typically (meaning on this single RedHat 9 box in front of me) -dnl pcre-config --cflags produces a -I output which needs to go into -dnl CPPFLAGS else configure's preprocessor tests don't pick it up, -dnl producing a warning. -if test "x$ac_cv_prog_PCRECONF" = xpcre-config; then - CPPFLAGS="$CPPFLAGS `pcre-config --cflags`" -fi -fi - AC_CHECK_HEADERS(sys/time.h sys/times.h sys/select.h termcap.h termio.h \ termios.h sys/param.h sys/filio.h string.h memory.h \ limits.h fcntl.h libc.h sys/utsname.h sys/resource.h \ locale.h errno.h stdio.h stdlib.h unistd.h sys/capability.h \ utmp.h utmpx.h sys/types.h pwd.h grp.h poll.h sys/mman.h \ - netinet/in_systm.h pcre.h langinfo.h wchar.h stddef.h \ + netinet/in_systm.h langinfo.h wchar.h stddef.h \ sys/stropts.h) if test $dynamic = yes; then AC_CHECK_HEADERS(dlfcn.h) @@ -617,15 +599,15 @@ AC_ARG_WITH(curses-terminfo, [ --with-curses-terminfo use terminfo support from curses library], [if test x$withval = xyes; then - termcap_curses_order="tinfo curses ncurses termcap" + termcap_curses_order="curses ncurses termcap" AC_SEARCH_LIBS(tigetstr, [$termcap_curses_order]) else - termcap_curses_order="tinfo termcap curses ncurses" + termcap_curses_order="termcap curses ncurses" fi], [case "$host_os" in hpux10.*|hpux11.*|solaris*) termcap_curses_order="Hcurses curses ncurses termcap" ;; - *) termcap_curses_order="tinfo termcap curses ncurses" ;; + *) termcap_curses_order="termcap curses ncurses" ;; esac])dnl AH_TEMPLATE([HAVE_BOOLCODES], @@ -729,11 +711,6 @@ AC_CHECK_LIB(iconv, iconv) -if test x$enable_pcre = xyes; then -dnl pcre-config should probably be employed here -AC_SEARCH_LIBS(pcre_compile, pcre) -fi - dnl --------------------- dnl CHECK TERMCAP LIBRARY dnl --------------------- @@ -1051,7 +1028,6 @@ brk sbrk \ pathconf sysconf \ tgetent tigetflag tigetnum tigetstr setupterm \ - pcre_compile pcre_study pcre_exec \ nl_langinfo \ erand48 open_memstream \ wctomb iconv \ @@ -2428,10 +2404,14 @@ AC_SUBST_FILE(DEFS_MK)dnl AC_SUBST_FILE(VERSION_MK)dnl +AM_MAKE_INCLUDE + AC_CONFIG_FILES(Config/defs.mk Makefile Doc/Makefile Etc/Makefile \ -Src/Makefile Test/Makefile) +Src/Makefile Test/Makefile Src/mkmakemod.sh.in) AC_CONFIG_COMMANDS([config.modules], [. ./config.modules.sh]) AC_CONFIG_COMMANDS([stamp-h], [echo >stamp-h]) +AC_CONFIG_COMMANDS([Src/mkmakemod.sh], + [sed "s/_@_/@/g" Src/mkmakemod.sh.in >Src/mkmakemod.sh]) AC_OUTPUT @@ -2472,4 +2452,3 @@ echo "See config.modules for installed modules and functions. " - Index: Src/Makefile.in =================================================================== RCS file: /cvsroot/zsh/zsh/Src/Makefile.in,v retrieving revision 1.12 diff -u -r1.12 Makefile.in --- Src/Makefile.in 20 Dec 2001 23:48:39 -0000 1.12 +++ Src/Makefile.in 12 Sep 2004 18:49:35 -0000 @@ -109,16 +109,16 @@ @CONFIG_MK@ -Makemod prep: $(CONFIG_INCS) $(dir_top)/config.modules +Makemod prep: $(CONFIG_INCS) $(dir_top)/config.modules mkmakemod.sh @case $(sdir_top) in \ /*) top_srcdir=$(sdir_top) ;; \ *) top_srcdir=$(subdir)/$(sdir_top) ;; \ esac; \ export top_srcdir; \ echo 'cd $(dir_top) && $(SHELL)' \ - '$$top_srcdir/$(subdir)/mkmakemod.sh $(subdir) Makemod'; \ + '$(subdir)/mkmakemod.sh $(subdir) Makemod'; \ cd $(dir_top) && \ - $(SHELL) $$top_srcdir/$(subdir)/mkmakemod.sh $(subdir) Makemod + $(SHELL) $(subdir)/mkmakemod.sh $(subdir) Makemod @$(MAKE) -f Makemod $(MAKEDEFS) prep || rm -f Makemod .PHONY: prep @@ -191,6 +191,7 @@ clean-here: rm -f modules.stamp zsh$(EXEEXT) rm -f libzsh-*.$(DL_EXT) + rm -f mkmakemod.sh.in mkmakemod.sh .PHONY: clean-here distclean-here: Index: Src/Makemod.in.in =================================================================== RCS file: /cvsroot/zsh/zsh/Src/Makemod.in.in,v retrieving revision 1.5 diff -u -r1.5 Makemod.in.in --- Src/Makemod.in.in 20 Dec 2001 23:48:39 -0000 1.5 +++ Src/Makemod.in.in 12 Sep 2004 18:49:35 -0000 @@ -111,7 +111,7 @@ for subdir in $$subdirs; do \ dir=$(subdir)/$$subdir; \ test -d $$dir || mkdir $$dir; \ - $(SHELL) $$top_srcdir/Src/mkmakemod.sh $$dir Makefile || exit 1; \ + $(SHELL) Src/mkmakemod.sh $$dir Makefile || exit 1; \ ( cd $$dir && $(MAKE) $(MAKEDEFS) $@ ) || exit 1; \ done .PHONY: prep @@ -149,7 +149,8 @@ .PHONY: mostlyclean-here clean-here: - rm -f *.o.c *.syms *.pro *.epro *.mdh *.mdhi *.mdhs *.mdh.tmp + rm -f *.o.c *.syms *.pro *.epro *.mdh *.mdhi *.mdhs *.mdh.tmp \ + *.configure *.ach config.cache config.status config.log *.rules .PHONY: clean-here distclean-here: @@ -173,11 +174,11 @@ esac; \ export top_srcdir; \ echo 'cd $(dir_top) && $(SHELL)' \ - '$$top_srcdir/Src/mkmakemod.sh -m $(subdir) $(makefile)'; \ + 'Src/mkmakemod.sh -m $(subdir) $(makefile)'; \ cd $(dir_top) && \ - $(SHELL) $$top_srcdir/Src/mkmakemod.sh -m $(subdir) $(makefile) + $(SHELL) Src/mkmakemod.sh -m $(subdir) $(makefile) -$(makefile).in: $(sdir_src)/mkmakemod.sh $(sdir_src)/Makemod.in.in $(MDDS) \ +$(makefile).in: $(dir_top)/Src/mkmakemod.sh $(sdir_src)/Makemod.in.in $(MDDS) \ $(dir_top)/config.modules @case $(sdir_top) in \ /*) top_srcdir=$(sdir_top) ;; \ @@ -185,7 +186,6 @@ esac; \ export top_srcdir; \ echo 'cd $(dir_top) && $(SHELL)' \ - '$$top_srcdir/Src/mkmakemod.sh -i $(subdir) $(makefile)'; \ + 'Src/mkmakemod.sh -i $(subdir) $(makefile)'; \ cd $(dir_top) && \ - $(SHELL) $$top_srcdir/Src/mkmakemod.sh -i $(subdir) $(makefile) - + $(SHELL) Src/mkmakemod.sh -i $(subdir) $(makefile) Index: Src/mkmakemod.sh =================================================================== RCS file: Src/mkmakemod.sh diff -N Src/mkmakemod.sh --- Src/mkmakemod.sh 14 Feb 2004 18:50:17 -0000 1.13 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,476 +0,0 @@ -#!/bin/sh -# -# mkmakemod.sh: generate Makefile.in files for module building -# -# Options: -# -m = file is already generated; only build the second stage -# -i = do not build second stage -# -# Args: -# $1 = subdirectory to look in, relative to $top_srcdir -# $2 = final output filename, within the $1 directory -# -# This script must be run from the top-level build directory, and $top_srcdir -# must be set correctly in the environment. -# -# This looks in $1, and uses all the *.mdd files there. Each .mdd file -# defines one module. The .mdd file is actually a shell script, which will -# be sourced. It may define the following shell variables: -# -# name name of this module -# moddeps modules on which this module depends (default none) -# nozshdep non-empty indicates no dependence on the `zsh/main' pseudo-module -# alwayslink if non-empty, always link the module into the executable -# autobins builtins defined by the module, for autoloading -# autoinfixconds infix condition codes defined by the module, for -# autoloading (without the leading `-') -# autoprefixconds like autoinfixconds, but for prefix condition codes -# autoparams parameters defined by the module, for autoloading -# automathfuncs math functions defined by the module, for autoloading -# objects .o files making up this module (*must* be defined) -# proto .syms files for this module (default generated from $objects) -# headers extra headers for this module (default none) -# hdrdeps extra headers on which the .mdh depends (default none) -# otherincs extra headers that are included indirectly (default none) -# -# The .mdd file may also include a Makefile.in fragment between lines -# `:<<\Make' and `Make' -- this will be copied into Makemod.in. -# -# The resulting Makemod.in knows how to build each module that is defined. -# For each module in also knows how to build a .mdh file. Each source file -# should #include the .mdh file for the module it is a part of. The .mdh -# file #includes the .mdh files for any module dependencies, then each of -# $headers, and then each .epro (for global declarations). It will -# be recreated if any of the dependency .mdh files changes, or if any of -# $headers or $hdrdeps changes. When anything depends on it, all the .epros -# and $otherincs will be made up to date, but the .mdh file won't actually -# be rebuilt if those files change. -# -# The order of sections of the output file is thus: -# simple generated macros -# macros generated from *.mdd -# included Makemod.in.in -# rules generated from *.mdd -# The order dependencies are basically that the generated macros are required -# in Makemod.in.in, but some of the macros that it creates are needed in the -# later rules. -# - -# sed script to normalise a pathname -sed_normalise=' - s,^,/, - s,$,/, - :1 - s,/\./,/, - t1 - :2 - s,/[^/.][^/]*/\.\./,/, - s,/\.[^/.][^/]*/\.\./,/, - s,/\.\.[^/][^/]*/\.\./,/, - t2 - s,^/$,., - s,^/,, - s,\(.\)/$,\1, -' - -# decide which stages to process -first_stage=true -second_stage=true -if test ."$1" = .-m; then - shift - first_stage=false -elif test ."$1" = .-i; then - shift - second_stage=false -fi - -top_srcdir=`echo $top_srcdir | sed "$sed_normalise"` -the_subdir=$1 -the_makefile=$2 - -if $first_stage; then - - dir_top=`echo $the_subdir | sed 's,[^/][^/]*,..,g'` - - trap "rm -f $the_subdir/${the_makefile}.in" 1 2 15 - echo "creating $the_subdir/${the_makefile}.in" - exec 3>&1 >$the_subdir/${the_makefile}.in - echo "##### ${the_makefile}.in generated automatically by mkmakemod.sh" - echo "##### DO NOT EDIT!" - echo - echo "##### ===== DEFINITIONS ===== #####" - echo - echo "makefile = ${the_makefile}" - echo "dir_top = ${dir_top}" - echo "subdir = ${the_subdir}" - echo - - bin_mods=`grep link=static ./config.modules | \ - sed -e '/^#/d' -e 's/ .*/ /' -e 's/^name=/ /'` - dyn_mods="`grep link=dynamic ./config.modules | \ - sed -e '/^#/d' -e 's/ .*/ /' -e 's/^name=/ /'`" - module_list="${bin_mods}${dyn_mods}" - - # check both 2.13 and 2.50 syntax - if grep '%@D@%D%' config.status >/dev/null || - grep ',@D@,D,' config.status >/dev/null; then - is_dynamic=true - else - is_dynamic=false - fi - - here_mddnames= - all_subdirs= - all_modobjs= - all_modules= - all_mdds= - all_mdhs= - all_proto= - lastsub=// - for module in $module_list; do - modfile="`grep '^name='$module' ' ./config.modules | \ - sed -e 's/^.* modfile=//' -e 's/ .*//'`" - case $modfile in - $the_subdir/$lastsub/*) ;; - $the_subdir/*/*) - lastsub=`echo $modfile | sed 's,^'$the_subdir'/,,;s,/[^/]*$,,'` - case "$all_subdirs " in - *" $lastsub "* ) ;; - * ) - all_subdirs="$all_subdirs $lastsub" - ;; - esac - ;; - $the_subdir/*) - mddname=`echo $modfile | sed 's,^.*/,,;s,\.mdd$,,'` - here_mddnames="$here_mddnames $mddname" - build=$is_dynamic - case $is_dynamic@$bin_mods in - *" $module "*) - build=true - all_modobjs="$all_modobjs modobjs.${mddname}" ;; - true@*) - all_modules="$all_modules ${mddname}.\$(DL_EXT)" ;; - esac - all_mdds="$all_mdds ${mddname}.mdd" - $build && all_mdhs="$all_mdhs ${mddname}.mdh" - $build && all_proto="$all_proto proto.${mddname}" - ;; - esac - done - echo "MODOBJS =$all_modobjs" - echo "MODULES =$all_modules" - echo "MDDS =$all_mdds" - echo "MDHS =$all_mdhs" - echo "PROTOS =$all_proto" - echo "SUBDIRS =$all_subdirs" - echo - echo "ENTRYOBJ = \$(dir_src)/modentry..o" - echo "NNTRYOBJ =" - echo "ENTRYOPT = -emodentry" - echo "NNTRYOPT =" - echo - - echo "##### ===== INCLUDING Makemod.in.in ===== #####" - echo - cat $top_srcdir/Src/Makemod.in.in - echo - - case $the_subdir in - Src) modobjs_sed= ;; - Src/*) modobjs_sed="| sed 's\" \" "`echo $the_subdir | sed 's,^Src/,,'`"/\"g' " ;; - *) modobjs_sed="| sed 's\" \" ../$the_subdir/\"g' " ;; - esac - - other_mdhs= - remote_mdhs= - other_exports= - remote_exports= - other_modules= - remote_modules= - for mddname in $here_mddnames; do - - unset name moddeps nozshdep alwayslink hasexport - unset autobins autoinfixconds autoprefixconds autoparams automathfuncs - unset objects proto headers hdrdeps otherincs - . $top_srcdir/$the_subdir/${mddname}.mdd - q_name=`echo $name | sed 's,Q,Qq,g;s,_,Qu,g;s,/,Qs,g'` - test -n "${moddeps+set}" || moddeps= - test -n "$nozshdep" || moddeps="$moddeps zsh/main" - test -n "${proto+set}" || - proto=`echo $objects '' | sed 's,\.o ,.syms ,g'` - - dobjects=`echo $objects '' | sed 's,\.o ,..o ,g'` - modhdeps= - mododeps= - exportdeps= - imports= - q_moddeps= - for dep in $moddeps; do - depfile="`grep '^name='$dep' ' ./config.modules | \ - sed -e 's/^.* modfile=//' -e 's/ .*//'`" - q_dep=`echo $dep | sed 's,Q,Qq,g;s,_,Qu,g;s,/,Qs,g'` - q_moddeps="$q_moddeps $q_dep" - eval `echo $depfile | sed 's,/\([^/]*\)\.mdd$,;depbase=\1,;s,^,loc=,'` - case "$binmod" in - *" $dep "* ) - dep=zsh/main - ;; - esac - - case $the_subdir in - $loc) - mdh="${depbase}.mdh" - export="${depbase}.export" - case "$dep" in - zsh/main ) - mdll="\$(dir_top)/Src/libzsh-\$(VERSION).\$(DL_EXT) " - ;; - * ) - mdll="${depbase}.\$(DL_EXT) " - ;; - esac - ;; - $loc/*) - mdh="\$(dir_top)/$loc/${depbase}.mdh" - case "$other_mdhs " in - *" $mdh "*) ;; - *) other_mdhs="$other_mdhs $mdh" ;; - esac - export="\$(dir_top)/$loc/${depbase}.export" - case "$other_exports " in - *" $export "*) ;; - *) other_exports="$other_exports $export" ;; - esac - case "$dep" in - zsh/main ) - mdll="\$(dir_top)/Src/libzsh-\$(VERSION).\$(DL_EXT) " - ;; - * ) - mdll="\$(dir_top)/$loc/${depbase}.\$(DL_EXT) " - ;; - esac - case "$other_modules " in - *" $mdll "*) ;; - *) other_modules="$other_modules $mdll" ;; - esac - ;; - *) - mdh="\$(dir_top)/$loc/${depbase}.mdh" - case "$remote_mdhs " in - *" $mdh "*) ;; - *) remote_mdhs="$remote_mdhs $mdh" ;; - esac - export="\$(dir_top)/$loc/${depbase}.export" - case "$remote_exports " in - *" $export "*) ;; - *) remote_exports="$remote_exports $export" ;; - esac - case "$dep" in - zsh/main ) - mdll="\$(dir_top)/Src/libzsh-\$(VERSION).\$(DL_EXT) " - ;; - * ) - mdll="\$(dir_top)/$loc/${depbase}.\$(DL_EXT) " - ;; - esac - case "$remote_modules " in - *" $mdll "*) ;; - *) remote_modules="$remote_modules $mdll" ;; - esac - ;; - esac - modhdeps="$modhdeps $mdh" - exportdeps="$exportdeps $export" - imports="$imports \$(IMPOPT)$export" - case "$mododeps " in - *" $mdll "* ) - : - ;; - * ) - mododeps="$mododeps $mdll" - ;; - esac - done - - echo "##### ===== DEPENDENCIES GENERATED FROM ${mddname}.mdd ===== #####" - echo - echo "MODOBJS_${mddname} = $objects" - echo "MODDOBJS_${mddname} = $dobjects \$(@E@NTRYOBJ)" - echo "SYMS_${mddname} = $proto" - echo "EPRO_${mddname} = "`echo $proto '' | sed 's,\.syms ,.epro ,g'` - echo "INCS_${mddname} = \$(EPRO_${mddname}) $otherincs" - echo "EXPIMP_${mddname} = $imports \$(EXPOPT)$mddname.export" - echo "NXPIMP_${mddname} =" - echo "LINKMODS_${mddname} = $mododeps" - echo "NOLINKMODS_${mddname} = " - echo - echo "proto.${mddname}: \$(EPRO_${mddname})" - echo "\$(SYMS_${mddname}): \$(PROTODEPS)" - echo - echo "${mddname}.export: \$(SYMS_${mddname})" - echo " ( echo '#!'; cat \$(SYMS_${mddname}) | sed -n '/^X/{s/^X//;p;}' | sort -u ) > \$@" - echo - echo "modobjs.${mddname}: \$(MODOBJS_${mddname})" - echo " echo '' \$(MODOBJS_${mddname}) $modobjs_sed>> \$(dir_src)/stamp-modobjs.tmp" - echo - if test -z "$alwayslink"; then - case " $all_modules" in *" ${mddname}."*) - echo "install.modules-here: install.modules.${mddname}" - echo "uninstall.modules-here: uninstall.modules.${mddname}" - echo - ;; esac - instsubdir=`echo $name | sed 's,^,/,;s,/[^/]*$,,'` - echo "install.modules.${mddname}: ${mddname}.\$(DL_EXT)" - echo " \$(SHELL) \$(sdir_top)/mkinstalldirs \$(DESTDIR)\$(MODDIR)${instsubdir}" - echo " \$(INSTALL_PROGRAM) \$(STRIPFLAGS) ${mddname}.\$(DL_EXT) \$(DESTDIR)\$(MODDIR)/${name}.\$(DL_EXT)" - echo - echo "uninstall.modules.${mddname}:" - echo " rm -f \$(DESTDIR)\$(MODDIR)/${name}.\$(DL_EXT)" - echo - echo "${mddname}.\$(DL_EXT): \$(MODDOBJS_${mddname}) ${mddname}.export $exportdeps \$(@LINKMODS@_${mddname})" - echo ' rm -f $@' - echo " \$(DLLINK) \$(@E@XPIMP_$mddname) \$(@E@NTRYOPT) \$(MODDOBJS_${mddname}) \$(@LINKMODS@_${mddname}) \$(LIBS) " - echo - fi - echo "${mddname}.mdhi: ${mddname}.mdhs \$(INCS_${mddname})" - echo " @test -f \$@ || echo 'do not delete this file' > \$@" - echo - echo "${mddname}.mdhs: ${mddname}.mdd" - echo " @\$(MAKE) -f \$(makefile) \$(MAKEDEFS) ${mddname}.mdh.tmp" - echo " @if cmp -s ${mddname}.mdh ${mddname}.mdh.tmp; then \\" - echo " rm -f ${mddname}.mdh.tmp; \\" - echo " echo \"\\\`${mddname}.mdh' is up to date.\"; \\" - echo " else \\" - echo " mv -f ${mddname}.mdh.tmp ${mddname}.mdh; \\" - echo " echo \"Updated \\\`${mddname}.mdh'.\"; \\" - echo " fi" - echo " echo 'timestamp for ${mddname}.mdh against ${mddname}.mdd' > \$@" - echo - echo "${mddname}.mdh: ${modhdeps} ${headers} ${hdrdeps} ${mddname}.mdhi" - echo " @\$(MAKE) -f \$(makefile) \$(MAKEDEFS) ${mddname}.mdh.tmp" - echo " @mv -f ${mddname}.mdh.tmp ${mddname}.mdh" - echo " @echo \"Updated \\\`${mddname}.mdh'.\"" - echo - echo "${mddname}.mdh.tmp:" - echo " @( \\" - echo " echo '#ifndef have_${q_name}_module'; \\" - echo " echo '#define have_${q_name}_module'; \\" - echo " echo; \\" - echo " echo '# ifndef IMPORTING_MODULE_${q_name}'; \\" - echo " if test @SHORTBOOTNAMES@ = yes; then \\" - echo " echo '# ifndef MODULE'; \\" - echo " fi; \\" - echo " echo '# define boot_ boot_${q_name}'; \\" - echo " echo '# define cleanup_ cleanup_${q_name}'; \\" - echo " echo '# define setup_ setup_${q_name}'; \\" - echo " echo '# define finish_ finish_${q_name}'; \\" - echo " if test @SHORTBOOTNAMES@ = yes; then \\" - echo " echo '# endif /* !MODULE */'; \\" - echo " fi; \\" - echo " echo '# endif /* !IMPORTING_MODULE_${q_name} */'; \\" - echo " echo; \\" - if test -n "$moddeps"; then ( - set x $q_moddeps - echo " echo '/* Module dependencies */'; \\" - for hdep in $modhdeps; do - shift - echo " echo '# define IMPORTING_MODULE_${1} 1'; \\" - echo " echo '# include \"${hdep}\"'; \\" - done - echo " echo; \\" - ) fi - if test -n "$headers"; then - echo " echo '/* Extra headers for this module */'; \\" - echo " for hdr in $headers; do \\" - echo " if test -f \$\$hdr; then \\" - echo " echo '# include \"'\$\$hdr'\"'; \\" - echo " else \\" - echo " echo '# include \"\$(sdir)/'\$\$hdr'\"'; \\" - echo " fi; \\" - echo " done; \\" - echo " echo; \\" - fi - if test -n "$proto"; then - echo " echo '# undef mod_import_variable'; \\" - echo " echo '# undef mod_import_function'; \\" - echo " echo '# if defined(IMPORTING_MODULE_${q_name}) && defined(MODULE)'; \\" - echo " echo '# define mod_import_variable @MOD_IMPORT_VARIABLE@'; \\" - echo " echo '# define mod_import_function @MOD_IMPORT_FUNCTION@'; \\" - echo " echo '# else'; \\" - echo " echo '# define mod_import_function'; \\" - echo " echo '# define mod_import_variable'; \\" - echo " echo '# endif /* IMPORTING_MODULE_${q_name} && MODULE */'; \\" - echo " for epro in \$(EPRO_${mddname}); do \\" - echo " echo '# include \"'\$\$epro'\"'; \\" - echo " done; \\" - echo " echo '# undef mod_import_variable'; \\" - echo " echo '# define mod_import_variable'; \\" - echo " echo '# undef mod_import_variable'; \\" - echo " echo '# define mod_import_variable'; \\" - echo " echo '# ifndef mod_export'; \\" - echo " echo '# define mod_export @MOD_EXPORT@'; \\" - echo " echo '# endif /* mod_export */'; \\" - echo " echo; \\" - fi - echo " echo '#endif /* !have_${q_name}_module */'; \\" - echo " ) > \$@" - echo - echo "\$(MODOBJS_${mddname}) \$(MODDOBJS_${mddname}): ${mddname}.mdh" - sed -e '/^ *: *<< *\\Make *$/,/^Make$/!d' \ - -e 's/^ *: *<< *\\Make *$//; /^Make$/d' \ - < $top_srcdir/$the_subdir/${mddname}.mdd - echo - - done - - if test -n "$remote_mdhs$other_mdhs$remote_exports$other_exports$remote_modules$other_modules"; then - echo "##### ===== DEPENDENCIES FOR REMOTE MODULES ===== #####" - echo - for mdh in $remote_mdhs; do - echo "$mdh: FORCE" - echo " @cd @%@ && \$(MAKE) \$(MAKEDEFS) @%@$mdh" - echo - done | sed 's,^\(.*\)@%@\(.*\)@%@\(.*\)/\([^/]*\)$,\1\3\2\4,' - if test -n "$other_mdhs"; then - echo "${other_mdhs}:" | sed 's,^ ,,' - echo " false # should only happen with make -n" - echo - fi - for export in $remote_exports; do - echo "$export: FORCE" - echo " @cd @%@ && \$(MAKE) \$(MAKEDEFS) @%@$export" - echo - done | sed 's,^\(.*\)@%@\(.*\)@%@\(.*\)/\([^/]*\)$,\1\3\2\4,' - if test -n "$other_exports"; then - echo "${other_exports}:" | sed 's,^ ,,' - echo " false # should only happen with make -n" - echo - fi - for mdll in $remote_modules; do - echo "$mdll: FORCE" - echo " @cd @%@ && \$(MAKE) \$(MAKEDEFS) @%@$mdll" - echo - done | sed 's,^\(.*\)@%@\(.*\)@%@\(.*\)/\([^/]*\)$,\1\3\2\4,' - if test -n "$other_modules"; then - echo "${other_modules}:" | sed 's,^ ,,' - echo " false # should only happen with make -n" - echo - fi - fi - - echo "##### End of ${the_makefile}.in" - - exec >&3 3>&- - -fi - -if $second_stage ; then - trap "rm -f $the_subdir/${the_makefile}" 1 2 15 - - ${CONFIG_SHELL-/bin/sh} ./config.status \ - --file=$the_subdir/${the_makefile}:$the_subdir/${the_makefile}.in || - return 1 -fi - -exit 0 Index: Src/mkmakemod.sh.in.in =================================================================== RCS file: Src/mkmakemod.sh.in.in diff -N Src/mkmakemod.sh.in.in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Src/mkmakemod.sh.in.in 12 Sep 2004 18:49:35 -0000 @@ -0,0 +1,493 @@ +#!/bin/sh +# +# mkmakemod.sh: generate Makefile.in files for module building +# +# Options: +# -m = file is already generated; only build the second stage +# -i = do not build second stage +# +# Args: +# $1 = subdirectory to look in, relative to $top_srcdir +# $2 = final output filename, within the $1 directory +# +# This script must be run from the top-level build directory, and $top_srcdir +# must be set correctly in the environment. +# +# This looks in $1, and uses all the *.mdd files there. Each .mdd file +# defines one module. The .mdd file is actually a shell script, which will +# be sourced. It may define the following shell variables: +# +# name name of this module +# moddeps modules on which this module depends (default none) +# nozshdep non-empty indicates no dependence on the `zsh/main' pseudo-module +# alwayslink if non-empty, always link the module into the executable +# autobins builtins defined by the module, for autoloading +# autoinfixconds infix condition codes defined by the module, for +# autoloading (without the leading `-') +# autoprefixconds like autoinfixconds, but for prefix condition codes +# autoparams parameters defined by the module, for autoloading +# automathfuncs math functions defined by the module, for autoloading +# objects .o files making up this module (*must* be defined) +# proto .syms files for this module (default generated from $objects) +# headers extra headers for this module (default none) +# hdrdeps extra headers on which the .mdh depends (default none) +# otherincs extra headers that are included indirectly (default none) +# +# The .mdd file may also include a Makefile.in fragment between lines +# `:<<\Make' and `Make' -- this will be copied into Makemod.in. +# +# The resulting Makemod.in knows how to build each module that is defined. +# For each module in also knows how to build a .mdh file. Each source file +# should #include the .mdh file for the module it is a part of. The .mdh +# file #includes the .mdh files for any module dependencies, then each of +# $headers, and then each .epro (for global declarations). It will +# be recreated if any of the dependency .mdh files changes, or if any of +# $headers or $hdrdeps changes. When anything depends on it, all the .epros +# and $otherincs will be made up to date, but the .mdh file won't actually +# be rebuilt if those files change. +# +# The order of sections of the output file is thus: +# simple generated macros +# macros generated from *.mdd +# included Makemod.in.in +# rules generated from *.mdd +# The order dependencies are basically that the generated macros are required +# in Makemod.in.in, but some of the macros that it creates are needed in the +# later rules. +# + +# sed script to normalise a pathname +sed_normalise=' + s,^,/, + s,$,/, + :1 + s,/\./,/, + t1 + :2 + s,/[^/.][^/]*/\.\./,/, + s,/\.[^/.][^/]*/\.\./,/, + s,/\.\.[^/][^/]*/\.\./,/, + t2 + s,^/$,., + s,^/,, + s,\(.\)/$,\1, +' + +# decide which stages to process +first_stage=true +second_stage=true +if test ."$1" = .-m; then + shift + first_stage=false +elif test ."$1" = .-i; then + shift + second_stage=false +fi + +top_srcdir=`echo $top_srcdir | sed "$sed_normalise"` +the_subdir=$1 +the_makefile=$2 + +if $first_stage; then + + dir_top=`echo $the_subdir | sed 's,[^/][^/]*,..,g'` + + trap "rm -f $the_subdir/${the_makefile}.in" 1 2 15 + echo "creating $the_subdir/${the_makefile}.in" + exec 3>&1 >$the_subdir/${the_makefile}.in + echo "##### ${the_makefile}.in generated automatically by mkmakemod.sh" + echo "##### DO NOT EDIT!" + echo + echo "##### ===== DEFINITIONS ===== #####" + echo + echo "makefile = ${the_makefile}" + echo "dir_top = ${dir_top}" + echo "subdir = ${the_subdir}" + echo + + bin_mods=`grep link=static ./config.modules | \ + sed -e '/^#/d' -e 's/ .*/ /' -e 's/^name=/ /'` + dyn_mods="`grep link=dynamic ./config.modules | \ + sed -e '/^#/d' -e 's/ .*/ /' -e 's/^name=/ /'`" + module_list="${bin_mods}${dyn_mods}" + + # check both 2.13 and 2.50 syntax + if grep '%_@_D_@_%D%' config.status >/dev/null || + grep ',_@_D_@_,D,' config.status >/dev/null; then + is_dynamic=true + else + is_dynamic=false + fi + + here_mddnames= + all_subdirs= + all_modobjs= + all_modules= + all_mdds= + all_mdhs= + all_proto= + lastsub=// + for module in $module_list; do + modfile="`grep '^name='$module' ' ./config.modules | \ + sed -e 's/^.* modfile=//' -e 's/ .*//'`" + case $modfile in + $the_subdir/$lastsub/*) ;; + $the_subdir/*/*) + lastsub=`echo $modfile | sed 's,^'$the_subdir'/,,;s,/[^/]*$,,'` + case "$all_subdirs " in + *" $lastsub "* ) ;; + * ) + all_subdirs="$all_subdirs $lastsub" + ;; + esac + ;; + $the_subdir/*) + mddname=`echo $modfile | sed 's,^.*/,,;s,\.mdd$,,'` + here_mddnames="$here_mddnames $mddname" + build=$is_dynamic + case $is_dynamic_@_$bin_mods in + *" $module "*) + build=true + all_modobjs="$all_modobjs modobjs.${mddname}" ;; + true_@_*) + all_modules="$all_modules ${mddname}.\$(DL_EXT)" ;; + esac + all_mdds="$all_mdds ${mddname}.mdd" + $build && all_mdhs="$all_mdhs ${mddname}.mdh" + $build && all_proto="$all_proto proto.${mddname}" + ;; + esac + done + echo "MODOBJS =$all_modobjs" + echo "MODULES =$all_modules" + echo "MDDS =$all_mdds" + echo "MDHS =$all_mdhs" + echo "PROTOS =$all_proto" + echo "SUBDIRS =$all_subdirs" + echo + echo "ENTRYOBJ = \$(dir_src)/modentry..o" + echo "NNTRYOBJ =" + echo "ENTRYOPT = -emodentry" + echo "NNTRYOPT =" + echo + + echo "##### ===== INCLUDING Makemod.in.in ===== #####" + echo + cat $top_srcdir/Src/Makemod.in.in + echo + + case $the_subdir in + Src) modobjs_sed= ;; + Src/*) modobjs_sed="| sed 's\" \" "`echo $the_subdir | sed 's,^Src/,,'`"/\"g' " ;; + *) modobjs_sed="| sed 's\" \" ../$the_subdir/\"g' " ;; + esac + + other_mdhs= + remote_mdhs= + other_exports= + remote_exports= + other_modules= + remote_modules= + for mddname in $here_mddnames; do + + unset name moddeps nozshdep alwayslink hasexport + unset autobins autoinfixconds autoprefixconds autoparams automathfuncs + unset objects proto headers hdrdeps otherincs autoconf achfile + . $top_srcdir/$the_subdir/${mddname}.mdd + q_name=`echo $name | sed 's,Q,Qq,g;s,_,Qu,g;s,/,Qs,g'` + test -n "${moddeps+set}" || moddeps= + test -n "$nozshdep" || moddeps="$moddeps zsh/main" + test -n "${proto+set}" || + proto=`echo $objects '' | sed 's,\.o ,.syms ,g'` + + dobjects=`echo $objects '' | sed 's,\.o ,..o ,g'` + modhdeps= + mododeps= + exportdeps= + imports= + q_moddeps= + for dep in $moddeps; do + depfile="`grep '^name='$dep' ' ./config.modules | \ + sed -e 's/^.* modfile=//' -e 's/ .*//'`" + q_dep=`echo $dep | sed 's,Q,Qq,g;s,_,Qu,g;s,/,Qs,g'` + q_moddeps="$q_moddeps $q_dep" + eval `echo $depfile | sed 's,/\([^/]*\)\.mdd$,;depbase=\1,;s,^,loc=,'` + case "$binmod" in + *" $dep "* ) + dep=zsh/main + ;; + esac + + case $the_subdir in + $loc) + mdh="${depbase}.mdh" + export="${depbase}.export" + case "$dep" in + zsh/main ) + mdll="\$(dir_top)/Src/libzsh-\$(VERSION).\$(DL_EXT) " + ;; + * ) + mdll="${depbase}.\$(DL_EXT) " + ;; + esac + ;; + $loc/*) + mdh="\$(dir_top)/$loc/${depbase}.mdh" + case "$other_mdhs " in + *" $mdh "*) ;; + *) other_mdhs="$other_mdhs $mdh" ;; + esac + export="\$(dir_top)/$loc/${depbase}.export" + case "$other_exports " in + *" $export "*) ;; + *) other_exports="$other_exports $export" ;; + esac + case "$dep" in + zsh/main ) + mdll="\$(dir_top)/Src/libzsh-\$(VERSION).\$(DL_EXT) " + ;; + * ) + mdll="\$(dir_top)/$loc/${depbase}.\$(DL_EXT) " + ;; + esac + case "$other_modules " in + *" $mdll "*) ;; + *) other_modules="$other_modules $mdll" ;; + esac + ;; + *) + mdh="\$(dir_top)/$loc/${depbase}.mdh" + case "$remote_mdhs " in + *" $mdh "*) ;; + *) remote_mdhs="$remote_mdhs $mdh" ;; + esac + export="\$(dir_top)/$loc/${depbase}.export" + case "$remote_exports " in + *" $export "*) ;; + *) remote_exports="$remote_exports $export" ;; + esac + case "$dep" in + zsh/main ) + mdll="\$(dir_top)/Src/libzsh-\$(VERSION).\$(DL_EXT) " + ;; + * ) + mdll="\$(dir_top)/$loc/${depbase}.\$(DL_EXT) " + ;; + esac + case "$remote_modules " in + *" $mdll "*) ;; + *) remote_modules="$remote_modules $mdll" ;; + esac + ;; + esac + modhdeps="$modhdeps $mdh" + exportdeps="$exportdeps $export" + imports="$imports \$(IMPOPT)$export" + case "$mododeps " in + *" $mdll "* ) + : + ;; + * ) + mododeps="$mododeps $mdll" + ;; + esac + done + + echo "##### ===== DEPENDENCIES GENERATED FROM ${mddname}.mdd ===== #####" + echo + echo "MODOBJS_${mddname} = $objects" + echo "MODDOBJS_${mddname} = $dobjects \$(_@_E_@_NTRYOBJ)" + echo "SYMS_${mddname} = $proto" + echo "EPRO_${mddname} = "`echo $proto '' | sed 's,\.syms ,.epro ,g'` + echo "INCS_${mddname} = \$(EPRO_${mddname}) $otherincs" + echo "EXPIMP_${mddname} = $imports \$(EXPOPT)$mddname.export" + echo "NXPIMP_${mddname} =" + echo "LINKMODS_${mddname} = $mododeps" + echo "NOLINKMODS_${mddname} = " + echo + echo "proto.${mddname}: \$(EPRO_${mddname})" + echo "\$(SYMS_${mddname}): \$(PROTODEPS)" + echo + echo "${mddname}.export: \$(SYMS_${mddname})" + echo " ( echo '#!'; cat \$(SYMS_${mddname}) | sed -n '/^X/{s/^X//;p;}' | sort -u ) > \$_@_" + echo + echo "modobjs.${mddname}: \$(MODOBJS_${mddname})" + echo " echo '' \$(MODOBJS_${mddname}) $modobjs_sed>> \$(dir_src)/stamp-modobjs.tmp" + echo + + if test -n "$autoconf"; then + touch ${the_subdir}/${mddname}.rules + echo "@am__include@ @am__quote@${mddname}.rules@am__quote@" + echo + echo "${mddname}.ach ${mddname}.rules: \$(sdir_src)/Modules/${mddname}.configure" + echo " \$(sdir_src)/Modules/${mddname}.configure" + echo + echo "\$(sdir_src)/Modules/${mddname}.configure: ${mddname}.configure.ac ${mddname}.ach.in" + echo " cd \$(sdir_src)/Modules && autoconf ${mddname}.configure.ac >${mddname}.configure" + echo " chmod +x \$(sdir_src)/Modules/pcre.configure" + echo + echo "\$(sdir_src)/Modules/${mddname}.ach.in:" + echo " cd \$(sdir_src)/Modules && autoheader ${mddname}.configure.ac" + achfile="${mddname}.ach" + fi + + if test -z "$alwayslink"; then + case " $all_modules" in *" ${mddname}."*) + echo "install.modules-here: install.modules.${mddname}" + echo "uninstall.modules-here: uninstall.modules.${mddname}" + echo + ;; esac + instsubdir=`echo $name | sed 's,^,/,;s,/[^/]*$,,'` + echo "install.modules.${mddname}: ${mddname}.\$(DL_EXT)" + echo " \$(SHELL) \$(sdir_top)/mkinstalldirs \$(DESTDIR)\$(MODDIR)${instsubdir}" + echo " \$(INSTALL_PROGRAM) \$(STRIPFLAGS) ${mddname}.\$(DL_EXT) \$(DESTDIR)\$(MODDIR)/${name}.\$(DL_EXT)" + echo + echo "uninstall.modules.${mddname}:" + echo " rm -f \$(DESTDIR)\$(MODDIR)/${name}.\$(DL_EXT)" + echo + echo "${mddname}.\$(DL_EXT): \$(MODDOBJS_${mddname}) ${mddname}.export $exportdeps \$(_@_LINKMODS_@__${mddname})" + echo ' rm -f $_@_' + echo " \$(DLLINK) \$(_@_E_@_XPIMP_$mddname) \$(_@_E_@_NTRYOPT) \$(MODDOBJS_${mddname}) \$(_@_LINKMODS_@__${mddname}) \$(LIBS) \$(EXTRALIBS_${mddname}) " + echo + fi + echo "${mddname}.mdhi: ${mddname}.mdhs \$(INCS_${mddname})" + echo " _@_test -f \$_@_ || echo 'do not delete this file' > \$_@_" + echo + echo "${mddname}.mdhs: ${mddname}.mdd" + echo " _@_\$(MAKE) -f \$(makefile) \$(MAKEDEFS) ${mddname}.mdh.tmp" + echo " _@_if cmp -s ${mddname}.mdh ${mddname}.mdh.tmp; then \\" + echo " rm -f ${mddname}.mdh.tmp; \\" + echo " echo \"\\\`${mddname}.mdh' is up to date.\"; \\" + echo " else \\" + echo " mv -f ${mddname}.mdh.tmp ${mddname}.mdh; \\" + echo " echo \"Updated \\\`${mddname}.mdh'.\"; \\" + echo " fi" + echo " echo 'timestamp for ${mddname}.mdh against ${mddname}.mdd' > \$_@_" + echo + echo "${mddname}.mdh: ${modhdeps} ${headers} ${hdrdeps} ${mddname}.mdhi" + echo " _@_\$(MAKE) -f \$(makefile) \$(MAKEDEFS) ${mddname}.mdh.tmp" + echo " _@_mv -f ${mddname}.mdh.tmp ${mddname}.mdh" + echo " _@_echo \"Updated \\\`${mddname}.mdh'.\"" + echo + echo "${mddname}.mdh.tmp:" + echo " _@_( \\" + echo " echo '#ifndef have_${q_name}_module'; \\" + echo " echo '#define have_${q_name}_module'; \\" + echo " echo; \\" + echo " echo '# ifndef IMPORTING_MODULE_${q_name}'; \\" + echo " if test _@_SHORTBOOTNAMES_@_ = yes; then \\" + echo " echo '# ifndef MODULE'; \\" + echo " fi; \\" + echo " echo '# define boot_ boot_${q_name}'; \\" + echo " echo '# define cleanup_ cleanup_${q_name}'; \\" + echo " echo '# define setup_ setup_${q_name}'; \\" + echo " echo '# define finish_ finish_${q_name}'; \\" + echo " if test _@_SHORTBOOTNAMES_@_ = yes; then \\" + echo " echo '# endif /* !MODULE */'; \\" + echo " fi; \\" + echo " echo '# endif /* !IMPORTING_MODULE_${q_name} */'; \\" + echo " echo; \\" + if test -n "$moddeps"; then ( + set x $q_moddeps + echo " echo '/* Module dependencies */'; \\" + for hdep in $modhdeps; do + shift + echo " echo '# define IMPORTING_MODULE_${1} 1'; \\" + echo " echo '# include \"${hdep}\"'; \\" + done + echo " echo; \\" + ) fi + if test -n "$headers"; then + echo " echo '/* Extra headers for this module */'; \\" + echo " for hdr in $headers; do \\" + echo " if test -f \$\$hdr; then \\" + echo " echo '# include \"'\$\$hdr'\"'; \\" + echo " else \\" + echo " echo '# include \"\$(sdir)/'\$\$hdr'\"'; \\" + echo " fi; \\" + echo " done; \\" + echo " echo; \\" + fi + if test -n "$proto"; then + echo " echo '# undef mod_import_variable'; \\" + echo " echo '# undef mod_import_function'; \\" + echo " echo '# if defined(IMPORTING_MODULE_${q_name}) && defined(MODULE)'; \\" + echo " echo '# define mod_import_variable _@_MOD_IMPORT_VARIABLE_@_'; \\" + echo " echo '# define mod_import_function _@_MOD_IMPORT_FUNCTION_@_'; \\" + echo " echo '# else'; \\" + echo " echo '# define mod_import_function'; \\" + echo " echo '# define mod_import_variable'; \\" + echo " echo '# endif /* IMPORTING_MODULE_${q_name} && MODULE */'; \\" + echo " for epro in \$(EPRO_${mddname}); do \\" + echo " echo '# include \"'\$\$epro'\"'; \\" + echo " done; \\" + echo " echo '# undef mod_import_variable'; \\" + echo " echo '# define mod_import_variable'; \\" + echo " echo '# undef mod_import_variable'; \\" + echo " echo '# define mod_import_variable'; \\" + echo " echo '# ifndef mod_export'; \\" + echo " echo '# define mod_export _@_MOD_EXPORT_@_'; \\" + echo " echo '# endif /* mod_export */'; \\" + echo " echo; \\" + fi + echo " echo '#endif /* !have_${q_name}_module */'; \\" + echo " ) > \$_@_" + echo + echo "\$(MODOBJS_${mddname}) \$(MODDOBJS_${mddname}): ${mddname}.mdh $achfile" + sed -e '/^ *: *<< *\\Make *$/,/^Make$/!d' \ + -e 's/^ *: *<< *\\Make *$//; /^Make$/d' \ + < $top_srcdir/$the_subdir/${mddname}.mdd + echo + + done + + if test -n "$remote_mdhs$other_mdhs$remote_exports$other_exports$remote_modules$other_modules"; then + echo "##### ===== DEPENDENCIES FOR REMOTE MODULES ===== #####" + echo + for mdh in $remote_mdhs; do + echo "$mdh: FORCE" + echo " _@_cd _@_%_@_ && \$(MAKE) \$(MAKEDEFS) _@_%_@_$mdh" + echo + done | sed 's,^\(.*\)_@_%_@_\(.*\)_@_%_@_\(.*\)/\([^/]*\)$,\1\3\2\4,' + if test -n "$other_mdhs"; then + echo "${other_mdhs}:" | sed 's,^ ,,' + echo " false # should only happen with make -n" + echo + fi + for export in $remote_exports; do + echo "$export: FORCE" + echo " _@_cd _@_%_@_ && \$(MAKE) \$(MAKEDEFS) _@_%_@_$export" + echo + done | sed 's,^\(.*\)_@_%_@_\(.*\)_@_%_@_\(.*\)/\([^/]*\)$,\1\3\2\4,' + if test -n "$other_exports"; then + echo "${other_exports}:" | sed 's,^ ,,' + echo " false # should only happen with make -n" + echo + fi + for mdll in $remote_modules; do + echo "$mdll: FORCE" + echo " _@_cd _@_%_@_ && \$(MAKE) \$(MAKEDEFS) _@_%_@_$mdll" + echo + done | sed 's,^\(.*\)_@_%_@_\(.*\)_@_%_@_\(.*\)/\([^/]*\)$,\1\3\2\4,' + if test -n "$other_modules"; then + echo "${other_modules}:" | sed 's,^ ,,' + echo " false # should only happen with make -n" + echo + fi + fi + + echo "##### End of ${the_makefile}.in" + + exec >&3 3>&- + +fi + +if $second_stage ; then + trap "rm -f $the_subdir/${the_makefile}" 1 2 15 + + ${CONFIG_SHELL-/bin/sh} ./config.status \ + --file=$the_subdir/${the_makefile}:$the_subdir/${the_makefile}.in || + return 1 +fi + +exit 0 Index: Src/Modules/.cvsignore =================================================================== RCS file: /cvsroot/zsh/zsh/Src/Modules/.cvsignore,v retrieving revision 1.4 diff -u -r1.4 .cvsignore --- Src/Modules/.cvsignore 3 Nov 2003 02:51:21 -0000 1.4 +++ Src/Modules/.cvsignore 12 Sep 2004 18:49:35 -0000 @@ -15,3 +15,4 @@ *.swp errnames.c errcount.h *.dll +*.rules Index: Src/Modules/pcre.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/Modules/pcre.c,v retrieving revision 1.9 diff -u -r1.9 pcre.c --- Src/Modules/pcre.c 22 Jun 2004 23:48:00 -0000 1.9 +++ Src/Modules/pcre.c 12 Sep 2004 18:49:35 -0000 @@ -30,6 +30,7 @@ #include "pcre.mdh" #include "pcre.pro" +#include "pcre.ach" #define CPCRE_PLAIN 0 Index: Src/Modules/pcre.configure.ac =================================================================== RCS file: Src/Modules/pcre.configure.ac diff -N Src/Modules/pcre.configure.ac --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Src/Modules/pcre.configure.ac 12 Sep 2004 18:49:35 -0000 @@ -0,0 +1,46 @@ +dnl +dnl pcre.ac: Configure template for zsh/pcre module. +dnl Process this file with autoconf to produce a configure script. +dnl +dnl Copyright (c) 2002, 2004 Clint Adams +dnl +dnl Permission is hereby granted, without written agreement and without +dnl license or royalty fees, to use, copy, modify, and distribute this +dnl software and to distribute modified versions of this software for any +dnl purpose, provided that the above copyright notice and the following +dnl two paragraphs appear in all copies of this software. +dnl +dnl In no event shall Clint Adams or the Zsh Development Group be liable +dnl to any party for direct, indirect, special, incidental, or consequential +dnl damages arising out of the use of this software and its documentation, +dnl even if Clint Adams and the Zsh Development Group have been advised of +dnl the possibility of such damage. +dnl +dnl Clint Adams and the Zsh Development Group specifically disclaim any +dnl warranties, including, but not limited to, the implied warranties of +dnl merchantability and fitness for a particular purpose. The software +dnl provided hereunder is on an "as is" basis, and Clint Adams and +the +dnl Zsh Development Group have no obligation to provide maintenance, +dnl support, updates, enhancements, or modifications. +dnl + +AC_INIT +AC_CONFIG_SRCDIR([pcre.c]) +AC_PREREQ(2.59) + +AC_CONFIG_HEADER(pcre.ach) + +oldcflags="$CFLAGS" +AC_CHECK_PROG([PCRECONF], pcre-config, pcre-config) +if test "x$ac_cv_prog_PCRECONF" = xpcre-config; then + CPPFLAGS="$CPPFLAGS `pcre-config --cflags`" +fi + +AC_CHECK_HEADERS(pcre.h) + +AC_SEARCH_LIBS(pcre_compile, pcre) +AC_CHECK_FUNCS(pcre_compile pcre_study pcre_exec) + +AC_CONFIG_FILES([pcre.rules]) +AC_OUTPUT Index: Src/Modules/pcre.mdd =================================================================== RCS file: /cvsroot/zsh/zsh/Src/Modules/pcre.mdd,v retrieving revision 1.3 diff -u -r1.3 pcre.mdd --- Src/Modules/pcre.mdd 1 Mar 2004 17:58:59 -0000 1.3 +++ Src/Modules/pcre.mdd 12 Sep 2004 18:49:35 -0000 @@ -1,7 +1,9 @@ name=zsh/pcre -link=`if test x$enable_pcre = xyes; then echo dynamic; else echo no; fi` +link=dynamic load=no autobins="pcre_compile pcre_study pcre_match" objects="pcre.o" + +autoconf=yes Index: Src/Modules/pcre.rules.in =================================================================== RCS file: Src/Modules/pcre.rules.in diff -N Src/Modules/pcre.rules.in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Src/Modules/pcre.rules.in 12 Sep 2004 18:49:35 -0000 @@ -0,0 +1 @@ +EXTRALIBS_pcre = @LIBS@