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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
# Makefile for llmnrd
#
# Copyright (C) 2014-2017 Tobias Klauser <tklauser@distanz.ch>
VERSION = 0.5
# llmnrd binary
D_P = llmnrd
D_OBJS = llmnr.o iface.o socket.o util.o llmnrd.o
D_LIBS =
D_MAN = $(D_P).8
# llmnr-query binary
Q_P = llmnr-query
Q_OBJS = util.o llmnr-query.o
Q_LIBS =
Q_MAN = $(Q_P).1
CC = $(CROSS_COMPILE)gcc
INSTALL = install
GZIP = gzip -9 -c
CPPFLAGS ?=
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_MIN := -W -Wall -DVERSION_STRING=\"v$(VERSION)\" -DGIT_VERSION=\"$(GIT_VERSION)\"
ifeq ($(DEBUG), 1)
CFLAGS_MIN += -g -DDEBUG
endif
CFLAGS_WARN := -Wextra \
-Waggregate-return \
-Wbad-function-cast \
-Wdeclaration-after-statement \
-Wformat-nonliteral \
-Wformat-security \
-Wmissing-declarations \
-Wmissing-format-attribute \
-Wmissing-prototypes \
-Wsign-compare \
-Wstrict-prototypes \
-Wundef \
-Wunused \
-Wwrite-strings
CFLAGS ?= -O2 $(CFLAGS_WARN)
override CFLAGS := $(CFLAGS_MIN) $(CFLAGS)
Q ?= @
ifeq ($(Q),)
CCQ = $(CC)
LDQ = $(CC)
else
CCQ = $(Q)echo " CC $<" && $(CC)
LDQ = $(Q)echo " LD $@" && $(CC)
endif
prefix ?= /usr/local
BINDIR = $(prefix)/bin
SBINDIR = $(prefix)/sbin
MAN1DIR = $(prefix)/share/man/man1
MAN8DIR = $(prefix)/share/man/man8
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) $(CPPFLAGS) -o $@ -c $<
%.o: %.c
$(CCQ) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
install_$(D_P): $(D_P)
@echo " INSTALL $(D_P)"
$(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(SBINDIR)
$(Q)$(INSTALL) -m 755 $(D_P) $(DESTDIR)$(SBINDIR)/$(D_P)
$(Q)$(GZIP) doc/$(D_MAN) > $(D_MAN).gz
$(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(MAN8DIR)
$(Q)$(INSTALL) -m 644 $(D_MAN).gz $(DESTDIR)$(MAN8DIR)/$(D_MAN).gz
install_$(Q_P): $(Q_P)
@echo " INSTALL $(Q_P)"
$(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR)
$(Q)$(INSTALL) -m 755 $(Q_P) $(DESTDIR)$(BINDIR)/$(Q_P)
$(Q)$(GZIP) doc/$(Q_MAN) > $(Q_MAN).gz
$(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(MAN1DIR)
$(Q)$(INSTALL) -m 644 $(Q_MAN).gz $(DESTDIR)$(MAN1DIR)/$(Q_MAN).gz
install: install_$(D_P) install_$(Q_P)
clean:
@echo " CLEAN"
$(Q)rm -f $(D_OBJS) $(D_P)
$(Q)rm -f $(Q_OBJS) $(Q_P)
$(Q)rm -f $(D_P).8.gz
$(Q)rm -f $(Q_P).1.gz
# 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)"
|