From dece9315ea3b5ab6173a4d2d74c7675ee46b22e2 Mon Sep 17 00:00:00 2001 From: Konrad Dybcio Date: Tue, 9 Apr 2024 01:10:04 +0200 Subject: [PATCH] treewide: meson Signed-off-by: Konrad Dybcio --- Makefile | 150 ------------------------------------- {lib => include}/libqrtr.h | 0 {lib => include}/logging.h | 0 include/meson.build | 3 + {src => include}/ns.h | 0 lib/meson.build | 7 ++ meson.build | 33 ++++++++ meson_options.txt | 4 + qrtr-ns.service.in | 2 +- src/lookup.c | 2 +- src/meson.build | 28 +++++++ 11 files changed, 77 insertions(+), 152 deletions(-) delete mode 100644 Makefile rename {lib => include}/libqrtr.h (100%) rename {lib => include}/logging.h (100%) create mode 100644 include/meson.build rename {src => include}/ns.h (100%) create mode 100644 lib/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt create mode 100644 src/meson.build diff --git a/Makefile b/Makefile deleted file mode 100644 index 6d0e8c6..0000000 --- a/Makefile +++ /dev/null @@ -1,150 +0,0 @@ -proj := qrtr -proj-major := 1 -proj-minor := 0 -proj-version := $(proj-major).$(proj-minor) - -CFLAGS += -Wall -g -prefix = /usr/local - -bindir := $(prefix)/bin -libdir := $(prefix)/lib -includedir := $(prefix)/include -servicedir := $(prefix)/lib/systemd/system - -ifneq ($(CROSS_COMPILE),) -CC := $(CROSS_COMPILE)gcc -endif -SFLAGS := -I$(shell $(CC) -print-file-name=include) -Wno-non-pointer-null - -$(proj)-cfg-srcs := \ - lib/logging.c \ - src/addr.c \ - src/cfg.c \ - -$(proj)-cfg-cflags := -Ilib - -$(proj)-ns-srcs := \ - lib/logging.c \ - src/addr.c \ - src/ns.c \ - src/map.c \ - src/hash.c \ - src/waiter.c \ - src/util.c \ - -$(proj)-ns-cflags := -Ilib - -$(proj)-lookup-srcs := \ - lib/logging.c \ - src/lookup.c \ - src/util.c \ - -$(proj)-lookup-cflags := -Ilib - -lib$(proj).so-srcs := \ - lib/logging.c \ - lib/qrtr.c \ - lib/qmi.c - -lib$(proj).so-cflags := -fPIC -Isrc - -targets := $(proj)-ns $(proj)-cfg $(proj)-lookup lib$(proj).so - -out := out -src_to_obj = $(patsubst %.c,$(out)/obj/%.o,$(1)) -src_to_dep = $(patsubst %.c,$(out)/dep/%.d,$(1)) - -all-srcs := -all-objs := -all-deps := -all-clean := $(out) -all-install := - -all: $(targets) - -$(out)/obj/%.o: %.c -ifneq ($C,) - @echo "CHECK $<" - @sparse $< $(patsubst -iquote=%,-I%,$(CFLAGS)) $(SFLAGS) -endif - @echo "CC $<" - @$(CC) -MM -MF $(call src_to_dep,$<) -MP -MT "$@ $(call src_to_dep,$<)" $(CFLAGS) $(_CFLAGS) $< - @$(CC) -o $@ -c $< $(CFLAGS) $(_CFLAGS) - -define add-inc-target -$(DESTDIR)$(includedir)/$2: $1/$2 - @echo "INSTALL $$<" - @install -D -m 755 $$< $$@ - -all-install += $(DESTDIR)$(includedir)/$2 -endef - -define add-target-deps -all-srcs += $($1-srcs) -all-objs += $(call src_to_obj,$($1-srcs)) -all-deps += $(call src_to_dep,$($1-srcs)) -all-clean += $1 -$(call src_to_obj,$($1-srcs)): _CFLAGS := $($1-cflags) -endef - -define add-bin-target - -$(call add-target-deps,$1) - -$1: $(call src_to_obj,$($1-srcs)) - @echo "LD $$@" - $$(CC) -o $$@ $$(filter %.o,$$^) $(LDFLAGS) - -$(DESTDIR)$(bindir)/$1: $1 - @echo "INSTALL $$<" - @install -D -m 755 $$< $$@ - -all-install += $(DESTDIR)$(bindir)/$1 -endef - -define add-lib-target - -$(call add-target-deps,$1) - -$1: $(call src_to_obj,$($1-srcs)) - @echo "LD $$@" - $$(CC) -o $$@ $$(filter %.o,$$^) $(LDFLAGS) -shared -Wl,-soname,$1.$(proj-major) - -$(DESTDIR)$(libdir)/$1.$(proj-version): $1 - @echo "INSTALL $$<" - @install -D -m 755 $$< $$@ - @ln -sf $1.$(proj-version) $(DESTDIR)$(libdir)/$1.$(proj-major) - @ln -sf $1.$(proj-major) $(DESTDIR)$(libdir)/$1 - -all-install += $(DESTDIR)$(libdir)/$1.$(proj-version) -endef - -define add-systemd-service-target -$1: $1.in - sed 's+QRTR_NS_PATH+$(bindir)+g' $$< > $$@ - -$(DESTDIR)$(servicedir)/$1: $1 - @echo "INSTALL $$<" - @install -D -m 644 $$< $$@ - -all-clean += $1 -all-install += $(DESTDIR)$(servicedir)/$1 -endef - -$(foreach v,$(filter-out %.so,$(targets)),$(eval $(call add-bin-target,$v))) -$(foreach v,$(filter %.so,$(targets)),$(eval $(call add-lib-target,$v))) -$(eval $(call add-inc-target,lib,libqrtr.h)) -$(eval $(call add-systemd-service-target,qrtr-ns.service)) - -install: $(all-install) - -clean: - @echo CLEAN - @$(RM) -r $(all-clean) - -$(call src_to_obj,$(all-srcs)): Makefile - -ifneq ("$(MAKECMDGOALS)","clean") -cmd-goal-1 := $(shell mkdir -p $(sort $(dir $(all-objs) $(all-deps)))) --include $(all-deps) -endif diff --git a/lib/libqrtr.h b/include/libqrtr.h similarity index 100% rename from lib/libqrtr.h rename to include/libqrtr.h diff --git a/lib/logging.h b/include/logging.h similarity index 100% rename from lib/logging.h rename to include/logging.h diff --git a/include/meson.build b/include/meson.build new file mode 100644 index 0000000..1ee2c9b --- /dev/null +++ b/include/meson.build @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: BSD-3-Clause + +install_headers('libqrtr.h') diff --git a/src/ns.h b/include/ns.h similarity index 100% rename from src/ns.h rename to include/ns.h diff --git a/lib/meson.build b/lib/meson.build new file mode 100644 index 0000000..5818764 --- /dev/null +++ b/lib/meson.build @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: BSD-3-Clause + +libqrtr_srcs = ['logging.c', 'qmi.c', 'qrtr.c'] +libqrtr = shared_library('qrtr', + libqrtr_srcs, + include_directories : inc, + install: true) diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..819eabe --- /dev/null +++ b/meson.build @@ -0,0 +1,33 @@ +# SPDX-License-Identifier: BSD-3-Clause + +project('qrtr', + 'c', + license : [ 'BSD-3-Clause'], + meson_version : '>= 0.64.0', # for feature user options + default_options : [ + # 'warning_level=2', # sets -Wextra + 'buildtype=release', + ]) + +prefix = get_option('prefix') +systemd = dependency('systemd') + +systemd_system_unit_dir = get_option('systemd-unit-prefix') +if systemd_system_unit_dir == '' + systemd_system_unit_dir = systemd.get_variable( + pkgconfig : 'systemdsystemunitdir', + pkgconfig_define: ['prefix', prefix]) +endif + +inc = include_directories('include') +subdir('lib') +subdir('include') +subdir('src') + +systemd_unit_conf = configuration_data() +systemd_unit_conf.set('prefix', prefix) +configure_file( + input : 'qrtr-ns.service.in', + output : 'qrtr-ns.service', + configuration : systemd_unit_conf, + install_dir : systemd_system_unit_dir) diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..3835395 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,4 @@ +option('systemd-unit-prefix', + type: 'string', + description: 'Directory for systemd system unit files' +) diff --git a/qrtr-ns.service.in b/qrtr-ns.service.in index eaa791a..c830c63 100644 --- a/qrtr-ns.service.in +++ b/qrtr-ns.service.in @@ -2,7 +2,7 @@ Description=QIPCRTR Name Service [Service] -ExecStart=QRTR_NS_PATH/qrtr-ns -f 1 +ExecStart=@prefix@/bin/qrtr-ns -f 1 Restart=always [Install] diff --git a/src/lookup.c b/src/lookup.c index a18ad35..d5ddb0f 100644 --- a/src/lookup.c +++ b/src/lookup.c @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include @@ -10,7 +11,6 @@ #include #include -#include "libqrtr.h" #include "logging.h" #include "ns.h" #include "util.h" diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..ee25203 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: BSD-3-Clause + +cfg_srcs = ['addr.c', + 'cfg.c', + 'hash.c'] +executable('qrtr-cfg', + cfg_srcs, + link_with : libqrtr, + include_directories : inc, + install : true) + +ns_srcs = ['addr.c', + 'hash.c', + 'map.c', + 'ns.c', + 'util.c', + 'waiter.c'] +executable('qrtr-ns', + ns_srcs, + link_with : libqrtr, + include_directories : inc, + install : true) + +executable('qrtr-lookup', + 'lookup.c', + link_with : libqrtr, + include_directories : inc, + install : true) \ No newline at end of file