1CC ?= gcc 2CFLAGS=-g -I${NGX_PATH}/src/os/unix -I${NGX_PATH}/src/core -I${NGX_PATH}/src/http -I${NGX_PATH}/src/http/modules -I${NGX_PATH}/src/event -I${NGX_PATH}/objs/ -I. 3 4 5all: 6 7%.o: %.c 8 $(CC) -c -o $@ $< $(CFLAGS) 9 10.PHONY: all clean test nginx prepare-travis-env 11 12 13NGX_PATH := $(shell echo `pwd`/nginx) 14 15prepare-travis-env: 16 wget --no-verbose https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz 17 tar -xzf nginx-${NGINX_VERSION}.tar.gz 18 ln -s nginx-${NGINX_VERSION} ${NGX_PATH} 19 cd ${NGX_PATH} && ./configure --with-http_ssl_module --with-cc=$(CC) --add-module=${TRAVIS_BUILD_DIR} 20 21nginx: 22 cd ${NGX_PATH} && rm -rf ${NGX_PATH}/objs/src/core/nginx.o && make 23 24vendor/cmocka: 25 git submodule init && git submodule update 26 27.cmocka_build: vendor/cmocka 28 mkdir .cmocka_build && cd .cmocka_build \ 29 && cmake -DCMAKE_C_COMPILER=$(CC) -DCMAKE_MAKE_PROGRAM=make ../vendor/cmocka \ 30 && make && sudo make install 31 32test: .cmocka_build | nginx 33 strip -N main -o ${NGX_PATH}/objs/src/core/nginx_without_main.o ${NGX_PATH}/objs/src/core/nginx.o \ 34 && mv ${NGX_PATH}/objs/src/core/nginx_without_main.o ${NGX_PATH}/objs/src/core/nginx.o \ 35 && $(CC) test_suite.c $(CFLAGS) -o test_suite -lcmocka `find ${NGX_PATH}/objs -name \*.o` -ldl -lpthread -lcrypt -lssl -lpcre -lcrypto -lz \ 36 && ./test_suite 37 38clean: 39 rm -f *.o test_suite 40 41# vim: ft=make ts=8 sw=8 noet 42