# cares-tools Copyright 2026 Fabian Groffen
#
# See LICENSE for the licence.

PKG_CONFIG  = pkg-config

CARES_CFLAGS = $(shell $(PKG_CONFIG) --cflags libcares)
CARES_LIBS   = $(shell $(PKG_CONFIG) --libs   libcares)
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
# - commit release version
# - tag commit as VERSION (without leading v or something)
# - unset RELEASE, and up VERSION
# - commit post release change
RELEASE     = true
VERSION     = 0.3

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

TOOLS=\
	  host \
	  nslookup \
	  $(NULL)

all: $(TOOLS)

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

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

host: host.c util.c
	$(CC) -o $@ \
		$(CPPFLAGS) $(CFLAGS) $(VER_CFLAGS) $(CARES_CFLAGS) \
		$(LDFLAGS) \
		$^ \
		$(LIBS) $(CARES_LIBS)

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