# 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)