summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2024-10-11 18:41:47 -0400
committerJonathan Bradley <jcb@pikum.xyz>2024-10-11 18:41:47 -0400
commit887a9f559e71d8a788fbfe210f126eda5ba7969b (patch)
tree23a282241115abad7f62f0c7b4f0973cab0c4952 /Makefile
initial commit: macros, memory, tests
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile88
1 files changed, 88 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..bf99592
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,88 @@
+# pkh - header-only library
+# See LICENSE file for copyright and license details.
+
+include config.mk
+
+.PHONY: pkmem-types pkmem
+
+SRC = \
+ pkmacros.h \
+ pkmem-types.h \
+ pkmem.h \
+ test/pkmacros.c \
+ test/pkmacros.cpp \
+ test/pkmem-types.c \
+ test/pkmem-types.cpp \
+ test/pkmem.c \
+ test/pkmem.cpp \
+
+OBJ = $(SRC:%.c=.o)
+PPOBJ = $(SRC:%.cpp=.so)
+HOBJ = $(SRC:%.h=.gch)
+HPPOBJ = $(SRC:%.h=.gchpp)
+
+all: options .WAIT clean .WAIT \
+ pkmacros pkmem-types pkmem \
+ test-pkmem test-pkmem-cpp \
+ test-types-pkmem test-types-pkmem-cpp \
+ test-pkmacros test-pkmacros-cpp \
+
+options:
+ @echo at-suite build options:
+ @echo "CFLAGS = $(CFLAGS)"
+ @echo "LDFLAGS = $(LDFLAGS)"
+ @echo "CC = $(CC)"
+
+%.gch: %.h
+ $(CC) -std=c2x $(CFLAGS) -c $< -o $@
+%.gchpp: %.h
+ $(CXX) -std=c++23 $(CPPFLAGS) -x c++-header -c $< -o $@
+%.o: %.c
+ $(CC) -std=c2x $(CFLAGS) -g -O0 -c $< -o $@
+%.so: %.cpp
+ $(CXX) -std=c++23 $(CPPFLAGS) -g -O0 -c $< -o $@
+
+$(OBJ): config.mk
+$(PPOBJ): config.mk
+$(HOBJ): config.mk
+$(HPPOBJ): config.mk
+
+pkmacros: pkmacros.gch pkmacros.gchpp
+
+pkmem-types: pkmacros pkmem-types.gch pkmem-types.gchpp
+
+pkmem: pkmem-types pkmem.gch pkmem.gchpp
+
+test-pkmacros: test/pkmacros.o
+ $(CC) -g -O0 -std=c2x $(CFLAGS) -o test/$@ $^ $(LDFLAGS)
+
+test-pkmacros-cpp: test/pkmacros.so
+ $(CXX) -g -O0 -std=c++23 $(CPPFLAGS) -o test/$@ $^ $(LDFLAGS)
+
+test-pkmem-types: test/pkmem-types.o
+ $(CC) -g -O0 -std=c2x $(CFLAGS) -o test/$@ $^ $(LDFLAGS)
+
+test-pkmem-types-cpp: test/pkmem-types.so
+ $(CXX) -g -O0 -std=c++23 $(CPPFLAGS) -o test/$@ $^ $(LDFLAGS)
+
+test-pkmem: test/pkmem.o
+ $(CC) -g -O0 -std=c2x $(CFLAGS) -o test/$@ $^ $(LDFLAGS)
+
+test-pkmem-cpp: test/pkmem.so
+ $(CXX) -g -O0 -std=c++23 $(CPPFLAGS) -o test/$@ $^ $(LDFLAGS)
+
+test: pkmacros pkmem-types pkmem
+test: test-pkmacros test-pkmacros-cpp
+test: test-pkmem-types test-pkmem-types-cpp
+test: test-pkmem test-pkmem-cpp
+test:
+ @echo ""
+ ./test/test-pkmacros ; echo Result: $$? "\n"
+ ./test/test-pkmacros-cpp ; echo Result: $$? "\n"
+ ./test/test-pkmem-types ; echo Result: $$? "\n"
+ ./test/test-pkmem-types-cpp ; echo Result: $$? "\n"
+ ./test/test-pkmem ; echo Result: $$? "\n"
+ ./test/test-pkmem-cpp ; echo Result: $$? "\n"
+
+clean:
+ rm -f *.plist *.gch *.gchpp *.o *.so test/*.o test/*.so test/test-*