Update TODO.
[clive-utils.git] / Makefile
bloba61ffdf2b34fc59183a7952bd23a4dc61641b6b7
1 # GNU Makefile
3 SHELL = /bin/sh
5 prefix = $(HOME)
6 bindir = $(prefix)/bin
7 datarootdir = $(prefix)/share
8 datadir = $(datarootdir)
9 mandir = $(datarootdir)/man
10 man1dir = $(mandir)/man1
12 INSTALL = install -c
13 INSTALL_D = install -d
14 INSTALL_M = install -c -m 444
15 RM = rm -f
16 PERL = perl
17 POD2MAN = pod2man
18 AWK = awk
19 TR = tr
21 WITH_MAN = yes
22 WITH_CHECK = yes
24 .PHONY: all checks
25 all: checks
27 MODULES = \
28 Config::Tiny WWW::Curl Tk Tk::Tree Tk::DialogBox HTML::TokeParser \
29 XML::RSS::LibXML URI::Escape HTML::Strip Crypt::PasswdMD5 Crypt::Twofish \
31 MODULES_OPTIONAL = \
32 Clipboard Tk::FontDialog
34 checks:
35 ifeq ($(WITH_CHECK),yes)
36 @echo == Required Perl modules:
37 @for m in $(MODULES); \
38 do \
39 result=`$(PERL) -M$$m -e "print 'yes'" 2>/dev/null || echo no`;\
40 echo "$$m ...$$result"; \
41 done
42 @echo == Optional Perl modules:
43 @for m in $(MODULES_OPTIONAL); \
44 do \
45 result=`$(PERL) -M$$m -e "print 'yes'" 2>/dev/null || echo no`;\
46 echo "$$m ...$$result"; \
47 done
48 else
49 @echo Disable module checking.
50 endif
52 .PHONY: install uninstall
54 SCRIPTS = clivefeed clivescan clivepass
56 install:
57 $(INSTALL_D) $(DESTDIR)$(bindir)
58 @for s in $(SCRIPTS); \
59 do \
60 echo "$(INSTALL) $$s $(DESTDIR)$(bindir)/$$s"; \
61 $(INSTALL) $$s $(DESTDIR)$(bindir)/$$s; \
62 done
63 ifeq ($(WITH_MAN),yes)
64 $(INSTALL_D) $(DESTDIR)$(man1dir)
65 @for s in $(SCRIPTS); \
66 do \
67 echo "$(INSTALL_M) $$s.1 $(DESTDIR)$(man1dir)/$$s.1"; \
68 $(INSTALL_M) $$s.1 $(DESTDIR)$(man1dir)/$$s.1; \
69 done
70 endif
72 uninstall:
73 # TODO: Merge these two loops
74 @for s in $(SCRIPTS); \
75 do \
76 echo "$(RM) $(DESTDIR)$(bindir)/$$s"; \
77 $(RM) $(DESTDIR)$(bindir)/$$s; \
78 done
79 ifeq ($(WITH_MAN),yes)
80 @for s in $(SCRIPTS); \
81 do \
82 echo "$(RM) $(DESTDIR)$(man1dir)/$$s.1"; \
83 $(RM) $(DESTDIR)$(man1dir)/$$s.1; \
84 done
85 endif
87 .PHONY: man
88 man:
89 @for s in $(SCRIPTS); \
90 do \
91 release=`$(AWK) '/constant VERSION/ {print \$$5}' $$s | \
92 $(TR) -d '["\;]'`; \
93 echo $(POD2MAN) -c "$$s manual" -n $$s \
94 -s 1 -r $$release $$s.pod $$s.1; \
95 $(POD2MAN) -c "$$s manual" -n $$s \
96 -s 1 -r $$release $$s.pod $$s.1; \
97 done