From 8bbd94522aa48d4ae72b1034cf7a17e29f98f329 Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Mon, 12 Dec 2011 06:16:19 +0000 Subject: [PATCH] Update windowing system tests - Add support for Mac OS - Hopefully make things simpler --- configure.ac | 29 +++++++++++++++-------------- src/Makefile.am | 28 ++++++++++++++++------------ src/data/Makefile.am | 3 ++- src/gtkgl.c | 8 ++++---- src/gtkgl.h | 2 +- src/objects/Makefile.am | 5 +++-- src/plugins/Makefile.am | 15 +++++++++------ 7 files changed, 50 insertions(+), 40 deletions(-) diff --git a/configure.ac b/configure.ac index 2e9ca73..e92d77e 100644 --- a/configure.ac +++ b/configure.ac @@ -36,26 +36,27 @@ AC_CHECK_LIB(glut, glutSolidTeapot, GLUT_LIBS="-lglut") AM_CONDITIONAL(HAVE_GLUT, test "$GLUT_LIBS" != "") AC_SUBST(GLUT_LIBS) -# Test for Windows vs. Unix +# Test for windowing system case "${host}" in - *mingw32*) WIN32="yes" ;; - *cygwin*) WIN32="yes" ;; - *) WIN32="no" ;; + *mingw32*) SYS="WIN" ;; + *cygwin*) SYS="WIN" ;; + *apple*) SYS="MAC" ;; + *) SYS="X11" ;; esac +AM_CONDITIONAL([SYS_WIN], test "$SYS" = "WIN") +AM_CONDITIONAL([SYS_MAC], test "$SYS" = "MAC") +AM_CONDITIONAL([SYS_X11], test "$SYS" = "X11") if test "$WIN32" = yes; then ac_default_prefix="/" fi -AM_CONDITIONAL([WIN32], test "$WIN32" = "yes") -AM_CONDITIONAL([NOTWIN32], test "$WIN32" = "no") -# Configure GL flags -if test "$WIN32" = yes; then - GL_CFLAGS="" - GL_LIBS="-lglu32 -lopengl32" -else - GL_CFLAGS="" - GL_LIBS="-lGL -lGLU" -fi +# OpenGL flags +GL_CFLAGS="-DSYS_$SYS" +case "$SYS" in + "WIN") GL_LIBS="-lglu32 -lopengl32" ;; + "MAC") GL_LIBS="-framework OpenGL" ;; + "X11") GL_LIBS="-lGL -lGLU" ;; +esac AC_SUBST([GL_CFLAGS]) AC_SUBST([GL_LIBS]) diff --git a/src/Makefile.am b/src/Makefile.am index ed3db86..fd2fceb 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -3,10 +3,18 @@ SUBDIRS = data objects . plugins AM_CFLAGS = -Wall --std=gnu99 -I$(top_srcdir)/src AM_CPPFLAGS = $(GLIB_CFLAGS) $(GTK_CFLAGS) $(GL_CFLAGS) $(SOUP_CFLAGS) AM_LDADD = $(GLIB_LIBS) $(GTK_LIBS) $(GL_LIBS) $(SOUP_LIBS) -AM_LDFLAGS = -Wl,--as-needed -Wl,--no-undefined - -BUILT_SOURCES = grits-marshal.c grits-marshal.h +AM_LDFLAGS = +# System dependant flags +if SYS_WIN +AM_LDFLAGS += -mwindows -no-undefined +endif +if SYS_MAC +AM_CFLAGS += -ObjC +AM_LDFLAGS += -framework AppKit +else +AM_LDFLAGS += -Wl,--as-needed -Wl,--no-undefined +endif # Headers grits_includedir = $(includedir)/grits @@ -48,14 +56,6 @@ libgrits_la_LDFLAGS = $(AM_LDFLAGS) \ -version-info $(LIB_VERSION) # Demo program -if WIN32 -AM_CPPFLAGS += -DUSE_WGL -AM_LDFLAGS += -mwindows -no-undefined -dots = .. -else -AM_CPPFLAGS += -DUSE_GLX -endif - bin_PROGRAMS = grits-demo grits_demo_SOURCES = grits-demo.c @@ -70,14 +70,18 @@ grits_test_LDADD = $(AM_LDADD) libgrits.la tile_test_SOURCES = tile-test.c tile_test_LDADD = $(AM_LDADD) libgrits.la - +# Clean MAINTAINERCLEANFILES = Makefile.in +# Generated code +BUILT_SOURCES = grits-marshal.c grits-marshal.h + .list.c: glib-genmarshal --prefix=grits_cclosure_marshal --body $< > $@ .list.h: glib-genmarshal --prefix=grits_cclosure_marshal --header $< > $@ +# Debugging rules test: all .libs/$(GRITS_SUBDIR) ./grits-test diff --git a/src/data/Makefile.am b/src/data/Makefile.am index ec90c19..5a8c806 100644 --- a/src/data/Makefile.am +++ b/src/data/Makefile.am @@ -1,6 +1,7 @@ AM_CFLAGS = -Wall --std=gnu99 -I$(top_srcdir)/src AM_CFLAGS += $(GLIB_CFLAGS) $(GTK_CFLAGS) $(SOUP_CFLAGS) -if NOTWIN32 + +if !SYS_WIN AM_CFLAGS += -fPIC endif diff --git a/src/gtkgl.c b/src/gtkgl.c index b495987..052f562 100644 --- a/src/gtkgl.c +++ b/src/gtkgl.c @@ -20,7 +20,7 @@ /*************************** * GtkGlExt implementation * ***************************/ -#if defined(USE_GTKGLEXT) +#if defined(SYS_GTKGLEXT) #include void gtk_gl_enable(GtkWidget *widget) { @@ -53,7 +53,7 @@ void gtk_gl_disable(GtkWidget *widget) /********************** * X11 implementation * **********************/ -#elif defined(USE_GLX) +#elif defined(SYS_X11) #include #include void gtk_gl_enable(GtkWidget *widget) @@ -116,7 +116,7 @@ void gtk_gl_disable(GtkWidget *widget) /************************ * Win32 implementation * ************************/ -#elif defined(USE_WGL) +#elif defined(SYS_WIN) #include #include static void on_realize(GtkWidget *widget, gpointer _) @@ -190,7 +190,7 @@ void gtk_gl_disable(GtkWidget *widget) /************************** * Mac OSX implementation * **************************/ -#elif defined(USE_CGL) +#elif defined(SYS_MAC) void gtk_gl_enable(GtkWidget *widget) { CGDisplayCapture( kCGDirectMainDisplay ); diff --git a/src/gtkgl.h b/src/gtkgl.h index 71ad67a..244bc14 100644 --- a/src/gtkgl.h +++ b/src/gtkgl.h @@ -21,7 +21,7 @@ #include /* Platform dependant OpenGL includes */ -#ifdef USE_MAC +#ifdef SYS_MAC #include #include #else diff --git a/src/objects/Makefile.am b/src/objects/Makefile.am index ff20786..dc62861 100644 --- a/src/objects/Makefile.am +++ b/src/objects/Makefile.am @@ -1,6 +1,7 @@ AM_CFLAGS = -Wall --std=gnu99 -I$(top_srcdir)/src -AM_CFLAGS += $(GLIB_CFLAGS) $(GTK_CFLAGS) $(CAIRO_CFLAGS) -if NOTWIN32 +AM_CFLAGS += $(GLIB_CFLAGS) $(GTK_CFLAGS) $(GL_CFLAGS) $(CAIRO_CFLAGS) + +if !SYS_WIN AM_CFLAGS += -fPIC endif diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am index d713c35..2572125 100644 --- a/src/plugins/Makefile.am +++ b/src/plugins/Makefile.am @@ -1,10 +1,17 @@ MAINTAINERCLEANFILES = Makefile.in AM_CFLAGS = -Wall --std=gnu99 -I$(top_srcdir)/src -AM_CPPFLAGS = $(GLIB_CFLAGS) $(GTK_CFLAGS) $(SOUP_CFLAGS) -AM_LDFLAGS = -shared -module -avoid-version -Wl,--as-needed +AM_CPPFLAGS = $(GLIB_CFLAGS) $(GTK_CFLAGS) $(GL_CFLAGS) $(SOUP_CFLAGS) +AM_LDFLAGS = -shared -module -avoid-version LIBS = $(top_srcdir)/src/libgrits.la +if SYS_WIN +AM_LDFLAGS += -no-undefined +endif +if !SYS_MAC +AM_LDFLAGS += -Wl,--as-needed +endif + pluginsdir = "$(libdir)/$(GRITS_SUBDIR)" plugins_LTLIBRARIES = sat.la elev.la map.la env.la test.la @@ -14,10 +21,6 @@ map_la_SOURCES = map.c map.h env_la_SOURCES = env.c env.h test_la_SOURCES = test.c test.h -if WIN32 -AM_LDFLAGS += -no-undefined -endif - if HAVE_GLUT noinst_LTLIBRARIES = teapot.la teapot_la_SOURCES = \ -- 2.41.0