From 779438770bedf3d53e6ad8f7cd6889b7f50daf3b Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Wed, 9 Jul 2014 14:23:41 +0200
Subject: [PATCH] configure: Allow to disable demos which require GLEW or GLU

* in some systems without X11 support we don't have GLEW, but
  mesa-demos are still useful

This isn't currently appropriate for upstream submission as glew has
been replaced with glad there; glu situation would need to be re-assesed
when upstream makes a new release, requested here:
https://gitlab.freedesktop.org/mesa/demos/-/issues/22

Upstream-Status: Inappropriate [see above]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>

Port to 8.3.0
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 configure.ac                  | 49 ++++++++++++++++++++---------
 src/Makefile.am               | 18 ++++++++---
 src/demos/Makefile.am         | 73 ++++++++++++++++++++++++-------------------
 src/egl/Makefile.am           |  8 +++--
 src/egl/opengles1/Makefile.am | 10 ++++--
 src/egl/opengles2/Makefile.am | 29 ++++++++---------
 6 files changed, 117 insertions(+), 70 deletions(-)

diff --git a/configure.ac b/configure.ac
index 0525b09..28834cd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -93,25 +93,44 @@ AC_EGREP_HEADER([glutInitContextProfile],
 		[AC_DEFINE(HAVE_FREEGLUT)],
 		[])
 
-dnl Check for GLEW
-PKG_CHECK_MODULES(GLEW, [glew >= 1.5.4])
-DEMO_CFLAGS="$DEMO_CFLAGS $GLEW_CFLAGS"
-DEMO_LIBS="$DEMO_LIBS $GLEW_LIBS"
+AC_ARG_ENABLE([glew],
+    [AS_HELP_STRING([--enable-glew],
+        [build demos which require glew @<:@default=yes@:>@])],
+    [enable_glew="$enableval"],
+    [enable_glew=yes]
+)
+
+if test "x$enable_glew" = xyes; then
+    dnl Check for GLEW
+    PKG_CHECK_MODULES(GLEW, [glew >= 1.5.4], [glew_enabled=yes], [glew_enabled=no])
+    DEMO_CFLAGS="$DEMO_CFLAGS $GLEW_CFLAGS"
+    DEMO_LIBS="$DEMO_LIBS $GLEW_LIBS"
+fi
 
 # LIBS was set by AC_CHECK_LIB above
 LIBS=""
 
-PKG_CHECK_MODULES(GLU, [glu], [],
-		  [AC_CHECK_HEADER([GL/glu.h],
-				   [],
-		  		   AC_MSG_ERROR([GLU not found]))
-		   AC_CHECK_LIB([GLU],
-				[gluBeginCurve],
-				[GLU_LIBS=-lGLU],
-				AC_MSG_ERROR([GLU required])) ])
+AC_ARG_ENABLE([glu],
+    [AS_HELP_STRING([--enable-glu],
+        [build demos which require glu @<:@default=yes@:>@])],
+    [enable_glu="$enableval"],
+    [enable_glu=yes]
+)
 
