9ee3a874d4
* Add a bond executor * Add mappings from ifupdown1/2 * Add a detailed man page * Remove legacy compatiblity glue for setups with 'requires' only The current implementation has to work around the fact that member interfaces will be already up then the bond is created. This is simply done by downing them, adding them to the bundle and upping them again. This can possible be done in a nicer way after revisiting the ordering of plugin execution (#12). Closes #91 Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
179 lines
4.4 KiB
Makefile
179 lines
4.4 KiB
Makefile
LAYOUT ?= linux
|
|
SCDOC := scdoc
|
|
LIBBSD_CFLAGS =
|
|
LIBBSD_LIBS =
|
|
|
|
PACKAGE_NAME := ifupdown-ng
|
|
PACKAGE_VERSION := 0.9.0
|
|
PACKAGE_BUGREPORT := https://github.com/ifupdown-ng/ifupdown-ng/issues/new
|
|
|
|
|
|
INTERFACES_FILE := /etc/network/interfaces
|
|
STATE_FILE := /run/ifstate
|
|
CONFIG_FILE := /etc/network/ifupdown-ng.conf
|
|
EXECUTOR_PATH := /usr/libexec/ifupdown-ng
|
|
|
|
CFLAGS ?= -ggdb3 -Os
|
|
CFLAGS += -Wall -Wextra
|
|
CFLAGS += ${LIBBSD_CFLAGS}
|
|
CPPFLAGS = -I.
|
|
CPPFLAGS += -DINTERFACES_FILE=\"${INTERFACES_FILE}\"
|
|
CPPFLAGS += -DSTATE_FILE=\"${STATE_FILE}\"
|
|
CPPFLAGS += -DCONFIG_FILE=\"${CONFIG_FILE}\"
|
|
CPPFLAGS += -DPACKAGE_NAME=\"${PACKAGE_NAME}\"
|
|
CPPFLAGS += -DPACKAGE_VERSION=\"${PACKAGE_VERSION}\"
|
|
CPPFLAGS += -DPACKAGE_BUGREPORT=\"${PACKAGE_BUGREPORT}\"
|
|
CPPFLAGS += -DEXECUTOR_PATH=\"${EXECUTOR_PATH}\"
|
|
|
|
|
|
LIBIFUPDOWN_SRC = \
|
|
libifupdown/list.c \
|
|
libifupdown/dict.c \
|
|
libifupdown/interface.c \
|
|
libifupdown/interface-file.c \
|
|
libifupdown/fgetline.c \
|
|
libifupdown/version.c \
|
|
libifupdown/state.c \
|
|
libifupdown/environment.c \
|
|
libifupdown/execute.c \
|
|
libifupdown/lifecycle.c \
|
|
libifupdown/config-parser.c \
|
|
libifupdown/config-file.c
|
|
|
|
LIBIFUPDOWN_OBJ = ${LIBIFUPDOWN_SRC:.c=.o}
|
|
LIBIFUPDOWN_LIB = libifupdown.a
|
|
|
|
MULTICALL_SRC = \
|
|
cmd/multicall.c \
|
|
cmd/multicall-options.c \
|
|
cmd/multicall-exec-options.c \
|
|
cmd/multicall-match-options.c
|
|
MULTICALL_OBJ = ${MULTICALL_SRC:.c=.o}
|
|
MULTICALL = ifupdown
|
|
|
|
# enable ifup/ifdown applets (+16 KB)
|
|
CONFIG_IFUPDOWN ?= Y
|
|
IFUPDOWN_SRC = cmd/ifupdown.c
|
|
MULTICALL_${CONFIG_IFUPDOWN}_OBJ += ${IFUPDOWN_SRC:.c=.o}
|
|
CMDS_${CONFIG_IFUPDOWN} += ifup ifdown
|
|
CPPFLAGS_${CONFIG_IFUPDOWN} += -DCONFIG_IFUPDOWN
|
|
|
|
# enable ifquery applet (+4 KB)
|
|
# [+20 KB without ifup/ifdown]
|
|
CONFIG_IFQUERY ?= Y
|
|
IFQUERY_SRC = cmd/ifquery.c
|
|
MULTICALL_${CONFIG_IFQUERY}_OBJ += ${IFQUERY_SRC:.c=.o}
|
|
CMDS_${CONFIG_IFQUERY} += ifquery
|
|
CPPFLAGS_${CONFIG_IFQUERY} += -DCONFIG_IFQUERY
|
|
|
|
# enable ifctrstat applet (+1 KB)
|
|
CONFIG_IFCTRSTAT ?= Y
|
|
IFCTRSTAT_SRC = cmd/ifctrstat.c cmd/ifctrstat-${LAYOUT}.c
|
|
MULTICALL_${CONFIG_IFCTRSTAT}_OBJ += ${IFCTRSTAT_SRC:.c=.o}
|
|
CMDS_${CONFIG_IFCTRSTAT} += ifctrstat
|
|
CPPFLAGS_${CONFIG_IFCTRSTAT} += -DCONFIG_IFCTRSTAT
|
|
|
|
MULTICALL_OBJ += ${MULTICALL_Y_OBJ}
|
|
CMDS += ${CMDS_Y}
|
|
CPPFLAGS += ${CPPFLAGS_Y}
|
|
|
|
EXECUTOR_SCRIPTS_CORE ?= \
|
|
dhcp \
|
|
ipv6-ra \
|
|
static \
|
|
link \
|
|
ppp
|
|
|
|
EXECUTOR_SCRIPTS_OPT ?= \
|
|
bridge \
|
|
vrf \
|
|
tunnel \
|
|
gre \
|
|
wireguard \
|
|
ethtool \
|
|
batman
|
|
|
|
EXECUTOR_SCRIPTS ?= ${EXECUTOR_SCRIPTS_CORE} ${EXECUTOR_SCRIPTS_OPT}
|
|
|
|
EXECUTOR_SCRIPTS_STUB ?=
|
|
|
|
TARGET_LIBS = ${LIBIFUPDOWN_LIB}
|
|
LIBS += ${TARGET_LIBS} ${LIBBSD_LIBS}
|
|
|
|
all: ${MULTICALL} ${CMDS}
|
|
|
|
${CMDS}: ${MULTICALL}
|
|
ln -sf ifupdown $@
|
|
|
|
${MULTICALL}: ${TARGET_LIBS} ${MULTICALL_OBJ}
|
|
${CC} -o $@ ${MULTICALL_OBJ} ${LIBS}
|
|
|
|
${LIBIFUPDOWN_LIB}: ${LIBIFUPDOWN_OBJ}
|
|
${AR} -rcs $@ ${LIBIFUPDOWN_OBJ}
|
|
|
|
clean:
|
|
rm -f ${LIBIFUPDOWN_OBJ} ${MULTICALL_OBJ}
|
|
rm -f ${LIBIFUPDOWN_LIB}
|
|
rm -f ${CMDS} ${MULTICALL}
|
|
rm -f ${MANPAGES}
|
|
|
|
check: ${LIBIFUPDOWN_LIB} ${CMDS}
|
|
kyua test || (kyua report --verbose && exit 1)
|
|
|
|
install: all
|
|
install -D -m755 ${MULTICALL} ${DESTDIR}/sbin/${MULTICALL}
|
|
for i in ${CMDS}; do \
|
|
ln -s /sbin/${MULTICALL} ${DESTDIR}/sbin/$$i; \
|
|
done
|
|
for i in ${EXECUTOR_SCRIPTS}; do \
|
|
install -D -m755 executor-scripts/${LAYOUT}/$$i ${DESTDIR}${EXECUTOR_PATH}/$$i; \
|
|
done
|
|
for i in ${EXECUTOR_SCRIPTS_STUB}; do \
|
|
install -D -m755 executor-scripts/stub/$$i ${DESTDIR}${EXECUTOR_PATH}/$$i; \
|
|
done
|
|
install -D -m644 dist/ifupdown-ng.conf.example ${DESTDIR}${CONFIG_FILE}.example
|
|
|
|
.scd.1 .scd.2 .scd.3 .scd.4 .scd.5 .scd.6 .scd.7 .scd.8:
|
|
${SCDOC} < $< > $@
|
|
|
|
MANPAGES_8 = \
|
|
doc/ifquery.8 \
|
|
doc/ifup.8 \
|
|
doc/ifdown.8 \
|
|
doc/ifctrstat.8
|
|
|
|
MANPAGES_5 = \
|
|
doc/interfaces.5 \
|
|
doc/interfaces-bond.5
|
|
|
|
MANPAGES_7 = \
|
|
doc/ifupdown-executor.7
|
|
|
|
MANPAGES = ${MANPAGES_5} ${MANPAGES_7} ${MANPAGES_8}
|
|
|
|
docs: ${MANPAGES}
|
|
|
|
install_docs: docs
|
|
for i in ${MANPAGES_5}; do \
|
|
target=$$(basename $$i); \
|
|
install -D -m644 $$i ${DESTDIR}/usr/share/man/man5/$$target; \
|
|
done
|
|
for i in ${MANPAGES_7}; do \
|
|
target=$$(basename $$i); \
|
|
install -D -m644 $$i ${DESTDIR}/usr/share/man/man7/$$target; \
|
|
done
|
|
for i in ${MANPAGES_8}; do \
|
|
target=$$(basename $$i); \
|
|
install -D -m644 $$i ${DESTDIR}/usr/share/man/man8/$$target; \
|
|
done
|
|
|
|
.SUFFIXES: .scd .1 .2 .3 .4 .5 .6 .7 .8
|
|
|
|
DIST_NAME = ${PACKAGE_NAME}-${PACKAGE_VERSION}
|
|
DIST_TARBALL = ${DIST_NAME}.tar.xz
|
|
|
|
distcheck: check dist
|
|
dist: ${DIST_TARBALL}
|
|
${DIST_TARBALL}:
|
|
git archive --format=tar --prefix=${DIST_NAME}/ -o ${DIST_NAME}.tar ${DIST_NAME}
|
|
xz ${DIST_NAME}.tar
|