Current section

Files

Jump to
erlkaf c_src Makefile
Raw

c_src/Makefile

PROJECT_NIF_NAME=erlkaf_nif
include nif.mk
ifeq ($(UNAME_SYS), darwin)
OPENSSL_ROOT := $(shell brew --prefix openssl@1.1)
LZ4_ROOT := $(shell brew --prefix lz4)
ZSTD_ROOT := $(shell brew --prefix zstd)
CXXFLAGS += -I$(OPENSSL_ROOT)/include
LDFLAGS += -L$(OPENSSL_ROOT)/lib \
-L$(LZ4_ROOT)/lib \
-L$(ZSTD_ROOT)/lib \
-L/usr/local/lib
LDFLAGS += -Wl,-U,_enif_alloc \
-Wl,-U,_enif_free \
-Wl,-U,_enif_alloc_resource \
-Wl,-U,_enif_open_resource_type \
-Wl,-U,_enif_release_resource \
-Wl,-U,_enif_keep_resource \
-Wl,-U,_enif_alloc_env \
-Wl,-U,_enif_free_env \
-Wl,-U,_enif_get_local_pid \
-Wl,-U,_enif_send \
-Wl,-U,_enif_thread_create \
-Wl,-U,_enif_thread_join \
-Wl,-U,_enif_thread_opts_create \
-Wl,-U,_enif_thread_opts_destroy \
-Wl,-U,_enif_mutex_create \
-Wl,-U,_enif_mutex_destroy \
-Wl,-U,_enif_mutex_lock \
-Wl,-U,_enif_mutex_unlock \
-Wl,-U,_enif_priv_data \
-Wl,-U,_enif_self \
-Wl,-U,_enif_consume_timeslice \
-Wl,-U,_enif_inspect_binary \
-Wl,-U,_enif_inspect_iolist_as_binary \
-Wl,-U,_enif_is_binary \
-Wl,-U,_enif_is_identical \
-Wl,-U,_enif_is_list \
-Wl,-U,_enif_get_int \
-Wl,-U,_enif_get_long \
-Wl,-U,_enif_get_list_cell \
-Wl,-U,_enif_get_list_length \
-Wl,-U,_enif_get_resource \
-Wl,-U,_enif_get_tuple \
-Wl,-U,_enif_make_copy \
-Wl,-U,_enif_make_int \
-Wl,-U,_enif_make_long \
-Wl,-U,_enif_make_ref \
-Wl,-U,_enif_make_atom \
-Wl,-U,_enif_make_badarg \
-Wl,-U,_enif_make_existing_atom \
-Wl,-U,_enif_make_double \
-Wl,-U,_enif_make_new_binary \
-Wl,-U,_enif_make_resource \
-Wl,-U,_enif_make_string_len \
-Wl,-U,_enif_make_tuple \
-Wl,-U,_enif_make_new_map \
-Wl,-U,_enif_make_map_put \
-Wl,-U,_enif_make_list \
-Wl,-U,_enif_make_list_from_array \
-Wl,-U,_enif_make_ulong \
-Wl,-U,_enif_get_ulong \
-Wl,-U,_enif_get_uint \
-Wl,-U,_enif_make_list_cell \
-Wl,-U,_enif_make_reverse_list
endif
CXXFLAGS += -DNDEBUG \
-I ../_build/deps/librdkafka/src \
-I ../_build/deps \
-g -Wextra -Werror -Wno-missing-field-initializers -Wno-ignored-qualifiers -fno-exceptions -fno-rtti -std=c++11
# Check if a C++ flag is supported by the compiler.
cxx_flag_if_supported = \
$(shell printf 'int main(){return 0;}\n' | \
$(CXX) -x c++ -c -Werror $(1) -o /dev/null - >/dev/null 2>&1 && \
printf '%s' '$(1)')
# Silence Clang's "variable length arrays in C++" warning when supported.
CXXFLAGS += $(call cxx_flag_if_supported,-Wno-vla-cxx-extension)
LDFLAGS += -L ../_build/deps/librdkafka/src \
-lrdkafka \
-lsasl2 \
-lz \
-lssl \
-lcrypto \
-lstdc++ \
-llz4 \
-lzstd \
-lcurl