# pk.h # See LICENSE file for copyright and license details. include config.mk .PHONY: pkmacros pkmem-types pkmem pkstr pkarr SRC = \ pkmacros.h \ pkmem-types.h \ pkmem.h \ pkstr.h \ pkev.h \ pkarr.h \ test/pkmacros.c \ test/pkmacros.cpp \ test/pkmem-types.c \ test/pkmem-types.cpp \ test/pkmem.c \ test/pkmem.cpp \ test/pkstr.c \ test/pkstr.cpp \ test/pkev.c \ test/pkev.cpp \ test/pkarr.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 \ pkstr \ pkev \ pkarr \ test-pkmem-types test-pkmem-types-cpp \ test-pkmem test-pkmem-cpp \ test-pkmacros test-pkmacros-cpp \ test-pkstr test-pkstr-cpp \ test-pkarr test-pkarr-cpp \ options: @echo at-suite build options: @echo "CFLAGS = $(CFLAGS)" @echo "CPPFLAGS = $(CPPFLAGS)" @echo "LDFLAGS = $(LDFLAGS)" @echo "CC = $(CC)" @echo "CXX = $(CXX)" %.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 pkstr: pkmacros pkstr.gch pkstr.gchpp pkev: pkev.gch pkev.gchpp pkarr: pkarr.gch pkarr.gchpp build: pkmacros build: pkmem-types build: pkmem build: pkstr build: pkev build: pkarr echo "#ifndef PK_SINGLE_HEADER_FILE_H\n#define PK_SINGLE_HEADER_FILE_H" > pk.h cat pk.h.in \ pkmacros.h \ pkmem-types.h \ pkmem.h \ pkstr.h \ pkev.h \ pkarr.h \ >> pk.h echo "#endif /* PK_SINGLE_HEADER_FILE_H */" >> pk.h sed -i -r \ -e "s/@@PK_VERSION@@/$(VERSION)/g" \ -e "s/@@YEAR@@/`date -u +%Y`/g" \ -e "/deleteme/d" \ -e "/vim:/d" \ pk.h 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-pkstr: test/pkstr.o $(CC) -g -O0 -std=c2x $(CFLAGS) -o test/$@ $^ $(LDFLAGS) test-pkstr-cpp: test/pkstr.so $(CXX) -g -O0 -std=c++23 $(CPPFLAGS) -o test/$@ $^ $(LDFLAGS) test-pkev: test/pkev.o $(CC) -g -O0 -std=c2x $(CFLAGS) -o test/$@ $^ $(LDFLAGS) test-pkev-cpp: test/pkev.so $(CXX) -g -O0 -std=c++23 $(CPPFLAGS) -o test/$@ $^ $(LDFLAGS) test-pkarr: test/pkarr.o $(CC) -g -O0 -std=c2x $(CFLAGS) -o test/$@ $^ $(LDFLAGS) test-pkarr-cpp: test/pkarr.so $(CXX) -g -O0 -std=c++23 $(CPPFLAGS) -o test/$@ $^ $(LDFLAGS) test: pkmacros pkmem-types pkmem pkstr pkev pkarr test: test-pkmacros test-pkmacros-cpp test: test-pkmem-types test-pkmem-types-cpp test: test-pkmem test-pkmem-cpp test: test-pkstr test-pkstr-cpp test: test-pkev test-pkev-cpp test: test-pkarr test-pkarr-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" ./test/test-pkstr ; echo Result: $$? "\n" ./test/test-pkstr-cpp ; echo Result: $$? "\n" ./test/test-pkev ; echo Result: $$? "\n" ./test/test-pkev-cpp ; echo Result: $$? "\n" ./test/test-pkarr ; echo Result: $$? "\n" ./test/test-pkarr-cpp ; echo Result: $$? "\n" clean: rm -f *.plist *.gch *.gchpp *.o *.so test/*.o test/*.so test/test-*