PRIV_DIR = $(MIX_APP_PATH)/priv
NIF_SO = $(PRIV_DIR)/excdf_nif.so

NETCDF_CFLAGS := $(shell nc-config --cflags)
NETCDF_LIBS := $(shell nc-config --libs)

ERLANG_PATH = $(shell erl -eval 'io:format("~s", [lists:concat([code:root_dir(), "/erts-", erlang:system_info(version), "/include"])])' -s init stop -noshell)

CFLAGS = -O2 -Wall -Wextra -Wno-unused-parameter -fPIC -shared
CFLAGS += -I$(ERLANG_PATH)
CFLAGS += $(NETCDF_CFLAGS)

LDFLAGS = $(NETCDF_LIBS)

UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
	CFLAGS += -undefined dynamic_lookup
endif

all: $(NIF_SO)

$(NIF_SO): c_src/excdf_nif.c
	@mkdir -p $(PRIV_DIR)
	$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)

clean:
	rm -f $(NIF_SO)

.PHONY: all clean
