35 lines
575 B
Makefile
35 lines
575 B
Makefile
CC ?= gcc
|
|
CFLAGS = -fPIC -Wall -Wextra -O2 -c
|
|
LDFLAGS = -shared
|
|
BUILD_DIR ?= $(shell pwd)/build
|
|
TARGET_DIR ?= $(shell pwd)/target
|
|
|
|
ifdef ALOG_HIJACK_PRINTF
|
|
CFLAGS += -DALOG_HIJACK_PRINTF
|
|
endif
|
|
|
|
ifdef ALOG_DEBUG
|
|
CFLAGS += -g
|
|
endif
|
|
|
|
OBJ = $(BUILD_DIR)/alog.o
|
|
LIB = $(TARGET_DIR)/alog.so
|
|
|
|
.PHONY: so
|
|
so: $(if $(shell stat $(LIB)), clean) $(LIB)
|
|
|
|
$(LIB): $(TARGET_DIR) $(OBJ)
|
|
$(CC) $(LDFLAGS) -o $(LIB) $(OBJ)
|
|
|
|
$(OBJ): $(BUILD_DIR)
|
|
$(CC) $(CFLAGS) alog.c -o $(OBJ)
|
|
|
|
$(BUILD_DIR):
|
|
mkdir $(BUILD_DIR)
|
|
|
|
$(TARGET_DIR):
|
|
mkdir $(TARGET_DIR)
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm $(LIB) $(OBJ)
|