#
# (C) 2009-2011 Mika Ilmaranta <ilmis@nullnet.fi>
#
# License: GPLv2
#

VERSION	?= $(lastword $(shell grep ^Version: lsm.spec))
PROGS	= lsm
PKG     = lsm

CC	= gcc
override CFLAGS	+= -Wall -O2 -DLSM_VERSION=\"$(VERSION)\"
#override CFLAGS += -D NO_PLUGIN_EXPORT
#override CFLAGS += -D NO_PLUGIN_EXPORT_MUNIN
#override CFLAGS += -D NO_PLUGIN_EXPORT_STATUS

LDFLAGS =

INITDDIR ?= /etc/init.d
DOCDIR	?= /usr/share/doc/lsm

DOCFILES = README lsm.conf.sample default_script.sample rsyslog-lsm.conf.sample
SCRIPTS	= shorewall_script shorewall6_script default_script group_script

.PHONY:	all clean distclean tar rpm

all: $(PROGS)

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

lsm: lsm.o icmp_t.o icmp6_t.o config.o globals.o cksum.o forkexec.o signal_handler.o timecalc.o plugin_export.o save_statuses.o pidfile.o cmdline.o usage.o
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)

clean distclean:
	rm -rf *~ .*~ *.o $(PROGS) Makefile.depend debugfiles.list debuglinks.list debugsources.list *.orig

tar: distclean
	tar zcvf ../$(PKG)-$(VERSION).tar.gz \
		--transform=s,.,$(PKG)-$(VERSION), \
		--show-transformed-name \
		--exclude .git \
		--exclude .gitignore \
		.

rpm: tar
	cp ../$(PKG)-$(VERSION).tar.gz ~/rpmbuild/SOURCES
	cp $(PKG).spec ~/rpmbuild/SPECS
	rpmbuild -ba ~/rpmbuild/SPECS/$(PKG).spec

Makefile.depend: *.c *.h Makefile
	$(CC) -MM *.c > $@

install: all
	mkdir -p $(DESTDIR)/etc/lsm
	mkdir -p $(DESTDIR)$(INITDDIR)
	mkdir -p $(DESTDIR)/usr/sbin
	mkdir -p $(DESTDIR)$(DOCDIR)
	mkdir -p $(DESTDIR)/usr/share/lsm
	mkdir -p $(DESTDIR)/usr/libexec/lsm
	mkdir -p $(DESTDIR)/var/lib/lsm
	install -m0644 lsm.conf $(DESTDIR)/etc/lsm
	install -m0755 lsm.init $(DESTDIR)$(INITDDIR)/lsm
	install -m0755 lsm $(DESTDIR)/usr/sbin
	install -m0644 $(DOCFILES) $(DESTDIR)$(DOCDIR)
	install -m0755 $(SCRIPTS) $(DESTDIR)/usr/libexec/lsm
	ln -sf ../../libexec/lsm/default_script $(DESTDIR)/usr/share/lsm/default_script
	ln -sf ../../libexec/lsm/shorewall_script $(DESTDIR)/usr/share/lsm/shorewall_script

-include Makefile.depend

#
