2019-03-25 11:30:53 -06:00
|
|
|
PREFIX = $(MIX_COMPILE_PATH)/../priv
|
|
|
|
BUILD = $(MIX_COMPILE_PATH)/../obj
|
2018-07-25 16:08:53 -06:00
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
ifeq ($(MIX_COMPILE_PATH),)
|
|
|
|
$(error Something is wrong with mix. Pls fix)
|
2018-07-25 16:08:53 -06:00
|
|
|
endif
|
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
# Set Erlang-specific compile and linker flags
|
|
|
|
ERL_CFLAGS ?= -I$(ERL_EI_INCLUDE_DIR)
|
|
|
|
ERL_LDFLAGS ?= -L$(ERL_EI_LIBDIR) -lei
|
2018-12-10 10:35:47 -07:00
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
CFLAGS += -fPIC --std=c11
|
|
|
|
LDFLAGS += -fPIC -shared
|
2018-12-10 10:35:47 -07:00
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
ifeq ($(MIX_TARGET),host)
|
2018-12-10 10:35:47 -07:00
|
|
|
else
|
2019-03-25 11:30:53 -06:00
|
|
|
# oof
|
|
|
|
$(shell $(RM) $(PREFIX)/*.so $(BUILD)/*.o)
|
|
|
|
endif
|
2018-07-25 16:08:53 -06:00
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
ifeq ($(ERL_EI_INCLUDE_DIR),)
|
|
|
|
$(warning ERL_EI_INCLUDE_DIR not set. Invoke via mix)
|
2018-07-25 16:08:53 -06:00
|
|
|
endif
|
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
.PHONY: all clean
|
|
|
|
|
|
|
|
all: $(PREFIX) \
|
|
|
|
$(BUILD) \
|
|
|
|
$(PREFIX)/build_calendar.so
|
|
|
|
|
|
|
|
clean:
|
|
|
|
$(RM) $(PREFIX)/*.so
|
2018-07-25 16:08:53 -06:00
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
## BUILD CALENDAR NIF
|
2018-07-25 16:08:53 -06:00
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
$(PREFIX)/build_calendar.so: $(BUILD)/build_calendar.o
|
|
|
|
$(CC) -o $@ $(ERL_LDFLAGS) $(LDFLAGS) $^
|
2018-07-25 16:08:53 -06:00
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
$(BUILD)/build_calendar.o: c_src/build_calendar/build_calendar.c
|
|
|
|
$(CC) -c $(ERL_CFLAGS) $(CFLAGS) -o $@ $<
|
2018-07-25 16:08:53 -06:00
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
## DIRECTORIES
|
2018-07-25 16:08:53 -06:00
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
$(PREFIX):
|
|
|
|
mkdir -p $(PREFIX)
|
2018-07-25 16:08:53 -06:00
|
|
|
|
2019-03-25 11:30:53 -06:00
|
|
|
$(BUILD):
|
|
|
|
mkdir -p $(BUILD)
|