A small lightweight http server library in c
at master 44 lines 965 B view raw
1CC ?= cc 2AR ?= ar 3CFLAGS ?= -std=c11 -Wall -Wextra -Wpedantic -O2 -g 4CPPFLAGS?= -Iinclude -Isrc 5LDFLAGS ?= 6LDLIBS ?= 7 8BUILD := build 9LIBNAME := prairie 10 11SRC := $(wildcard src/*.c) 12OBJ := $(patsubst src/%.c,$(BUILD)/%.o,$(SRC)) 13 14PUBLIC_HEADERS := $(wildcard include/prairie/*.h) 15 16.PHONY: all clean test install uninstall 17 18all: $(BUILD)/lib$(LIBNAME).a 19 20# Build directory 21$(BUILD): 22 @mkdir -p $(BUILD) 23 24# Object files 25$(BUILD)/%.o: src/%.c | $(BUILD) 26 $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ 27 28# Static library 29$(BUILD)/lib$(LIBNAME).a: $(OBJ) 30 $(AR) rcs $@ $^ 31 32clean: 33 rm -rf $(BUILD) 34 35PREFIX ?= /usr/local 36install: all 37 install -d $(DESTDIR)$(PREFIX)/include/prairie 38 install -m 0644 $(PUBLIC_HEADERS) $(DESTDIR)$(PREFIX)/include/prairie/ 39 install -d $(DESTDIR)$(PREFIX)/lib 40 install -m 0644 $(BUILD)/lib$(LIBNAME).a $(DESTDIR)$(PREFIX)/lib/ 41 42uninstall: 43 rm -f $(DESTDIR)$(PREFIX)/lib/lib$(LIBNAME).a 44 rm -rf $(DESTDIR)$(PREFIX)/include/prairie