* automake.in (handle_dist): Use AMTAR.
[automake.git] / ChangeLog
blob2321fc9295732574ac6db4a5cb9342f3dc3be249
1 1999-04-11  Tom Tromey  <tromey@cygnus.com>
3         * automake.in (handle_dist): Use AMTAR.
4         (initialize_global_constants): Likewise.
5         * m4/init.m4 (AM_INIT_AUTOMAKE): Use AMTAR, not TAR.
7         * automake.in (lang_sub_obj): New function.
8         (lang_cxx_rewrite): Use it.
9         (lang_asm_rewrite): Likewise.
10         (lang_objc_rewrite): Likewise.
11         (lang_cxx_finish): Add `-o $@' to all C++ rules.
12         (lang_asm_finish): Add `-o' to suffix rules when appropriate.
13         (lang_objc_finish): Add `-o $@' to all ObjC rules.
14         (lang_java_finish): Likewise.
16         * automake.in: Only register `asm' once.
17         (lang_asm_finish): Put assembly suffixes on @suffixes.
19         * libtool.am (.s.lo): Removed.
20         (.S.lo): Likewise.
21         * automake.in (lang_asm_finish): Handle libtool.
23         * libtool.am (.c.o): Always pass -c to libtool.
25         * automake.in (lang_yacc_rewrite): Handle sources in subdirs.
26         (lang_yaccxx_rewrite): Likewise.
27         (lang_lex_rewrite): Likewise.
28         (lang_lexxx_rewrite): Likewise.
30         Assembly code no longer included by default:
31         * compile.am (.s.o): Removed.
32         (.S.o): Likewise.
33         * automake.in: Register `asm' language.
34         (lang_asm_finish): Generate suffix rules for assembly.
35         (get_object_extension): Don't add `.s' or `.S' to suffix list.
37         * automake.in (get_object_extension): Substitute @MINUSO@ when
38         including compile.am.
39         * compile.am (.c.o): Added @MINUSO@.
40         (.c.obj): Likewise.
42         First cut at allowing objects in subdirectories:
43         * m4/Makefile.am (m4data_DATA): Added minuso.m4.
44         * Makefile.am (dist_script_DATA): Added compile.
45         * m4/minuso.m4: New file.
46         * automake.in (initialize_global_constants): Added compile to
47         common_files.
48         (seen_cc_c_o): New global.
49         (scan_one_configure_file): Set it when AM_PROG_CC_C_O seen.
50         (handle_options): Recognize `subdir-objects' option.
51         (lang_c_rewrite): Added directory argument.
52         (lang_yacc_rewrite): Likewise.
53         (lang_yaccxx_rewrite): Likewise.
54         (lang_lex_rewrite): Likewise.
55         (lang_lexxx_rewrite): Likewise.
56         (handle_single_transform_list): Pass directory to _rewrite
57         function.  Generate dependencies for dirstamp files for each .o;
58         it is just the rules we want to create once.
59         (lang_c_rewrite): Handle `subdir-objects' option.
60         (lang_c_rewrite): Require `compile' program.
61         * compile: New file.
63         * automake.in (initialize_per_input): Initialize %directory_map.
64         (handle_single_transform_list): Only create .dirstamp rules once
65         per directory.
67         * m4/gcj.m4 (AM_PROG_GCJ): Use AC_CHECK_PROGS, not AC_CHECK_PROG.
69         Fix for confh.test:
70         * automake.in (configure_input_files): New global.
71         (scan_configure): Set it.
72         (handle_configure): Use configure_input_files when determining
73         which subdirs have a Makefile.am.  Fixes confh.test.
74         (handle_configure): Only recognize acconfig.h in top srcdir.
76 1999-04-10  Tom Tromey  <tromey@cygnus.com>
78         * depend2.am (%.o): Use `$(*D)/$(*F)', not just `$(*F)'.
79         (%.lo): Likewise.
81         * automake.in (am_install_var): Remove redundancies from the
82         result.  Fixes test cond8.test.
84         * automake.in (handle_single_transform_list): Handle dependency
85         tracking when files are created in subdirs.  Error if object in
86         subdir has `..' component.
88         * automake.in (initialize_global_constants): Use $(TAR), not tar.
90         * automake.in (handle_ltlibraries): Allow check_LTLIBRARIES.
92         * automake.in (lang_yacc_finish): Added missing `&'.
94 1999-04-10  Alexandre Oliva  <oliva@dcc.unicamp.br>
96         * automake.in (handle_configure): Replace multiple occurrences of
97         @STAMP@ in the same line; completes the patch for remake-hdr.am
98         below.
100         * automake.in (handle_dependencies): Fix test for `autodep'
101         support.
103         * automake.in (handle_source_transform): Add a pfx to used_pfx
104         only if it's conditional or non-empty, to reduce the number of
105         empty variables.  Emit _OBJECS variable based on program name if
106         no SOURCES were explicitly specified.
108         * remake-hdr.am: Create the stamp file before the header file,
109         and just rename it after, so that the timestamps will be correct.
110         Reported by Marc Horowitz <marc@mit.edu>
112         * automake.in (lang_yacc_finish): Generate and dist a `.h' for a
113         `.y' iff YFLAGS or AM_YFLAGS contain `-d'.
114         Reported by Jim Meyering <meyering@ascend.com>
116         * automake.in (lang_yacc_finish): $hname must not contain a `.'.
118 1999-04-10  Tom Tromey  <tromey@cygnus.com>
120         * Makefile.am (EXTRA_DIST): New macro.
121         * ChangeLog.1996, ChangeLog.1998: New files.
123 1999-04-09  Tom Tromey  <tromey@cygnus.com>
125         * automake.in (handle_source_transform): Handle dist and nodist
126         prefixes.
127         (initialize_per_input): Initialize dist_sources.
128         (check_libobjs_sources): Handle dist and nodist prefixes.
129         (generate_makefile): Define DIST_SOURCES.
130         * dist-vars.am (DISTFILES): Reference DIST_SOURCES, not SOURCES.
132         * automake.texi (Macros): Mention AM_PROG_GCJ.
133         (Java Support): New node.
134         (Dist): Documented dist_ and nodist_ prefixes.
136         * m4/gcj.m4 (AM_PROG_GCJ): Renamed from AC_PROG_GCJ.
138         * automake.in (lang_java_finish): Generate .lo rule for `.java'
139         files, not `.gcj' files.
141         * m4/gcj.m4: New file.
142         * m4/Makefile.am (m4data_DATA): Added gcj.m4.
144         * automake.in: Register the `java' language.
145         (resolve_linker): Handle GCJLINK.
146         (lang_java_rewrite): New function.
147         (LANG_IGNORE, LANG_PROCESS, LANG_SUBDIR): New constants.
148         (lang_c_rewrite): Use new constants.
149         (lang_cxx_rewrite): Likewise.
150         (lang_header_rewrite): Likewise.
151         (lang_yacc_rewrite): Likewise.
152         (lang_yaccxx_rewrite): Likewise.
153         (lang_lex_rewrite): Likewise.
154         (lang_lexxx_rewrite): Likewise.
155         (lang_asm_rewrite): Likewise.
156         (lang_f77_rewrite): Likewise.
157         (lang_ppf77_rewrite): Likewise.
158         (lang_ratfor_rewrite): Likewise.
159         (lang_objc_rewrite): Likewise.
160         (handle_single_transform_list): Likewise.  Handle LANG_SUBDIR
161         return from rewrite function.
162         (lang_java_finish): New function.
163         (register_language): Changed interface and all calls.  Added
164         `autodep' settings to various languages.
165         (handle_dependencies): Use `autodep' property of language when
166         including dependency-tracking code.
168 1999-04-07  Tom Tromey  <tromey@cygnus.com>
170         * automake.in (handle_texinfo): Indentation fixes.
172 1999-04-07  Alexandre Oliva  <oliva@dcc.unicamp.br>
174         * automake.in (value_to_list): Skip *only* trailing backslashes.
176 1999-04-07  Pavel Roskin  <pavel_roskin@geocities.com>
178         * automake.in (value_to_list): Skip trailing backslashes.
180 1999-04-07  Alexandre Oliva  <oliva@dcc.unicamp.br>
182         * automake.in (handle_texinfo): Add texinfo.tex to config_aux_dir
183         when appropriate.
184         Reported by Per Cederqvist <ceder@lysator.liu.se>
185         (handle_texinfo): Do not define texinfo_tex='.', use
186         '$(srcdir)/texinfo.tex' instead; the directory name will be
187         properly extracted.
188         (require_conf_file_with_line): Fixed typo.
190 1999-04-03  Raja R Harinath  <harinath@cs.umn.edu>
192         * automake.in (handle_tests): Test `dir=./' before `dir=', so that 
193         we do not depend on PATH starting with `.'.
195 1999-03-31  Tom Tromey  <tromey@cygnus.com>
197         * automake.in (quote_cond_val): Quote \n.
198         (unquote_cond_val): Unquote \n.
199         (read_am_file): If line ends with `\', preserve it and add a
200         newline.
201         (read_main_am_file): In conditional case, put conditional text at
202         beginning of each generated line.
204 1999-03-31  Alexandre Oliva  <oliva@dcc.unicamp.br>
206         * automake.in (handle_tests): support XFAIL_TEST
207         * automake.texi: document it
209 1999-03-27  Tom Tromey  <tromey@cygnus.com>
211         * automake.in (saw_sources_p): Correctly count header extensions
212         seen.
213         (handle_headers): Fixed order of arguments to am_install_var.
215         * automake.in (am_install_var): Don't error if EXTRA_foo is
216         defined uselessly.
218         * scripts.am (install-@DIR@SCRIPTS): Use NDIR when appropriate.
219         (uninstall-@DIR@SCRIPTS): Likewise.
220         * progs.am (install-@DIR@PROGRAMS): Use NDIR when appropriate.
221         (uninstall-@DIR@PROGRAMS): Likewise.
222         * ltlib.am (install-@DIR@LTLIBRARIES): Use NDIR when appropriate.
223         (uninstall-@DIR@LTLIBRARIES): Likewise.
224         * lisp.am (install-@DIR@LISP): Use NDIR when appropriate.
225         (uninstall-@DIR@LISP): Likewise.
226         * libs.am (install-@DIR@LIBRARIES): Use NDIR when appropriate.
227         (uninstall-@DIR@LIBRARIES): Likewise.
228         * java.am (install-@DIR@JAVA): Use NDIR when appropriate.
229         (uninstall-@DIR@JAVA): Likewise.
230         * header.am (install-@DIR@HEADERS): Use NDIR when appropriate.
231         (uninstall-@DIR@HEADERS): Likewise.
232         * data.am (install-@DIR@DATA): Use NDIR when appropriate.
233         (uninstall-@DIR@DATA): Likewise.
234         * Makefile.in: Rebuilt.
235         * Makefile.am (dist_pkgdata_DATA): Renamed.
236         (EXTRA_DIST): Removed.
237         (install-data-hook): Added POST_INSTALL; print commands as they
238         are run; respect DESTDIR.
239         * dist-vars.am (DISTFILES): Removed $(HEADERS).
240         * automake.in (am_install_var): Accept `-candist' and
241         `-defaultdist' options.  Handle `dist_' and `nodist_' prefixes.
242         (am_primary_prefixes): Added can_dist argument.  Recognize `dist_'
243         and `nodist_' prefixes.
244         (handle_scripts): Pass -candist to am_install_var.
245         (handle_data): Pass -defaultdist to am_install_var.
246         (handle_headers): Likewise.
247         (handle_emacs_lisp): Pass -candist to am_install_var.
248         (handle_java): Pass -candist to am_install_var.
250 1999-03-26  Tom Tromey  <tromey@cygnus.com>
252         * m4/init.m4: Fixed typo when invoking SHELL.
254         * automake.in (lang_yacc_finish): Always use `.h' as suffix for
255         yacc header file.  From Ralf Corsepius.
257         * Makefile.in: Rebuilt.
258         * Makefile.am: Updated to reflect removal of TAR subst.
259         * automake.texi (Options): Document dist-bzip2.
260         * automake.in (TAR): Removed global.
261         (initialize_global_constants): Changed `dist' to use pipe with
262         gzip; work with non-GNU tar.
263         (handle_dist): Handle non-GNU tar.  Don't define TAR.
264         (initialize_global_constants): Added `dist-bzip2' entry.
265         (handle_options): Recognize dist-bzip2 option.
266         (handle_dist): Likewise.
267         * configure: Rebuilt.
268         * configure.in: Don't check for tar.
269         * m4/init.m4 (AM_INIT_AUTOMAKE): Check for `tar'.  Substitute
270         AMTARFLAGS.
272         * automake.in (am_install_var): Removed obsolete comment.
274         * texinfos.am (uninstall-info): Don't print loop but instead print
275         commands.  Simplified pre-uninstall loop.
276         * scripts.am (uninstall-@DIR@SCRIPTS): Don't print loop but
277         instead print commands.
278         * progs.am (uninstall-@DIR@PROGRAMS): Don't print loop but instead
279         print commands.
280         * ltlib.am (uninstall-@DIR@LTLIBRARIES): Don't print loop but
281         instead print commands.
282         * lisp.am (install-@DIR@LISP): Strip subdir from file name.
283         (uninstall-@DIR@LISP): Likewise.  Also, don't print loop but
284         instead print commands.
285         * libs.am (uninstall-@DIR@LIBRARIES): Don't print loop but instead
286         print commands.
287         * java.am (uninstall-@DIR@JAVA): Don't print loop but instead
288         print commands.
289         * header.am (install-@DIR@HEADERS): Strip subdir from file name.
290         (uninstall-@DIR@HEADERS): Likewise.  Also, don't print loop but
291         instead print commands.
292         * data.am (install-@DIR@DATA): Strip subdir from file name.
293         (uninstall-@DIR@DATA): Likewise.  Also, don't print loop but
294         instead print commands.
296         * automake.in (handle_merge_targets): `install-strip' is a phony
297         target.  From Michel de Ruiter.
299 1999-03-25  Tom Tromey  <tromey@cygnus.com>
301         * automake.in (define_compiler_variable): Don't define variable
302         with trailing `_'.
304 1999-03-25  Alexandre Oliva  <oliva@dcc.unicamp.br>
306         * automake.in (LDADD): accept -dlopen and -dlpreopen here
307         * automake.texi: ditto
309 1999-03-25  Alexandre Oliva  <oliva@dcc.unicamp.br>
311         * automake.in (TESTS): make from Solaris 7/x86 loses if srcdir
312         is absolute and != objdir.  dir="" or "$(srcdir)/" fixes it
314 1999-03-24  Tom Tromey  <tromey@cygnus.com>
316         * automake.in (define_compiler_variable): New sub.
317         (finish_languages): Use it.
318         (lang_cxx_finish): Likewise.
319         (lang_f77_finish): Likewise.
320         (lang_ppf77_finish): Likewise.
321         (lang_ratfor_finish): Likewise.
322         (lang_objc_finish): Likewise.
324 1999-03-23  Tom Tromey  <tromey@cygnus.com>
326         * progs.am (install-@DIR@PROGRAMS): Use `-e' instead of multiple
327         sed invocations.  From Elrond.
328         (uninstall-@DIR@PROGRAMS): Likewise.
330         * automake.in (lang_lex_finish): Rewrite `l', not `y', to `c'.
331         From Ralf Corsepius.
333 1999-02-01  Thomas Tanner  <tanner@gmx.de>
335         * automake.in: accept both A(C|M)_PROG_LIBTOOL, print a
336         warning when AM_PROG_LIBTOOL was found
337         * automake.texi: renamed AM_PROG_LIBTOOL to AC_PROG_LIBTOOL
339 1999-03-22  Tom Tromey  <tromey@cygnus.com>
341         Made `+=' more robust.  Fixes pluseq6.test and pluseq7.test.
342         * automake.in (define_standard_variables): New sub.
343         (read_main_am_file): Use two passes to scan standard variables.
344         (read_am_file): Don't special-case configure variables with `+='.
345         (initialize_per_input): Initialize %var_was_plus_eq.
346         (read_am_file): Set var_was_plus_eq element correctly.
347         (define_variable): Give error if variable assigned with `+=' is
348         internally defined.
349         (initialize_per_input): Initialize %am_var_defs.
350         (file_contents_with_transform): Set element in %am_var_defs.
351         (read_am_file): Use %am_var_defs.
353 1999-03-21  Tom Tromey  <tromey@cygnus.com>
355         * automake.in (initialize_per_input): Initialize %object_map.
356         (handle_single_transform_list): Allow source files in
357         subdirectories.
359 1999-03-21  Jim Meyering  <meyering@na-net.ornl.gov>
361         * automake.in (handle_dist): Add missing newline after the first
362         semicolon.
364 1999-03-11  Tom Tromey  <tromey@cygnus.com>
366         * m4/error.m4, m4/mktime.m4, m4/obstack.m4, m4/regex.m4,
367         m4/strtod.m4: Use $ac_objext, not `.o'.  From Jim Meyering.
369         From Jim Meyering:
370         * automake.in (handle_dist): Add `;\' to end of distcheck-hook
371         line.
372         (scan_one_configure_file): In LIBOBJS, recognize `$ac_objext' as
373         legitimate ending.  Fixes libobj9.test.
375         From Ralf Corsepius.  Fixes lex3.test.
376         * automake.in (lang_yacc_finish): Include `.' in name pushed onto
377         maintainer-clean list.
378         (lang_lex_finish): Likewise.
380 1999-03-02  Tom Tromey  <tromey@cygnus.com>
382         * subdirs.am (maintainer-clean-recursive): Changed "&&" into "if"
383         construct to work around FreeBSD make/sh problem.  From Rich Wales.
385 1999-03-01  Tom Tromey  <tromey@cygnus.com>
387         Fixes from Pavel Roskin:
388         * automake.in (variable_conditions_sub): Sort list passed to
389         variable_conditions_permutations.
390         (variable_conditions): Sort list before returning.
392 1999-02-27  Tom Tromey  <tromey@cygnus.com>
394         * automake.in (lang_extensions): New sub.
395         (handle_dependencies): Use it.
396         (cxx_extensions): Removed.
397         (lang_cxx_finish): Use lang_extensions.
398         (f77_extensions): Removed.
399         (lang_f77_finish): Use lang_extensions.
400         (objc_extensions): Removed.
401         (lang_ppf77_finish): Put `.' before extension.  Fixes ext.test.
402         Report from Dave Morrison.
403         (lang_ratfor_finish): Likewise.
405 1999-02-26  Tom Tromey  <tromey@cygnus.com>
407         * automake.in (finish_languages): Added AM_LDFLAGS.
408         (lang_cxx_finish): Likewise.
409         (lang_f77_finish): Likewise.
410         (lang_ppf77_finish): Likewise.
411         (lang_ratfor_finish): Likewise.
412         (lang_objc_finish): Likewise.
414 1999-02-11  Tom Tromey  <tromey@cygnus.com>
416         * aclocal.in (obsolete_macros): Copied from automake.in.
417         (obsolete_rx): Use only keys of obsolete_macros.
418         (scan_configure): Report replacement macro for an obsolete macro.
419         * automake.in (obsolete_macros): Added ud_GNU_GETTEXT.
421         * automake.in (obsolete_macros): Corrected typo in AM_EXEEXT
422         entry.  Fixes obsolete2.test.
424         * automake.in (obsolete_macros): Use empty string to indicate no
425         substitution.
426         (scan_one_configure_file): Likewise.
428 1999-02-07  Paul Eggert  <eggert@twinsun.com>
430         * m4/ccstdc.m4 (AM_PROG_CC_STDC): Prefer -Ae to -Aa
431         -D_HPUX_SOURCE, since -Ae allows `long long' and this is
432         needed by some programs.
434 1999-02-10  Tom Tromey  <tromey@cygnus.com>
436         * automake.in (handle_texinfo): Added `pgs' to list of
437         extensions.  From NISHIDA Keisuke.
439 1999-02-04  Akim Demaille  <demaille@inf.enst.fr>
441         * automake.in (handle_texinfo): remove texinfo.tex from
442         TEXINFODIR.
444 1999-02-02  Tom Tromey  <tromey@cygnus.com>
446         * automake.in (handle_merge_targets): Use INSTALL_STRIP_FLAG.
447         * progs.am (install-@DIR@PROGRAMS): Added INSTALL_STRIP_FLAG.
448         * header-vars.am (INSTALL_PROGRAM): Removed
449         AM_INSTALL_PROGRAM_FLAGS.
450         (INSTALL_STRIP_FLAG): New macro.
452         * automake.in: Handle `ypp' as C++ yacc source and `lpp' as C++
453         lex source.
454         (lang_yacc_finish): Likewise.
455         (lang_lex_finish): Likewise.
457 1999-02-01  Tom Tromey  <tromey@cygnus.com>
459         * automake.in (handle_dist_worker): Correctly find find in $$d,
460         not $$.  From Bill Davidson.
462         * automake.in (finish_languages): Use "&", not "do".  From Pavel
463         Roskin.
464         (handle_single_transform_list): Likewise.
466 1999-01-29  Tom Tromey  <tromey@cygnus.com>
468         * automake.in (handle_configure): Removed unused variable.  From
469         Pavel Roskin.
471         * ansi2knr.c: New version from L. Peter Deutsch.
473 1999-01-22  Tom Tromey  <tromey@cygnus.com>
475         * automake.in (require_file_internal): Correctly examine return
476         value of `system'.  From Andris Pavenis.  Fixes copy.test.
478         * m4/init.m4 (AM_INIT_AUTOMAKE): Require autoconf 2.13.
480         * automake.in (lang_ppf77_rewrite): New function.  From Jochen
481         Kuepper.  Fixes ppf77.test.
482         (lang_ratfor_rewrite): New function
484         * automake.in (handle_configure): Use `&' before sub calls (Perl 4
485         fix).  From Erez Zadok.
487 1999-01-15  Tom Tromey  <tromey@cygnus.com>
489         * configure.in: Version 1.4a (oops).
491         * configure.in: Updated version to 1.5a.
493 1999-01-14  Tom Tromey  <tromey@cygnus.com>
495         * automake.in (handle_configure): Compute $header_dir based on
496         $one_name, not $one_hdr.  Reported by Erez Zadok.  Fixes
497         confh2.test.
498         (handle_configure): Compute relative path to input header
499         correctly in all cases.
501         * automake.in (handle_tests): Avoid error messages from dejagnu
502         test rules.  From Karl Heuer.
504         * automake.in (handle_texinfo): Add `/' to end of $conf_dir.
506         * Makefile.am (AUTOMAKE_OPTIONS): Added `1.4'.
508         * texi-vers.am ($(srcdir)/stamp-@VTI@): Find @TEXI@ in srcdir.
509         From Alexandre Oliva and Erez Zadok.
511         * automake.in (create): Renamed from touch.
512         (handle_configure): Use create, not touch.
514         * config.sub, config.guess: New versions from autoconf.
516         * mkinstalldirs: New version from autoconf.
518 1999-01-12  Tom Tromey  <tromey@cygnus.com>
520         * config.sub, config.guess, COPYING, texinfo.tex: New versions
521         from FSF.
523 1999-01-11  Marcus G. Daniels  <mgd@chama.santafe.edu>
525         * automake.in (PATH_PATTERN): New variable:
526         (INCLUDE_PATTERN): Use it.  Ignore all include commands using 
527         symbols besides $(top_srcdir) and $(srcdir).
529 1999-01-11  Alexandre Oliva  <oliva@dcc.unicamp.br>
531         * automake.in (handle_dist_worker): avoid failure in `make dist'
532         if last file is a builddir-only file
534 1999-01-11  Alexandre Oliva  <oliva@dcc.unicamp.br>
536         * missing (autoheader): `s' was missing from sed script; grr
538 1999-01-11  Tom Tromey  <tromey@cygnus.com>
540         * remake-hdr.am (@STAMP@): Reverted timestamp change.
541         ($(srcdir)/@STAMP@.in): Likewise.
543 1999-01-10  Tom Tromey  <tromey@cygnus.com>
545         * Makefile.am (scriptdir): New macro.
546         (script_DATA): Likewise.
547         (install-data-hook): Use them.
548         (EXTRA_DIST): Added script_DATA.
549         (installcheck-local): Use script_DATA.
551         * Makefile.am (pkgdata_DATA): Removed duplicate definition.
553 1999-01-10  Alexandre Oliva  <oliva@dcc.unicamp.br>
555         * missing (autoheader): accept multiple header files
556         (automake): simplify sed processing
558 1999-01-10  Alexandre Oliva  <oliva@dcc.unicamp.br>
560         * automake.in (handle_configure, stamp_dir): create only one stamp
561         file per header, instead of one in the top-level directory and one
562         in the directory that contains the header.
564 1999-01-10  Tom Tromey  <tromey@cygnus.com>
566         * automake.in (lang_objc_finish): Formatting fix.
568         * automake.in (objc_extensions): New sub.
569         (handle_dependencies): Only generate dependency-tracking code for
570         ObjC when ObjC source seen.