0001-static-build.patch 3.04 KB
Add support for static only build

This patch adds support for a BUILD_SHARED_LIB variable that allows to
enable/disable the build of the shared library, in order to support
static-only builds.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Index: b/Makefile
===================================================================
--- a/Makefile
+++ b/Makefile
@@ -85,6 +85,9 @@
 # Build and install static library
 BUILD_STATIC_LIB := 1
 
+# Build and install shared library
+BUILD_SHARED_LIB := 1
+
 # Set these to add preprocessor or compiler flags, or use
 # environment variables
 # CFLAGS :=
Index: b/lib/Module.mk
===================================================================
--- a/lib/Module.mk
+++ b/lib/Module.mk
@@ -43,8 +43,14 @@
 LIBSTLIBNAME := libsensors.a
 LIBSHSONAME := libsensors.so.$(LIBMAINVER)
 
+ifeq ($(BUILD_SHARED_LIB),1)
 LIBTARGETS := $(MODULE_DIR)/$(LIBSHLIBNAME) \
               $(MODULE_DIR)/$(LIBSHSONAME) $(MODULE_DIR)/$(LIBSHBASENAME)
+LIBDEP_FOR_PROGS := $(LIBSHBASENAME)
+else
+LIBDEP_FOR_PROGS := $(LIBSTLIBNAME)
+endif
+
 ifeq ($(BUILD_STATIC_LIB),1)
 LIBTARGETS += $(MODULE_DIR)/$(LIBSTLIBNAME)
 endif
@@ -131,9 +137,11 @@
 ifeq ($(BUILD_STATIC_LIB),1)
 	$(INSTALL) -m 644 $(LIB_DIR)/$(LIBSTLIBNAME) $(DESTDIR)$(LIBDIR)
 endif
+ifeq ($(BUILD_SHARED_LIB),1)
 	$(INSTALL) -m 755 $(LIB_DIR)/$(LIBSHLIBNAME) $(DESTDIR)$(LIBDIR)
 	$(LN) $(LIBSHLIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBSHSONAME)
 	$(LN) $(LIBSHSONAME) $(DESTDIR)$(LIBDIR)/$(LIBSHBASENAME)
+endif
 	@if [ -z "$(DESTDIR)" -a "$(LIBDIR)" != "/usr/lib" -a "$(LIBDIR)" != "/lib" ] ; then \
 	   if [ -e "/usr/lib/$(LIBSHSONAME)" -o -e "/usr/lib/$(LIBSHBASENAME)" ] ; then \
 	     echo '******************************************************************************' ; \
Index: b/prog/sensord/Module.mk
===================================================================
--- a/prog/sensord/Module.mk
+++ b/prog/sensord/Module.mk
@@ -41,7 +41,7 @@
 REMOVESENSORDBIN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(SBINDIR)/%,$(PROGSENSORDTARGETS))
 REMOVESENSORDMAN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(PROGSENSORDMAN8DIR)/%,$(PROGSENSORDMAN8FILES))
 
-$(PROGSENSORDTARGETS): $(PROGSENSORDSOURCES:.c=.ro) lib/$(LIBSHBASENAME)
+$(PROGSENSORDTARGETS): $(PROGSENSORDSOURCES:.c=.ro) lib/$(LIBDEP_FOR_PROGS)
 	$(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORDSOURCES:.c=.ro) -Llib -lsensors -lrrd
 
 all-prog-sensord: $(PROGSENSORDTARGETS)
Index: b/prog/sensors/Module.mk
===================================================================
--- a/prog/sensors/Module.mk
+++ b/prog/sensors/Module.mk
@@ -39,8 +39,8 @@
 
 LIBICONV := $(shell if /sbin/ldconfig -p | grep -q '/libiconv\.so$$' ; then echo \-liconv; else echo; fi)
 
-$(PROGSENSORSTARGETS): $(PROGSENSORSSOURCES:.c=.ro) lib/$(LIBSHBASENAME)
-	$(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) $(LIBICONV) -Llib -lsensors
+$(PROGSENSORSTARGETS): $(PROGSENSORSSOURCES:.c=.ro) lib/$(LIBDEP_FOR_PROGS)
+	$(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) $(LIBICONV) -Llib -lsensors -lm
 
 all-prog-sensors: $(PROGSENSORSTARGETS)
 user :: all-prog-sensors