commit 3acacf1

Michael Forney  ·  2014-05-18 06:49:58 +0000 UTC
parent 8dbb78f
Allow user to enable/disable building a static/shared library
2 files changed,  +34, -11
+32, -11
 1@@ -18,8 +18,8 @@ WLD_LIB_LINK    := libwld.so
 2 WLD_LIB_SONAME  := $(WLD_LIB_LINK).$(VERSION_MAJOR)
 3 WLD_LIB         := $(WLD_LIB_LINK).$(VERSION)
 4 
 5-TARGETS         := wld.pc libwld.a $(WLD_LIB) $(WLD_LIB_LINK) $(WLD_LIB_SONAME)
 6-CLEAN_FILES     := $(TARGETS)
 7+TARGETS         := wld.pc
 8+CLEAN_FILES     :=
 9 
10 WLD_REQUIRES = fontconfig pixman-1
11 WLD_REQUIRES_PRIVATE = freetype2
12@@ -89,8 +89,6 @@ WLD_PACKAGES        = $(WLD_REQUIRES) $(WLD_REQUIRES_PRIVATE)
13 WLD_PACKAGE_CFLAGS ?= $(call pkgconfig,$(WLD_PACKAGES),cflags,CFLAGS)
14 WLD_PACKAGE_LIBS   ?= $(call pkgconfig,$(WLD_PACKAGES),libs,LIBS)
15 
16-CLEAN_FILES += $(WLD_STATIC_OBJECTS) $(WLD_SHARED_OBJECTS)
17-
18 FINAL_CFLAGS = $(CFLAGS) -fvisibility=hidden -std=c99
19 FINAL_CPPFLAGS = $(CPPFLAGS) -D_XOPEN_SOURCE=700
20 
21@@ -106,6 +104,18 @@ else
22     FINAL_CPPFLAGS += -DNDEBUG
23 endif
24 
25+ifeq ($(ENABLE_STATIC),1)
26+    TARGETS += libwld.a
27+    CLEAN_FILES += $(WLD_STATIC_OBJECTS)
28+endif
29+
30+ifeq ($(ENABLE_SHARED),1)
31+    TARGETS += $(WLD_LIB) $(WLD_LIB_LINK) $(WLD_LIB_SONAME)
32+    CLEAN_FILES += $(WLD_SHARED_OBJECTS)
33+endif
34+
35+CLEAN_FILES += $(TARGETS)
36+
37 compile     = $(call quiet,CC) $(FINAL_CPPFLAGS) $(FINAL_CFLAGS) -c -o $@ $< \
38               -MMD -MP -MF .deps/$(basename $<).d -MT $(basename $@).o -MT $(basename $@).lo
39 link        = $(call quiet,CCLD,$(CC)) $(LDFLAGS) -o $@ $^
40@@ -150,14 +160,25 @@ $(WLD_LIB_SONAME) $(WLD_LIB_LINK): $(WLD_LIB)
41 $(foreach dir,LIB PKGCONFIG,$(DESTDIR)$($(dir)DIR)) $(DESTDIR)$(INCLUDEDIR)/wld:
42 	mkdir -p "$@"
43 
44+.PHONY: install-wld.pc
45+install-wld.pc: wld.pc | $(DESTDIR)$(PKGCONFIGDIR)
46+	install -m 644 $< "$(DESTDIR)$(PKGCONFIGDIR)"
47+
48+.PHONY: install-libwld.a
49+install-libwld.a: libwld.a | $(DESTDIR)$(LIBDIR)
50+	install -m 644 $< "$(DESTDIR)$(LIBDIR)"
51+
52+.PHONY: install-$(WLD_LIB)
53+install-$(WLD_LIB): $(WLD_LIB) | $(DESTDIR)$(LIBDIR)
54+	install -m 755 $< "$(DESTDIR)$(LIBDIR)"
55+
56+.PHONY: install-$(WLD_LIB_LINK) install-$(WLD_LIB_SONAME)
57+install-$(WLD_LIB_LINK) install-$(WLD_LIB_SONAME): install-$(WLD_LIB) | $(DESTDIR)$(LIBDIR)
58+	ln -sf $(WLD_LIB) "$(DESTDIR)$(LIBDIR)/${@:install-%=%}"
59+
60 .PHONY: install
61-install: $(TARGETS) | $(foreach dir,LIB PKGCONFIG,$(DESTDIR)$($(dir)DIR)) $(DESTDIR)$(INCLUDEDIR)/wld
62-	install -m0644 wld.pc "$(DESTDIR)$(PKGCONFIGDIR)"
63-	install -m0644 $(WLD_HEADERS) "$(DESTDIR)$(INCLUDEDIR)/wld"
64-	install -m0644 libwld.a "$(DESTDIR)$(LIBDIR)"
65-	install -m0755 $(WLD_LIB) "$(DESTDIR)$(LIBDIR)"
66-	ln -sf $(WLD_LIB) "$(DESTDIR)$(LIBDIR)/$(WLD_LIB_LINK)"
67-	ln -sf $(WLD_LIB) "$(DESTDIR)$(LIBDIR)/$(WLD_LIB_SONAME)"
68+install: $(TARGETS:%=install-%) | $(foreach dir,LIB PKGCONFIG,$(DESTDIR)$($(dir)DIR)) $(DESTDIR)$(INCLUDEDIR)/wld
69+	install -m 644 $(WLD_HEADERS) "$(DESTDIR)$(INCLUDEDIR)/wld"
70 
71 .PHONY: clean
72 clean:
+2, -0
1@@ -4,6 +4,8 @@ CC                  = gcc
2 CFLAGS              = -pipe
3 
4 ENABLE_DEBUG        = 1
5+ENABLE_STATIC       = 1
6+ENABLE_SHARED       = 1
7 
8 ENABLE_PIXMAN       = 1
9 ENABLE_DRM          = 1