aboutsummaryrefslogtreecommitdiffstats
path: root/src/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile122
1 files changed, 122 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..821295e
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,122 @@
+
+-include ../config.mk
+
+BIN_TARGETS = mtu
+SBIN_TARGETS = pingu pinguctl
+
+TARGETS = $(BIN_TARGETS) $(SBIN_TARGETS) $(LUA_TARGETS)
+
+prefix ?= /usr/local
+exec_prefix ?= $(prefix)
+bindir ?= $(exec_prefix)/bin
+sbindir ?= $(exec_prefix)/sbin
+sysconfdir ?= $(prefix)/etc
+localstatedir ?= $(prefix)/var
+libdir ?= $(exec_prefix)/lib
+datarootdir ?= $(prefix)/share
+
+rundir ?= $(localstatedir)/run
+
+pingustatedir = $(rundir)/pingu
+
+DESTDIR ?=
+
+INSTALL = install
+INSTALLDIR = $(INSTALL) -d
+PKG_CONFIG ?= pkg-config
+
+ifdef LUAPC
+LUA_TARGETS := client.so
+INSTALL_LUA_TARGET := install-lua
+LUA_CFLAGS := $(shell $(PKG_CONFIG) --cflags $(LUAPC))
+LUA_VERSION ?= $(shell $(PKG_CONFIG) --variable V $(LUAPC))
+
+luasharedir := $(datarootdir)/lua/$(LUA_VERSION)
+lualibdir := $(libdir)/lua/$(LUA_VERSION)
+
+endif
+
+SUBDIRS :=
+
+CFLAGS ?= -g
+CFLAGS += -I../
+CFLAGS += -DPINGU_VERSION=\"$(PINGU_VERSION)\"
+CFLAGS += -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99
+CFLAGS += -DDEFAULT_PIDFILE=\"$(pingustatedir)/pingu.pid\"
+CFLAGS += -DDEFAULT_CONFIG=\"$(sysconfdir)/pingu/pingu.conf\"
+CFLAGS += -DDEFAULT_ADM_client=\"$(pingustatedir)/pingu.ctl\"
+
+pingu_OBJS = \
+ icmp.o \
+ log.o \
+ pingu.o \
+ pingu_adm.o \
+ pingu_burst.o \
+ pingu_conf.o \
+ pingu_host.o \
+ pingu_iface.o \
+ pingu_netlink.o \
+ pingu_ping.o \
+ pingu_route.o \
+ sockaddr_util.o \
+ xlib.o
+
+pingu_LIBS = -lev
+
+pinguctl_OBJS = \
+ log.o \
+ pinguctl.o
+
+pinguctl_LIBS =
+
+mtu_OBJS = \
+ mtu.o \
+ netlink.o \
+ icmp.o
+
+lua-client.o_CFLAGS = $(LUA_CFLAGS)
+client.so_OBJS = \
+ lua-client.o
+
+client.so_LDFLAGS = -shared
+
+ALL_OBJS= $(pingu_OBJS) $(pinguctl_OBJS) $(mtu_OBJS) $(client.so_OBJS)
+
+all: $(TARGETS)
+
+%.o: %.c
+ $(CC) $(CFLAGS) $($@_CFLAGS) -c $<
+
+$(TARGETS):
+ $(CC) $(LDFLAGS) $($@_LDFLAGS) $($@_OBJS) $($@_LIBS) -o $@
+
+pingu: $(pingu_OBJS)
+pinguctl: $(pinguctl_OBJS)
+client.so: $(client.so_OBJS)
+mtu: $(mtu_OBJS)
+
+$(SUBDIRS):
+ $(MAKE) -C $@
+
+install: $(TARGETS) $(INSTALL_LUA_TARGET)
+ $(INSTALLDIR) $(DESTDIR)/$(bindir) $(DESTDIR)/$(sbindir) \
+ $(DESTDIR)/$(pingustatedir)
+ $(INSTALL) $(BIN_TARGETS) $(DESTDIR)/$(bindir)
+ $(INSTALL) $(SBIN_TARGETS) $(DESTDIR)/$(sbindir)
+ for dir in $(SUBDIRS); do \
+ $(MAKE) -C $$dir $@ || break; \
+ done
+
+install-lua: client.so pingu.lua
+ $(INSTALLDIR) $(DESTDIR)$(luasharedir) \
+ $(DESTDIR)$(lualibdir)/pingu
+ $(INSTALL) pingu.lua $(DESTDIR)$(luasharedir)/
+ $(INSTALL) client.so $(DESTDIR)$(lualibdir)/pingu/
+
+clean:
+ rm -f $(TARGETS) $(ALL_OBJS)
+ for dir in $(SUBDIRS); do \
+ $(MAKE) -C $$dir $@ || break; \
+ done
+
+.PHONY: $(SUBDIRS)