CFLAGS += -std=c99 -Wall -O2 -D_REENTRANT LIBS := -lm -luv # Check OS TARGET_OS := $(shell uname -s | tr 'A-Z' 'a-z' 2>/dev/null || echo unknown) ifeq ($(TARGET_OS), linux) CFLAGS += -D_POSIX_C_SOUCE=200212L -D_BSD_SOURCE -D_DEFAULT_SOURCE LIBS += -ldl LDFLAGS += -Wl,-E endif SRC := main.c session.c logger.c mt19937-64.c dict.c zmalloc.c redisassert.c \ siphash.c BIN := sv VER ?= $(shell git describe --tags --always --dirty) # OBJ Dir ODIR := obj OBJ := $(patsubst %.c,$(ODIR)/%.o,$(SRC)) THIRD := third ## Dependencies # llhttp DEPS += $(THIRD)/llhttp/libllhttp.a CFLAGS += -I$(THIRD)/llhttp LDFLAGS += -L$(THIRD)/llhttp LIBS += -l:libllhttp.a all: $(BIN) clean: $(RM) -rf $(BIN) $(RM) -rf $(OBJ) $(BIN): $(OBJ) @echo LINK $(BIN) $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) $(OBJ): $(ODIR) $(ODIR): mkdir -p $@ $(ODIR)/%.o: %.c @echo CC $< $(CC) $(CFLAGS) -c $< -o $@ .PHONY: all clean .SUFFIXES: .SUFFIXES: .c .o vpath %c src vpath %h src