# 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-*