* 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
 |