From 6a1e6a7d6b6a3d987f2fccb3c06f4f5da071f504 Mon Sep 17 00:00:00 2001 From: Nicholas Tay Date: Tue, 10 May 2022 00:40:10 +1000 Subject: Dynamic load boards as DLL (windows only for now) The .h files are pretty weird, should look at other C projects to see how they load plugins. This function pointer business with typedefs is kinda weird, not sure where they should live. --- board/Makefile | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 board/Makefile (limited to 'board/Makefile') diff --git a/board/Makefile b/board/Makefile new file mode 100644 index 0000000..24cb10c --- /dev/null +++ b/board/Makefile @@ -0,0 +1,32 @@ +BOARDS = mxblue quack + +CC = gcc +CFLAGS += -std=c99 -Wall -Wextra -Wshadow -Werror -pedantic -shared + +ifeq ($(OS),Windows_NT) + OUTEXT = dll +else + OUTEXT = so +endif + +default: all +all: $(BOARDS) + +# TODO: use "BOARDS" variable to generate this. +# TODO: have some preset for 'simple' board type? also in the c file. +mxblue: mxblue.$(OUTEXT) +quack: quack.$(OUTEXT) +mxblue.$(OUTEXT): mxblue/board.c mxblue/sound.h + $(CC) $(CFLAGS) mxblue/board.c -o mxblue.$(OUTEXT) +quack.$(OUTEXT): quack/board.c quack/sound.h + $(CC) $(CFLAGS) quack/board.c -o quack.$(OUTEXT) +mxblue/sound.h: + xxd -i mxblue/board_down.wav mxblue/sound.h +quack/sound.h: + xxd -i quack/board_down.wav quack/sound.h + +clean: + rm -f *.o + rm -f *.dll + rm -f *.so + rm -f */sound.h \ No newline at end of file -- cgit