|
|
|
CPPFLAGS?=-Wall -Wextra -Werror -I.
|
|
|
|
OPT_DEBUG=$(CPPFLAGS) -O0 -g -DHTTP_PARSER_STRICT=1
|
|
|
|
OPT_FAST=$(CPPFLAGS) -O3 -DHTTP_PARSER_STRICT=0
|
|
|
|
|
|
|
|
CC?=gcc
|
|
|
|
AR?=ar
|
|
|
|
|
|
|
|
|
|
|
|
test: test_g test_fast
|
|
|
|
./test_g
|
|
|
|
./test_fast
|
|
|
|
|
|
|
|
test_g: http_parser_g.o test_g.o
|
|
|
|
$(CC) $(OPT_DEBUG) http_parser_g.o test_g.o -o $@
|
|
|
|
|
|
|
|
test_g.o: test.c http_parser.h Makefile
|
|
|
|
$(CC) $(OPT_DEBUG) -c test.c -o $@
|
|
|
|
|
|
|
|
test.o: test.c http_parser.h Makefile
|
|
|
|
$(CC) $(OPT_FAST) -c test.c -o $@
|
|
|
|
|
|
|
|
http_parser_g.o: http_parser.c http_parser.h Makefile
|
|
|
|
$(CC) $(OPT_DEBUG) -c http_parser.c -o $@
|
|
|
|
|
|
|
|
test-valgrind: test_g
|
|
|
|
valgrind ./test_g
|
|
|
|
|
|
|
|
http_parser.o: http_parser.c http_parser.h Makefile
|
|
|
|
$(CC) $(OPT_FAST) -c http_parser.c
|
|
|
|
|
|
|
|
test_fast: http_parser.o test.c http_parser.h
|
|
|
|
$(CC) $(OPT_FAST) http_parser.o test.c -o $@
|
|
|
|
|
|
|
|
test-run-timed: test_fast
|
|
|
|
while(true) do time ./test_fast > /dev/null; done
|
|
|
|
|
|
|
|
package: http_parser.o
|
|
|
|
$(AR) rcs libhttp_parser.a http_parser.o
|
|
|
|
|
|
|
|
tags: http_parser.c http_parser.h test.c
|
|
|
|
ctags $^
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -f *.o *.a test test_fast test_g http_parser.tar tags
|
|
|
|
|
|
|
|
.PHONY: clean package test-run test-run-timed test-valgrind
|