-DEMO_CFLAGS="$DEMO_CFLAGS $GLU_CFLAGS"
-DEMO_LIBS="$DEMO_LIBS $GLU_LIBS"
+if test "x$enable_glu" = xyes; then
+    PKG_CHECK_MODULES(GLU, [glu], [glu_enabled=yes],
+                     [AC_CHECK_HEADER([GL/glu.h],
+                                      [],
+                                      AC_MSG_ERROR([GLU not found]))
+                      AC_CHECK_LIB([GLU],
+                                   [gluBeginCurve],
+                                   [GLU_LIBS=-lGLU
+				    glu_enabled=yes],
+                                   AC_MSG_ERROR([GLU required])) ])
+
+    DEMO_CFLAGS="$DEMO_CFLAGS $GLU_CFLAGS"
+    DEMO_LIBS="$DEMO_LIBS $GLU_LIBS"
+fi
 
 AC_ARG_ENABLE([egl],
     [AS_HELP_STRING([--enable-egl],
@@ -304,6 +323,8 @@ AC_SUBST([WAYLAND_CFLAGS])
 AC_SUBST([WAYLAND_LIBS])
 
 
+AM_CONDITIONAL(HAVE_GLU, test "x$glu_enabled" = "xyes")
+AM_CONDITIONAL(HAVE_GLEW, test "x$glew_enabled" = "xyes")
 AM_CONDITIONAL(HAVE_EGL, test "x$egl_enabled" = "xyes")
 AM_CONDITIONAL(HAVE_GLESV1, test "x$glesv1_enabled" = "xyes")
 AM_CONDITIONAL(HAVE_GLESV2, test "x$glesv2_enabled" = "xyes")
diff --git a/src/Makefile.am b/src/Makefile.am
index 1647d64..8b89dee 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -22,15 +22,19 @@
 # Authors:
 #    Eric Anholt <eric@anholt.net>
 
+if HAVE_GLEW
+UTIL = util
+endif
+
 SUBDIRS = \
-	util \
+	$(UTIL) \
 	data \
 	demos \
 	egl \
 	fp \
 	fpglsl \
 	glsl \
-        gs \
+	gs \
 	objviewer \
 	osdemos \
 	perf \
@@ -40,8 +44,12 @@ SUBDIRS = \
 	slang \
 	tests \
 	tools \
-	trivial \
-	vp \
-	vpglsl \
 	wgl \
 	xdemos
+
+if HAVE_GLEW
+SUBDIRS += \
+	vp \
+	vpglsl \
+	trivial
+endif
diff --git a/src/demos/Makefile.am b/src/demos/Makefile.am
index 41603fa..ab1e3ab 100644
--- a/src/demos/Makefile.am
+++ b/src/demos/Makefile.am
@@ -30,91 +30,100 @@ AM_LDFLAGS = \
 	$(DEMO_LIBS) \
 	$(GLUT_LIBS)
 
+bin_PROGRAMS =
+
 if HAVE_GLUT
-bin_PROGRAMS = \
+if HAVE_GLEW
+bin_PROGRAMS += \
 	arbfplight \
 	arbfslight \
 	arbocclude \
 	arbocclude2 \
-	bounce \
-	clearspd \
 	copypix \
 	cubemap \
 	cuberender \
 	dinoshade \
-	dissolve \
-	drawpix \
 	engine \
 	fbo_firecube \
 	fbotexture \
-	fire \
 	fogcoord \
 	fplight \
 	fslight \
+	gloss \
+	isosurf \
+	multiarb \
+	paltex \
+	pointblast \
+	projtex \
+	shadowtex \
+	spriteblast \
+	stex3d \
+	textures \
+	vao_demo \
+	winpos
+
+copypix_LDADD = ../util/libutil.la
+cubemap_LDADD = ../util/libutil.la
+cuberender_LDADD = ../util/libutil.la
+engine_LDADD = ../util/libutil.la
+fbo_firecube_LDADD = ../util/libutil.la
+gloss_LDADD = ../util/libutil.la
+isosurf_LDADD = ../util/libutil.la
+multiarb_LDADD = ../util/libutil.la
+projtex_LDADD = ../util/libutil.la
+textures_LDADD = ../util/libutil.la
+winpos_LDADD = ../util/libutil.la
+endif
+
+if HAVE_GLU
+bin_PROGRAMS += \
+	bounce \
+	clearspd \
+	dissolve \
+	drawpix \
+	fire \
 	gamma \
 	gearbox \
 	gears \
 	geartrain \
 	glinfo \
-	gloss \
 	gltestperf \
 	ipers \
-	isosurf \
 	lodbias \
 	morph3d \
-	multiarb \
-	paltex \
 	pixeltest \
-	pointblast \
-	projtex \
 	ray \
 	readpix \
 	reflect \
 	renormal \
-	shadowtex \
 	singlebuffer \
 	spectex \
-	spriteblast \
-	stex3d \
 	teapot \
 	terrain \
 	tessdemo \
 	texcyl \
 	texenv \
-	textures \
 	trispd \
 	tunnel2 \
-	tunnel \
-	vao_demo \
-	winpos
-endif
+	tunnel
 
 tunnel_SOURCES = \
 	tunnel.c \
 	tunneldat.h
 
-copypix_LDADD = ../util/libutil.la
-cubemap_LDADD = ../util/libutil.la
-cuberender_LDADD = ../util/libutil.la
-drawpix_LDADD = ../util/libutil.la
 dissolve_LDADD = ../util/libutil.la
-engine_LDADD = ../util/libutil.la
-fbo_firecube_LDADD = ../util/libutil.la
+drawpix_LDADD = ../util/libutil.la
 fire_LDADD = ../util/libutil.la
-gloss_LDADD = ../util/libutil.la
 ipers_LDADD = ../util/libutil.la
-isosurf_LDADD = ../util/libutil.la
 lodbias_LDADD = ../util/libutil.la
-multiarb_LDADD = ../util/libutil.la
-projtex_LDADD = ../util/libutil.la
 readpix_LDADD = ../util/libutil.la
 reflect_LDADD = ../util/libutil.la
 teapot_LDADD = ../util/libutil.la
 texcyl_LDADD = ../util/libutil.la
-textures_LDADD = ../util/libutil.la
 tunnel_LDADD = ../util/libutil.la
 tunnel2_LDADD = ../util/libutil.la
-winpos_LDADD = ../util/libutil.la
+endif
+endif
 
 EXTRA_DIST = \
 	README
diff --git a/src/egl/Makefile.am b/src/egl/Makefile.am
index d64a49e..4fe1ca8 100644
--- a/src/egl/Makefile.am
+++ b/src/egl/Makefile.am
@@ -24,8 +24,12 @@
 
 SUBDIRS = \
 	eglut \
-	opengl \
-	openvg \
 	opengles1 \
 	opengles2 \
 	oes_vg
+
+if HAVE_GLU
+SUBDIRS += \
+	opengl \
+	openvg
+endif
diff --git a/src/egl/opengles1/Makefile.am b/src/egl/opengles1/Makefile.am
index fa397c2..21853e8 100644
--- a/src/egl/opengles1/Makefile.am
+++ b/src/egl/opengles1/Makefile.am
@@ -36,9 +36,12 @@ AM_LDFLAGS = \
 	$(EGL_LIBS) \
 	-lm
 
+noinst_PROGRAMS =
+
 if HAVE_EGL
 if HAVE_GLESV1
-noinst_PROGRAMS = \
+if HAVE_X11
+bin_PROGRAMS = \
 	bindtex \
 	clear \
 	drawtex_x11 \
@@ -52,8 +55,6 @@ noinst_PROGRAMS = \
 	torus_x11 \
 	tri_x11 \
 	two_win
-endif
-endif
 
 bindtex_LDADD = $(X11_LIBS)
 es1_info_LDADD = $(X11_LIBS)
@@ -76,3 +77,6 @@ drawtex_x11_LDADD = ../eglut/libeglut_x11.la
 gears_x11_LDADD = ../eglut/libeglut_x11.la
 torus_x11_LDADD = ../eglut/libeglut_x11.la
 tri_x11_LDADD = ../eglut/libeglut_x11.la
+endif
+endif
+endif
diff --git a/src/egl/opengles2/Makefile.am b/src/egl/opengles2/Makefile.am
index b80ba50..17f8d49 100644
--- a/src/egl/opengles2/Makefile.am
+++ b/src/egl/opengles2/Makefile.am
@@ -33,27 +33,28 @@ AM_LDFLAGS = \
 	$(EGL_LIBS) \
 	-lm
 
+bin_PROGRAMS =
+
 if HAVE_EGL
 if HAVE_GLESV2
-bin_PROGRAMS =
-if HAVE_X11
-bin_PROGRAMS += \
-	es2_info \
-	es2gears_x11 \
-	es2tri
-endif
 if HAVE_WAYLAND
 bin_PROGRAMS += es2gears_wayland
-endif
-endif
+
+es2gears_wayland_SOURCES = es2gears.c
+es2gears_wayland_LDADD = ../eglut/libeglut_wayland.la
 endif
 
-es2_info_LDADD = $(X11_LIBS)
-es2tri_LDADD = $(X11_LIBS)
+if HAVE_X11
+bin_PROGRAMS += \
+	es2tri \
+	es2_info \
+	es2gears_x11
 
+es2_info_LDADD = $(X11_LIBS)
 es2gears_x11_SOURCES = es2gears.c
-
 es2gears_x11_LDADD = ../eglut/libeglut_x11.la
+es2tri_LDADD = $(X11_LIBS)
+endif
+endif
+endif
 
-es2gears_wayland_SOURCES = es2gears.c
-es2gears_wayland_LDADD = ../eglut/libeglut_wayland.la
-- 
2.1.4

