summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Campbell <ijc@debian.org>2019-01-06 13:37:59 +0000
committerIan Campbell <ijc@debian.org>2019-01-06 13:37:59 +0000
commit837822a7c1fb8e7379e971799c0422e0999ab8ce (patch)
tree6135fe926d8b695a4b82c55af836bb9044943b34
parente8685e11320c6a5d7cd2c6028be147e040a27c96 (diff)
clean-static-build
Split static and dynamic builds Only enable systemd for the dynamic build, the static build is targetting the installer environment where systemd is not present. To do this split the .o files into .o-dyn and .o-static and arrange for appropriate *FLAGS etc for each case. Gbp-Pq: Name clean-static-build.patch
-rw-r--r--Makefile35
1 files changed, 22 insertions, 13 deletions
diff --git a/Makefile b/Makefile
index 5e449ee..5f97088 100644
--- a/Makefile
+++ b/Makefile
@@ -5,35 +5,44 @@ CPPFLAGS += -DQCONTROL_VERSION=\"$(VERSION)\"
PKG_CONFIG ?= pkg-config
LDFLAGS += -g
-LIBS += -lpthread
-LIBS_STATIC += /usr/lib/$$(dpkg-architecture -qDEB_HOST_MULTIARCH)/liblua5.1.a -lpthread -lm -ldl
+LIBS_DYNAMIC += -lpthread
+LIBS_STATIC += /usr/lib/$$(dpkg-architecture -qDEB_HOST_MULTIARCH)/liblua5.1.a -lpthread -lm -ldl
CFLAGS += $(shell $(PKG_CONFIG) --cflags lua5.1)
-LIBS += $(shell $(PKG_CONFIG) --libs lua5.1)
+
+LIBS_DYNAMIC += $(shell $(PKG_CONFIG) --libs lua5.1)
ifeq ($(shell $(PKG_CONFIG) --exists libsystemd-daemon 2>/dev/null && echo 1),1)
-CPPFLAGS += -DHAVE_SYSTEMD
-CFLAGS += $(shell $(PKG_CONFIG) --cflags libsystemd-daemon)
-LIBS += $(shell $(PKG_CONFIG) --libs libsystemd-daemon)
+CPPFLAGS_DYNAMIC += -DHAVE_SYSTEMD
+CFLAGS_DYNAMIC += $(shell $(PKG_CONFIG) --cflags libsystemd-daemon)
+LIBS_DYNAMIC += $(shell $(PKG_CONFIG) --libs libsystemd-daemon)
endif
SOURCES=qcontrol.c system.c qnap-pic.c ts209.c ts219.c ts409.c ts41x.c evdev.c a125.c synology.c
-OBJECTS=$(SOURCES:.c=.o)
+OBJECTS_DYNAMIC=$(SOURCES:.c=.o-dyn)
+OBJECTS_STATIC=$(SOURCES:.c=.o-static)
EXECUTABLE=qcontrol
all: $(SOURCES) $(EXECUTABLE) $(EXECUTABLE)-static
-$(EXECUTABLE): $(OBJECTS)
- $(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $@
+$(EXECUTABLE): $(OBJECTS_DYNAMIC)
+ $(CC) $(LDFLAGS) $(OBJECTS_DYNAMIC) $(LIBS_DYNAMIC) -o $@
+
+$(EXECUTABLE)-static: $(OBJECTS_STATIC)
+ $(CC) $(LDFLAGS) $(OBJECTS_STATIC) $(LIBS_STATIC) -o $@
-$(EXECUTABLE)-static: $(OBJECTS)
- $(CC) $(LDFLAGS) $(OBJECTS) $(LIBS_STATIC) -o $@
+$(OBJECTS_DYNAMIC): CPPFLAGS += $(CPPFLAGS_DYNAMIC)
+$(OBJECTS_DYNAMIC): CFLAGS += $(CFLAGS_DYNAMIC)
+%.o-dyn: %.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) $< -o $@
-.c.o:
+$(OBJECTS_STATIC): CPPFLAGS += $(CPPFLAGS_STATIC)
+$(OBJECTS_STATIC): CFLAGS += $(CFLAGS_STATIC)
+%.o-static: %.c
$(CC) $(CPPFLAGS) $(CFLAGS) $< -o $@
clean:
- rm -f $(OBJECTS) $(EXECUTABLE) $(EXECUTABLE)-static
+ rm -f $(OBJECTS_DYNAMIC) $(OBJECTS_STATIC) $(EXECUTABLE) $(EXECUTABLE)-static
dist: RELEASES := $(PWD)/../releases/
dist: TARBALL := qcontrol-$(VERSION).tar