Finally thought of how to utilise in a workspace vs project setup (main makefile vs library/executable setup), all the complex s**t I did before now seems like a total time waster, really wish online guides covered this sort of thing better, either that or I wish I found the right guide which I clearly haven't yet but should no longer need. Anyways using this output from my most recent edit (haven't put in the directory creation yet so ignore that error) would this be considered the simplest way for any developer to be happy to branch off my project at a later date for their own purposes? That's the eventual goal after all since I'm too lazy to maintain the project once it get's off the ground, I prefer to lay the foundations of simple interfaces after playing around with the nitty gritty until I'm satisfied I have a good design to do a from scratch on (to clean out bugs caused by hacks etc after all).

Code:
make --no-print-directory paw
cd "${SRC_DIR}/paw" && make all
===================================================================
Project "paw"
===================================================================
CFLAGS=-Wall
LFLAGS=-L "${OUT_DIR}" -l paw-min
-------------------------------------------------------------------
cd "${SRC_DIR}/libpaw-min" && make TYPE=static all
===================================================================
Project "libpaw-min"
===================================================================
CFLAGS=-Wall -Wextra
LFLAGS=-L "${OUT_DIR}"
-------------------------------------------------------------------
cc -Wall -Wextra  -I "${TOP_DIR}/include" -o ${OBJ_DIR}/buffer.c.o -c buffer.c
Assembler messages:
Fatal error: can't create ${TOP_DIR}/.paw/debug/_/static/libpaw-min/buffer.c.o: No such file or directory
make[2]: *** [makefile:46: buffer.c.o] Error 1
make[1]: *** [makefile:48: libpaw-min] Error 2
make: *** [makefile:89: paw] Error 2
Compilation failed.
Btw paw & it's libraries did build with the lua setup so I know it's just the edits to the makefiles that are causing it not to build at the moment so don't mind those type of errors slipping into my output.
Side note the default "target" when none is provided is all projects in the src directory folder, as I haven't set those up since I was starting with the main 2 that need to be setup 1st - related question, how do I give a target priority in a list like this:
Code:
$(NAMES):
	cd ...
"paw" is the name I want to give 1st priority to in that generated list of names