74 lines
1.7 KiB
Makefile
74 lines
1.7 KiB
Makefile
|
|
ifndef RM_INCLUDE_DIR
|
|
RM_INCLUDE_DIR=include/
|
|
endif
|
|
ifndef RM_SOURCE_DIR
|
|
RM_SOURCE_DIR=rmutil/
|
|
endif
|
|
ifndef MODULE_SOURCE_DIR
|
|
MODULE_SOURCE_DIR=source/
|
|
endif
|
|
|
|
CFLAGS ?= -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function
|
|
CFLAGS += -I$(RM_INCLUDE_DIR)
|
|
CC=gcc
|
|
|
|
BUILD_OBJ_DIR=build/objects/
|
|
BUILD_DIR=build/
|
|
|
|
_SRCS_RM=util.c strings.c sds.c vector.c alloc.c periodic.c
|
|
SRCS=$(addprefix $(RM_SOURCE_DIR),$(_SRCS_RM))
|
|
|
|
_OBJS=util.o strings.o sds.o vector.o alloc.o periodic.o
|
|
OBJS=$(addprefix $(BUILD_OBJ_DIR),$(_OBJS))
|
|
# $(warning $(OBJS))
|
|
|
|
# find the OS
|
|
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
|
|
|
|
# Compile flags for linux / osx
|
|
ifeq ($(uname_S),Linux)
|
|
SHOBJ_CFLAGS ?= -fno-common -g -ggdb
|
|
SHOBJ_LDFLAGS ?= -shared -Bsymbolic
|
|
else
|
|
SHOBJ_CFLAGS ?= -dynamic -fno-common -g -ggdb
|
|
SHOBJ_LDFLAGS ?= -bundle -undefined dynamic_lookup
|
|
endif
|
|
|
|
$(shell mkdir -p build/objects)
|
|
|
|
all: rmutil $(BUILD_DIR)module.so
|
|
|
|
rmutil: $(BUILD_DIR)librmutil.a
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
|
|
$(BUILD_DIR)librmutil.a: $(OBJS)
|
|
ar rcs $@ $^
|
|
|
|
$(BUILD_OBJ_DIR)util.o: $(RM_SOURCE_DIR)util.c
|
|
$(CC) $(CFLAGS) -c -o $@ $^
|
|
|
|
$(BUILD_OBJ_DIR)strings.o: $(RM_SOURCE_DIR)strings.c
|
|
$(CC) $(CFLAGS) -c -o $@ $^
|
|
|
|
$(BUILD_OBJ_DIR)sds.o: $(RM_SOURCE_DIR)sds.c
|
|
$(CC) $(CFLAGS) -c -o $@ $^
|
|
|
|
$(BUILD_OBJ_DIR)vector.o: $(RM_SOURCE_DIR)vector.c
|
|
$(CC) $(CFLAGS) -c -o $@ $^
|
|
|
|
$(BUILD_OBJ_DIR)alloc.o: $(RM_SOURCE_DIR)alloc.c
|
|
$(CC) $(CFLAGS) -c -o $@ $^
|
|
|
|
$(BUILD_OBJ_DIR)periodic.o: $(RM_SOURCE_DIR)periodic.c
|
|
$(CC) $(CFLAGS) -c -o $@ $^
|
|
|
|
$(BUILD_DIR)module.so: $(BUILD_DIR)librmutil.a $(BUILD_OBJ_DIR)module.o
|
|
$(LD) -o $@ $(BUILD_OBJ_DIR)module.o $(SHOBJ_LDFLAGS) $(LIBS) -L$(BUILD_DIR) -lrmutil -lc
|
|
|
|
$(BUILD_OBJ_DIR)module.o: $(MODULE_SOURCE_DIR)module.c
|
|
$(CC) $(CFLAGS) -c -o $@ $^
|
|
|