-CFLAGS := -Wall -g -O1
+CFLAGS := -Wall -Wextra -g -O1
-COMMON_SRC = gltest.cpp glwindow.cpp
+COMMON_SRC = gltest.cpp glwindow.cpp glutil.cpp
COMMON_HDR = glwindow.h glutil.h
COMMON_LD = -lX11 -lboost_program_options
-BINARIES := glxtest egltest glx2test egl2test glestest eglinfo
+BINARIES := glxtest egltest glx2test egl2test glx3test gles2test eglinfo
all: $(BINARIES)
# choices (not all combinations are valid)
# windowing system: WIN_{GLX,EGL}
-# the kind of context: CON_{GL1,GLES2}
+# the kind of context: CON_{GL1,GL3,GLES2}
# the API used to draw: compile in glutil_gl1.cpp or glutil_gl2.cpp
glxtest: $(COMMON_SRC) $(COMMON_HDR) glutil_gl1.cpp glxbackend.cpp glxbackend.h
egl2test: $(COMMON_SRC) $(COMMON_HDR) glutil_gl2.cpp eglbackend.cpp eglbackend.h
g++ $(CFLAGS) -DWIN_EGL -DCON_GL1 $^ -lEGL -lGL $(COMMON_LD) -o $@
-glestest: $(COMMON_SRC) $(COMMON_HDR) glutil_gl2.cpp eglbackend.cpp eglbackend.h
+glx3test: $(COMMON_SRC) $(COMMON_HDR) glutil_gl2.cpp glxbackend.cpp glxbackend.h
+ g++ $(CFLAGS) -DWIN_GLX -DCON_GL3 $^ -lGL $(COMMON_LD) -o $@
+
+egl3test: $(COMMON_SRC) $(COMMON_HDR) glutil_gl2.cpp eglbackend.cpp eglbackend.h
+ g++ $(CFLAGS) -DWIN_EGL -DCON_GL3 $^ -lEGL -lGL $(COMMON_LD) -o $@
+
+gles2test: $(COMMON_SRC) $(COMMON_HDR) glutil_gl2.cpp eglbackend.cpp eglbackend.h
g++ $(CFLAGS) -DWIN_EGL -DCON_GLES2 $^ -lEGL -lGLESv2 $(COMMON_LD) -o $@
eglinfo: eglinfo.c