# Compiler CC = gcc # Compiler flags CFLAGS = -Wall -Wextra -Werror -Ofast -std=c2x -lm -lrt -pthread -fPIC LDFLAGS = -lm # -D_POSIX_C_SOURCE=199309L all: clear test_rbuffer test_rliza test_rnet test_rmalloc test_rtemp test_rjson test_rrex4 test_rstring_list test_rhttp test_rtime test_arena test_rtree test_rstring test_rlexer test_rrex3 test_rio test_rhashtable test_rkeytable test_rterminal test_rmerge run_rmerge format_all build format_all test_rlib format_all: format_rlib_h clang-format *.c *.h *.cpp -i --sort-includes=false format_rlib_h: clang-format rlib.h build/rlib.h -i --sort-includes --verbose clear: -@rm -rf build @mkdir build @echo "Build directory emptied" rebuild: clear all test_rbuffer: build_rbuffer run_rbuffer build_rbuffer: $(CC) $(CFLAGS) rbuffer.c -o ./build/rbuffer run_rbuffer: ./build/rbuffer test test_rliza: build_rliza run_rliza build_rliza: $(CC) $(CFLAGS) rliza.c -o ./build/rliza run_rliza: ./build/rliza test test_rnet: build_rnet run_rnet build_rnet: $(CC) $(CFLAGS) rnet.c -o ./build/rnet run_rnet: ./build/rnet test test_rtemp: build_rtemp run_rtemp build_rtemp: $(CC) $(CFLAGS) rtemp.c -o ./build/rtemp run_rtemp: ./build/rtemp test_rjson: build_rjson run_rjson build_rjson: $(CC) $(CFLAGS) rjson.c -o ./build/rjson run_rjson: ./build/rjson test_rstring_list: build_rstring_list run_rstring_list build_rstring_list: $(CC) $(CFLAGS) rstring_list.c -o ./build/rstring_list run_rstring_list: ./build/rstring_list test_rhttp: build_rhttp run_rhttp build_rhttp: $(CC) $(CFLAGS) rhttp.c -o ./build/rhttp run_rhttp: ./build/rhttp test_rautocomplete: build_rautocomplete run_rautocomplete build_rautocomplete: $(CC) $(CFLAGS) rautocomplete.c -o ./build/rautocomplete run_rautocomplete: ./build/rautocomplete test_rlexer: build_rlexer run_rlexer build_rlexer: $(CC) $(CFLAGS) rlexer.c -o ./build/rlexer run_rlexer: ./build/rlexer test_rrex4: build_rrex4 run_rrex4 build_rrex4: $(CC) $(CFLAGS) rrex4.c -o ./build/rrex4 run_rrex4: ./build/rrex4 test_rrex3: build_rrex3 run_rrex3 build_rrex3: $(CC) $(CFLAGS) rrex3.c -o ./build/rrex3 run_rrex3: ./build/rrex3 test_rio: build_rio run_rio build_rio: $(CC) $(CFLAGS) rio.c -o ./build/rio run_rio: ./build/rio test_rterm: build_rterm run_rterm build_rterm: $(CC) $(CFLAGS) rterm.c -o ./build/rterm run_rterm: ./build/rterm test_rterminal: build_rterminal run_rterminal build_rterminal: $(CC) $(CFLAGS) rterminal.c -o ./build/rterminal run_rterminal: ./build/rterminal test_rmerge: build_rmerge run_rmerge build_rmerge: $(CC) $(CFLAGS) rmerge.c -o ./build/rmerge run_rmerge: ./build/rmerge _rlib.h > ./build/rlib.h cp ./build/rlib.h ./rlib.h test_rprint: build_rprint run_rprint build_rprint: $(CC) $(CFLAGS) rprint.c -o ./build/rprint run_rprint: ./build/rprint test_rstring: build_rstring run_rstring build_rstring: $(CC) $(CFLAGS) rstring.c -o ./build/rstring run_rstring: ./build/rstring test_rbench: build_rbench run_rbench build_rbench: $(CC) $(CFLAGS) rbench.c -o ./build/rbench run_rbench: ./build/rbench test_rbench_cpp: build_rbench_cpp run_rbench_cpp build_rbench_cpp: g++ $(CFLAGS) ./C-Data-Structs/src/primes.c rbench.cpp -o ./build/rbench.cpp -I./C-Data-Structs/include run_rbench_cpp: ./build/rbench.cpp test_yurii_cpp: format_all build_yurii_cpp run_yurii_cpp build_yurii_cpp: rmerge rbench.cpp > yurii_hashmap.cpp g++ C-Data-Structs/src/primes.c yurii_hashmap.cpp -o ./build/yurii_hashmap.cpp -IC-Data-Structs/include run_yurii_cpp: ./build/yurii_hashmap.cpp test_rmalloc: build_rmalloc run_rmalloc build_rmalloc: $(CC) $(CFLAGS) rmalloc.c -o ./build/rmalloc run_rmalloc: ./build/rmalloc test_rtime: build_rtime run_rtime build_rtime: $(CC) $(CFLAGS) rtime.c -o ./build/rtime run_rtime: ./build/rtime test_arena: build_arena run_arena build_arena: $(CC) $(CFLAGS) arena.c -o ./build/arena run_arena: ./build/arena test_rlib: build_rlib run_rlib build_rlib: $(CC) $(CFLAGS) rlib.c -o ./build/rlib run_rlib: ./build/rlib test test_rtree: build_rtree run_rtree build_rtree: $(CC) $(CFLAGS) rtree.c -o ./build/rtree run_rtree: ./build/rtree test_rhashtable: build_rhashtable run_rhashtable build_rhashtable: $(CC) $(CFLAGS) rhashtable.c -o ./build/rhashtable run_rhashtable: ./build/rhashtable test_rkeytable: build_rkeytable run_rkeytable build_rkeytable: $(CC) $(CFLAGS) rkeytable.c -o ./build/rkeytable run_rkeytable: ./build/rkeytable build: format_rlib_h cp ./clean build/clean cp rlib.h rlibrlibso.c @gcc rlibrlibso.c $(CFLAGS) -shared -o ./build/librlib.so @echo "Built a new rlib.so" @gcc rlibso.c -L./build -Wl,-rpath=. -lrlib -o ./build/rlibso ${CFLAGS} @cd ./build && ./rlibso @echo "Build succesful" install: sudo cp ./build/rlib.h /usr/include/rlib.h sudo cp ./build/rmerge /usr/local/bin/rmerge sudo cp ./build/clean /usr/local/bin/clean sudo cp ./build/rlib /usr/local/bin/rlib publish: brz add brz commit brz push lp:rlib