From c14524ead9a1404521a9364e29d50e094fa5d7d4 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 10 Jan 1999 21:00:56 +0000 Subject: [PATCH] 1999-01-10 Tom Tromey * automake.in (objc_extensions): New sub. (handle_dependencies): Only generate dependency-tracking code for ObjC when ObjC source seen. 1998-12-22 Marcus G. Daniels * automake.in (handle_dependencies): Transform EXT & PFX in Objective C case. 1998-12-11 Marcus G. Daniels * automake.in: Register Objective C language. (finish_languages): Consider Objective C to be non_c. (lang_objc_rewrite, lang_objc_finish): New functions. (resolve_linker): Recognize OBJCLINK before LINK. --- ChangeLog | 18 +++++++++++++++ Makefile.in | 8 +++---- NEWS | 2 +- aclocal.m4 | 2 +- automake.in | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++- configure | 2 +- configure.in | 2 +- stamp-vti | 4 ++-- version.texi | 4 ++-- 9 files changed, 91 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6b9fdc71..5a13eba5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +1999-01-10 Tom Tromey + + * automake.in (objc_extensions): New sub. + (handle_dependencies): Only generate dependency-tracking code for + ObjC when ObjC source seen. + +1998-12-22 Marcus G. Daniels + + * automake.in (handle_dependencies): Transform EXT & PFX in + Objective C case. + +1998-12-11 Marcus G. Daniels + + * automake.in: Register Objective C language. + (finish_languages): Consider Objective C to be non_c. + (lang_objc_rewrite, lang_objc_finish): New functions. + (resolve_linker): Recognize OBJCLINK before LINK. + 1999-01-10 Tom Tromey * automake.in (handle_texinfo): Handle empty $config_aux_dir. diff --git a/Makefile.in b/Makefile.in index 8e4788ea..97aa83e4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -93,10 +93,10 @@ TEXINFOS = automake.texi DATA = $(pkgdata_DATA) DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \ -Makefile.in NEWS README-alpha THANKS TODO aclocal.in aclocal.m4 \ -ansi2knr.1 ansi2knr.c automake.in config.guess config.sub configure \ -configure.in elisp-comp install-sh mdate-sh missing mkinstalldirs \ -stamp-vti texinfo.tex version.texi ylwrap +Makefile.in NEWS THANKS TODO aclocal.in aclocal.m4 ansi2knr.1 \ +ansi2knr.c automake.in config.guess config.sub configure configure.in \ +elisp-comp install-sh mdate-sh missing mkinstalldirs stamp-vti \ +texinfo.tex version.texi ylwrap DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) diff --git a/NEWS b/NEWS index 31c53495..a2500a93 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -New in 1.3d: +New in 1.4: * Added support for the Fortran 77 programming language. * Re-indexed the Automake Texinfo manual. * Added `AM_FOOFLAGS' variable for each compiler invocation; diff --git a/aclocal.m4 b/aclocal.m4 index 0a5a4111..7928dd4c 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,4 +1,4 @@ -dnl aclocal.m4 generated automatically by aclocal 1.3d +dnl aclocal.m4 generated automatically by aclocal 1.3e dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation diff --git a/automake.in b/automake.in index 1b442558..cec31a4c 100755 --- a/automake.in +++ b/automake.in @@ -305,6 +305,8 @@ $obsolete_rx = '(' . join ('|', keys %obsolete_macros) . ')'; 'c'); ®ister_language ('cxx', 'CXXLINK', 0, 'c++', 'cc', 'cpp', 'cxx', 'C'); +®ister_language ('objc', 'OBJCLINK', 0, + 'm'); ®ister_language ('header', '', 0, 'h', 'H', 'hxx', 'h++', 'hh', 'hpp', 'inc'); ®ister_language ('yacc', '', 1, @@ -922,7 +924,7 @@ sub finish_languages $lang = $extension_map{$ext}; next if defined $done{$lang}; $done{$lang} = 1; - $non_c = 0 if $lang !~ /(cxx|f77|ratfor)$/; + $non_c = 0 if $lang !~ /(objc|cxx|f77|ratfor)$/; # Compute the function name of the finisher and then call it. $name = 'lang_' . $lang . '_finish'; @@ -2712,6 +2714,13 @@ sub handle_dependencies . 's/\@PFX\@//g;', 'depend2'); local ($ext); + foreach $ext (&objc_extensions) + { + $output_rules .= + &file_contents_with_transform ('s/\@EXT\@/' . $ext . '/g;' + . 's/\@PFX\@/OBJC/g;', + 'depend2'); + } foreach $ext (&cxx_extensions) { $output_rules .= @@ -4448,6 +4457,12 @@ sub lang_f77_rewrite return 1; } +# Rewrite a single Objective C file. +sub lang_objc_rewrite +{ + return 1; +} + # The lang_X_finish functions are called after all source file # processing is done. Each should handle defining rules for the # language, etc. A finish function is only called if a source file of @@ -4832,6 +4847,49 @@ sub lang_ratfor_finish } } +sub lang_objc_finish +{ + push (@suffixes, '.m'); + + local ($ltcompile, $ltlink) = &libtool_compiler; + + &define_configure_variable ("OBJCFLAGS"); + &define_variable ('OBJCCOMPILE', '$(OBJC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS)'); + &define_variable ('LTOBJCCOMPILE', + $ltcompile . '$(OBJC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS)') + if ($seen_libtool); + + &define_variable ('OBJCLD', '$(OBJC)'); + &define_variable ('OBJCLINK', $ltlink . '$(OBJCLD) $(AM_OBJCFLAGS) $(OBJCFLAGS) $(LDFLAGS) -o $@'); + + $output_rules .= (".m.o:\n" + . "\t\$(OBJCCOMPILE) -c \$<\n"); + # FIXME: Using cygpath should be somehow conditional. + $output_rules .= (".m.obj:\n" + . "\t\$(OBJCCOMPILE) -c `cygpath -w \$<`\n") + if ($seen_objext); + $output_rules .= (".m.lo:\n" + . "\t\$(LTOBJCCOMPILE) -c \$<\n") + if ($seen_libtool); + + if (! defined $configure_vars{'OBJC'}) + { + &am_error ("Objective C source seen but \`OBJC' not defined in \`configure.in'"); + } +} + +# A helper which computes a sorted list of all ObjC extensions which +# were seen. +sub objc_extensions +{ + local ($key, @r); + foreach $key (sort keys %extension_seen) + { + push (@r, '.' . $key) if $extension_map{$key} eq 'objc'; + } + return @r; +} + # A helper which decides whether libtool is needed. Returns prefix # for compiler and linker. sub libtool_compiler @@ -4858,6 +4916,8 @@ sub resolve_linker if defined $linkers{'CXXLINK'}; return 'F77LINK' if defined $linkers{'F77LINK'}; + return 'OBJCLINK' + if defined $linkers{'OBJCLINK'}; return 'LINK'; } diff --git a/configure b/configure index 9a37979b..c3ea1f1b 100755 --- a/configure +++ b/configure @@ -692,7 +692,7 @@ fi PACKAGE=automake -VERSION=1.3e +VERSION=1.4 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } diff --git a/configure.in b/configure.in index 8d112ada..b5e1ea3d 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(automake.in) -AM_INIT_AUTOMAKE(automake, 1.3e) +AM_INIT_AUTOMAKE(automake, 1.4) # Find an appropriate tar for use in "dist" targets. A "best guess" # is good enough -- if we can't find GNU tar, we don't really care. diff --git a/stamp-vti b/stamp-vti index 2adaa918..b3f0ebb4 100644 --- a/stamp-vti +++ b/stamp-vti @@ -1,3 +1,3 @@ @set UPDATED 10 January 1999 -@set EDITION 1.3e -@set VERSION 1.3e +@set EDITION 1.4 +@set VERSION 1.4 diff --git a/version.texi b/version.texi index 2adaa918..b3f0ebb4 100644 --- a/version.texi +++ b/version.texi @@ -1,3 +1,3 @@ @set UPDATED 10 January 1999 -@set EDITION 1.3e -@set VERSION 1.3e +@set EDITION 1.4 +@set VERSION 1.4 -- 2.43.5