فهرست منبع

support 64bit build with 32bit TclTk aqua on OSX (from dev6 https://trac.osgeo.org/grass/changeset/37402)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@37489 15284696-431f-4ddb-bdfa-cd5b030d7da7
William Kyngesburye 16 سال پیش
والد
کامیت
e20cac1133
6فایلهای تغییر یافته به همراه2206 افزوده شده و 2137 حذف شده
  1. 2092 2067
      configure
  2. 94 70
      configure.in
  3. 7 0
      display/d.what.vect/Makefile
  4. 2 0
      include/Make/Platform.make.in
  5. 7 0
      lib/form/Makefile
  6. 4 0
      visualization/nviz/src/Makefile

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 2092 - 2067
configure


+ 94 - 70
configure.in

@@ -828,75 +828,6 @@ AC_SUBST(USE_PNG)
 
 
 # Done checking PNG
 # Done checking PNG
 
 
-# Enable TCLTK option
-
-LOC_CHECK_USE(tcltk,Tcl/Tk,USE_TCLTK)
-
-TCLINCDIR=
-TCLTKLIBPATH=
-TCLTKLIBS=
-
-if test -n "$USE_TCLTK"; then
-
-# With Tcl/Tk includes directory
-
-LOC_CHECK_INC_PATH(tcltk,Tcl/Tk,TCLINCDIR)
-
-LOC_CHECK_INCLUDES(tcl.h,Tcl,$TCLINCDIR)
-
-LOC_CHECK_INCLUDES(tk.h,Tk,$TCLINCDIR $X_CFLAGS)
-
-# Tcl/Tk version checks
-
-LOC_CHECK_VERSION_STRING(tcl.h,TCL_VERSION,Tcl,tcl_ver,$TCLINCDIR,UNKNOWN)
-
-LOC_CHECK_VERSION_STRING(tk.h,TK_VERSION,Tk,tk_ver,$TCLINCDIR $X_CFLAGS,UNKNOWN)
-
-if test "$tcl_ver" = "$tk_ver" ; then
-    tcltk_ver=$tcl_ver
-else
-    AC_MSG_ERROR([*** Tcl/Tk version mismatch.])
-fi
-
-# FreeBSD and CygWin don't have a "dot" between major/minor version number
-tcltk_ver2=`echo $tcltk_ver | sed 's/\.//g'`
-
-# With Tcl/Tk library directory
-
-LOC_CHECK_LIB_PATH(tcltk,Tcl/Tk,TCLTKLIBPATH)
-
-TCLLIB=
-TKLIB=
-
-LOC_CHECK_LIBS(tcl,           Tcl_Init,Tcl,$TCLTKLIBPATH,TCLLIB,,$MATHLIB,[
-LOC_CHECK_LIBS(tcl$tcltk_ver, Tcl_Init,Tcl,$TCLTKLIBPATH,TCLLIB,,$MATHLIB,[
-LOC_CHECK_LIBS(tcl$tcltk_ver2,Tcl_Init,Tcl,$TCLTKLIBPATH,TCLLIB,,$MATHLIB,[
-],$DLLIB)
-],$DLLIB)
-],$DLLIB)
-
-LOC_CHECK_LIBS(tk,           Tk_MainWindow,Tk,$TCLTKLIBPATH,TKLIB,$TCLLIB,$MATHLIB,[
-LOC_CHECK_LIBS(tk$tcltk_ver, Tk_MainWindow,Tk,$TCLTKLIBPATH,TKLIB,$TCLLIB,$MATHLIB,[
-LOC_CHECK_LIBS(tk$tcltk_ver2,Tk_MainWindow,Tk,$TCLTKLIBPATH,TKLIB,$TCLLIB,$MATHLIB,[
-],$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS)
-],$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS)
-],$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS)
-
-
-TCLTKLIBS="$TKLIB $TCLLIB"
-AC_DEFINE(HAVE_TCLTK)
-
-fi # $USE_TCLTK
-
-TKINCDIR=$TCLINCDIR
-
-AC_SUBST(TCLINCDIR)
-AC_SUBST(TKINCDIR)
-AC_SUBST(TCLTKLIBPATH)
-AC_SUBST(TCLTKLIBS)
-
-# Done checking Tcl/Tk
-
 # Enable PostgreSQL option
 # Enable PostgreSQL option
 
 
 LOC_CHECK_USE(postgres,PostgreSQL,USE_POSTGRES)
 LOC_CHECK_USE(postgres,PostgreSQL,USE_POSTGRES)
@@ -1083,7 +1014,6 @@ AC_SUBST(FFMPEGLIB)
 
 
 # Done checking FFMPEG
 # Done checking FFMPEG
 
 
-
 # Enable OpenGL option
 # Enable OpenGL option
 
 
 OPENGLINC=
 OPENGLINC=
@@ -1202,6 +1132,100 @@ AC_SUBST(OPENGLULIB)
 
 
 # Done checking OpenGL
 # Done checking OpenGL
 
 
+# Enable TCLTK option
+
+LOC_CHECK_USE(tcltk,Tcl/Tk,USE_TCLTK)
+
+TCLINCDIR=
+TCLTKLIBPATH=
+TCLTKLIBS=
+
+if test -n "$USE_TCLTK"; then
+
+# With Tcl/Tk includes directory
+
+LOC_CHECK_INC_PATH(tcltk,Tcl/Tk,TCLINCDIR)
+
+LOC_CHECK_INCLUDES(tcl.h,Tcl,$TCLINCDIR)
+
+LOC_CHECK_INCLUDES(tk.h,Tk,$TCLINCDIR $X_CFLAGS)
+
+# Tcl/Tk version checks
+
+LOC_CHECK_VERSION_STRING(tcl.h,TCL_VERSION,Tcl,tcl_ver,$TCLINCDIR,UNKNOWN)
+
+LOC_CHECK_VERSION_STRING(tk.h,TK_VERSION,Tk,tk_ver,$TCLINCDIR $X_CFLAGS,UNKNOWN)
+
+if test "$tcl_ver" = "$tk_ver" ; then
+    tcltk_ver=$tcl_ver
+else
+    AC_MSG_ERROR([*** Tcl/Tk version mismatch.])
+fi
+
+# FreeBSD and CygWin don't have a "dot" between major/minor version number
+tcltk_ver2=`echo $tcltk_ver | sed 's/\.//g'`
+
+# With Tcl/Tk library directory
+
+LOC_CHECK_LIB_PATH(tcltk,Tcl/Tk,TCLTKLIBPATH)
+
+TCLLIB=
+TKLIB=
+
+# Can't test tcl/tk libs on 64bit OSX Aqua for now
+# assume that if OpenGL Aqua, then user specifies TclTk Aqua,
+# as there is no test for Tcl/Tk Aqua and Tck/Tk X11 won't work
+TCLTKAQUA_IS64BIT=
+if test "$OPENGL_AQUA" = 1 ; then
+    temp_CFLAGS="$CFLAGS"
+    CFLAGS="`echo \"$CFLAGS\" | sed -E 's/-arch +x86_64//g' | sed -E 's/-arch +ppc64//g'`"
+    # can't save LDFLAGS, need to remember arch flags to insert back later
+    temp_ARCHES=
+    for a in x86_64 ppc64
+    do
+        if test -n "`echo \"$LDFLAGS\" | grep -E -e '-arch +'$a`" ; then
+            temp_ARCHES="$temp_ARCHES -arch $a"
+        fi
+    done
+    LDFLAGS="`echo \"$LDFLAGS\" | sed -E 's/-arch +x86_64//g' | sed -E 's/-arch +ppc64//g'`"
+fi
+
+LOC_CHECK_LIBS(tcl,           Tcl_Init,Tcl,$TCLTKLIBPATH,TCLLIB,,$MATHLIB,[
+LOC_CHECK_LIBS(tcl$tcltk_ver, Tcl_Init,Tcl,$TCLTKLIBPATH,TCLLIB,,$MATHLIB,[
+LOC_CHECK_LIBS(tcl$tcltk_ver2,Tcl_Init,Tcl,$TCLTKLIBPATH,TCLLIB,,$MATHLIB,[
+],$DLLIB)
+],$DLLIB)
+],$DLLIB)
+
+LOC_CHECK_LIBS(tk,           Tk_MainWindow,Tk,$TCLTKLIBPATH,TKLIB,$TCLLIB,$MATHLIB,[
+LOC_CHECK_LIBS(tk$tcltk_ver, Tk_MainWindow,Tk,$TCLTKLIBPATH,TKLIB,$TCLLIB,$MATHLIB,[
+LOC_CHECK_LIBS(tk$tcltk_ver2,Tk_MainWindow,Tk,$TCLTKLIBPATH,TKLIB,$TCLLIB,$MATHLIB,[
+],$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS)
+],$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS)
+],$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS)
+
+# restore CFLAGS/LDLFAGS from Aqua 64bit strip
+# only Tcl/Tk-based makefiles will strip 64bit out during compile
+if test "$OPENGL_AQUA" = 1 ; then
+   CFLAGS="$temp_CFLAGS"
+   LDFLAGS="$temp_ARCHES $LDFLAGS"
+fi
+
+TCLTKLIBS="$TKLIB $TCLLIB"
+AC_DEFINE(HAVE_TCLTK)
+
+fi # $USE_TCLTK
+
+TKINCDIR=$TCLINCDIR
+
+AC_SUBST(TCLINCDIR)
+AC_SUBST(TKINCDIR)
+AC_SUBST(TCLTKLIBPATH)
+AC_SUBST(TCLTKLIBS)
+AC_SUBST(TCLTKAQUA_IS64BIT)
+
+# Done checking Tcl/Tk
+
 # Enable ODBC option
 # Enable ODBC option
 
 
 LOC_CHECK_USE(odbc,ODBC,USE_ODBC)
 LOC_CHECK_USE(odbc,ODBC,USE_ODBC)

+ 7 - 0
display/d.what.vect/Makefile

@@ -12,6 +12,13 @@ EXTRA_INC = $(VECT_INC)
 
 
 include $(MODULE_TOPDIR)/include/Make/Module.make
 include $(MODULE_TOPDIR)/include/Make/Module.make
 
 
+ifeq ($(OPENGL_AQUA),1)
+ifneq ($(TCLTKAQUA_IS64BIT),1)
+CFLAGS := $(subst -arch ppc64,,$(subst -arch x86_64,,$(CFLAGS)))
+LDFLAGS := $(subst -arch ppc64,,$(subst -arch x86_64,,$(LDFLAGS)))
+endif
+endif
+
 default: cmd
 default: cmd
 
 
 
 

+ 2 - 0
include/Make/Platform.make.in

@@ -173,6 +173,8 @@ TKINCDIR            = @TKINCDIR@
 TCLTKLIBPATH        = @TCLTKLIBPATH@
 TCLTKLIBPATH        = @TCLTKLIBPATH@
 TCLTKLIBS           = @TCLTKLIBS@
 TCLTKLIBS           = @TCLTKLIBS@
 USE_TCLTK           = @USE_TCLTK@
 USE_TCLTK           = @USE_TCLTK@
+# set from configure when 64bit TclTk Aqua becomes possible on OSX
+TCLTKAQUA_IS64BIT    = @TCLTKAQUA_IS64BIT@
 
 
 #FFTW:
 #FFTW:
 FFTWINC             = @FFTWINC@
 FFTWINC             = @FFTWINC@

+ 7 - 0
lib/form/Makefile

@@ -20,6 +20,13 @@ ifneq ($(TCLTKLIBS),)
     GTCLTKFORM = $(HTMLLIB) $(FORM) $(FORMPROG) 
     GTCLTKFORM = $(HTMLLIB) $(FORM) $(FORMPROG) 
 endif
 endif
 
 
+ifeq ($(OPENGL_AQUA),1)
+ifneq ($(TCLTKAQUA_IS64BIT),1)
+CFLAGS := $(subst -arch ppc64,,$(subst -arch x86_64,,$(CFLAGS)))
+LDFLAGS := $(subst -arch ppc64,,$(subst -arch x86_64,,$(LDFLAGS)))
+endif
+endif
+
 default: lib $(GTCLTKFORM)
 default: lib $(GTCLTKFORM)
 
 
 $(FORMDIR):
 $(FORMDIR):

+ 4 - 0
visualization/nviz/src/Makefile

@@ -19,6 +19,10 @@ OGL_LIBS := $(OPENGLULIB) $(OPENGLLIB) -lgdi32 $(MATHLIB)
 endif
 endif
 ifeq ($(OPENGL_AQUA),1)
 ifeq ($(OPENGL_AQUA),1)
 OGL_LIBS := $(OPENGLULIB) $(OPENGLLIB) $(MATHLIB)
 OGL_LIBS := $(OPENGLULIB) $(OPENGLLIB) $(MATHLIB)
+ifneq ($(TCLTKAQUA_IS64BIT),1)
+CFLAGS := $(subst -arch ppc64,,$(subst -arch x86_64,,$(CFLAGS)))
+LDFLAGS := $(subst -arch ppc64,,$(subst -arch x86_64,,$(LDFLAGS)))
+endif
 endif
 endif
 
 
 SURFLIB = $(OGSFLIB)
 SURFLIB = $(OGSFLIB)