2022-02-27 20:45:41 -08:00
|
|
|
CC ?= gcc
|
|
|
|
|
BUILD_DIR ?= $(shell pwd)/build
|
|
|
|
|
TARGET_DIR ?= $(shell pwd)/target
|
2022-02-28 01:09:33 -08:00
|
|
|
CFLAGS = -Wall -Wextra -O2
|
|
|
|
|
LDFLAGS = -shared
|
2022-02-27 20:45:41 -08:00
|
|
|
|
|
|
|
|
ifdef ALOG_HIJACK_PRINTF
|
|
|
|
|
CFLAGS += -DALOG_HIJACK_PRINTF
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifdef ALOG_DEBUG
|
|
|
|
|
CFLAGS += -g
|
|
|
|
|
endif
|
|
|
|
|
|
2022-03-07 00:43:37 -08:00
|
|
|
ALOG_TOP_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
|
|
|
|
|
ALOG_SRC = $(ALOG_TOP_DIR)alog.c
|
2022-02-28 01:09:33 -08:00
|
|
|
ALOG_OBJ = $(BUILD_DIR)/alog.o
|
|
|
|
|
ALOG_LIB = $(TARGET_DIR)/alog.so
|
|
|
|
|
|
2022-03-07 00:43:37 -08:00
|
|
|
include $(dir $(lastword $(MAKEFILE_LIST)))tests/tests.mk
|
2022-02-27 20:45:41 -08:00
|
|
|
|
2022-03-07 11:40:22 -08:00
|
|
|
.PHONY: alog-so
|
2022-02-28 01:14:56 -08:00
|
|
|
alog-so: $(if $(shell stat $(ALOG_LIB)), clean) $(ALOG_LIB)
|
2022-02-27 20:45:41 -08:00
|
|
|
|
2022-02-28 01:09:33 -08:00
|
|
|
$(ALOG_LIB): $(TARGET_DIR) $(ALOG_OBJ)
|
|
|
|
|
$(CC) $(LDFLAGS) -o $(ALOG_LIB) $(ALOG_OBJ)
|
2022-02-27 20:45:41 -08:00
|
|
|
|
2022-02-28 01:09:33 -08:00
|
|
|
$(ALOG_OBJ): $(BUILD_DIR)
|
2022-03-07 00:43:37 -08:00
|
|
|
$(CC) $(CFLAGS) -fPIC -c $(ALOG_SRC) -o $(ALOG_OBJ)
|
2022-02-27 20:45:41 -08:00
|
|
|
|
|
|
|
|
$(BUILD_DIR):
|
|
|
|
|
mkdir $(BUILD_DIR)
|
|
|
|
|
|
|
|
|
|
$(TARGET_DIR):
|
|
|
|
|
mkdir $(TARGET_DIR)
|
|
|
|
|
|
|
|
|
|
.PHONY: clean
|
2022-02-28 01:14:56 -08:00
|
|
|
alog-clean:
|
2022-02-28 01:09:33 -08:00
|
|
|
rm $(ALOG_LIB) $(ALOG_OBJ)
|