changeset 4094:3e631060ab8f

[project @ 2002-10-09 02:12:30 by jwe]
author jwe
date Wed, 09 Oct 2002 02:13:07 +0000
parents 5a82e874999b
children 60abc5f86565
files ChangeLog Makeconf.in aclocal.m4 configure.in
diffstat 4 files changed, 74 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Oct 08 23:48:46 2002 +0000
+++ b/ChangeLog	Wed Oct 09 02:13:07 2002 +0000
@@ -1,5 +1,11 @@
 2002-10-08  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
+	* aclocal.m4 (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): New macro.
+	* configure.in: Use it.
+
+	* configure.in (BUILD_CC, BUILD_CFLAGS, BUILD_CXX, BUILD_CXXFLAGS): 
+	Set default values if cross compiling.
+
 	* aclocal.m4 (OCTAVE_PROG_NM): Do the right thing for cross compiling.
 	(OCTAVE_CXX_PREPENDS_UNDERSCORE): Require OCTAVE_PROG_NM.
 	(OCTAVE_CXX_ABI): Likewise.
--- a/Makeconf.in	Tue Oct 08 23:48:46 2002 +0000
+++ b/Makeconf.in	Wed Oct 09 02:13:07 2002 +0000
@@ -113,8 +113,8 @@
 ALL_CFLAGS = $(INCFLAGS) $(DEFS) $(XTRA_CFLAGS) $(CFLAGS)
 BUG_CFLAGS = $(DEFS) $(XTRA_CFLAGS) $(CFLAGS)
 
-BUILD_CC = $(CC)
-BUILD_CFLAGS = $(CFLAGS)
+BUILD_CC = @BUILD_CC@
+BUILD_CFLAGS = @BUILD_CFLAGS@
 
 DEPEND_FLAGS = @DEPEND_FLAGS@
 DEPEND_EXTRA_SED_PATTERN = @DEPEND_EXTRA_SED_PATTERN@
@@ -129,8 +129,8 @@
 UGLY_ALL_CXXFLAGS = $(INCFLAGS) $(UGLY_DEFS) $(XTRA_CXXFLAGS) $(CXXFLAGS)
 BUG_CXXFLAGS = $(DEFS) $(XTRA_CXXFLAGS) $(CXXFLAGS)
 
-BUILD_CXX = $(CXX)
-BUILD_CXXFLAGS = $(CXXFLAGS)
+BUILD_CXX = @BUILD_CXX@
+BUILD_CXXFLAGS = @BUILD_CXXFLAGS@
 
 CPPFLAGS = @CPPFLAGS@
 
--- a/aclocal.m4	Tue Oct 08 23:48:46 2002 +0000
+++ b/aclocal.m4	Wed Oct 09 02:13:07 2002 +0000
@@ -353,6 +353,48 @@
   fi
 ])
 dnl
+dnl Check to see if GNU C++ barfs on #pragma interface/#pragma implementation.
+dnl
+dnl OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION
+AC_DEFUN(OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION, [
+  AC_REQUIRE([AC_PROG_CXX])
+  AC_MSG_CHECKING([for C++ support for pragma interface/implementation])
+  AC_CACHE_VAL(octave_cv_cxx_pragma_interface_implementation, [
+    AC_LANG_PUSH(C++)
+    rm -f conftest.h
+    cat > conftest.h <<EOB
+#include <iostream>
+#if defined (__GNUG__)
+#pragma interface
+#endif
+template <class T> class A
+{
+public:
+  A (void) {}
+  ~A (void);
+};
+
+class B : public A<int>
+{
+public:
+
+  B (void) : A<int> () { }
+};
+EOB
+    AC_TRY_LINK([#include "conftest.h"], [
+      ], 
+      octave_cv_cxx_pragma_interface_implementation=yes,
+      octave_cv_cxx_pragma_interface_implementation=no
+    )
+    AC_LANG_POP(C++)
+  ])
+  AC_MSG_RESULT($octave_cv_cxx_pragma_interface_implementation)
+  if test $octave_cv_cxx_pragma_interface_implementation = no; then
+    XTRA_CXXFLAGS="$XTRA_CXXFLAGS -DNO_PRAGMA_INTERFACE_IMPLEMENTATION=1"
+    AC_SUBST(XTRA_CXXFLAGS)
+  fi
+])
+dnl
 dnl Check for flex
 dnl
 AC_DEFUN(OCTAVE_PROG_FLEX, [
--- a/configure.in	Tue Oct 08 23:48:46 2002 +0000
+++ b/configure.in	Wed Oct 09 02:13:07 2002 +0000
@@ -22,7 +22,7 @@
 ### 02111-1307, USA. 
 
 AC_INIT
-AC_REVISION($Revision: 1.372 $)
+AC_REVISION($Revision: 1.373 $)
 AC_PREREQ(2.52)
 AC_CONFIG_SRCDIR([src/octave.cc])
 AC_CONFIG_HEADER(config.h)
@@ -318,6 +318,27 @@
 AC_SUBST(LD_STATIC_FLAG)
 
 OCTAVE_CXX_PREPENDS_UNDERSCORE
+OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION
+
+### Defaults for cross compiling.  BUILD_CC and BUILD_CXX are
+### the compilers that we use for building tools on the build system.
+
+if test "$cross_compiling" = yes; then
+  BUILD_CC="gcc"
+  BUILD_CFLAGS="-O2 -g"
+  BUILD_CXX="g++"
+  BUILD_CXXFLAGS="-O2 -g"
+else
+  BUILD_CC=$CC
+  BUILD_CFLAGS="-O2 -g"
+  BUILD_CXX="g++"
+  BUILD_CXXFLAGS="-O2 -g"
+fi
+
+AC_ARG_VAR(BUILD_CC, [build system C compiler (used if cross compiling)])
+AC_ARG_VAR(BUILD_CFLAGS, [build system C compiler flags (used if cross compiling)])
+AC_ARG_VAR(BUILD_CXX, [build system C++ compiler (used if cross compiling)])
+AC_ARG_VAR(BUILD_CXXFLAGS, [build system C++ compiler flags (used if cross compiling)])
 
 dnl This is bogus.  We shouldn't have to explicitly add libc too!