summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Neph <ryanneph@google.com>2024-05-02 12:29:17 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2024-05-10 20:49:02 +0000
commitc52bbc8435516643f696c602d1442719a232f7e6 (patch)
tree2ff4b83e46449a4cc032a6f89976f725843afb70
parenta0cb38aa68eba59918aacd297fa1053b4fc0bc0a (diff)
downloadminigbm-upstream-main.tar.gz
minigbm: autogenerate gbm.pc and cleanup build variablesupstream-main
FINALLY, the gbm.pc is autogenerated to respect the variables steering the build. BUG=b:338254311 TEST=mkdir -p build && OUT=build make && test -f build/gbm.pc && echo "ALL GOOD" TEST=emerge minigbm Change-Id: Ie1458bb46375be1357cbf4f0a8f59d698cbd6cfd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5513263 Commit-Queue: Ryan Neph <ryanneph@google.com> Tested-by: Ryan Neph <ryanneph@google.com> Reviewed-by: Dawn Han <dawnhan@google.com> Reviewed-by: Miguel Casas-Sanchez <mcasas@chromium.org>
-rw-r--r--Makefile42
-rw-r--r--gbm.pc10
2 files changed, 33 insertions, 19 deletions
diff --git a/Makefile b/Makefile
index db27cf6..90805dd 100644
--- a/Makefile
+++ b/Makefile
@@ -42,14 +42,16 @@ endif
CPPFLAGS += $(PC_CFLAGS)
LDLIBS += $(PC_LIBS)
-LIBDIR ?= /usr/lib/
+DESTDIR ?= $(OUT)/install
+LIBDIR ?= /usr/lib
+INCLUDEDIR ?= /usr/include
-GBM_VERSION_MAJOR := 1
-MINIGBM_VERSION := $(GBM_VERSION_MAJOR).0.0
+MINIGBM_VERSION_MAJOR := 1
+MINIGBM_VERSION := $(MINIGBM_VERSION_MAJOR).0.0
MINIGBM_FILENAME := libminigbm.so.$(MINIGBM_VERSION)
-CC_LIBRARY($(MINIGBM_FILENAME)): LDFLAGS += -Wl,-soname,libgbm.so.$(GBM_VERSION_MAJOR)
-CC_LIBRARY($(MINIGBM_FILENAME)): $(C_OBJECTS)
+CC_LIBRARY($(MINIGBM_FILENAME)): LDFLAGS += -Wl,-soname,libgbm.so.$(MINIGBM_VERSION_MAJOR)
+CC_LIBRARY($(MINIGBM_FILENAME)): $(C_OBJECTS) pkgconfig
CC_STATIC_LIBRARY(libminigbm.pie.a): $(C_OBJECTS)
all: CC_LIBRARY($(MINIGBM_FILENAME))
@@ -63,11 +65,33 @@ CXX_BINARY(gbm_unittest): $(UNITTEST_DEPS)
clean: CLEAN(gbm_unittest)
tests: TEST(CXX_BINARY(gbm_unittest))
+define pkgconfig_contents
+prefix=$(DESTDIR)
+exec_prefix=$${prefix}
+includedir=$${prefix}/$(INCLUDEDIR)
+libdir=$${prefix}/$(LIBDIR)
+
+Name: libgbm
+Description: A small gbm implementation
+Version: 18.0.0
+Cflags: -I$${includedir}
+Libs: -L$${libdir} -lgbm
+Requires.private: libdrm >= 2.4.50
+endef
+
+.PHONY: pkgconfig
+pkgconfig:
+ @echo "generating $(OUT)gbm.pc"
+ $(file > $(OUT)/gbm.pc,$(pkgconfig_contents))
+clean:
+ rm -f $(OUT)gbm.pc
+
install: all
mkdir -p $(DESTDIR)/$(LIBDIR)
install -D -m 755 $(OUT)/$(MINIGBM_FILENAME) $(DESTDIR)/$(LIBDIR)
ln -sf $(MINIGBM_FILENAME) $(DESTDIR)/$(LIBDIR)/libgbm.so
- ln -sf $(MINIGBM_FILENAME) $(DESTDIR)/$(LIBDIR)/libgbm.so.$(GBM_VERSION_MAJOR)
- install -D -m 0644 $(SRC)/gbm.pc $(DESTDIR)$(LIBDIR)/pkgconfig/gbm.pc
- install -D -m 0644 $(SRC)/gbm.h $(DESTDIR)/usr/include/gbm.h
- install -D -m 0644 $(SRC)/minigbm_helpers.h $(DESTDIR)/usr/include/minigbm/minigbm_helpers.h
+ ln -sf $(MINIGBM_FILENAME) $(DESTDIR)/$(LIBDIR)/libgbm.so.$(MINIGBM_VERSION_MAJOR)
+ ln -sf $(MINIGBM_FILENAME) $(DESTDIR)/$(LIBDIR)/libgbm.so.$(MINIGBM_VERSION)
+ install -D -m 0644 $(OUT)/gbm.pc $(DESTDIR)/$(LIBDIR)/pkgconfig/gbm.pc
+ install -D -m 0644 $(SRC)/gbm.h $(DESTDIR)/$(INCLUDEDIR)/gbm.h
+ install -D -m 0644 $(SRC)/minigbm_helpers.h $(DESTDIR)/$(INCLUDEDIR)/minigbm/minigbm_helpers.h
diff --git a/gbm.pc b/gbm.pc
deleted file mode 100644
index a7509fc..0000000
--- a/gbm.pc
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=/usr
-exec_prefix=${prefix}
-includedir=${prefix}/include
-libdir=${exec_prefix}/lib
-
-Name: libgbm
-Description: A small gbm implementation
-Version: 18.0.0
-Cflags: -I${includedir}
-Libs: -L${libdir} -lgbm