summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--.gitmodules3
-rw-r--r--example/.config1
-rw-r--r--example/Kconfig8
-rw-r--r--example/Makefile7
-rw-r--r--example/config.h1
-rw-r--r--example/configs/8_defconfig1
-rw-r--r--example/libfib/Makefile2
-rw-r--r--example/libfib/fib.obin0 -> 640 bytes
-rw-r--r--example/libfib/libfib.abin0 -> 824 bytes
-rwxr-xr-xexample/libfib/libfib.so.1.1bin0 -> 16784 bytes
-rw-r--r--example/test/Makefile3
-rwxr-xr-xexample/test/mainbin0 -> 33464 bytes
-rw-r--r--example/test/main.c3
-rw-r--r--example/test/main.obin0 -> 800 bytes
l---------example/tools1
m---------example/tools/Kconfiglib0
l---------example/tools/mk1
-rw-r--r--mk/mcd.Kconfig.mk21
19 files changed, 51 insertions, 6 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9872f40
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+example/config.h
+example/.config*
+example/libfib/fib.o
+example/libfib/libfib.*
+example/test/main.o
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..8c76d59
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "example/tools/Kconfiglib"]
+ path = example/tools/Kconfiglib
+ url = https://codeberg.org/JacobMcDonnell/Kconfiglib.git
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
--- /dev/null
+++ b/example/libfib/fib.o
Binary files differ
diff --git a/example/libfib/libfib.a b/example/libfib/libfib.a
new file mode 100644
index 0000000..6c7c483
--- /dev/null
+++ b/example/libfib/libfib.a
Binary files differ
diff --git a/example/libfib/libfib.so.1.1 b/example/libfib/libfib.so.1.1
new file mode 100755
index 0000000..2ed114c
--- /dev/null
+++ b/example/libfib/libfib.so.1.1
Binary files 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
--- /dev/null
+++ b/example/test/main
Binary files 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 <stdio.h>
#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
--- /dev/null
+++ b/example/test/main.o
Binary files 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
+Subproject a74dfcfaf14ea8a22866df725e757d7c901255d
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
diff --git a/mk/mcd.Kconfig.mk b/mk/mcd.Kconfig.mk
new file mode 100644
index 0000000..7861fb4
--- /dev/null
+++ b/mk/mcd.Kconfig.mk
@@ -0,0 +1,21 @@
+ifeq ($(KCONFIGLIB_DIR),)
+$(warning "KCONFIGLIB_DIR needs to be defined")
+endif
+
+all: $(GENERATED_HEADER)
+
+menuconfig:
+ $(KCONFIGLIB_DIR)/menuconfig.py
+
+savedefconfig:
+ $(KCONFIGLIB_DIR)/savedefconfig.py
+
+%_defconfig: configs/%_defconfig
+ $(KCONFIGLIB_DIR)/defconfig.py $<
+
+$(GENERATED_HEADER): $(wildcard .config)
+ $(KCONFIGLIB_DIR)/genconfig.py --header-path $@
+
+-include .config
+.PHONY: all menuconfig savedefconfig
+