From 317c70674d1d889b98b3b127099ab876f55f1f2d Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Sat, 7 Mar 2026 14:44:57 -0500 Subject: feat: Subdir template added A template for calling Makefiles in subdirectories has been added. This allows a top directory makefile to list subdirectories and call rules like all, clean, install, & uninstall. --- example/Makefile | 9 +++++++++ example/libfib/Makefile | 5 +++++ example/libfib/fib.c | 5 +++++ example/libfib/fib.h | 5 +++++ example/libfib/fib.o | Bin 640 -> 0 bytes example/libfib/libfib.a | Bin 824 -> 0 bytes example/libfib/libfib.so.1.1 | Bin 16784 -> 0 bytes example/test/Makefile | 5 +++++ example/test/main.c | 5 +++++ mk/mcd.lib.mk | 5 +++++ mk/mcd.prog.mk | 5 +++++ mk/mcd.subdir.mk | 14 ++++++++++++++ 12 files changed, 58 insertions(+) create mode 100644 example/Makefile delete mode 100644 example/libfib/fib.o delete mode 100644 example/libfib/libfib.a delete mode 100755 example/libfib/libfib.so.1.1 create mode 100644 mk/mcd.subdir.mk diff --git a/example/Makefile b/example/Makefile new file mode 100644 index 0000000..b0e81b3 --- /dev/null +++ b/example/Makefile @@ -0,0 +1,9 @@ +# +# Copyright (c) 2026 Jacob McDonnell +# +# SPDX-License-Identifier: BSD-2-Clause +# +SUBDIRS = libfib test + +include tools/mcd.subdir.mk + diff --git a/example/libfib/Makefile b/example/libfib/Makefile index c610923..4df5255 100644 --- a/example/libfib/Makefile +++ b/example/libfib/Makefile @@ -1,3 +1,8 @@ +# +# Copyright (c) 2026 Jacob McDonnell +# +# SPDX-License-Identifier: BSD-2-Clause +# LIB = fib SHLIB_MAJOR = 1 SHLIB_MINOR = 1 diff --git a/example/libfib/fib.c b/example/libfib/fib.c index 707215d..7520c97 100644 --- a/example/libfib/fib.c +++ b/example/libfib/fib.c @@ -1,3 +1,8 @@ +// +// Copyright (c) 2026 Jacob McDonnell +// +// SPDX-License-Identifier: BSD-2-Clause +// #include "fib.h" uint64_t fib(const uint64_t n) { diff --git a/example/libfib/fib.h b/example/libfib/fib.h index 66615c5..6556723 100644 --- a/example/libfib/fib.h +++ b/example/libfib/fib.h @@ -1,3 +1,8 @@ +// +// Copyright (c) 2026 Jacob McDonnell +// +// SPDX-License-Identifier: BSD-2-Clause +// #ifndef FIB_H_ #define FIB_H_ diff --git a/example/libfib/fib.o b/example/libfib/fib.o deleted file mode 100644 index 9380b6f..0000000 Binary files a/example/libfib/fib.o and /dev/null differ diff --git a/example/libfib/libfib.a b/example/libfib/libfib.a deleted file mode 100644 index 1fe78c4..0000000 Binary files a/example/libfib/libfib.a and /dev/null differ diff --git a/example/libfib/libfib.so.1.1 b/example/libfib/libfib.so.1.1 deleted file mode 100755 index 2ed114c..0000000 Binary files a/example/libfib/libfib.so.1.1 and /dev/null differ diff --git a/example/test/Makefile b/example/test/Makefile index 5b29575..041722b 100644 --- a/example/test/Makefile +++ b/example/test/Makefile @@ -1,3 +1,8 @@ +# +# Copyright (c) 2026 Jacob McDonnell +# +# SPDX-License-Identifier: BSD-2-Clause +# PROG = main SRCS = main.c CFLAGS = -Wall \ diff --git a/example/test/main.c b/example/test/main.c index 9580704..b5a75b1 100644 --- a/example/test/main.c +++ b/example/test/main.c @@ -1,3 +1,8 @@ +// +// Copyright (c) 2026 Jacob McDonnell +// +// SPDX-License-Identifier: BSD-2-Clause +// #include #include "fib.h" diff --git a/mk/mcd.lib.mk b/mk/mcd.lib.mk index 433e501..feebb88 100644 --- a/mk/mcd.lib.mk +++ b/mk/mcd.lib.mk @@ -1,3 +1,8 @@ +# +# Copyright (c) 2026 Jacob McDonnell +# +# SPDX-License-Identifier: BSD-2-Clause +# OBJS = $(patsubst %.cxx, %.o, \ $(patsubst %.cpp, %.o, \ $(patsubst %.cc, %.o, \ diff --git a/mk/mcd.prog.mk b/mk/mcd.prog.mk index 5ce212a..0c58ac3 100644 --- a/mk/mcd.prog.mk +++ b/mk/mcd.prog.mk @@ -1,3 +1,8 @@ +# +# Copyright (c) 2026 Jacob McDonnell +# +# SPDX-License-Identifier: BSD-2-Clause +# OBJS = $(patsubst %.cxx, %.o, \ $(patsubst %.cpp, %.o, \ $(patsubst %.cc, %.o, \ diff --git a/mk/mcd.subdir.mk b/mk/mcd.subdir.mk new file mode 100644 index 0000000..1244ea8 --- /dev/null +++ b/mk/mcd.subdir.mk @@ -0,0 +1,14 @@ +# +# Copyright (c) 2026 Jacob McDonnell +# +# SPDX-License-Identifier: BSD-2-Clause +# +TARGETS = all clean install uninstall + +$(TARGETS): $(SUBDIRS) + +$(SUBDIRS): + $(MAKE) -C $@ $(MAKECMDGOALS) + +.PHONY: $(TARGETS) $(SUBDIRS) + -- cgit v1.2.3