summaryrefslogtreecommitdiff
path: root/Makefile
blob: 16752fc7942fe6dcf2583fb00adec2df8615c3f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Makefile for llmnrd
#
# Copyright (C) 2014-2016 Tobias Klauser <tklauser@distanz.ch>

VERSION = 0.2

# llmnrd binary
D_P 	= llmnrd
D_OBJS	= llmnr.o iface.o socket.o util.o llmnrd.o
D_LIBS	= -lpthread

# llmnr-query binary
Q_P 	= llmnr-query
Q_OBJS	= util.o llmnr-query.o
Q_LIBS	=

CC	= $(CROSS_COMPILE)gcc
INSTALL	= install

CFLAGS	?= -W -Wall -O2
LDFLAGS	?=

ifeq ($(shell git rev-parse > /dev/null 2>&1; echo $$?), 0)
  GIT_VERSION = "(git id $(shell git describe --always))"
else
  GIT_VERSION =
endif

CFLAGS	+= -DVERSION_STRING=\"v$(VERSION)\" -DGIT_VERSION=\"$(GIT_VERSION)\"

ifeq ($(DEBUG), 1)
  CFLAGS += -g -DDEBUG
endif

Q	?= @
CCQ	= $(Q)echo "  CC $<" && $(CC)
LDQ	= $(Q)echo "  LD $@" && $(CC)

prefix	?= /usr/local

BINDIR	= $(prefix)/bin
SBINDIR	= $(prefix)/sbin
DESTDIR	=

all: $(D_P) $(Q_P)

$(D_P): $(D_OBJS)
	$(LDQ) $(LDFLAGS) -o $@ $(D_OBJS) $(D_LIBS)

$(Q_P): $(Q_OBJS)
	$(LDQ) $(LDFLAGS) -o $@ $(Q_OBJS) $(Q_LIBS)

%.o: %.c %.h
	$(CCQ) $(CFLAGS) -o $@ -c $<

%.o: %.c
	$(CCQ) $(CFLAGS) -o $@ -c $<

install_$(D_P): $(D_P)
	@echo "  INSTALL $(D_P)"
	@$(INSTALL) -d -m 755 $(DESTDIR)$(SBINDIR)
	@$(INSTALL) -m 755 $(D_P) $(DESTDIR)$(SBINDIR)/$(D_P)

install_$(Q_P): $(Q_P)
	@echo "  INSTALL $(Q_P)"
	@$(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR)
	@$(INSTALL) -m 755 $(Q_P) $(DESTDIR)$(BINDIR)/$(Q_P)

install: install_$(D_P) install_$(Q_P)

clean:
	@echo "  CLEAN"
	@rm -f $(D_OBJS) $(D_P)
	@rm -f $(Q_OBJS) $(Q_P)

# Maintainer targets

GIT_TAG = git tag -a v$(VERSION) -s -m "llmnrd $(VERSION) release"
GIT_ARCHIVE = git archive --prefix=llmnrd-$(VERSION)/ v$(VERSION) | \
	      $(1) -9 > ../llmnrd-$(VERSION).tar.$(2)
GPG_SIGN = gpg -a --output ../llmnrd-$(VERSION).tar.$(1).asc --detach-sig \
		../llmnrd-$(VERSION).tar.$(1)
release:
	$(GIT_TAG)
	$(call GIT_ARCHIVE,gzip,gz)
	$(call GIT_ARCHIVE,bzip2,bz2)
	$(call GPG_SIGN,gz)
	$(call GPG_SIGN,bz2)
	$(Q)echo "Created release $(VERSION)"