Port ctags+etags build to Sun C 5.12.
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 18 May 2014 18:57:04 +0000 (11:57 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 18 May 2014 18:57:04 +0000 (11:57 -0700)
* .bzrignore: Remove lib-src/ctags.c.
* lib-src/Makefile.in (etags_args): Remove, replacing with ...
(etags_cflags, etags_libs): New macros.  All uses changed.
(ctags${EXEEXT}): Don't compile etags.c, as compiling etags.c in
parallel (once for ctags, once for etags) breaks parallel makes
with compilers that use the source file name to name temporaries,
such as Sun C 5.12.  Instead, compile ctags.c.
* lib-src/ctags.c: New file.

ChangeLog
lib-src/ChangeLog
lib-src/Makefile.in
lib-src/ctags.c [new file with mode: 0644]

index 1e6f9cd..53ac1d9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2014-05-18  Paul Eggert  <eggert@cs.ucla.edu>
 
+       Port ctags+etags build to Sun C 5.12.
+       * .bzrignore: Remove lib-src/ctags.c.
+
        Port recent libpng changes to hosts with missing png.h.
        * configure.ac (HAVE_PNG): Port to platforms where libpng-config
        succeeds but png.h is absent, by testing libpng-config's output
index f571b40..3fac70b 100644 (file)
@@ -1,3 +1,14 @@
+2014-05-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port ctags+etags build to Sun C 5.12.
+       * Makefile.in (etags_args): Remove, replacing with ...
+       (etags_cflags, etags_libs): New macros.  All uses changed.
+       (ctags${EXEEXT}): Don't compile etags.c, as compiling etags.c in
+       parallel (once for ctags, once for etags) breaks parallel makes
+       with compilers that use the source file name to name temporaries,
+       such as Sun C 5.12.  Instead, compile ctags.c.
+       * ctags.c: New file.
+
 2014-05-04  Paul Eggert  <eggert@cs.ucla.edu>
 
        Handle systems without WCONTINUED consistently.  (Bug#15110, 17339)
index 6f25d75..3009ff2 100644 (file)
@@ -311,18 +311,18 @@ regex.o: $(srcdir)/../src/regex.c $(srcdir)/../src/regex.h $(config_h)
 
 
 etags_deps = ${srcdir}/etags.c regex.o $(NTLIB) $(config_h)
-etags_args = -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" \
-       ${srcdir}/etags.c regex.o $(LOADLIBES) $(NTLIB) -o $@
+etags_cflags = -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" -o $@
+etags_libs = regex.o $(LOADLIBES) $(NTLIB)
 
 etags${EXEEXT}: ${etags_deps}
-       $(CC) ${ALL_CFLAGS} ${etags_args}
+       $(CC) ${ALL_CFLAGS} $(etags_cflags) $(srcdir)/etags.c $(etags_libs)
 
+## ctags.c is distinct from etags.c so that parallel makes do not write two
+## etags.o files on top of each other.
 ## FIXME?
-## Can't we use a symlink ctags -> etags, and make etags check for argv[0]?
-## Or a wrapper script that calls etags --ctags?
-ctags${EXEEXT}: ${etags_deps}
-       $(CC) ${ALL_CFLAGS} -DCTAGS ${etags_args}
-
+## Can't we use a wrapper that calls 'etags --ctags'?
+ctags${EXEEXT}: ctags.c ${etags_deps}
+       $(CC) ${ALL_CFLAGS} $(etags_cflags) $(srcdir)/ctags.c $(etags_libs)
 
 ebrowse${EXEEXT}: ${srcdir}/ebrowse.c ${srcdir}/../lib/min-max.h $(NTLIB) \
                    $(config_h)
diff --git a/lib-src/ctags.c b/lib-src/ctags.c
new file mode 100644 (file)
index 0000000..0a6838a
--- /dev/null
@@ -0,0 +1,2 @@
+#define CTAGS 1
+#include "etags.c"