@@ -23,6 +23,8 @@ $(call allow-override,CC,$(CROSS_COMPILE)gcc)
$(call allow-override,AR,$(CROSS_COMPILE)ar)
$(call allow-override,NM,$(CROSS_COMPILE)nm)
$(call allow-override,PKG_CONFIG,pkg-config)
+$(call allow-override,LD_SO_CONF_PATH,/etc/ld.so.conf.d/)
+$(call allow-override,LDCONFIG,ldconfig)
EXT = -std=gnu99
INSTALL = install
@@ -241,10 +243,37 @@ define do_install_pkgconfig_file
fi
endef
+
+ifeq ("$(DESTDIR)", "")
+# If DESTDIR is not defined, then test if after installing the library
+# and running ldconfig, if the library is visible by ld.so.
+# If not, add the path to /etc/ld.so.conf.d/trace.conf and run ldconfig again.
+define install_ld_config
+ $(LDCONFIG); \
+ if ! grep "^$(libdir)$$" $(LD_SO_CONF_PATH)/* &> /dev/null ; then \
+ $(CC) -o $(OUTPUT)test $(srctree)/test.c -I $(includedir_SQ) \
+ -L $(libdir_SQ) -ltraceevent &>/dev/null; \
+ if ! $(OUTPUT)test &> /dev/null; then \
+ echo $(libdir_SQ) >> $(OUTPUT)trace.conf; \
+ $(call PRINT_INSTALL, trace.conf) \
+ mv $(OUTPUT)trace.conf $(LD_SO_CONF_PATH); \
+ $(LDCONFIG); \
+ fi; \
+ $(RM) $(OUTPUT)test; \
+ fi
+endef
+else
+# If installing to a location for another machine or package, do not bother
+# with running ldconfig.
+define install_ld_config
+endef
+endif # DESTDIR = ""
+
install_lib: all_cmd install_plugins install_headers install_pkgconfig
$(call QUIET_INSTALL, $(LIB_TARGET)) \
$(call do_install_mkdir,$(libdir_SQ)); \
- cp -fpR $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ)
+ cp -fpR $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ); \
+ $(call install_ld_config)
install_pkgconfig: $(PKG_CONFIG_FILE)
$(call QUIET_INSTALL, $(PKG_CONFIG_FILE)) \
@@ -123,6 +123,7 @@ ifneq ($(silent),1)
mkdir -p $(OUTPUT)$(1) && \
$(MAKE) $(COMMAND_O) subdir=$(if $(subdir),$(subdir)/$(1),$(1)) $(PRINT_DIR) -C $(1) $(2)
+ PRINT_INSTALL = printf ' INSTALL %s\n' $1;
QUIET_CLEAN = @printf ' CLEAN %s\n' $1;
QUIET_INSTALL = @printf ' INSTALL %s\n' $1;
QUIET_UNINST = @printf ' UNINST %s\n' $1;
new file mode 100644
@@ -0,0 +1,7 @@
+#include <event-parse.h>
+
+int main ()
+{
+ tep_load_plugins(NULL);
+ return 0;
+}