| # Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # TODO(ihf): When X on Nyan is gone, simplify this makefile, |
| # specifically the *_PORTABLE and *_X_ONLY bits. |
| |
| USE_X = $(filter X, $(USE)) |
| ifeq ($(GRAPHICS_BACKEND),OPENGLES) |
| USE_GLES = y |
| else |
| USE_GLES = $(filter opengles, $(USE)) |
| endif |
| |
| ifneq ($(USE_X),) |
| ifneq ($(USE_GLES),) |
| PLATFORM = PLATFORM_X11_EGL |
| else |
| PLATFORM = PLATFORM_GLX |
| endif |
| else |
| PLATFORM = PLATFORM_NULL |
| endif |
| |
| SOURCES_GL_BENCH = main.cc yuvtest.cc testbase.cc |
| SOURCES_GL_BENCH += glinterfacetest.cc contexttest.cc swaptest.cc |
| SOURCES_GL_BENCH += readpixeltest.cc |
| SOURCES_GL_BENCH += attributefetchtest.cc varyingsandddxytest.cc cleartest.cc |
| SOURCES_GL_BENCH += texturetest.cc texturereusetest.cc textureupdatetest.cc |
| SOURCES_GL_BENCH += textureuploadtest.cc trianglesetuptest.cc fillratetest.cc |
| SOURCES_GL_BENCH += windowmanagercompositingtest.cc drawsizetest.cc |
| SOURCES_GL_BENCH += texturerebind.cc |
| SOURCES_GL_BENCH += md5.cc png_helper.cc utils.cc waffle_stuff.cc filepath.cc |
| SOURCES_GL_BENCH += bufferuploadtest.cc bufferuploadsubtest.cc |
| |
| SOURCES_WINDOWMANAGERTEST = windowmanagertest.cc utils.cc waffle_stuff.cc filepath.cc |
| |
| PKG_CONFIG ?= pkg-config |
| PC_DEPS = libpng |
| PC_CFLAGS := $(shell $(PKG_CONFIG) --cflags $(PC_DEPS)) |
| PC_LIBS := $(shell $(PKG_CONFIG) --libs $(PC_DEPS)) |
| |
| CXXFLAGS = -g -Wall -Werror -std=gnu++11 |
| CPPFLAGS += $(PC_CFLAGS) |
| LDLIBS = $(PC_LIBS) -lgflags |
| |
| GL_BENCH = ../glbench |
| WINDOWMANAGERTEST = ../windowmanagertest |
| |
| PLATFORM_PKGS = waffle-1 |
| ifeq ($(PLATFORM),PLATFORM_GLX) |
| PLATFORM_PKGS += x11 |
| endif |
| PLATFORM_CFLAGS = -DPLATFORM=$(PLATFORM) |
| PLATFORM_CFLAGS += $(shell $(PKG_CONFIG) --cflags $(PLATFORM_PKGS)) |
| PLATFORM_LIBS = $(shell $(PKG_CONFIG) --libs $(PLATFORM_PKGS)) |
| |
| ifneq ($(USE_GLES),) |
| CPPFLAGS += -DUSE_OPENGLES |
| LDLIBS += -lGLESv2 -lEGL |
| else |
| CPPFLAGS += -DUSE_OPENGL |
| LDLIBS += -lGL |
| endif |
| |
| SOURCES_ALL = $(sort $(SOURCES_GL_BENCH) \ |
| $(SOURCES_WINDOWMANAGERTEST)) |
| |
| OBJS_GL_BENCH = $(SOURCES_GL_BENCH:.cc=.o) |
| OBJS_WINDOWMANAGERTEST = $(SOURCES_WINDOWMANAGERTEST:.cc=.o) |
| OBJS_ALL = $(SOURCES_ALL:.cc=.o) |
| DEPS_ALL = $(SOURCES_ALL:.cc=.d) |
| |
| .PHONY: all clean |
| |
| EXE_PORTABLE = $(GL_BENCH) $(WINDOWMANAGERTEST) |
| OBJ_PORTABLE = $(sort $(OBJS_GL_BENCH) $(OBJS_WINDOWMANAGERTEST)) |
| |
| all:: $(EXE_PORTABLE) |
| ifneq ($(USE_X),) |
| all:: $(EXE_X_ONLY) |
| endif |
| |
| $(GL_BENCH): $(OBJS_GL_BENCH) |
| $(WINDOWMANAGERTEST): $(OBJS_WINDOWMANAGERTEST) |
| |
| clean: |
| $(RM) $(GL_BENCH) $(WINDOWMANAGERTEST) |
| $(RM) $(OBJS_ALL) $(DEPS_ALL) |
| $(RM) *.o *.d .version |
| |
| $(EXE_PORTABLE): |
| $(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ $(LDLIBS) $(PLATFORM_LIBS) |
| |
| $(EXE_X_ONLY): |
| $(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ $(LDLIBS) -lX11 -lrt |
| |
| $(OBJ_PORTABLE): %.o: %.cc |
| $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(PLATFORM_CFLAGS) -c $< -o $@ -MMD |
| |
| $(OBJS_X_ONLY): %.o: %.cc |
| $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ -MMD |
| |
| -include $(DEPS_ALL) |