214 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
		
		
			
		
	
	
			214 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
|  | # 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 |