# pk.h # See LICENSE file for copyright and license details. include config.mk .PHONY: pkmacros pkmem-types pkmem pkstr pkev pkiter pkarr pkstn pktmr pkuuid pkbktarr pkfuncinstr pktst test SRC = \ pkmacros.h \ pkmem-types.h \ pkmem.h \ pkstr.h \ pkev.h \ pkiter.h \ pkarr.h \ pkstn.h \ pkuuid.h \ pkbktarr.h \ pktmpln.h \ pkfuncinstr.h \ pktst.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.c\ test/pkarr.cpp \ test/pkstn.c\ test/pkstn.cpp \ test/pktmr.c\ test/pktmr.cpp \ test/pkuuid.c\ test/pkuuid.cpp \ test/pkbktarr.c\ test/pkbktarr.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 \ pkiter \ pkarr \ pkstn \ pktmr \ pkuuid \ pkbktarr \ pktmpln \ pkfuncinstr \ pktst \ test/test-pkmem-types test/test-pkmem-types-cpp \ test/test-pkmem test/test-pkmem-cpp \ test/test-pkmacros test/test-pkmacros-cpp \ test/test-pkstr test/test-pkstr-cpp \ test/test-pkev test/test-pkev-cpp \ test/test-pkarr test/test-pkarr-cpp \ test/test-pkstn test/test-pkstn-cpp \ test/test-pktmr test/test-pktmr-cpp \ test/test-pkuuid test/test-pkuuid-cpp \ test/test-pkbktarr test/test-pkbktarr-cpp \ options: @echo at-suite build options: @echo "CFLAGS = $(CFLAGS)" @echo "CXXFLAGS = $(CXXFLAGS)" @echo "LDFLAGS = $(LDFLAGS)" @echo "CC = $(CC)" @echo "CXX = $(CXX)" %.gch: %.h $(CC) -std=c2x $(CFLAGS) $(OPTLEVEL) -c $< -o $@ %.gchpp: %.h $(CXX) -std=c++23 $(CXXFLAGS) $(OPTLEVEL) -x c++-header -c $< -o $@ %.o: %.c $(CC) -std=c2x $(CFLAGS) -g $(OPTLEVEL) -c $< -o $@ %.so: %.cpp $(CXX) -std=c++23 $(CXXFLAGS) -g $(OPTLEVEL) -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 pkiter: pkiter.gch pkiter.gchpp pkarr: pkmem pkarr.gch pkarr.gchpp pkstn: pkstn.gch pkstn.gchpp pktmr: pktmr.gch pktmr.gchpp pkuuid: pkuuid.gch pkuuid.gchpp pkbktarr: pkbktarr.gch pkbktarr.gchpp pktmpln: pktmpln.gch pktmpln.gchpp pkfuncinstr: pkfuncinstr.gch pkfuncinstr.gchpp pktst: pktst.gch pktst.gchpp build: pkmacros build: pkmem-types build: pkmem build: pkstr build: pkev build: pkiter build: pkarr build: pkstn build: pktmr build: pkuuid build: pkbktarr build: pkfuncinstr build: pktst echo "#ifndef PK_SINGLE_HEADER_FILE_H\n#define PK_SINGLE_HEADER_FILE_H" > pk.h cat pk.h.in \ pkmacros.h \ pktmpln.h \ pkmem-types.h \ pkmem.h \ pkstr.h \ pkev.h \ pkiter.h \ pkarr.h \ pkstn.h \ pktmr.h \ pkuuid.h \ pkbktarr.h \ pkfuncinstr.h \ pktst.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/test-pkmacros: test/pkmacros.o $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkmacros-cpp: test/pkmacros.so $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkmem-types: test/pkmem-types.o $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkmem-types-cpp: test/pkmem-types.so $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkmem: test/pkmem.o $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkmem-cpp: test/pkmem.so $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkstr: test/pkstr.o $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkstr-cpp: test/pkstr.so $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkev: test/pkev.o $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkev-cpp: test/pkev.so $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkarr: test/pkarr.o $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkarr-cpp: test/pkarr.so $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkstn: test/pkstn.o $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkstn-cpp: test/pkstn.so $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS) test/test-pktmr: test/pktmr.o $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS) test/test-pktmr-cpp: test/pktmr.so $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkuuid: test/pkuuid.o $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkuuid-cpp: test/pkuuid.so $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkbktarr: test/pkbktarr.o $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS) test/test-pkbktarr-cpp: test/pkbktarr.so $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS) test: options test: pkmacros test/test-pkmacros test/test-pkmacros-cpp test: pkmem-types test/test-pkmem-types test/test-pkmem-types-cpp test: pkmem test/test-pkmem test/test-pkmem-cpp test: pkstr test/test-pkstr test/test-pkstr-cpp test: pkev test/test-pkev test/test-pkev-cpp test: pkiter test: pkarr test/test-pkarr test/test-pkarr-cpp test: pkstn test/test-pkstn test/test-pkstn-cpp test: pktmr test/test-pktmr test/test-pktmr-cpp test: pkuuid test/test-pkuuid test/test-pkuuid-cpp test: pkbktarr test/test-pkbktarr test/test-pkbktarr-cpp test: pktmpln test: pkfuncinstr test: pktst 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" ./test/test-pkstn ; echo Result: $$? "\n" ./test/test-pkstn-cpp ; echo Result: $$? "\n" ./test/test-pktmr ; echo Result: $$? "\n" ./test/test-pktmr-cpp ; echo Result: $$? "\n" ./test/test-pkuuid ; echo Result: $$? "\n" ./test/test-pkuuid-cpp ; echo Result: $$? "\n" ./test/test-pkbktarr ; echo Result: $$? "\n" ./test/test-pkbktarr-cpp ; echo Result: $$? "\n" clean: rm -f *.plist *.gch *.gchpp *.o *.so test/*.o test/*.so test/test-*