purr-c/makefile

45 lines
1.0 KiB
Makefile

PREFIX = /usr/local
INC = -Iextern
OPT = -O2
WARN = -Wall -Wextra -Werror=implicit
CFLAGS = $(OPT) -g -pipe
LDLIBS = -lbearssl -lsbearssl -lskarnet
LDFLAGS = -Wl,--as-needed
BASEENCODE = extern/libbaseencode/baseencode.a
BASEENCODEOBJS = extern/libbaseencode/base64.o extern/libbaseencode/base32.o
LIBS = $(BASEENCODE)
LIBSOBJS = $(BASEENCODEOBJS)
FINAL = purr
HEADERS = purr.h mmap_file.h
OBJS = purr.o socket.o urls.o files.o comm.o formats.o encrypt.o mmap_file.o
TEST = tests
TOBJS = tests.o formats.o urls.o mmap_file.o
all: $(FINAL)
check: $(TEST)
./tests
$(OBJS) $(TOBJS): $(HEADERS)
$(OBJS) $(TOBJS): CFLAGS += $(WARN)
encrypt.o: CFLAGS += $(INC)
purr: $(OBJS) $(LIBS)
tests: $(TOBJS) $(LIBS)
$(BASEENCODEOBJS): extern/libbaseencode/common.h extern/libbaseencode/baseencode.h
$(BASEENCODE): $(BASEENCODEOBJS)
$(AR) r $@ $^
install: $(FINAL)
install -Dm755 purr $(DESTDIR)$(PREFIX)/bin
ln -sf purr $(DESTDIR)$(PREFIX)/bin/meow
ln -sf purr $(DESTDIR)$(PREFIX)/bin/meowd
clean:
rm -f $(FINAL) $(OBJS) $(TEST) $(TOBJS) $(LIBS) $(LIBSOBJS)