# ldns-tools Copyright 2025 Fabian Groffen
#
# See LICENSE for the licence.

PKG_CONFIG  = pkg-config

LDNS_CFLAGS = $(shell $(PKG_CONFIG) --cflags ldns)
LDNS_LIBS   = $(shell $(PKG_CONFIG) --libs   ldns)
RL_CFLAGS   = $(shell $(PKG_CONFIG) --cflags readline)
RL_LIBS     = $(shell $(PKG_CONFIG) --libs   readline)
CFLAGS     ?= -O2 -pipe -Wall -Werror

# upon release:
# - set RELEASE to true, and up VERSION
# - commit release version
# - tag commit as VERSION (without leading v or something)
# - unset RELEASE
# - commit post release change
RELEASE     = true
VERSION     = 0.1

ifdef RELEASE
	VER_CFLAGS  = -DLDNS_TOOLS_VERSION=\"$(VERSION)\"
else
	GIT_VERSION = $(shell git describe --abbrev=6 --dirty --always 2>/dev/null || echo unknown)
	VER_CFLAGS  = -DLDNS_TOOLS_VERSION=\"$(VERSION)_git-$(GIT_VERSION)\"
endif

TOOLS=\
	  host \
	  nslookup

all: $(TOOLS)

clean:
	rm -f $(TOOLS) *.o
	rm -Rf *.dSYM

util.o: util.c
	$(CC) -c -o $@ \
		$(CFLAGS) $(VER_CFLAGS) $(LDNS_CFLAGS) \
		$(LDFLAGS) \
		$?

host: host.c util.c
	$(CC) -o $@ \
		$(CFLAGS) $(VER_CFLAGS) $(LDNS_CFLAGS) \
		$(LDFLAGS) \
		$^ \
		$(LIBS) $(LDNS_LIBS)

nslookup: nslookup.c util.o
	$(CC) -o $@ \
		$(CFLAGS) $(VER_CFLAGS) $(LDNS_CFLAGS) $(RL_CFLAGS) \
		$(LDFLAGS) \
		$^ \
		$(LIBS) $(LDNS_LIBS) $(RL_LIBS)
