commit 3acacf1
Michael Forney
·
2014-05-18 06:49:58 +0000 UTC
parent 8dbb78f
Allow user to enable/disable building a static/shared library
M
Makefile
+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