mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-24 15:11:19 +02:00
overlay sys-cluster/ipvsadm: Rework build system
This commit is contained in:
parent
29a38e14e9
commit
0cd2fd0a47
@ -1,117 +0,0 @@
|
|||||||
diff -Nuar -Nuar --exclude '*.orig' --exclude '*.rej' ipvsadm-1.27.orig/libipvs/Makefile ipvsadm-1.27/libipvs/Makefile
|
|
||||||
--- ipvsadm-1.27.orig/libipvs/Makefile 2013-09-06 01:37:27.000000000 -0700
|
|
||||||
+++ ipvsadm-1.27/libipvs/Makefile 2013-11-01 23:45:21.633636401 -0700
|
|
||||||
@@ -1,9 +1,9 @@
|
|
||||||
# Makefile for libipvs
|
|
||||||
|
|
||||||
CC = gcc
|
|
||||||
-CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -fPIC
|
|
||||||
+#OPTFLAGS = -Wall -Wunused -Wstrict-prototypes
|
|
||||||
ifneq (0,$(HAVE_NL))
|
|
||||||
-CFLAGS += -DLIBIPVS_USE_NL
|
|
||||||
+DEFINES += -DLIBIPVS_USE_NL
|
|
||||||
CFLAGS += $(shell \
|
|
||||||
if which pkg-config > /dev/null 2>&1; then \
|
|
||||||
if pkg-config --cflags libnl-3.0 2> /dev/null; then :; \
|
|
||||||
@@ -15,7 +15,7 @@
|
|
||||||
|
|
||||||
INCLUDE += $(shell if [ -f ../../ip_vs.h ]; then \
|
|
||||||
echo "-I../../."; fi;)
|
|
||||||
-DEFINES = $(shell if [ ! -f ../../ip_vs.h ]; then \
|
|
||||||
+DEFINES += $(shell if [ ! -f ../../ip_vs.h ]; then \
|
|
||||||
echo "-DHAVE_NET_IP_VS_H"; fi;)
|
|
||||||
DEFINES += $(shell if which pkg-config > /dev/null 2>&1; then \
|
|
||||||
if pkg-config --exists libnl-3.0; then :; \
|
|
||||||
@@ -24,21 +24,31 @@
|
|
||||||
then echo "-DFALLBACK_LIBNL1"; fi; fi)
|
|
||||||
|
|
||||||
.PHONY = all clean install dist distclean rpm rpms
|
|
||||||
+
|
|
||||||
STATIC_LIB = libipvs.a
|
|
||||||
SHARED_LIB = libipvs.so
|
|
||||||
|
|
||||||
-all: $(STATIC_LIB) $(SHARED_LIB)
|
|
||||||
+TARGETS = $(SHARED_LIB)
|
|
||||||
+ifeq (1,$(STATIC))
|
|
||||||
+TARGETS += $(STATIC_LIB)
|
|
||||||
+endif
|
|
||||||
+all: $(TARGETS)
|
|
||||||
+
|
|
||||||
+SOURCES = libipvs.c ip_vs_nl_policy.c
|
|
||||||
|
|
||||||
-$(STATIC_LIB): libipvs.o ip_vs_nl_policy.o
|
|
||||||
+$(STATIC_LIB): $(SOURCES:%.c=%.o)
|
|
||||||
ar rv $@ $^
|
|
||||||
|
|
||||||
-$(SHARED_LIB): libipvs.o ip_vs_nl_policy.o
|
|
||||||
- $(CC) -shared -Wl,-soname,$@ -o $@ $^
|
|
||||||
+$(SHARED_LIB): $(SOURCES:%.c=%.lo)
|
|
||||||
+ $(CC) $(LDFLAGS) -shared -Wl,-soname,$@ -o $@ $^
|
|
||||||
+
|
|
||||||
+%.lo: %.c
|
|
||||||
+ $(CC) -fPIC $(OPTFLAGS) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
- $(CC) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
|
|
||||||
+ $(CC) $(OPTFLAGS) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
|
|
||||||
|
|
||||||
clean:
|
|
||||||
- rm -f *.[ao] *~ *.orig *.rej core *.so
|
|
||||||
+ rm -f *.[ao] *~ *.orig *.rej core *.so *.lo
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
diff -Nuar -Nuar --exclude '*.orig' --exclude '*.rej' ipvsadm-1.27.orig/Makefile ipvsadm-1.27/Makefile
|
|
||||||
--- ipvsadm-1.27.orig/Makefile 2013-11-01 23:49:36.523225124 -0700
|
|
||||||
+++ ipvsadm-1.27/Makefile 2013-11-01 23:49:09.478738760 -0700
|
|
||||||
@@ -43,14 +43,13 @@
|
|
||||||
INIT = $(BUILD_ROOT)/etc/rc.d/init.d
|
|
||||||
MKDIR = mkdir
|
|
||||||
INSTALL = install
|
|
||||||
-STATIC_LIBS = libipvs/libipvs.a
|
|
||||||
|
|
||||||
ifeq "${ARCH}" "sparc64"
|
|
||||||
- CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -m64 -pipe -mcpu=ultrasparc -mcmodel=medlow
|
|
||||||
+ CFLAGS := -g -m64 -pipe -mcpu=ultrasparc -mcmodel=medlow
|
|
||||||
else
|
|
||||||
- CFLAGS = -Wall -Wunused -Wstrict-prototypes -g
|
|
||||||
+ CFLAGS := -g
|
|
||||||
endif
|
|
||||||
-
|
|
||||||
+OPTFLAGS += -Wall -Wunused -Wstrict-prototypes
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# No servicable parts below this line
|
|
||||||
@@ -84,12 +83,14 @@
|
|
||||||
all: libs ipvsadm
|
|
||||||
|
|
||||||
libs:
|
|
||||||
- make -C libipvs
|
|
||||||
+ $(MAKE) -C libipvs CFLAGS="$(CFLAGS)" STATIC="$(STATIC)" OPTFLAGS="$(OPTFLAGS)"
|
|
||||||
+
|
|
||||||
+$(OBJS): libs
|
|
||||||
|
|
||||||
-ipvsadm: $(OBJS) $(STATIC_LIBS)
|
|
||||||
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
|
|
||||||
+ipvsadm: $(OBJS)
|
|
||||||
+ $(CC) $(LDFLAGS) $(OPTFLAGS) $(CFLAGS) -o $@ $^ -Llibipvs -lipvs $(LIBS)
|
|
||||||
|
|
||||||
-install: all
|
|
||||||
+install: all
|
|
||||||
if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi
|
|
||||||
$(INSTALL) -m 0755 ipvsadm $(SBIN)
|
|
||||||
$(INSTALL) -m 0755 ipvsadm-save $(SBIN)
|
|
||||||
@@ -106,7 +107,7 @@
|
|
||||||
rm -rf debian/tmp
|
|
||||||
find . -name '*.[ao]' -o -name "*~" -o -name "*.orig" \
|
|
||||||
-o -name "*.rej" -o -name core | xargs rm -f
|
|
||||||
- make -C libipvs clean
|
|
||||||
+ $(MAKE) -C libipvs clean
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
|
|
||||||
@@ -139,4 +140,4 @@
|
|
||||||
dpkg-buildpackage
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
- $(CC) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
|
|
||||||
+ $(CC) $(OPTFLAGS) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
|
|
@ -0,0 +1,367 @@
|
|||||||
|
From 11317a755aaa77ba7696ca3eda7b7439f3f53e4b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Krzesimir Nowak <knowak@microsoft.com>
|
||||||
|
Date: Fri, 24 Nov 2023 15:15:48 +0100
|
||||||
|
Subject: [PATCH] Improve build system a bit
|
||||||
|
|
||||||
|
- Allow overriding a path to pkg-config for cross-compilation
|
||||||
|
purposes. The builder can specify PKG_CONFIG variable to change the
|
||||||
|
default value being "pkg-config".
|
||||||
|
|
||||||
|
- Do the same for "ar". Can be overridden by specifying AR variable.
|
||||||
|
|
||||||
|
- Try to detect popt library using pkg-config. If it fails, fall back
|
||||||
|
to passing -lpopt to the linker.
|
||||||
|
|
||||||
|
- Try to detect CFLAGS for both popt and libnl using pkg-config.
|
||||||
|
|
||||||
|
- Drop obsolete POPT_DEFINE variable.
|
||||||
|
|
||||||
|
- Move building of libipvs libraries to main Makefile to avoid
|
||||||
|
duplicating library detections and other things.
|
||||||
|
|
||||||
|
- Allow declaring if ipvsadm should be linked with shared or static
|
||||||
|
libipvs.
|
||||||
|
|
||||||
|
- Build shared library objects separately from static library objects
|
||||||
|
as they may need different compiler options.
|
||||||
|
|
||||||
|
- Allow declaring which variants of libipvs to build.
|
||||||
|
|
||||||
|
- Install libraries too. Specify LIB variable to override the default
|
||||||
|
/usr/lib location.
|
||||||
|
|
||||||
|
- Support using widely-used DESTDIR variable. BUILD_ROOT is still
|
||||||
|
supported - only one of the two can be specified.
|
||||||
|
|
||||||
|
- Allow overriding CFLAGS without clobbering the warning flags. The
|
||||||
|
warning flags can be overridden by specifying OPTFLAGS.
|
||||||
|
|
||||||
|
- Fix man directory, should be /usr/share/man, not /usr/man.
|
||||||
|
|
||||||
|
- Allow providing config.mk, which can be used to configure the
|
||||||
|
project via a file.
|
||||||
|
---
|
||||||
|
Makefile | 219 +++++++++++++++++++++++++++++++++++++----------
|
||||||
|
libipvs/Makefile | 44 ----------
|
||||||
|
2 files changed, 176 insertions(+), 87 deletions(-)
|
||||||
|
delete mode 100644 libipvs/Makefile
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 91a2991..9ed9a27 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -35,26 +35,80 @@ ARCH = $(shell uname -m)
|
||||||
|
RPMSOURCEDIR = $(shell rpm --eval '%_sourcedir')
|
||||||
|
RPMSPECDIR = $(shell rpm --eval '%_specdir')
|
||||||
|
|
||||||
|
+# Both have the same function, so at most one of those may be
|
||||||
|
+# non-empty. DESTDIR is preferred as it's more standard name.
|
||||||
|
+BUILD_ROOT =
|
||||||
|
+DESTDIR =
|
||||||
|
+
|
||||||
|
+# Specify to 1 if the projects should be built using libnl.
|
||||||
|
+HAVE_NL = 0
|
||||||
|
+
|
||||||
|
+AR = ar
|
||||||
|
CC = gcc
|
||||||
|
-INCLUDE =
|
||||||
|
-SBIN = $(BUILD_ROOT)/sbin
|
||||||
|
-MANDIR = usr/man
|
||||||
|
-MAN = $(BUILD_ROOT)/$(MANDIR)/man8
|
||||||
|
-INIT = $(BUILD_ROOT)/etc/rc.d/init.d
|
||||||
|
MKDIR = mkdir
|
||||||
|
INSTALL = install
|
||||||
|
-STATIC_LIBS = libipvs/libipvs.a
|
||||||
|
+PKG_CONFIG = pkg-config
|
||||||
|
+
|
||||||
|
+INCLUDE =
|
||||||
|
+
|
||||||
|
+SBIN = /sbin
|
||||||
|
+MAN = /usr/share/man/man8
|
||||||
|
+INIT = /etc/rc.d/init.d
|
||||||
|
+LIB = /usr/lib
|
||||||
|
+
|
||||||
|
+SHARED_LIB = libipvs.so
|
||||||
|
+STATIC_LIB = libipvs.a
|
||||||
|
+# either shared or static, selects the library type the binary should
|
||||||
|
+# be linked with
|
||||||
|
+LINK_WITH = static
|
||||||
|
+# either shared, static or both, decides which libraries should be
|
||||||
|
+# built; must be consistent with LINK_WITH
|
||||||
|
+BUILD_LIBS = both
|
||||||
|
|
||||||
|
ifeq "${ARCH}" "sparc64"
|
||||||
|
- CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -m64 -pipe -mcpu=ultrasparc -mcmodel=medlow
|
||||||
|
+ CFLAGS = -g -m64 -pipe -mcpu=ultrasparc -mcmodel=medlow
|
||||||
|
else
|
||||||
|
- CFLAGS = -Wall -Wunused -Wstrict-prototypes -g
|
||||||
|
+ CFLAGS = -g
|
||||||
|
endif
|
||||||
|
|
||||||
|
+OPTFLAGS = -Wall -Wunused -Wstrict-prototypes
|
||||||
|
+
|
||||||
|
+# Optionally include config.mk which may set up/override the variables
|
||||||
|
+# above.
|
||||||
|
+-include config.mk
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# No servicable parts below this line
|
||||||
|
|
||||||
|
+ifneq "$(BUILD_ROOT)" ""
|
||||||
|
+ifneq "$(DESTDIR)" ""
|
||||||
|
+$(error At most one of BUILD_ROOT or DESTDIR can be specified)
|
||||||
|
+endif
|
||||||
|
+DESTDIR=$(BUILD_ROOT)
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+OPT_BAD=
|
||||||
|
+ifneq "$(firstword $(BUILD_LIBS))" "$(BUILD_LIBS)"
|
||||||
|
+OPT_BAD=x
|
||||||
|
+endif
|
||||||
|
+ifneq "$(findstring $(BUILD_LIBS),shared static both)" "$(BUILD_LIBS)"
|
||||||
|
+OPT_BAD=x
|
||||||
|
+endif
|
||||||
|
+ifneq "$(OPT_BAD)" ""
|
||||||
|
+$(error "BUILD_LIBS must be either 'shared', 'static' or 'both'")
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+OPT_BAD=
|
||||||
|
+ifneq "$(firstword $(LINK_WITH))" "$(LINK_WITH)"
|
||||||
|
+OPT_BAD=x
|
||||||
|
+endif
|
||||||
|
+ifneq "$(findstring $(LINK_WITH),shared static)" "$(LINK_WITH)"
|
||||||
|
+OPT_BAD=x
|
||||||
|
+endif
|
||||||
|
+ifneq "$(OPT_BAD)" ""
|
||||||
|
+$(error "LINK_WITH must be either 'shared' or 'static'")
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
RPMBUILD = $(shell \
|
||||||
|
if [ -x /usr/bin/rpmbuild ]; then \
|
||||||
|
echo "/usr/bin/rpmbuild"; \
|
||||||
|
@@ -62,51 +116,133 @@ RPMBUILD = $(shell \
|
||||||
|
echo "/bin/rpm"; \
|
||||||
|
fi )
|
||||||
|
|
||||||
|
-OBJS = ipvsadm.o config_stream.o dynamic_array.o
|
||||||
|
-LIBS = -lpopt
|
||||||
|
+SHARED_LIB_PATH=libipvs/$(SHARED_LIB)
|
||||||
|
+STATIC_LIB_PATH=libipvs/$(STATIC_LIB)
|
||||||
|
+
|
||||||
|
+POPT_CFLAGS = ""
|
||||||
|
+POPT_LIBS = -lpopt
|
||||||
|
+LIBNL_CFLAGS = ""
|
||||||
|
+LIBNL_LIBS = -lnl
|
||||||
|
+
|
||||||
|
+HAS_PKG_CONFIG = $(shell if command -v $(PKG_CONFIG) > /dev/null 2>&1; then echo x; fi)
|
||||||
|
+ifneq "$(HAS_PKG_CONFIG)" ""
|
||||||
|
+
|
||||||
|
+POPT_MOD = $(shell if $(PKG_CONFIG) --exists popt; then echo popt; fi)
|
||||||
|
+ifneq "$(POPT_MOD)" ""
|
||||||
|
+POPT_CFLAGS = $(shell $(PKG_CONFIG) --cflags $(POPT_MOD))
|
||||||
|
+POPT_LIBS = $(shell $(PKG_CONFIG) --libs $(POPT_MOD))
|
||||||
|
+endif # POPT_MOD
|
||||||
|
+
|
||||||
|
+LIBNL_MOD = $(shell \
|
||||||
|
+ if $(PKG_CONFIG) --exists libnl-genl-3.0; then echo libnl-genl-3.0; \
|
||||||
|
+ elif $(PKG_CONFIG) --exists libnl-2.0; then echo libnl-2.0; \
|
||||||
|
+ elif $(PKG_CONFIG) --exists libnl-1; then echo libnl-1; \
|
||||||
|
+ fi)
|
||||||
|
+ifneq "$(LIBNL_MOD)" ""
|
||||||
|
+LIBNL_CFLAGS = $(shell $(PKG_CONFIG) --cflags $(LIBNL_MOD))
|
||||||
|
+LIBNL_LIBS = $(shell $(PKG_CONFIG) --libs $(LIBNL_MOD))
|
||||||
|
+endif # LIBNL_MOD
|
||||||
|
+
|
||||||
|
+endif # HAS_PKG_CONFIG
|
||||||
|
+
|
||||||
|
+COMMON_DEFINES = $(shell if [ ! -f ../ip_vs.h ]; then \
|
||||||
|
+ echo "-DHAVE_NET_IP_VS_H"; fi)
|
||||||
|
+
|
||||||
|
+BIN_SOURCES = ipvsadm.c config_stream.c dynamic_array.c
|
||||||
|
+BIN_CFLAGS = $(POPT_CFLAGS)
|
||||||
|
+BIN_LIBS =
|
||||||
|
+BIN_OBJS = $(patsubst %.c,bin_%.o,$(BIN_SOURCES))
|
||||||
|
+BIN_DEFINES = -DVERSION=\"$(VERSION)\" -DSCHEDULERS=\"$(SCHEDULERS)\" \
|
||||||
|
+ -DPE_LIST=\"$(PE_LIST)\"
|
||||||
|
+ifeq "$(LINK_WITH)" "static"
|
||||||
|
+BIN_LIBIPVS_DEP = $(STATIC_LIB_PATH)
|
||||||
|
+BIN_LIBS += $(STATIC_LIB_PATH)
|
||||||
|
+ifneq "$(findstring $(BUILD_LIBS),static both)" "$(BUILD_LIBS)"
|
||||||
|
+$(error "Linking with static library, but it is not built")
|
||||||
|
+endif # BUILD_LIBS static both
|
||||||
|
+else ifeq "$(LINK_WITH)" "shared"
|
||||||
|
+BIN_LIBIPVS_DEP = $(SHARED_LIB_PATH)
|
||||||
|
+BIN_LIBS += -Llibipvs -lipvs
|
||||||
|
+ifneq "$(findstring $(BUILD_LIBS),shared both)" "$(BUILD_LIBS)"
|
||||||
|
+$(error "Linking with shared library, but it is not built")
|
||||||
|
+endif # BUILD_LIBS shared both
|
||||||
|
+endif # LINK_WITH
|
||||||
|
+
|
||||||
|
+BIN_LIBS += $(POPT_LIBS)
|
||||||
|
ifneq (0,$(HAVE_NL))
|
||||||
|
-LIBS += $(shell \
|
||||||
|
- if which pkg-config > /dev/null 2>&1; then \
|
||||||
|
- if pkg-config --libs libnl-genl-3.0 2> /dev/null; then :;\
|
||||||
|
- elif pkg-config --libs libnl-2.0 2> /dev/null; then :;\
|
||||||
|
- elif pkg-config --libs libnl-1 2> /dev/null; then :;\
|
||||||
|
- fi; \
|
||||||
|
- else echo "-lnl"; fi)
|
||||||
|
+BIN_CFLAGS += $(LIBNL_CFLAGS)
|
||||||
|
+BIN_LIBS += $(LIBNL_LIBS)
|
||||||
|
endif
|
||||||
|
-DEFINES = -DVERSION=\"$(VERSION)\" -DSCHEDULERS=\"$(SCHEDULERS)\" \
|
||||||
|
- -DPE_LIST=\"$(PE_LIST)\" $(POPT_DEFINE)
|
||||||
|
-DEFINES += $(shell if [ ! -f ../ip_vs.h ]; then \
|
||||||
|
- echo "-DHAVE_NET_IP_VS_H"; fi;)
|
||||||
|
|
||||||
|
+bin_%.o: %.c
|
||||||
|
+ $(CC) $(OPTFLAGS) $(CFLAGS) $(BIN_CFLAGS) $(BIN_INCLUDES) $(BIN_DEFINES) $(COMMON_DEFINES) -c -o $@ $<
|
||||||
|
|
||||||
|
-.PHONY = all clean install dist distclean rpm rpms
|
||||||
|
+ipvsadm: $(BIN_OBJS) $(BIN_LIBIPVS_DEP)
|
||||||
|
+ $(CC) $(LDFLAGS) $(OPTFLAGS) $(CFLAGS) -o $@ $(BIN_OBJS) $(BIN_LIBS)
|
||||||
|
|
||||||
|
-all: libs ipvsadm
|
||||||
|
+LIB_SOURCES = libipvs/libipvs.c libipvs/ip_vs_nl_policy.c
|
||||||
|
+LIB_CFLAGS =
|
||||||
|
+LIB_LIBS =
|
||||||
|
+LIB_DEFINES =
|
||||||
|
+LIB_INCLUDES = $(shell if [ -f ../ip_vs.h ]; then \
|
||||||
|
+ echo "-I../../."; fi)
|
||||||
|
+ifneq (0,$(HAVE_NL))
|
||||||
|
+LIB_CFLAGS += $(LIBNL_CFLAGS)
|
||||||
|
+LIB_LIBS += $(LIBNL_LIBS)
|
||||||
|
+LIB_DEFINES += -DLIBIPVS_USE_NL
|
||||||
|
+ifeq ($(LIBNL_MOD),libnl-1)
|
||||||
|
+LIB_DEFINES += -DFALLBACK_LIBNL1
|
||||||
|
+endif # libnl-1
|
||||||
|
+endif # HAVE_NL
|
||||||
|
|
||||||
|
-libs:
|
||||||
|
- make -C libipvs
|
||||||
|
+ALL_BUILT_LIBS=
|
||||||
|
+ifeq "$(findstring $(BUILD_LIBS),shared both)" "$(BUILD_LIBS)"
|
||||||
|
+SH_LIB_CFLAGS = -fPIC
|
||||||
|
+SH_LIB_OBJS = $(patsubst libipvs/%.c,libipvs/sh_%.o,$(LIB_SOURCES))
|
||||||
|
|
||||||
|
-ipvsadm: $(OBJS) $(STATIC_LIBS)
|
||||||
|
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
|
||||||
|
+libipvs/sh_%.o: libipvs/%.c
|
||||||
|
+ $(CC) $(SH_LIB_CFLAGS) $(OPTFLAGS) $(CFLAGS) $(LIB_CFLAGS) $(LIB_INCLUDES) $(LIB_DEFINES) $(COMMON_DEFINES) -c -o $@ $<
|
||||||
|
|
||||||
|
-install: all
|
||||||
|
- if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi
|
||||||
|
- $(INSTALL) -m 0755 ipvsadm $(SBIN)
|
||||||
|
- $(INSTALL) -m 0755 ipvsadm-save $(SBIN)
|
||||||
|
- $(INSTALL) -m 0755 ipvsadm-restore $(SBIN)
|
||||||
|
- [ -d $(MAN) ] || $(MKDIR) -p $(MAN)
|
||||||
|
- $(INSTALL) -m 0644 ipvsadm.8 $(MAN)
|
||||||
|
- $(INSTALL) -m 0644 ipvsadm-save.8 $(MAN)
|
||||||
|
- $(INSTALL) -m 0644 ipvsadm-restore.8 $(MAN)
|
||||||
|
- [ -d $(INIT) ] || $(MKDIR) -p $(INIT)
|
||||||
|
- $(INSTALL) -m 0755 ipvsadm.sh $(INIT)/ipvsadm
|
||||||
|
+$(SHARED_LIB_PATH): $(SH_LIB_OBJS)
|
||||||
|
+ $(CC) $(LDFLAGS) -shared -Wl,-soname,$(SHARED_LIB) -o $@ $^
|
||||||
|
+
|
||||||
|
+ALL_BUILT_LIBS += $(SHARED_LIB_PATH)
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifeq "$(findstring $(BUILD_LIBS),static both)" "$(BUILD_LIBS)"
|
||||||
|
+ST_LIB_CFLAGS =
|
||||||
|
+ST_LIB_OBJS = $(patsubst libipvs/%.c,libipvs/st_%.o,$(LIB_SOURCES))
|
||||||
|
+
|
||||||
|
+libipvs/st_%.o: libipvs/%.c
|
||||||
|
+ $(CC) $(ST_LIB_CFLAGS) $(OPTFLAGS) $(CFLAGS) $(LIB_CFLAGS) $(LIB_INCLUDES) $(LIB_DEFINES) $(COMMON_DEFINES) -c -o $@ $<
|
||||||
|
+
|
||||||
|
+$(STATIC_LIB_PATH): $(ST_LIB_OBJS)
|
||||||
|
+ $(AR) rv $@ $^
|
||||||
|
+
|
||||||
|
+ALL_BUILT_LIBS += $(STATIC_LIB_PATH)
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+all: ipvsadm $(ALL_BUILT_LIBS)
|
||||||
|
+
|
||||||
|
+install: all
|
||||||
|
+ if [ ! -d $(DESTDIR)$(SBIN) ]; then $(MKDIR) -p $(DESTDIR)$(SBIN); fi
|
||||||
|
+ $(INSTALL) -m 0755 ipvsadm $(DESTDIR)$(SBIN)
|
||||||
|
+ $(INSTALL) -m 0755 ipvsadm-save $(DESTDIR)$(SBIN)
|
||||||
|
+ $(INSTALL) -m 0755 ipvsadm-restore $(DESTDIR)$(SBIN)
|
||||||
|
+ [ -d $(DESTDIR)$(MAN) ] || $(MKDIR) -p $(DESTDIR)$(MAN)
|
||||||
|
+ $(INSTALL) -m 0644 ipvsadm.8 $(DESTDIR)$(MAN)
|
||||||
|
+ $(INSTALL) -m 0644 ipvsadm-save.8 $(DESTDIR)$(MAN)
|
||||||
|
+ $(INSTALL) -m 0644 ipvsadm-restore.8 $(DESTDIR)$(MAN)
|
||||||
|
+ [ -d $(DESTDIR)$(INIT) ] || $(MKDIR) -p $(DESTDIR)$(INIT)
|
||||||
|
+ $(INSTALL) -m 0755 ipvsadm.sh $(DESTDIR)$(INIT)/ipvsadm
|
||||||
|
+ [ -d $(DESTDIR)$(LIB) ] || $(MKDIR) -p $(DESTDIR)$(LIB)
|
||||||
|
+ $(INSTALL) -m 0644 $(ALL_BUILT_LIBS) $(DESTDIR)$(LIB)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f ipvsadm $(NAME).spec $(NAME)-$(VERSION).tar.gz
|
||||||
|
rm -rf debian/tmp
|
||||||
|
find . -name '*.[ao]' -o -name "*~" -o -name "*.orig" \
|
||||||
|
- -o -name "*.rej" -o -name core | xargs rm -f
|
||||||
|
- make -C libipvs clean
|
||||||
|
+ -o -name "*.rej" -o -name core -o -name '*.so' | xargs rm -f
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
|
||||||
|
@@ -137,6 +273,3 @@ deb: debs
|
||||||
|
|
||||||
|
debs:
|
||||||
|
dpkg-buildpackage
|
||||||
|
-
|
||||||
|
-%.o: %.c
|
||||||
|
- $(CC) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
|
||||||
|
diff --git a/libipvs/Makefile b/libipvs/Makefile
|
||||||
|
deleted file mode 100644
|
||||||
|
index f845c8b..0000000
|
||||||
|
--- a/libipvs/Makefile
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,44 +0,0 @@
|
||||||
|
-# Makefile for libipvs
|
||||||
|
-
|
||||||
|
-CC = gcc
|
||||||
|
-CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -fPIC
|
||||||
|
-ifneq (0,$(HAVE_NL))
|
||||||
|
-CFLAGS += -DLIBIPVS_USE_NL
|
||||||
|
-CFLAGS += $(shell \
|
||||||
|
- if which pkg-config > /dev/null 2>&1; then \
|
||||||
|
- if pkg-config --cflags libnl-3.0 2> /dev/null; then :; \
|
||||||
|
- elif pkg-config --cflags libnl-2.0 2> /dev/null; then :; \
|
||||||
|
- elif pkg-config --cflags libnl-1 2> /dev/null; then :; \
|
||||||
|
- fi; \
|
||||||
|
- fi)
|
||||||
|
-endif
|
||||||
|
-
|
||||||
|
-INCLUDE += $(shell if [ -f ../../ip_vs.h ]; then \
|
||||||
|
- echo "-I../../."; fi;)
|
||||||
|
-DEFINES = $(shell if [ ! -f ../../ip_vs.h ]; then \
|
||||||
|
- echo "-DHAVE_NET_IP_VS_H"; fi;)
|
||||||
|
-DEFINES += $(shell if which pkg-config > /dev/null 2>&1; then \
|
||||||
|
- if pkg-config --exists libnl-3.0; then :; \
|
||||||
|
- elif pkg-config --exists libnl-2.0; then :; \
|
||||||
|
- elif pkg-config --exists libnl-1; \
|
||||||
|
- then echo "-DFALLBACK_LIBNL1"; fi; fi)
|
||||||
|
-
|
||||||
|
-.PHONY = all clean install dist distclean rpm rpms
|
||||||
|
-STATIC_LIB = libipvs.a
|
||||||
|
-SHARED_LIB = libipvs.so
|
||||||
|
-
|
||||||
|
-all: $(STATIC_LIB) $(SHARED_LIB)
|
||||||
|
-
|
||||||
|
-$(STATIC_LIB): libipvs.o ip_vs_nl_policy.o
|
||||||
|
- ar rv $@ $^
|
||||||
|
-
|
||||||
|
-$(SHARED_LIB): libipvs.o ip_vs_nl_policy.o
|
||||||
|
- $(CC) -shared -Wl,-soname,$@ -o $@ $^
|
||||||
|
-
|
||||||
|
-%.o: %.c
|
||||||
|
- $(CC) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
|
||||||
|
-
|
||||||
|
-clean:
|
||||||
|
- rm -f *.[ao] *~ *.orig *.rej core *.so
|
||||||
|
-
|
||||||
|
-distclean: clean
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
@ -11,11 +11,10 @@ SRC_URI="https://kernel.org/pub/linux/utils/kernel/ipvsadm/ipvsadm-${PV}.tar.xz"
|
|||||||
|
|
||||||
LICENSE="GPL-2"
|
LICENSE="GPL-2"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="amd64 ~ia64 ~ppc ppc64 ~s390 sparc x86"
|
KEYWORDS="amd64 ~ia64 ~arm64 ~ppc ppc64 ~s390 sparc x86"
|
||||||
IUSE="static-libs"
|
IUSE="static-libs"
|
||||||
|
|
||||||
RDEPEND="
|
RDEPEND="
|
||||||
>=sys-libs/ncurses-5.2:=
|
|
||||||
dev-libs/libnl:=
|
dev-libs/libnl:=
|
||||||
>=dev-libs/popt-1.16
|
>=dev-libs/popt-1.16
|
||||||
"
|
"
|
||||||
@ -25,50 +24,29 @@ BDEPEND="
|
|||||||
virtual/pkgconfig
|
virtual/pkgconfig
|
||||||
"
|
"
|
||||||
|
|
||||||
PATCHES=( "${FILESDIR}/${PN}"-1.27-buildsystem.patch )
|
PATCHES=( "${FILESDIR}/${PN}"-1.31-buildsystem.patch )
|
||||||
|
|
||||||
pkg_pretend() {
|
src_configure() {
|
||||||
if kernel_is 2 4; then
|
cat <<EOF >config.mk
|
||||||
eerror "${P} supports only 2.6 series and later kernels, please try ${PN}-1.21 for 2.4 kernels"
|
HAVE_NL = 1
|
||||||
die "wrong kernel version"
|
AR = $(tc-getAR)
|
||||||
fi
|
CC = $(tc-getCC)
|
||||||
}
|
PKG_CONFIG = $(tc-getPKG_CONFIG)
|
||||||
|
LINK_WITH = shared
|
||||||
src_prepare() {
|
BUILD_LIBS = $(usex static-libs both shared)
|
||||||
default
|
LIB = /usr/$(get_libdir)
|
||||||
use static-libs && export STATIC=1
|
CFLAGS = ${CFLAGS}
|
||||||
}
|
LDFLAGS = ${LDFLAGS}
|
||||||
|
EOF
|
||||||
src_compile() {
|
|
||||||
local libnl_include
|
|
||||||
if has_version ">=dev-libs/libnl-3.0"; then
|
|
||||||
libnl_include=$($(tc-getPKG_CONFIG) --cflags libnl-3.0)
|
|
||||||
else
|
|
||||||
libnl_include=""
|
|
||||||
fi
|
|
||||||
emake -e \
|
|
||||||
INCLUDE="-I.. -I. ${libnl_include}" \
|
|
||||||
CC="$(tc-getCC)" \
|
|
||||||
HAVE_NL=1 \
|
|
||||||
STATIC="${STATIC}" \
|
|
||||||
POPT_LIB="$($(tc-getPKG_CONFIG) --libs popt)"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
src_install() {
|
src_install() {
|
||||||
into /
|
default
|
||||||
dosbin ipvsadm ipvsadm-save ipvsadm-restore
|
rm -rf "${D}/etc/rc.d/"
|
||||||
|
|
||||||
into /usr
|
|
||||||
doman ipvsadm.8 ipvsadm-save.8 ipvsadm-restore.8
|
|
||||||
|
|
||||||
newinitd "${FILESDIR}"/ipvsadm-init ipvsadm
|
|
||||||
keepdir /var/lib/ipvsadm
|
|
||||||
|
|
||||||
use static-libs && dolib.a libipvs/libipvs.a
|
|
||||||
dolib.so libipvs/libipvs.so
|
|
||||||
|
|
||||||
insinto /usr/include/ipvs
|
insinto /usr/include/ipvs
|
||||||
newins libipvs/libipvs.h ipvs.h
|
newins libipvs/libipvs.h ipvs.h
|
||||||
|
doins libipvs/ip_vs.h
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg_postinst() {
|
pkg_postinst() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user