From 2995e97cd489abeeedf90ac60b4b98499661ce7e Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Sat, 7 Mar 2026 15:08:04 -0500 Subject: feat: Kconfig support added Initial support for Kconfiglib has been added. This includes menuconfig, savedefconfig, defconfig, and config.h generation. --- example/.config | 1 + example/Kconfig | 8 ++++++++ example/Makefile | 7 +++++-- example/config.h | 1 + example/configs/8_defconfig | 1 + example/libfib/Makefile | 2 +- example/libfib/fib.o | Bin 0 -> 640 bytes example/libfib/libfib.a | Bin 0 -> 824 bytes example/libfib/libfib.so.1.1 | Bin 0 -> 16784 bytes example/test/Makefile | 3 ++- example/test/main | Bin 0 -> 33464 bytes example/test/main.c | 3 ++- example/test/main.o | Bin 0 -> 800 bytes example/tools | 1 - example/tools/Kconfiglib | 1 + example/tools/mk | 1 + 16 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 example/.config create mode 100644 example/Kconfig create mode 100644 example/config.h create mode 100644 example/configs/8_defconfig create mode 100644 example/libfib/fib.o create mode 100644 example/libfib/libfib.a create mode 100755 example/libfib/libfib.so.1.1 create mode 100755 example/test/main create mode 100644 example/test/main.o delete mode 120000 example/tools create mode 160000 example/tools/Kconfiglib create mode 120000 example/tools/mk (limited to 'example') diff --git a/example/.config b/example/.config new file mode 100644 index 0000000..5140cd9 --- /dev/null +++ b/example/.config @@ -0,0 +1 @@ +CONFIG_FIB_NUMBER=8 diff --git a/example/Kconfig b/example/Kconfig new file mode 100644 index 0000000..11c2de0 --- /dev/null +++ b/example/Kconfig @@ -0,0 +1,8 @@ +mainmenu "Example Program Configuration" + +config FIB_NUMBER + int "Fibonacci Number" + default 9 + help + Which Fibonacci number you would like. + diff --git a/example/Makefile b/example/Makefile index b0e81b3..3b69ed1 100644 --- a/example/Makefile +++ b/example/Makefile @@ -3,7 +3,10 @@ # # SPDX-License-Identifier: BSD-2-Clause # -SUBDIRS = libfib test +SUBDIRS = libfib test +KCONFIGLIB_DIR = tools/Kconfiglib +GENERATED_HEADER = config.h -include tools/mcd.subdir.mk +include tools/mk/mcd.subdir.mk +include tools/mk/mcd.Kconfig.mk diff --git a/example/config.h b/example/config.h new file mode 100644 index 0000000..3efc17a --- /dev/null +++ b/example/config.h @@ -0,0 +1 @@ +#define CONFIG_FIB_NUMBER 8 diff --git a/example/configs/8_defconfig b/example/configs/8_defconfig new file mode 100644 index 0000000..5140cd9 --- /dev/null +++ b/example/configs/8_defconfig @@ -0,0 +1 @@ +CONFIG_FIB_NUMBER=8 diff --git a/example/libfib/Makefile b/example/libfib/Makefile index 4df5255..fae976f 100644 --- a/example/libfib/Makefile +++ b/example/libfib/Makefile @@ -13,5 +13,5 @@ CFLAGS = -Wall \ -std=c17 SRCS = fib.c -include ../tools/mcd.lib.mk +include ../tools/mk/mcd.lib.mk diff --git a/example/libfib/fib.o b/example/libfib/fib.o new file mode 100644 index 0000000..9380b6f Binary files /dev/null and b/example/libfib/fib.o differ diff --git a/example/libfib/libfib.a b/example/libfib/libfib.a new file mode 100644 index 0000000..6c7c483 Binary files /dev/null and b/example/libfib/libfib.a differ diff --git a/example/libfib/libfib.so.1.1 b/example/libfib/libfib.so.1.1 new file mode 100755 index 0000000..2ed114c Binary files /dev/null and b/example/libfib/libfib.so.1.1 differ diff --git a/example/test/Makefile b/example/test/Makefile index 041722b..7bdeca0 100644 --- a/example/test/Makefile +++ b/example/test/Makefile @@ -10,9 +10,10 @@ CFLAGS = -Wall \ -Wextra \ -Wpedantic \ -I../libfib \ + -I.. \ -std=c17 LDFLAGS = -L../libfib \ -lfib -include ../tools/mcd.prog.mk +include ../tools/mk/mcd.prog.mk diff --git a/example/test/main b/example/test/main new file mode 100755 index 0000000..50681f9 Binary files /dev/null and b/example/test/main differ diff --git a/example/test/main.c b/example/test/main.c index b5a75b1..92e3b29 100644 --- a/example/test/main.c +++ b/example/test/main.c @@ -5,9 +5,10 @@ // #include #include "fib.h" +#include "config.h" int main(void) { - printf("fib(9) = %llu\n", fib(9)); + printf("fib(%u) = %llu\n", CONFIG_FIB_NUMBER, fib(CONFIG_FIB_NUMBER)); return 0; } diff --git a/example/test/main.o b/example/test/main.o new file mode 100644 index 0000000..62fd238 Binary files /dev/null and b/example/test/main.o differ diff --git a/example/tools b/example/tools deleted file mode 120000 index add5f73..0000000 --- a/example/tools +++ /dev/null @@ -1 +0,0 @@ -../mk \ No newline at end of file diff --git a/example/tools/Kconfiglib b/example/tools/Kconfiglib new file mode 160000 index 0000000..a74dfcf --- /dev/null +++ b/example/tools/Kconfiglib @@ -0,0 +1 @@ +Subproject commit a74dfcfaf14ea8a22866df725e757d7c901255dd diff --git a/example/tools/mk b/example/tools/mk new file mode 120000 index 0000000..fdcfb78 --- /dev/null +++ b/example/tools/mk @@ -0,0 +1 @@ +../../mk \ No newline at end of file -- cgit v1.2.3