"Derek R. Price" wrote: > > > I added a macro to test for the presence of etags and whether it > > > supports "--etags-include=<file>" or "-i <file>" for includes. Okay, one more try. I hadn't added etags.m4 to the Makefile.am so it wasn't being installed and I also tweaked the AM_PROG_ETAGS macro to call AM_MISSING_PROG(ETAGS, etags) when it can't find a working version of etags. I'm including the entire new patch. Derek -- Derek Price CVS Solutions Architect ( http://CVSHome.org ) mailto:[EMAIL PROTECTED] OpenAvenue ( http://OpenAvenue.com ) -- 106. Charlie was a Chemist, but Charlie is no more. What Charlie thought was H20 was H2SO4.
Index: ChangeLog =================================================================== RCS file: /cvs/automake/automake/ChangeLog,v retrieving revision 1.916 diff -u -r1.916 ChangeLog --- ChangeLog 2000/12/21 06:07:14 1.916 +++ ChangeLog 2000/12/21 18:07:02 @@ -1,3 +1,10 @@ +2000-12-21 Derek Price <[EMAIL PROTECTED]> + + * m4/etags.m4: Discover the etags implementation + * m4/init.m4: Require AM_PROG_ETAGS + * tags.am: add support for AM_PROG_ETAGS & don't assume + @CONFIG@ is present in the build directory + 2000-12-20 Marc Espie <[EMAIL PROTECTED]> * automake.in (handle_texinfo): Make path of $vtexi explicit in Index: tags.am =================================================================== RCS file: /cvs/automake/automake/tags.am,v retrieving revision 1.24 diff -u -r1.24 tags.am --- tags.am 2000/10/16 09:01:36 1.24 +++ tags.am 2000/12/21 18:07:02 @@ -36,17 +36,17 @@ SUBDIRS list='$(SUBDIRS)'; for subdir in $$list; do \ ## Do nothing if we're trying to look in `.'. SUBDIRS if test "$$subdir" = .; then :; else \ -SUBDIRS test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ +SUBDIRS test -f $$subdir/TAGS && tags="$$tags +$(ETAGS_INCLUDE_OPTION)$$here/$$subdir/TAGS"; \ SUBDIRS fi; \ SUBDIRS done; \ ## Make sure the list of sources is unique. list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ + unique=`for i in $$list @CONFIG@; do \ ## Handle VPATH correctly. if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ ## Make sure we have something to run etags on. - test -z "$(ETAGS_ARGS)@CONFIG@$$unique$(LISP)$$tags" \ - || etags $(ETAGS_ARGS) $$tags @CONFIG@ $$unique $(LISP) + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || $(ETAGS) $(ETAGS_ARGS) $$tags $$unique $(LISP) Index: m4/init.m4 =================================================================== RCS file: /cvs/automake/automake/m4/init.m4,v retrieving revision 1.20 diff -u -r1.20 m4/init.m4 --- m4/init.m4 2000/10/10 00:18:52 1.20 +++ m4/init.m4 2000/12/21 18:07:02 @@ -54,6 +54,7 @@ # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_PROG_ETAGS]) AC_REQUIRE([AM_DEP_TRACK])dnl AC_REQUIRE([AM_SET_DEPDIR])dnl AC_PROVIDE_IFELSE([AC_PROG_CC], Index: tests/ChangeLog =================================================================== RCS file: /cvs/automake/automake/tests/ChangeLog,v retrieving revision 1.309 diff -u -r1.309 tests/ChangeLog --- tests/ChangeLog 2000/12/17 21:32:57 1.309 +++ tests/ChangeLog 2000/12/21 18:07:02 @@ -1,3 +1,8 @@ +2000-12-21 Derek Price <[EMAIL PROTECTED]> + + * etags.test: New file + * Makefile.am (TESTS): added etags.test + 2000-12-17 Tom Tromey <[EMAIL PROTECTED]> * Makefile.am (XFAIL_TESTS): Don't mention ldflags.test. Index: tests/Makefile.am =================================================================== RCS file: /cvs/automake/automake/tests/Makefile.am,v retrieving revision 1.240 diff -u -r1.240 tests/Makefile.am --- tests/Makefile.am 2000/12/17 21:32:57 1.240 +++ tests/Makefile.am 2000/12/21 18:07:02 @@ -97,6 +98,7 @@ empty3.test \ empty4.test \ error.test \ +etags.test \ exdir.test \ exdir2.test \ exsource.test \ --- /dev/null Thu Aug 24 05:00:32 2000 +++ tests/etags.test Wed Dec 20 19:24:26 2000 @@ -0,0 +1,28 @@ +#! /bin/sh + +# Test to make sure depcomp is installed and found properly +# when required for multiple directories + +. $srcdir/defs || exit 1 + +cat > configure.in << 'END' +AC_INIT(Makefile.am) +AM_INIT_AUTOMAKE(nonesuch, nonesuch) +AM_PROG_ETAGS +AC_OUTPUT(Makefile) +END + +: > Makefile.am + +# Fail gracefully if no autoconf. +(autoconf --version) > /dev/null 2>&1 || exit 77 + +$ACLOCAL || exit 1 +autoconf || exit 1 +$AUTOMAKE || exit 1 +./configure || exit 1 + +egrep '^ETAGS = ..*$' Makefile >/dev/null 2>&1 || exit 1 +egrep '^ETAGS_INCLUDE_OPTION = ..*$' Makefile >/dev/null 2>&1 || exit 1 + +exit 0 Index: m4/Makefile.am =================================================================== RCS file: /cvs/automake/automake/m4/Makefile.am,v retrieving revision 1.28 diff -u -r1.28 m4/Makefile.am --- m4/Makefile.am 1999/11/22 19:22:02 1.28 +++ m4/Makefile.am 2000/12/21 22:21:40 @@ -7,6 +7,7 @@ m4data_DATA = ccstdc.m4 cond.m4 depend.m4 depout.m4 dmalloc.m4 \ error.m4 gcj.m4 header.m4 init.m4 lex.m4 lispdir.m4 maintainer.m4 \ minuso.m4 missing.m4 multi.m4 obstack.m4 protos.m4 ptrdiff.m4 \ -python.m4 regex.m4 sanity.m4 strtod.m4 termios.m4 winsz.m4 +python.m4 regex.m4 sanity.m4 strtod.m4 termios.m4 winsz.m4 \ +etags.m4 EXTRA_DIST = $(m4data_DATA) --- /dev/null Thu Aug 24 05:00:32 2000 +++ m4/etags.m4 Thu Dec 21 17:32:23 2000 @@ -0,0 +1,61 @@ +# +# Find some information about the etags program +# +# Sets +# ETAGS = path to etags +# ETAGS_INCLUDE_OPTION = option to pass to etags with arg for includes +# + +AC_DEFUN([AM_PROG_ETAGS], +[AC_BEFORE([$0], AM_PROG_ETAGS_WORKS) +AC_CHECK_PROG(ETAGS, etags, etags) +if test -z "$ETAGS"; then + AC_CHECK_PROG(ETAGS, ctags, ctags -e) +fi +if test -n "$ETAGS"; then + AM_PROG_ETAGS_WORKS + if test "$am_cv_prog_etags_works" = yes ; then + AM_PROG_ETAGS_INCLUDE_OPTION + else + AM_MISSING_PROG(ETAGS, etags) + fi +else + AM_MISSING_PROG(ETAGS, etags) +fi]) + + +AC_DEFUN([AM_PROG_ETAGS_WORKS], +[AC_CACHE_CHECK([whether etags works], [am_cv_prog_etags_works], +[cat >conftest.c <<EOF +int globalvar; +EOF +if AC_TRY_COMMAND(${ETAGS-etags} -f - conftest.c) |egrep "^int globalvar;" >/dev/null +2>&1; then + am_cv_prog_etags_works=yes +else + am_cv_prog_etags_works=no +fi +rm -f conftest.c])]) + +AC_DEFUN([AM_PROG_ETAGS_INCLUDE_OPTION], +[AC_REQUIRE([AM_PROG_ETAGS_WORKS]) +if test "$am_cv_prog_etags_works" = yes ; then + AC_CACHE_CHECK([for etags include option], + [am_cv_prog_etags_include_option], + [cat >conftest.c <<EOF +int globalvar; +EOF + if AC_TRY_COMMAND(${ETAGS-etags} --etags-include=TAGS.inc -f - conftest.c) \ + |egrep '^TAGS.inc,include$' >/dev/null 2>&1; then + am_cv_prog_etags_include_option=--etags-include= + elif AC_TRY_COMMAND(${ETAGS-etags} -i TAGS.inc -f - conftest.c) \ + |egrep '^TAGS.inc,include$' >/dev/null 2>&1; then + am_cv_prog_etags_include_option='"-i "' + else : + # AC_MSG_ERROR(unfamiliar etags implementation) + fi + rm -f conftest.c]) +else + : +fi +ETAGS_INCLUDE_OPTION="$am_cv_prog_etags_include_option" +AC_SUBST(ETAGS_INCLUDE_OPTION)])