From f76669bb57ae747da20b6550e68519224aa3d988 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Thu, 26 Apr 2012 15:03:02 +0200 Subject: [PATCH 2/4] Support for Objective C++ * doc/automake.texi (Objective C++ Support): New node. (How the Linker is Chosen, Support for Other Languages): Adjust. Signed-off-by: Peter Breitenlohner --- doc/automake.texi | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 54 insertions(+), 3 deletions(-) diff --git a/doc/automake.texi b/doc/automake.texi index c21a5b7..bf705d7 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -220,6 +220,7 @@ Building Programs and Libraries * Yacc and Lex:: Yacc and Lex support * C++ Support:: Compiling C++ sources * Objective C Support:: Compiling Objective C sources +* Objective C++ Support:: Compiling Objective C++ sources * Unified Parallel C Support:: Compiling Unified Parallel C sources * Assembly Support:: Compiling assembly sources * Fortran 77 Support:: Compiling Fortran 77 sources @@ -3027,6 +3028,10 @@ Programs, , Particular Program Checks, autoconf, The Autoconf Manual}. This is required if any Objective C source is included. @xref{Particular Programs, , Particular Program Checks, autoconf, The Autoconf Manual}. address@hidden AC_PROG_OBJCXX +This is required if any Objective C++ source is included. @xref{Particular +Programs, , Particular Program Checks, autoconf, The Autoconf Manual}. + @item AC_PROG_F77 This is required if any Fortran 77 source is included. @xref{Particular Programs, , Particular Program Checks, autoconf, The Autoconf Manual}. @@ -4670,6 +4675,7 @@ to build programs and libraries. * Yacc and Lex:: Yacc and Lex support * C++ Support:: Compiling C++ sources * Objective C Support:: Compiling Objective C sources +* Objective C++ Support:: Compiling Objective C++ sources * Unified Parallel C Support:: Compiling Unified Parallel C sources * Assembly Support:: Compiling assembly sources * Fortran 77 Support:: Compiling Fortran 77 sources @@ -5787,6 +5793,7 @@ they apply. @itemx maude_GCJFLAGS @itemx maude_LFLAGS @itemx maude_OBJCFLAGS address@hidden maude_OBJCXXFLAGS @itemx maude_RFLAGS @itemx maude_UPCFLAGS @itemx maude_YFLAGS @@ -5804,6 +5811,7 @@ Automake. These @dfn{per-target compilation flags} are @samp{_GCJFLAGS}, @samp{_LFLAGS}, @samp{_OBJCFLAGS}, address@hidden, @samp{_RFLAGS}, @samp{_UPCFLAGS}, and @samp{_YFLAGS}. @@ -6380,6 +6388,41 @@ The command used to actually link an Objective C program. @end vtable address@hidden Objective C++ Support address@hidden Objective C++ Support + address@hidden Objective C++ support address@hidden Support for Objective C++ + +Automake includes some support for Objective C++. + +Any package including Objective C++ code must define the output variable address@hidden in @file{configure.ac}; the simplest way to do this is to use +the @code{AC_PROG_OBJCXX} macro (@pxref{Particular Programs, , Particular +Program Checks, autoconf, The Autoconf Manual}). + +A few additional variables are defined when an Objective C++ source file +is seen: + address@hidden @code address@hidden OBJCXX +The name of the Objective C++ compiler. + address@hidden OBJCXXFLAGS +Any flags to pass to the Objective C++ compiler. + address@hidden AM_OBJCXXFLAGS +The maintainer's variant of @code{OBJCXXFLAGS}. + address@hidden OBJCXXCOMPILE +The command used to actually compile an Objective C++ source file. The +file name is appended to form the complete command line. + address@hidden OBJCXXLINK +The command used to actually link an Objective C++ program. address@hidden vtable + + @node Unified Parallel C Support @section Unified Parallel C Support @@ -6645,6 +6688,9 @@ parentheses are the variables containing the link command.) @vindex GCJLINK Native Java (@code{GCJLINK}) @item address@hidden OBJCXXLINK +Objective C++ (@code{OBJCXXLINK}) address@hidden @vindex CXXLINK C++ (@code{CXXLINK}) @item @@ -6854,7 +6900,9 @@ source file. @section Support for Other Languages Automake currently only includes full support for C, C++ (@pxref{C++ -Support}), Objective C (@pxref{Objective C Support}), Fortran 77 +Support}), Objective C (@pxref{Objective C Support}), +Objective C++ (@pxref{Objective C++ Support}), +Fortran 77 (@pxref{Fortran 77 Support}), Fortran 9x (@pxref{Fortran 9x Support}), and Java (@pxref{Java Support with gcj}). There is only rudimentary support for other languages, support for which will be improved based @@ -12194,6 +12242,7 @@ flags, not appended. @cindex @code{AM_LFLAGS} and @code{LFLAGS} @cindex @code{AM_LIBTOOLFLAGS} and @code{LIBTOOLFLAGS} @cindex @code{AM_OBJCFLAGS} and @code{OBJCFLAGS} address@hidden @code{AM_OBJCXXFLAGS} and @code{OBJXXCFLAGS} @cindex @code{AM_RFLAGS} and @code{RFLAGS} @cindex @code{AM_UPCFLAGS} and @code{UPCFLAGS} @cindex @code{AM_YFLAGS} and @code{YFLAGS} @@ -12208,6 +12257,7 @@ flags, not appended. @cindex @code{LFLAGS} and @code{AM_LFLAGS} @cindex @code{LIBTOOLFLAGS} and @code{AM_LIBTOOLFLAGS} @cindex @code{OBJCFLAGS} and @code{AM_OBJCFLAGS} address@hidden @code{OBJCXXFLAGS} and @code{AM_OBJCXXFLAGS} @cindex @code{RFLAGS} and @code{AM_RFLAGS} @cindex @code{UPCFLAGS} and @code{AM_UPCFLAGS} @cindex @code{YFLAGS} and @code{AM_YFLAGS} @@ -12217,8 +12267,8 @@ mostly discuss @code{CPPFLAGS} in our examples, but actually the answer holds for all the compile flags used in Automake: @code{CCASFLAGS}, @code{CFLAGS}, @code{CPPFLAGS}, @code{CXXFLAGS}, @code{FCFLAGS}, @code{FFLAGS}, @code{GCJFLAGS}, @code{LDFLAGS}, address@hidden, @code{LIBTOOLFLAGS}, @code{OBJCFLAGS}, @code{RFLAGS}, address@hidden, and @code{YFLAGS}. address@hidden, @code{LIBTOOLFLAGS}, @code{OBJCFLAGS}, @code{OBJCXXFLAGS}, address@hidden, @code{UPCFLAGS}, and @code{YFLAGS}. @code{CPPFLAGS}, @code{AM_CPPFLAGS}, and @code{mumble_CPPFLAGS} are three variables that can be used to pass flags to the C preprocessor @@ -13124,6 +13174,7 @@ suite failures, please attach the @file{tests/test-suite.log} file. @c LocalWords: subsubsection OBJEXT esac lib LTLIBRARIES liblob LIBADD AR ar @c LocalWords: ARFLAGS cru ing maude libgettext lo LTLIBOBJS rpath SGI PRE yy @c LocalWords: libmaude CCLD CXXFLAGS FFLAGS LFLAGS OBJCFLAGS RFLAGS DEFS cc address@hidden LocalWords: OBJCXXFLAGS @c LocalWords: SHORTNAME vtable srcdir nostdinc basename yxx cxx ll lxx gdb @c LocalWords: lexers yymaxdepth maxdepth yyparse yylex yyerror yylval lval @c LocalWords: yychar yydebug yypact yyr yydef def yychk chk yypgo pgo yyact -- 1.7.3.1