CXX ?= g++
PKG_CONFIG ?= pkg-config
PREFIX ?= /usr/local

TARGET := binaryconverter
SRC := src/binaryconverter.cpp
BUILD_DIR := build
BIN := $(BUILD_DIR)/$(TARGET)

CXXFLAGS ?= -O3 -DNDEBUG -march=native
CPPFLAGS += -std=c++17 -Wall -Wextra -Wpedantic -D_FILE_OFFSET_BITS=64
LIBCRYPTO_CFLAGS := $(shell $(PKG_CONFIG) --cflags libcrypto 2>/dev/null)
LIBCRYPTO_LIBS := $(shell $(PKG_CONFIG) --libs libcrypto 2>/dev/null)
LDLIBS += $(if $(LIBCRYPTO_LIBS),$(LIBCRYPTO_LIBS),-lcrypto)

.PHONY: all clean install

all: $(BIN)

$(BIN): $(SRC)
	@mkdir -p $(BUILD_DIR)
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LIBCRYPTO_CFLAGS) -o $@ $< $(LDFLAGS) $(LDLIBS)

install: $(BIN)
	install -Dm755 $(BIN) "$(DESTDIR)$(PREFIX)/bin/$(TARGET)"

clean:
	rm -rf $(BUILD_DIR)
