Makefile detect os (windows/posix)
This commit is contained in:
@@ -11,11 +11,21 @@ OBJS_RELEASE := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/release/%.o,$(SRCS))
|
||||
|
||||
# Compiler and flags
|
||||
CC := gcc
|
||||
CFLAGS_DEBUG := -g -O0 -Wall -Wpedantic -I$(INC_DIR) -std=c89 -fPIC
|
||||
CFLAGS_RELEASE := -O2 -Wall -Wpedantic -I$(INC_DIR) -std=c89 -fPIC
|
||||
CFLAGS_DEBUG := -g -O0 -Wall -Wpedantic -I$(INC_DIR) -std=c89
|
||||
CFLAGS_RELEASE := -O2 -Wall -Wpedantic -I$(INC_DIR) -std=c89
|
||||
|
||||
# Library name
|
||||
LIB_NAME := libstk.so
|
||||
# Platform detection
|
||||
ifeq ($(OS),Windows_NT)
|
||||
LIB_NAME := stk.dll
|
||||
LDFLAGS :=
|
||||
CFLAGS_DEBUG += -D_WIN32
|
||||
CFLAGS_RELEASE += -D_WIN32
|
||||
else
|
||||
LIB_NAME := libstk.so
|
||||
LDFLAGS := -ldl
|
||||
CFLAGS_DEBUG += -fPIC
|
||||
CFLAGS_RELEASE += -fPIC
|
||||
endif
|
||||
|
||||
# Default build
|
||||
all: debug
|
||||
@@ -27,11 +37,11 @@ release: $(BIN_DIR)/release/$(LIB_NAME)
|
||||
# Build shared library
|
||||
$(BIN_DIR)/debug/$(LIB_NAME): $(OBJS_DEBUG)
|
||||
@mkdir -p $(BIN_DIR)/debug
|
||||
$(CC) -shared -o $@ $^
|
||||
$(CC) -shared -o $@ $^ $(LDFLAGS)
|
||||
|
||||
$(BIN_DIR)/release/$(LIB_NAME): $(OBJS_RELEASE)
|
||||
@mkdir -p $(BIN_DIR)/release
|
||||
$(CC) -shared -o $@ $^
|
||||
$(CC) -shared -o $@ $^ $(LDFLAGS)
|
||||
|
||||
# Compile object files with header dependency tracking
|
||||
$(OBJ_DIR)/debug/%.o: $(SRC_DIR)/%.c
|
||||
|
||||
Reference in New Issue
Block a user