changeset 2862:7479ab54e014

Linux: Fixes for building dwtestoo on Linux/gcc. GTK cannot be included in an extern "C" section. Make sure ARCH is not set on platforms other than MacOS.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 15 Dec 2022 14:44:48 +0000
parents ef7a414f9b71
children f0a00c7c4ec1
files Makefile.in configure configure.in dw.h
diffstat 4 files changed, 32 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.in	Thu Dec 15 12:42:34 2022 +0000
+++ b/Makefile.in	Thu Dec 15 14:44:48 2022 +0000
@@ -1,42 +1,46 @@
 srcdir=@srcdir@
 mandir=@mandir@
 CC	=	@CC@
-PLATCCFLAGS = @PLATCCFLAGS@
+CXX	=	@CXX@
+PLATCCFLAGS =	@PLATCCFLAGS@
 MLFLAGS	=	-L.
 include $(srcdir)/Version
-CCFLAGS = @CFLAGS@ $(PLATCCFLAGS) @ARCH@ -D@DW_DEFINE@ -DBUILD_DLL -DDW_RESOURCES -DVER_REV=$(VER_REV)
+CCFLAGS = 	@CFLAGS@ $(PLATCCFLAGS) @ARCH@ -D@DW_DEFINE@ -DBUILD_DLL -DDW_RESOURCES -DVER_REV=$(VER_REV)
 LFLAGS	=	@LIBS@ @ARCH@
-ARFLAGS = @ARFLAGS@
+ARFLAGS =	@ARFLAGS@
 INSTALL =	@INSTALL@
 DW_SRC  =	@DW_SRC@
 DW_DIR  =	@DW_DIR@
 INCPATH	=	-I.. -I. -I$(srcdir)
 TARGET	=	@TARGET@
 SRCS	=	$(srcdir)/$(DW_DIR)/$(DW_SRC)
-BROWSER_OBJECT=@BROWSER_OBJECT@
-COMPAT_OBJECT =@COMPAT_OBJECT@
-INSTALL_COMPAT=@INSTALL_COMPAT@
-INSTALL_TEST  =@INSTALL_TEST@
+BROWSER_OBJECT=	@BROWSER_OBJECT@
+COMPAT_OBJECT =	@COMPAT_OBJECT@
+INSTALL_COMPAT=	@INSTALL_COMPAT@
+INSTALL_TEST =	@INSTALL_TEST@
 OBJECTS	=	dw.o $(BROWSER_OBJECT)
 SRCS2	=	$(srcdir)dwcompat.c
 OBJECTS2=	$(COMPAT_OBJECT)
 TARGET2=	@TARGET2@
-TARGETS = @TARGETS@
+TARGETS =	@TARGETS@
 VER_MAJ	=	$(DW_MAJOR_VERSION)
 VER_MIN	=	$(DW_MINOR_VERSION)
 VER_REV =	@SVNVERSION@
 SOSUFFIX=	@SOSUFFIX@
-SONAME=	@SONAME@
-LIBPREFIX = @LIBPREFIX@
-LIBSUFFIX = @LIBSUFFIX@
+SONAME	=	@SONAME@
+LIBPREFIX =	@LIBPREFIX@
+LIBSUFFIX =	@LIBSUFFIX@
 prefix	=	$(DESTDIR)@prefix@
 SRCDIR=dwindows-$(VER_MAJ).$(VER_MIN)
 
-#.SUFFIXES:	.c .h
+#.SUFFIXES:	.c .cpp .h .hpp
 
 #.c.o:
 #	$(CC) -c $(CCFLAGS) $(INCPATH) -o $@ $<
 
+#.cpp.o:
+#	$(CXX) -c $(CCFLAGS) $(INCPATH) -o $@ $<
+
 
 # Link flags shared objects
 SYSCONF_LFLAGS_SHOBJ	= @SHAREDFLAG@
@@ -195,7 +199,7 @@
 	-$(srcdir)/mac/finishup.sh $(srcdir) dwtest
 
 dwtestoo.o: $(srcdir)/dwtestoo.cpp $(srcdir)/dw.h $(srcdir)/dw.hpp
-	$(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/dwtestoo.cpp
+	$(CXX) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/dwtestoo.cpp
 
 dwtestoo: dwtestoo.o
 	$(CC) -o dwtestoo dwtestoo.o $(MLFLAGS) -l$(TARGET) $(LFLAGS)
--- a/configure	Thu Dec 15 12:42:34 2022 +0000
+++ b/configure	Thu Dec 15 14:44:48 2022 +0000
@@ -4667,6 +4667,7 @@
 SONAME=""
 PLATCCFLAGS="-g -O2 -fPIC -Wall"
 ARFLAGS="cqs"
+ARCH=""
 
 case "$target" in
    *cygwin*)
--- a/configure.in	Thu Dec 15 12:42:34 2022 +0000
+++ b/configure.in	Thu Dec 15 14:44:48 2022 +0000
@@ -125,6 +125,7 @@
 SONAME=""
 PLATCCFLAGS="-g -O2 -fPIC -Wall"
 ARFLAGS="cqs"
+ARCH=""
 
 case "$target" in
    *cygwin*)
--- a/dw.h	Thu Dec 15 12:42:34 2022 +0000
+++ b/dw.h	Thu Dec 15 14:44:48 2022 +0000
@@ -1231,8 +1231,16 @@
 } Box;
 
 #else
+
+/* GTK Cannot be included in an extern "C" section */
+#ifdef __cplusplus
+}
+#endif
+
 /* GTK Specific section */
+#ifndef _GNU_SOURCE
 #define _GNU_SOURCE
+#endif
 #include <gtk/gtk.h>
 #if GTK_MAJOR_VERSION < 4
 #ifdef GDK_WINDOWING_X11
@@ -1243,10 +1251,13 @@
 #include <gdk/gdkprivate.h>
 #endif
 #include <gdk/gdkkeysyms.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #include <pthread.h>
-#if !defined(GDK_WINDOWING_WIN32)
 # include <dlfcn.h>
-#endif
 
 #define DW_DT_LEFT               1
 #define DW_DT_UNDERSCORE         (1 << 1)