# Makefile
# Copyright (C) 2008 Jean-Philippe Guillemin <jp.guillemin@free.fr>
# license: This software is under GPL version 2 of license


NAME = netpkg
VERSION = 4.7.2
PERLVERSION = 5.12.3
DESTDIR =
PREFIX = /usr
LOCALEPATH = $(DESTDIR)$(PREFIX)/share/locale
SBINPATH = $(DESTDIR)$(PREFIX)/sbin
BINPATH = $(DESTDIR)$(PREFIX)/bin
LIBEXECPATH = $(DESTDIR)$(PREFIX)/libexec
MANPATH = $(DESTDIR)$(PREFIX)/man/man8
DOCPATH = $(DESTDIR)$(PREFIX)/doc/$(NAME)-$(VERSION)
DESKTOPPATH = $(DESTDIR)$(PREFIX)/share/applications
ICONPATH = $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps
SMALLICONPATH = $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps
CONFIGPATH = $(DESTDIR)/etc
MODPATH = $(DESTDIR)$(PREFIX)/lib/perl5/$(PERLVERSION)/i486-linux-thread-multi/ZW/Netpkg

binary1 = vfilter
binary2 = listbuilder
program1 = netpkg
program2 = xnetpkg
program3 = zenpkg
module = Netpkg.pm

CFLAGS = -Wall -O2 -march=i486 -mtune=i686

DEFINE = -D_REENTRANT 

all : $(binary1) $(binary2) $(NAME).po

$(binary1) : $(binary1).o 
	gcc $(CFLAGS) $(DEFINE) -o $@ $^

$(binary1).o : $(binary1).c 
	gcc $(CFLAGS) $(DEFINE) -c $^
	
$(binary2) : $(binary2).o 
	gcc $(CFLAGS) $(DEFINE) -o $@ $^

$(binary2).o : $(binary2).c 
	gcc $(CFLAGS) $(DEFINE) -c $^

debug: DEFINE += -DDEBUG
debug: CFLAGS += -g
debug: $(binary1) $(binary2)


$(NAME).po: 
	xgettext -s --from-code=UTF-8 --language=Perl -d $(NAME) -o $(NAME).po $(program2) $(module)
	xgettext -s -j --from-code=UTF-8 --language=Shell -d $(NAME) -o $(NAME).po zenpkg
	sed -i 's/CHARSET/UTF-8/' $(NAME).po
	for PO in `ls po/*.po` ; do \
		msgmerge -U -N --previous $$PO $(NAME).po; \
		LANGUAGE=`basename $$PO .po`; \
		echo -n "$$LANGUAGE.mo : "; \
		msgfmt -o mo/$$LANGUAGE.mo -v $$PO; \
	done;	
	rm -f po/*.po~

libinstall : $(binary1) $(binary2) $(module) 
	install -D -m 0444 -o root -g root $(module) $(MODPATH)/$(module)
	strip $(binary1)	
	strip $(binary2)
	install -D -m 0755 -o root -g root $(binary1) $(LIBEXECPATH)/$(binary1)
	install -D -m 0755 -o root -g root $(binary2) $(LIBEXECPATH)/$(binary2)

install : $(program1) $(program2) $(program3) libinstall $(NAME).po
	install -D -m 0755 -o root -g root $(program1) $(SBINPATH)/$(program1)
	install -D -m 0755 -o root -g root $(program2) $(SBINPATH)/$(program2)
	install -D -m 0755 -o root -g root $(program3) $(SBINPATH)/$(program3)
	gzip -c -9 netpkg.8 > netpkg.8.gz
	install -D -m 644 -o root -g root netpkg.8.gz $(MANPATH)/netpkg.8.gz
	install -D -m 644 -o root -g root netpkg.conf $(CONFIGPATH)/netpkg.conf
	install -D -m 644 -o root -g root netpkg.desktop $(DESKTOPPATH)/netpkg.desktop
	mkdir -p $(SMALLICONPATH) $(ICONPATH) $(DOCPATH)
	install -D -m 644 -o root -g root icons/scalable/*.svg $(ICONPATH)/
	install -D -m 644 -o root -g root icons/16x16/*.png $(SMALLICONPATH)/
	install -m 644 -o root -g root doc/* $(DOCPATH)
	for MO in `ls mo/*.mo` ; do \
		LANGUAGE=`basename $$MO .mo`; \
		mkdir -p $(LOCALEPATH)/$$LANGUAGE/LC_MESSAGES; \
		install -D -m 644 -o root -g root $$MO $(LOCALEPATH)/$$LANGUAGE/LC_MESSAGES/$(NAME).mo; \
	done; 

uninstall :
	rm -f $(LIBEXECPATH)/$(binary1) $(LIBEXECPATH)/$(binary2)
	rm -f $(MODPATH)/$(module)
	rm -f $(SBINPATH)/$(program1) $(SBINPATH)/$(program2)
	rm -rf $(DOCPATH)
	rm -f $(DESKTOPPATH)/netpkg.desktop
	rm -f $(CONFIGPATH)/netpkg.conf
	rm -f $(MANPATH)/netpkg.8.gz
	rm -f $(LOCALEPATH)/*/LC_MESSAGES/$(NAME).mo
  
clean :
	rm -f $(binary1).o $(binary1) $(binary2).o $(binary2) netpkg.8.gz netpkg.po po/*.po~ mo/*.mo $(NAME).po


	




