From 77518b4de47ee3b33658ee2d89b2974cfb94e135 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 20 Mar 1998 21:02:39 +0000 Subject: [PATCH] ansi2knr updates from harlan stenn --- ChangeLog | 6 ++++++ NEWS | 1 + ansi2knr.c | 7 +++++-- automake.in | 8 ++++++-- lib/ansi2knr.c | 7 +++++-- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 051cbc9ac..a6735f28f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ Fri Mar 20 00:26:10 1998 Tom Tromey + De-ansi-fication fixes from Harlan Stenn: + * ansi2knr.c (main): Accept "-" argument to mean stdin. + * automake.in (handle_yacc_lex_cxx): Preprocess C source before + running through ANSI2KNR. + (get_object_extension): Generate rule for /ansi2knr.o. + * texinfos.am: Include $(DESTDIR). * lisp.am: Include $(DESTDIR). * java.am: Include $(DESTDIR). diff --git a/NEWS b/NEWS index 385d29ef0..e77c05fd5 100644 --- a/NEWS +++ b/NEWS @@ -11,6 +11,7 @@ New in 1.2g: * Dependencies computed as a side effect of compilation * Preliminary support for Java * DESTDIR support at "make install" time +* Improved ansi2knr support; you must use the latest ansi2knr.c (included) New in 1.2: * Bug fixes diff --git a/ansi2knr.c b/ansi2knr.c index c6ee83309..f7d5cc339 100644 --- a/ansi2knr.c +++ b/ansi2knr.c @@ -184,7 +184,7 @@ main(argc, argv) */ int convert_varargs = 1; - if ( argc > 1 && argv[1][0] == '-' ) + if ( argc > 1 && argv[1][0] == '-' && argv[1][1]) { if ( !strcmp(argv[1], "--varargs") ) { convert_varargs = 1; argc--; @@ -200,7 +200,10 @@ main(argc, argv) printf("Usage: ansi2knr input_file [output_file]\n"); exit(1); } - in = fopen(argv[1], "r"); + if (argv[1][0] == '-' && !argv[1][1]) + in = stdin; + else + in = fopen(argv[1], "r"); if ( in == NULL ) { fprintf(stderr, "Cannot open input file %s\n", argv[1]); diff --git a/automake.in b/automake.in index 7071538a3..7f46507ec 100755 --- a/automake.in +++ b/automake.in @@ -821,6 +821,10 @@ sub get_object_extension { $output_rules .= ("\tcd " . &dirname ($options{'ansi2knr'}) . " && \$(MAKE) ansi2knr\n\n"); + # This is required for non-GNU makes. + $output_rules .= ($options{'ansi2knr'} . ".o:\n"); + $output_rules .= ("\tcd " . &dirname ($options{'ansi2knr'}) + . " && \$(MAKE) ansi2knr.o\n\n"); } # Make sure ansi2knr can be found: if no path specified, @@ -992,11 +996,11 @@ sub handle_yacc_lex_cxx # we can't use $< -- some makes only define $< during a # suffix rule. $output_rules .= ($base . "_.c: $base.c \$(ANSI2KNR)\n\t" - . '$(ANSI2KNR) ' + . '$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) ' . '`if test -f $(srcdir)/' . $base . '.c' . '; then echo $(srcdir)/' . $base . '.c' . '; else echo ' . $base . '.c; fi` ' - . $base . "_.c\n"); + . '| $(ANSI2KNR) - ' . $base . "_.c\n"); push (@objects, $base . '_.o'); push (@objects, $base . '_.lo') if $seen_libtool; } diff --git a/lib/ansi2knr.c b/lib/ansi2knr.c index c6ee83309..f7d5cc339 100644 --- a/lib/ansi2knr.c +++ b/lib/ansi2knr.c @@ -184,7 +184,7 @@ main(argc, argv) */ int convert_varargs = 1; - if ( argc > 1 && argv[1][0] == '-' ) + if ( argc > 1 && argv[1][0] == '-' && argv[1][1]) { if ( !strcmp(argv[1], "--varargs") ) { convert_varargs = 1; argc--; @@ -200,7 +200,10 @@ main(argc, argv) printf("Usage: ansi2knr input_file [output_file]\n"); exit(1); } - in = fopen(argv[1], "r"); + if (argv[1][0] == '-' && !argv[1][1]) + in = stdin; + else + in = fopen(argv[1], "r"); if ( in == NULL ) { fprintf(stderr, "Cannot open input file %s\n", argv[1]); -- 2.47.2