commit 882003c

Michael Forney  ·  2016-04-06 06:26:56 +0000 UTC
parent 10de138
Improve pkg-config usage in Makefile
2 files changed,  +8, -14
+6, -12
 1@@ -50,19 +50,11 @@ libinput_CONSTRAINTS        := --atleast-version=0.4
 2 wayland-server_CONSTRAINTS  := --atleast-version=1.6.0
 3 
 4 define check
 5-    $(1)_EXISTS = $$(shell $$(PKG_CONFIG) --exists $$($(1)_CONSTRAINTS) $(1) && echo yes)
 6-
 7-    ifeq ($$(origin $(1)_CFLAGS),undefined)
 8-        ifneq ($$($(1)_EXISTS),yes)
 9-            $$(error Could not find package $(1))
10-        endif
11-        $(1)_CFLAGS = $$(shell $$(PKG_CONFIG) --cflags $(1))
12+    ifeq ($$(origin $(1)_EXISTS),undefined)
13+        $(1)_EXISTS = $$(shell $$(PKG_CONFIG) --exists $$($(1)_CONSTRAINTS) $(1) && echo yes)
14     endif
15-    ifeq ($$(origin $(1)_LIBS),undefined)
16-        ifneq ($$($(1)_EXISTS),yes)
17-            $$(error Could not find package $(1))
18-        endif
19-        $(1)_LIBS = $$(shell $$(PKG_CONFIG) --libs $(1))
20+    ifneq ($$($(1)_EXISTS),yes)
21+        $$(error Could not find package $(1) $$($(1)_CONSTRAINTS))
22     endif
23 endef
24 
25@@ -95,6 +87,8 @@ Q_SYM     = $(call quiet,SYM    )
26 compile   = $(Q_CC)$(CC) $(FINAL_CPPFLAGS) $(FINAL_CFLAGS) -I . -c -o $@ $< \
27             -MMD -MP -MF .deps/$(basename $<).d -MT $(basename $@).o -MT $(basename $@).lo
28 link      = $(Q_CCLD)$(CC) $(LDFLAGS) -o $@ $^
29+pkgconfig = $(foreach pkg,$(1),$(if $($(pkg)_$(3)),$($(pkg)_$(3)), \
30+                                    $(shell $(PKG_CONFIG) --$(2) $(pkg))))
31 
32 include $(SUBDIRS:%=%/local.mk)
33 
+2, -2
 1@@ -18,10 +18,10 @@ $(dir)/%.lo: $(dir)/%.c | .deps/$(dir)
 2 	$(compile) -fPIC $($(dir)_CFLAGS) $($(dir)_PACKAGE_CFLAGS)
 3 
 4 ifeq ($(origin $(dir)_PACKAGE_CFLAGS),undefined)
 5-    $(dir)_PACKAGE_CFLAGS := $(foreach pkg,$($(dir)_PACKAGES),$($(pkg)_CFLAGS))
 6+    $(dir)_PACKAGE_CFLAGS := $(call pkgconfig,$($(dir)_PACKAGES),cflags,CFLAGS)
 7 endif
 8 ifeq ($(origin $(dir)_PACKAGE_LIBS),undefined)
 9-    $(dir)_PACKAGE_LIBS := $(foreach pkg,$($(dir)_PACKAGES),$($(pkg)_LIBS))
10+    $(dir)_PACKAGE_LIBS := $(call pkgconfig,$($(dir)_PACKAGES),libs,LIBS)
11 endif
12 
13 CLEAN_FILES += $($(dir)_TARGETS)