PREFIX = $(MIX_APP_PATH)/priv
BUILD = $(MIX_APP_PATH)/obj

NIF = $(PREFIX)/libxl.so

CFLAGS = -std=c11 -fpic -D_UNICODE -DUNICODE
LDFLAGS = -dynamiclib -undefined dynamic_lookup -lxl

ERL_CFLAGS = -I$(ERL_EI_INCLUDE_DIR) -I/usr/include -I/usr/local/include

ERL_LDFLAGS = -L$(ERL_EI_LIBDIR) -lei

SRC = $(wildcard c_src/*.c)

HEADERS = $(wildcard c_src/*.h)

OBJ = $(SRC:c_src/%.c=$(BUILD)/%.o)

all: install

install: $(PREFIX) $(BUILD) $(NIF)

$(OBJ): $(HEADERS) Makefile

$(BUILD)/%.o: c_src/%.c
	$(CC) -c $(CFLAGS) $(ERL_CFLAGS) -o $@ $<

$(NIF): $(OBJ)
	$(CC) $(LDFLAGS) $(ERL_LDFLAGS) -o $@ $^

$(PREFIX) $(BUILD):
	mkdir -p $@

clean:
	$(RM) $(NIF) $(OBJ)

.PHONY: all clean install