mk/common.mk
raw ยท 1255 bytes
export
CC ?= cc
AR ?= ar
RANLIB ?= ranlib
STRIP ?= strip
PKG_CONFIG ?= pkg-config
PROJECT_ROOT ?= $(CURDIR)
SRC_DIR ?= $(PROJECT_ROOT)/src
BIN_DIR ?= $(PROJECT_ROOT)/bin
BUILD_DIR ?= $(PROJECT_ROOT)/build
EXEEXT :=
WINDOWS_LDLIBS :=
ifeq ($(OS),Windows_NT)
EXEEXT := .exe
WINDOWS_LDLIBS += -lws2_32
endif
BASE_CFLAGS ?= -O2 -DNDEBUG -Wall -Wextra -ffunction-sections -fdata-sections
CFLAGS += $(BASE_CFLAGS)
CFLAGS += $(EXTRA_CFLAGS)
CPPFLAGS += -I$(SRC_DIR)
UNAME_S := $(shell uname)
ifeq ($(UNAME_S),Darwin)
STATIC ?= 0
CFLAGS += -pthread
CFLAGS += -Wno-gnu-zero-variadic-macro-arguments
LDFLAGS += -Wl,-dead_strip
TEST_FLAGS := CONCURRENCY=1000 TOTAL=1000 FD_LIMIT=2560
else ifeq ($(OS),Windows_NT)
STATIC ?= 0
LDFLAGS += -Wl,--gc-sections
TEST_FLAGS := CONCURRENCY=100 TOTAL=100 FD_LIMIT=512
else ifeq ($(UNAME_S),FreeBSD)
STATIC ?= 0
CFLAGS += -pthread
CFLAGS += -Wno-gnu-zero-variadic-macro-arguments
CPPFLAGS += -I/usr/local/include
LDFLAGS += -pthread
LDFLAGS += -L/usr/local/lib
LDFLAGS += -Wl,--gc-sections
TEST_FLAGS :=
else
STATIC ?= 1
CFLAGS += -pthread
LDFLAGS += -Wl,--gc-sections
TEST_FLAGS :=
endif
ifeq ($(STATIC),1)
LDFLAGS += -static
PKG_CONFIG_STATIC := --static
else
PKG_CONFIG_STATIC :=
endif
LDLIBS += $(WINDOWS_LDLIBS)