ethermess/Makefile

73 lines
2.1 KiB
Makefile
Raw Normal View History

2019-07-03 19:20:25 +00:00
DESTDIR ?=
PREFIX ?= /usr/local
EXEC_PREFIX ?= $(PREFIX)
2019-07-15 16:09:49 +00:00
BINDIR ?= $(EXEC_PREFIX)/bin
LIBEXECDIR ?= $(EXEC_PREFIX)/libexec
2019-07-16 14:01:25 +00:00
DATAROOTDIR ?= $(PREFIX)/share
MANDIR ?= $(DATAROOTDIR)/man
2019-07-03 19:20:25 +00:00
CFLAGS += -Os -g -Wall -Wextra -pedantic
CPPFLAGS +=
LDFLAGS +=
2019-07-10 19:10:14 +00:00
SED ?= sed
BINS := ethermess
2019-07-10 19:10:14 +00:00
LIBEXECS := ethermess-backend
TOOLS := ethertype-dump arp-request
2019-07-16 14:01:25 +00:00
MAN1S := ethermess.1
2019-07-17 13:24:46 +00:00
MAN7S := ethermess.7
2019-07-05 13:19:35 +00:00
2019-07-03 19:20:25 +00:00
.SUFFIXES:
.SUFFIXES: .c .o
.PHONY: default all install uninstall clean distclean
2019-07-03 19:20:25 +00:00
default: $(BINS) $(LIBEXECS)
all: $(BINS) $(LIBEXECS) $(TOOLS)
2019-07-03 19:20:25 +00:00
ethertype-dump: ethertype-dump.o
$(CC) -o $@ $< $(LDFLAGS)
2019-07-05 13:19:35 +00:00
arp-request: arp-request.o
$(CC) -o $@ $< $(LDFLAGS)
2019-07-10 19:10:14 +00:00
ethermess: ethermess.py
# I'm not sure you can make this work 100% with traditional make
$(SED) "2s/__LIBEXECDIR__/'`printf "%s" "$(LIBEXECDIR)" | sed "s,\\\\\\\\,\\\\\\\\\\\\\\\\,g;s,/,\\\\\\\\/,g;s,"'"'",\\\\\\\\"'"'",g"`'/" < $< > $@
2019-07-10 19:10:14 +00:00
chmod +x $@
ethermess-backend: ethermess-backend.o
$(CC) -o $@ $< $(LDFLAGS)
2019-07-03 19:20:25 +00:00
.c.o:
$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
2019-07-17 13:24:46 +00:00
install: $(BINS) $(LIBEXECS) $(MAN1S) $(MAN7S)
2019-07-18 21:02:21 +00:00
install -D -m 755 -t '$(DESTDIR)$(BINDIR)' $(BINS)
install -D -m 755 -t '$(DESTDIR)$(LIBEXECDIR)' $(LIBEXECS)
install -D -m 644 -t '$(DESTDIR)$(MANDIR)/man1' $(MAN1S)
install -D -m 644 -t '$(DESTDIR)$(MANDIR)/man7' $(MAN7S)
2019-07-15 20:47:03 +00:00
@echo
@echo '--------------------------------------------------------------------------------'
@echo 'To finish the installation, set the CAP_NET_RAW on $(LIBEXECDIR)/ethermess-backend with'
@echo
@echo ' # setcap CAP_NET_RAW=ep $(LIBEXECDIR)/ethermess-backend'
@echo
@echo 'ethermess-backend needs to be able to create a raw ethernet packet socket, which'
2019-07-15 20:47:54 +00:00
@echo 'is a privileged operation. CAP_NET_RAW allows it to do so without needing to run'
@echo 'with root privileges.'
2019-07-15 20:47:03 +00:00
@echo '--------------------------------------------------------------------------------'
2019-07-03 19:20:25 +00:00
uninstall:
2019-07-15 16:09:49 +00:00
cd $(DESTDIR)$(BINDIR) && rm $(BINS)
2019-07-16 14:01:25 +00:00
cd $(DESTDIR)$(LIBEXECDIR) && rm $(LIBEXECS)
cd $(DESTDIR)$(MANDIR)/man1 && rm $(MAN1S)
2019-07-17 13:24:46 +00:00
cd $(DESTDIR)$(MANDIR)/man7 && rm $(MAN7S)
2019-07-03 19:20:25 +00:00
clean:
rm -f $(BINS) $(LIBEXECS) $(TOOLS) *.o
2019-07-03 19:20:25 +00:00
distclean: clean