CFLAGS := -Wall -Wextra -g -O1 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 glx3test gles2test eglinfo all: $(BINARIES) # choices (not all combinations are valid) # windowing system: WIN_{GLX,EGL} # 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 g++ $(CFLAGS) -DWIN_GLX -DCON_GL1 $^ -lGL $(COMMON_LD) -o $@ egltest: $(COMMON_SRC) $(COMMON_HDR) glutil_gl1.cpp eglbackend.cpp eglbackend.h g++ $(CFLAGS) -DWIN_EGL -DCON_GL1 $^ -lEGL -lGL $(COMMON_LD) -o $@ glx2test: $(COMMON_SRC) $(COMMON_HDR) glutil_gl2.cpp glxbackend.cpp glxbackend.h g++ $(CFLAGS) -DWIN_GLX -DCON_GL1 $^ -lGL $(COMMON_LD) -o $@ egl2test: $(COMMON_SRC) $(COMMON_HDR) glutil_gl2.cpp eglbackend.cpp eglbackend.h g++ $(CFLAGS) -DWIN_EGL -DCON_GL1 $^ -lEGL -lGL $(COMMON_LD) -o $@ 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 gcc $(CFLAGS) $^ -lEGL -lGL -lX11 -o $@ clean: rm -f $(BINARIES)