diff --git a/Makefile b/Makefile index 47ffe788..af5134ff 100644 --- a/Makefile +++ b/Makefile @@ -85,6 +85,9 @@ ARCH := $(firstword $(subst -, ,$(shell $(CC) -dumpmachine))) # 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 := diff --git a/lib/Module.mk b/lib/Module.mk index 77322420..ca25e7bb 100644 --- a/lib/Module.mk +++ b/lib/Module.mk @@ -43,8 +43,14 @@ LIBSHLIBNAME := libsensors.so.$(LIBVER) 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 @@ install-lib: all-lib 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 '******************************************************************************' ; \ diff --git a/prog/sensord/Module.mk b/prog/sensord/Module.mk index 9dcf9d27..b8a8c956 100644 --- a/prog/sensord/Module.mk +++ b/prog/sensord/Module.mk @@ -41,7 +41,7 @@ INCLUDEFILES += $(PROGSENSORDSOURCES:.c=.rd) 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) diff --git a/prog/sensors/Module.mk b/prog/sensors/Module.mk index b6564414..1480f2a9 100644 --- a/prog/sensors/Module.mk +++ b/prog/sensors/Module.mk @@ -39,8 +39,8 @@ REMOVESENSORSMAN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(PROGSENSORSMAN1DIR)/% 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