aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile10
-rwxr-xr-xconfigure5
2 files changed, 10 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index e40633a..4b1f22d 100644
--- a/Makefile
+++ b/Makefile
@@ -12,6 +12,9 @@ ifeq "" "$(strip $(filter $(make_need), $(firstword $(sort $(make_need) $(MAKE_V
$(error Your make ($(MAKE_VERSION)) is too old. You need $(make_need) or newer)
endif
+deduprec = $(if $(1),$(firstword $(1)) $(call deduprec,$(filter-out $(firstword $(1)),$(wordlist 2,$(words $(1)),$(1)))),)
+dedup = $(strip $(call deduprec,$(1)))
+
-include config.mak
include package/deps.mak
@@ -39,6 +42,7 @@ ALL_SOBJS := $(ALL_DOBJS)
CFLAGS_SHARED :=
endif
ALL_LIBS := $(SHARED_LIBS) $(STATIC_LIBS)
+SYSTEM_LIBS := $(call dedup,$(SOCKET_LIB) $(UTIL_LIB) $(PTHREAD_LIB) $(SYSCLOCK_LIB) $(TIMER_LIB) $(SPAWN_LIB))
BUILT_INCLUDES := \
src/include/$(package)/sysdeps.h \
src/include/$(package)/uint16.h \
@@ -134,7 +138,7 @@ libskarnet.a.xyzzy: $(ALL_SOBJS)
exec $(RANLIB) $@
libskarnet.so.xyzzy: $(ALL_DOBJS)
- exec $(CC) -o $@ $(CFLAGS_ALL) $(CFLAGS_SHARED) $(LDFLAGS_ALL) $(LDFLAGS_SHARED) -Wl,-soname,libskarnet.so.$(version_M) -Wl,-rpath=$(dynlibdir) $^ $(SOCKET_LIB) $(SPAWN_LIB) $(SYSCLOCK_LIB) $(TIMER_LIB) $(UTIL_LIB) $(PTHREAD_LIB)
+ exec $(CC) -o $@ $(CFLAGS_ALL) $(CFLAGS_SHARED) $(LDFLAGS_ALL) $(LDFLAGS_SHARED) -Wl,-soname,libskarnet.so.$(version_M) -Wl,-rpath=$(dynlibdir) $^ $(SYSTEM_LIBS)
libskarnet.pc:
exec env \
@@ -144,7 +148,7 @@ libskarnet.pc:
libdir="$(libdir)" \
extra_includedirs="$(extra_includedirs)" \
extra_libdirs="$(extra_libdirs)" \
- extra_libs="$(strip $(SOCKET_LIB) $(SPAWN_LIB) $(SYSCLOCK_LIB) $(TIMER_LIB) $(UTIL_LIB) $(PTHREAD_LIB))" \
+ extra_libs="$(SYSTEM_LIBS)" \
description="The skarnet.org C programming library (skalibs)" \
url="https://skarnet.org/software/skalibs/" \
ldlibs="$(LDLIBS)" \
@@ -200,5 +204,5 @@ $(DESTDIR)$(dynlibdir)/lib%.dylib $(DESTDIR)$(dynlibdir)/lib%.$(version_X).dylib
exec $(INSTALL) -l lib$(*F).$(version_X).dylib $(@D)/lib$(*F).dylib
libskarnet.dylib.xyzzy: $(ALL_DOBJS)
- exec $(CC) -o $@ $(CFLAGS_ALL) $(CFLAGS_SHARED) $(LDFLAGS_ALL) $(LDFLAGS_SHARED) -Wl,-dylib_install_name,$(dynlibdir)/libskarnet.$(version_M).dylib -Wl,-dylib_compatibility_version,$(version_XY) -Wl,-dylib_current_version,$(version_XYZ) $^ $(SOCKET_LIB) $(SPAWN_LIB) $(SYSCLOCK_LIB) $(TAINNOW_LIB) $(TIMER_LIB) $(UTIL_LIB)
+ exec $(CC) -o $@ $(CFLAGS_ALL) $(CFLAGS_SHARED) $(LDFLAGS_ALL) $(LDFLAGS_SHARED) -Wl,-dylib_install_name,$(dynlibdir)/libskarnet.$(version_M).dylib -Wl,-dylib_compatibility_version,$(version_XY) -Wl,-dylib_current_version,$(version_XYZ) $^ $(SYSTEM_LIBS)
endif
diff --git a/configure b/configure
index 2f03c56..453589f 100755
--- a/configure
+++ b/configure
@@ -758,11 +758,12 @@ exthome := ${exthome}
extra_includedirs :=$depincpath
extra_libdirs :=$deplibpath
ipv6 := ${ipv6}
-SPAWN_LIB := ${spawn_lib}
SOCKET_LIB := ${socket_lib}
+UTIL_LIB := ${util_lib}
+PTHREAD_LIB := ${pthread_lib}
SYSCLOCK_LIB := ${sysclock_lib}
TIMER_LIB := ${timer_lib}
-UTIL_LIB := ${util_lib}
+SPAWN_LIB := ${spawn_lib}
CC := ${CC_AUTO}
CPPFLAGS_AUTO := $CPPFLAGS_AUTO
CPPFLAGS := $CPPFLAGS $CPPFLAGS_POST