From a2b8b35070f0900a9e41f77b2de4784c7f9e70d5 Mon Sep 17 00:00:00 2001 From: Maxim Devaev Date: Sat, 8 Feb 2025 15:38:11 +0200 Subject: [PATCH] improved build system --- Makefile | 21 ++++++++++++++++----- janus/Makefile | 6 +----- lib.mk | 3 --- python/Makefile | 2 -- python/setup.py | 13 ++----------- src/Makefile | 36 ++++++++++++++++-------------------- src/ustreamer/options.c | 16 ++++++++-------- 7 files changed, 43 insertions(+), 54 deletions(-) delete mode 100644 lib.mk diff --git a/Makefile b/Makefile index 5c26903..fccbd18 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,3 @@ -include lib.mk -include config.mk @@ -24,6 +23,18 @@ WITH_PTHREAD_NP ?= 1 WITH_SETPROCTITLE ?= 1 WITH_PDEATHSIG ?= 1 +define optbool +$(filter $(shell echo $(1) | tr A-Z a-z), yes on 1) +endef +MK_WITH_PYTHON = $(call optbool,$(WITH_PYTHON)) +MK_WITH_JANUS = $(call optbool,$(WITH_JANUS)) +MK_WITH_V4P = $(call optbool,$(WITH_V4P)) +MK_WITH_GPIO = $(call optbool,$(WITH_GPIO)) +MK_WITH_SYSTEMD = $(call optbool,$(WITH_SYSTEMD)) +MK_WITH_PTHREAD_NP = $(call optbool,$(WITH_PTHREAD_NP)) +MK_WITH_SETPROCTITLE = $(call optbool,$(WITH_SETPROCTITLE)) +MK_WITH_PDEATHSIG = $(call optbool,$(WITH_PDEATHSIG)) + export _LINTERS_IMAGE ?= ustreamer-linters @@ -44,10 +55,10 @@ endif # ===== all: + $(MAKE) apps -ifneq ($(call optbool,$(WITH_PYTHON)),) +ifneq ($(MK_WITH_PYTHON),) + $(MAKE) python endif -ifneq ($(call optbool,$(WITH_JANUS)),) +ifneq ($(MK_WITH_JANUS),) + $(MAKE) janus endif @@ -71,10 +82,10 @@ janus: install: all $(MAKE) -C src install -ifneq ($(call optbool,$(WITH_PYTHON)),) +ifneq ($(MK_WITH_PYTHON),) $(MAKE) -C python install endif -ifneq ($(call optbool,$(WITH_JANUS)),) +ifneq ($(MK_WITH_JANUS),) $(MAKE) -C janus install endif mkdir -p $(R_DESTDIR)$(MANPREFIX)/man1 diff --git a/janus/Makefile b/janus/Makefile index a73be55..921ae3b 100644 --- a/janus/Makefile +++ b/janus/Makefile @@ -1,7 +1,3 @@ -include ../lib.mk - - -# ===== R_DESTDIR ?= PREFIX ?= /usr/local @@ -22,7 +18,7 @@ _SRCS = $(shell ls src/uslibs/*.c src/*.c) _BUILD = build -ifneq ($(call optbool,$(WITH_PTHREAD_NP)),) +ifneq ($(MK_WITH_PTHREAD_NP),) override _CFLAGS += -DWITH_PTHREAD_NP endif diff --git a/lib.mk b/lib.mk deleted file mode 100644 index eb6cd86..0000000 --- a/lib.mk +++ /dev/null @@ -1,3 +0,0 @@ -define optbool -$(filter $(shell echo $(1) | tr A-Z a-z), yes on 1) -endef diff --git a/python/Makefile b/python/Makefile index 43631b9..3fad744 100644 --- a/python/Makefile +++ b/python/Makefile @@ -1,5 +1,3 @@ --include ../config.mk - R_DESTDIR ?= PREFIX ?= /usr/local diff --git a/python/setup.py b/python/setup.py index 16b4143..494ebcc 100644 --- a/python/setup.py +++ b/python/setup.py @@ -16,20 +16,12 @@ def _find_sources() -> list[str]: def _find_flags() -> dict[str, bool]: return { - key: bool(int(value)) + key[3:]: (value.strip().lower() in ["true", "on", "1"]) for (key, value) in sorted(os.environ.items()) - if key.startswith("WITH_") + if key.startswith("MK_WITH_") } -def _make_d_flags(flags: dict[str, bool]) -> list[str]: - return [ - f"-D{key}" - for (key, value) in flags.items() - if value - ] - - def _make_d_features(flags: dict[str, bool]) -> str: features = " ".join([ f"{key}={int(value)}" @@ -54,7 +46,6 @@ def main() -> None: extra_compile_args=[ "-std=c17", "-D_GNU_SOURCE", _make_d_features(flags), - *_make_d_flags(flags), ], undef_macros=["NDEBUG"], sources=_find_sources(), diff --git a/src/Makefile b/src/Makefile index e884244..da0f259 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,7 +1,3 @@ -include ../lib.mk - - -# ===== R_DESTDIR ?= PREFIX ?= /usr/local @@ -50,45 +46,45 @@ _OBJS = $(_USTR_SRCS:%.c=$(_BUILD)/%.o) $(_DUMP_SRCS:%.c=$(_BUILD)/%.o) # ===== -ifneq ($(call optbool,$(WITH_PYTHON)),) -override _CFLAGS += -DWITH_PYTHON +ifneq ($(MK_WITH_PYTHON),) +override _CFLAGS += -DMK_WITH_PYTHON endif -ifneq ($(call optbool,$(WITH_JANUS)),) -override _CFLAGS += -DWITH_JANUS +ifneq ($(MK_WITH_JANUS),) +override _CFLAGS += -DMK_WITH_JANUS endif -ifneq ($(call optbool,$(WITH_GPIO)),) -override _CFLAGS += -DWITH_GPIO $(shell $(PKG_CONFIG) --atleast-version=2 libgpiod 2> /dev/null && echo -DHAVE_GPIOD2) +ifneq ($(MK_WITH_GPIO),) +override _CFLAGS += -DMK_WITH_GPIO -DWITH_GPIO $(shell $(PKG_CONFIG) --atleast-version=2 libgpiod 2> /dev/null && echo -DHAVE_GPIOD2) override _USTR_LDFLAGS += -lgpiod override _USTR_SRCS += $(shell ls ustreamer/gpio/*.c) endif -ifneq ($(call optbool,$(WITH_SYSTEMD)),) -override _CFLAGS += -DWITH_SYSTEMD +ifneq ($(MK_WITH_SYSTEMD),) +override _CFLAGS += -DMK_WITH_SYSTEMD -DWITH_SYSTEMD override _USTR_LDFLAGS += -lsystemd override _USTR_SRCS += $(shell ls ustreamer/http/systemd/*.c) endif -ifneq ($(call optbool,$(WITH_PTHREAD_NP)),) -override _CFLAGS += -DWITH_PTHREAD_NP +ifneq ($(MK_WITH_PTHREAD_NP),) +override _CFLAGS += -DMK_WITH_PTHREAD_NP -DWITH_PTHREAD_NP endif -ifneq ($(call optbool,$(WITH_SETPROCTITLE)),) -override _CFLAGS += -DWITH_SETPROCTITLE +ifneq ($(MK_WITH_SETPROCTITLE),) +override _CFLAGS += -DMK_WITH_SETPROCTITLE -DWITH_SETPROCTITLE ifeq ($(shell uname -s | tr A-Z a-z),linux) override _USTR_LDFLAGS += -lbsd endif endif -ifneq ($(call optbool,$(WITH_PDEATHSIG)),) -override _CFLAGS += -DWITH_PDEATHSIG +ifneq ($(MK_WITH_PDEATHSIG),) +override _CFLAGS += -DMK_WITH_PDEATHSIG -DWITH_PDEATHSIG endif -ifneq ($(call optbool,$(WITH_V4P)),) +ifneq ($(MK_WITH_V4P),) override _TARGETS += $(_V4P) override _OBJS += $(_V4P_SRCS:%.c=$(_BUILD)/%.o) -override _CFLAGS += -DWITH_V4P $(shell $(PKG_CONFIG) --cflags libdrm) +override _CFLAGS += -DMK_WITH_V4P -DWITH_V4P $(shell $(PKG_CONFIG) --cflags libdrm) override _V4P_LDFLAGS += $(shell $(PKG_CONFIG) --libs libdrm) override _USTR_SRCS += $(shell ls libs/drm/*.c) override _USTR_LDFLAGS += $(shell $(PKG_CONFIG) --libs libdrm) diff --git a/src/ustreamer/options.c b/src/ustreamer/options.c index 05797c4..ffa0bd9 100644 --- a/src/ustreamer/options.c +++ b/src/ustreamer/options.c @@ -581,49 +581,49 @@ static int _check_instance_id(const char *str) { } static void _features(void) { -# ifdef WITH_PYTHON +# ifdef MK_WITH_PYTHON puts("+ WITH_PYTHON"); # else puts("- WITH_PYTHON"); # endif -# ifdef WITH_JANUS +# ifdef MK_WITH_JANUS puts("+ WITH_JANUS"); # else puts("- WITH_JANUS"); # endif -# ifdef WITH_V4P +# ifdef MK_WITH_V4P puts("+ WITH_V4P"); # else puts("- WITH_V4P"); # endif -# ifdef WITH_GPIO +# ifdef MK_WITH_GPIO puts("+ WITH_GPIO"); # else puts("- WITH_GPIO"); # endif -# ifdef WITH_SYSTEMD +# ifdef MK_WITH_SYSTEMD puts("+ WITH_SYSTEMD"); # else puts("- WITH_SYSTEMD"); # endif -# ifdef WITH_PTHREAD_NP +# ifdef MK_WITH_PTHREAD_NP puts("+ WITH_PTHREAD_NP"); # else puts("- WITH_PTHREAD_NP"); # endif -# ifdef WITH_SETPROCTITLE +# ifdef MK_WITH_SETPROCTITLE puts("+ WITH_SETPROCTITLE"); # else puts("- WITH_SETPROCTITLE"); # endif -# ifdef WITH_PDEATHSIG +# ifdef MK_WITH_PDEATHSIG puts("+ WITH_PDEATHSIG"); # else puts("- WITH_PDEATHSIG");