Makefile (2495B)
1 CC = cc 2 3 # needed for strlcpy(3bsd) on Linux 4 # install package 'libbsd-dev'! 5 INCS_BSD_OVERLAY = `pkg-config --cflags libbsd-overlay` 6 LIBS_BSD_OVERLAY = `pkg-config --libs libbsd-overlay` 7 8 CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations ${INCS_BSD_OVERLAY} 9 10 OPTIM = -Os 11 OPTIM_DEBUG = -O0 -ggdb 12 13 INCS_SQLITE = `pkg-config --cflags sqlite3` 14 LIBS_SQLITE = `pkg-config --libs --static sqlite3` 15 16 VERSION = `grep -Po '\bPROG_VERSION\b ".*?"' src/config.h | \ 17 sed -r 's/PROG_VERSION "(.*?)"/\1/g'` 18 19 all: bin/mittag.cgi 20 21 mittag.o: src/mittag.c 22 ${CC} ${OPTIM_DEBUG} ${CFLAGS} ${INCS_SQLITE} -c src/mittag.c -static -o $@ 23 24 date-utils.o: src/date-utils.c 25 ${CC} ${OPTIM_DEBUG} ${CFLAGS} -c src/date-utils.c -static -o $@ 26 27 utils.o: src/utils.c 28 ${CC} ${OPTIM_DEBUG} ${CFLAGS} -c src/utils.c -static -o $@ 29 30 http.o: src/http.c 31 ${CC} ${OPTIM_DEBUG} ${CFLAGS} -c src/http.c -static -o $@ 32 33 bin/mittag.cgi: utils.o date-utils.o http.o mittag.o 34 mkdir -p bin 35 ${CC} ${OPTIM_DEBUG} utils.o date-utils.o http.o mittag.o ${LIBS_BSD_OVERLAY} ${LIBS_SQLITE} -static -o bin/mittag.cgi 36 37 test: clean all var/mittag.db 38 #echo 'vote-2=2&vote-6=6&vote-43=43&name=m%C3%A4+%C3%9F+%C3%84+%C3%A9%20%E2%99%A5&date=2024-01-12' | PATH_INFO=/votes REQUEST_METHOD=POST CONTENT_TYPE=application/x-www-form-urlencoded bin/mittag.cgi 39 PATH_INFO=/votes QUERY_STRING="date=2012-05-10" REQUEST_METHOD=GET bin/mittag.cgi 40 #PATH_INFO=/votes QUERY_STRING="foobar=2024-07-27" REQUEST_METHOD=GET bin/mittag.cgi 41 mkdir -p test 42 ${CC} ${OPTIM_DEBUG} ${CFLAGS} -c src/http_test.c -static -o test/http_test.o 43 ${CC} ${OPTIM_DEBUG} utils.o date-utils.o http.o test/http_test.o ${LIBS_BSD_OVERLAY} ${LIBS_SQLITE} -static -o test/http_test 44 test/http_test 45 46 run-test-server: bin/mittag.cgi bin/var/mittag.db thttpd-2.29/thttpd 47 echo starting http daemon 48 echo try curl -i http://localhost:60100/mittag.cgi/votes 49 ./thttpd-2.29/thttpd -p 60100 -c '**.cgi' -d ./bin/ 50 51 thttpd-2.29/thttpd: 52 wget -c http://www.acme.com/software/thttpd/thttpd-2.29.tar.gz -O - | tar -xzf - 53 cd thttpd-2.29 && ./configure && make 54 55 var/mittag.db: 56 cat var/mittag.sql | sqlite3 var/mittag.db 57 58 bin/var/mittag.db: 59 mkdir -p bin/var 60 cat var/mittag.sql | sqlite3 bin/var/mittag.db 61 62 clean: 63 rm -f bin/mittag.cgi mittag.o utils.o date-utils.o http.o \ 64 lunch-poll-legacy*.tar.gz 65 rm -fr test 66 67 tags: 68 ctags -R . /usr/include/sqlite3* 69 70 code-release: 71 tar -czf lunch-poll-legacy-${VERSION}.tar.gz \ 72 LICENSE README Makefile src/* var/mittag.sql