1# Copyright 2014 The Chromium OS Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5include common.mk 6 7PC_DEPS = libdrm 8PC_CFLAGS := $(shell $(PKG_CONFIG) --cflags $(PC_DEPS)) 9PC_LIBS := $(shell $(PKG_CONFIG) --libs $(PC_DEPS)) 10 11CPPFLAGS += -D_GNU_SOURCE=1 12CFLAGS += -std=c99 -Wall -Wsign-compare -Wpointer-arith -Wcast-qual \ 13 -Wcast-align -D_GNU_SOURCE=1 -D_FILE_OFFSET_BITS=64 14 15# Dependencies that all gtest based unittests should have. 16UNITTEST_LIBS := -lcap -lgtest -lgmock 17UNITTEST_DEPS := gbm_unittest.o testrunner.o gbm.o dri.o drv_array_helpers.o drv_helpers.o drv.o backend_mock.o virtgpu_cross_domain.o virtgpu_virgl.o virtgpu.o msm.o vc4.o amdgpu.o i915.o mediatek.o dumb_driver.o 18 19ifdef DRV_AMDGPU 20 CFLAGS += $(shell $(PKG_CONFIG) --cflags libdrm_amdgpu) 21 LDLIBS += -ldrm_amdgpu -ldl 22endif 23ifdef DRV_I915 24 CFLAGS += $(shell $(PKG_CONFIG) --cflags libdrm_intel) 25endif 26ifdef DRV_MESON 27 CFLAGS += $(shell $(PKG_CONFIG) --cflags libdrm_meson) 28endif 29ifdef DRV_MSM 30 CFLAGS += -ldl 31endif 32ifdef DRV_RADEON 33 CFLAGS += $(shell $(PKG_CONFIG) --cflags libdrm_radeon) 34endif 35ifdef DRV_ROCKCHIP 36 CFLAGS += $(shell $(PKG_CONFIG) --cflags libdrm_rockchip) 37endif 38ifdef DRV_VC4 39 CFLAGS += $(shell $(PKG_CONFIG) --cflags libdrm_vc4) 40endif 41 42CPPFLAGS += $(PC_CFLAGS) 43LDLIBS += $(PC_LIBS) 44 45LIBDIR ?= /usr/lib/ 46 47GBM_VERSION_MAJOR := 1 48MINIGBM_VERSION := $(GBM_VERSION_MAJOR).0.0 49MINIGBM_FILENAME := libminigbm.so.$(MINIGBM_VERSION) 50 51CC_LIBRARY($(MINIGBM_FILENAME)): LDFLAGS += -Wl,-soname,libgbm.so.$(GBM_VERSION_MAJOR) 52CC_LIBRARY($(MINIGBM_FILENAME)): $(C_OBJECTS) 53CC_STATIC_LIBRARY(libminigbm.pie.a): $(C_OBJECTS) 54 55all: CC_LIBRARY($(MINIGBM_FILENAME)) 56 57clean: CLEAN($(MINIGBM_FILENAME)) 58 59CXX_BINARY(gbm_unittest): CXXFLAGS += -Wno-write-strings \ 60 $(GTEST_CXXFLAGS) 61CXX_BINARY(gbm_unittest): LDLIBS += $(UNITTEST_LIBS) 62CXX_BINARY(gbm_unittest): $(UNITTEST_DEPS) 63clean: CLEAN(gbm_unittest) 64tests: TEST(CXX_BINARY(gbm_unittest)) 65 66install: all 67 mkdir -p $(DESTDIR)/$(LIBDIR) 68 install -D -m 755 $(OUT)/$(MINIGBM_FILENAME) $(DESTDIR)/$(LIBDIR) 69 ln -sf $(MINIGBM_FILENAME) $(DESTDIR)/$(LIBDIR)/libgbm.so 70 ln -sf $(MINIGBM_FILENAME) $(DESTDIR)/$(LIBDIR)/libgbm.so.$(GBM_VERSION_MAJOR) 71 install -D -m 0644 $(SRC)/gbm.pc $(DESTDIR)$(LIBDIR)/pkgconfig/gbm.pc 72 install -D -m 0644 $(SRC)/gbm.h $(DESTDIR)/usr/include/gbm.h 73 install -D -m 0644 $(SRC)/minigbm_helpers.h $(DESTDIR)/usr/include/minigbm/minigbm_helpers.h 74