CC = gcc
PROG = sws
OBJS = main.o sws.o utils.o logging.o header.o cgi.o response.o
CFLAGS = -g -fsanitize=leak -Wall -Werror -Wextra -Wformat=2 -Wjump-misses-init -Wlogical-op -Wpedantic -Wshadow
# Based off of code provided by Professor Jan Schaumann
IFLAGS = `uname -s | grep -q SunOS && echo -I/opt/magic/include`
CFLAGS += ${IFLAGS}
# Based off of code provided by Professor Jan Schaumann
# Includes dynamic linker for magic lib - See Week 11, Segment 3: 24:08
LDFLAGS = `((uname -s | grep -q SunOS) && echo -lsocket -lnsl -L/opt/magic/lib -lmagic -Wl,-rpath,/opt/magic/lib) || echo -lmagic`
all: ${PROG}
${PROG}: ${OBJS}
@echo CFLAGS = ${CFLAGS}
@echo LDFLAGS = ${LDFLAGS}
${CC} ${OBJS} -o ${PROG} ${LDFLAGS}
main.o: main.c
${CC} ${CFLAGS} -c main.c
sws.o: sws.c
${CC} ${CFLAGS} -c sws.c
utils.o: utils.c
${CC} ${CFLAGS} -c utils.c
logging.o: logging.c
${CC} ${CFLAGS} -c logging.c
header.o: header.c
${CC} ${CFLAGS} -c header.c
cgi.o: cgi.c
${CC} ${CFLAGS} -c cgi.c
response.o: response.c
${CC} ${CFLAGS} -c response.c
format:
clang-format --style=file -i -- *.h *.c
clean:
rm -f ${PROG} ${OBJS}