Merge branch 'maint'
[gc-utils.git] / Makefile
blob4187cd000929e697f6911df0048ae31deacb39c2
1 # gc-utils install program
5 VERSION = 0.1.0
6 PROGNAME = gc-utils
8 INSTALL = install
9 RM = rm
10 MANDB = mandb
12 prefix = $(HOME)
13 export prefix DESTDIR INSTALL
15 bindir = $(prefix)/bin
16 libdir = $(prefix)/lib
17 mandir = $(prefix)/share/man
18 man1dir = $(mandir)/man1
20 bindir_SQ = $(subst ','\'',$(bindir))
21 libdir_SQ = $(subst ','\'',$(libdir))
22 VERSION_SQ = $(subst .,\.,$(VERSION))
23 DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
25 scripts = gc-import gc-update gc-commit gc-multi-commit gc-utils
26 manpages = gc-import.1 gc-update.1 gc-commit.1 gc-multi-commit.1 gc-utils.1
27 libraries = gc-sh-setup
29 manpagesgz = $(manpages:.1=.1.gz)
31 ifndef V
32 QUIET_RM = @echo ' ' RM $@;
33 QUIET_GEN = @echo ' ' GEN $@;
34 QUIET_INSTALL = @echo ' ' INS $@;
35 endif
37 define generate-script
38 cp $@.sh $@ && sed -i -e 's,\$$VERSION\$$,$(VERSION_SQ),' $@ && sed -i -e 's,\$$PROGNAME\$$,$(PROGNAME),' $@
39 endef
41 .PHONY: gen install-man install clean uninstall
43 gen:: $(scripts) $(manpagesgz)
45 $(scripts): $(libraries)
46 $(QUIET_GEN) $(generate-script)
48 $(libraries):
49 $(QUIET_GEN) $(generate-script)
51 $(manpagesgz):
52 $(QUIET_GEN) cat $(@:.1.gz=.1) | sed -e 's,\$$VERSION\$$,$(VERSION_SQ),' | gzip -9 > $@
54 install: $(scripts) install-lib install-man
55 @$(foreach f, $(scripts), sed -i -e 's,\$$LIBDIR\$$,$(DESTDIR_SQ)$(libdir_SQ),' $f ;)
56 $(QUIET_INSTALL) $(INSTALL) -D -t "$(DESTDIR_SQ)$(bindir_SQ)" $(scripts)
57 @echo 'Install complete'
59 install-lib: $(libraries)
60 @$(foreach f, $(libraries), sed -i -e 's,\$$LIBDIR\$$,$(DESTDIR_SQ)$(libdir_SQ),' $f ;)
61 $(QUIET_INSTALL) $(INSTALL) -m644 -D -t "$(DESTDIR_SQ)$(libdir_SQ)" $(libraries)
63 install-man: $(manpagesgz)
64 $(QUIET_INSTALL) $(INSTALL) -m644 -D -t "$(DESTDIR)$(man1dir)" $(manpagesgz)
65 @$(foreach f, $(manpagesgz), $(MANDB) -qf '$(DESTDIR)$(man1dir)/$f' ;)
67 uninstall:
68 $(foreach f, $(scripts), $(RM) '$(DESTDIR_SQ)$(bindir_SQ)/$f' ;)
69 $(foreach f, $(libraries), $(RM) '$(DESTDIR_SQ)$(libdir_SQ)/$f' ;)
70 $(foreach f, $(manpagesgz), $(RM) '$(DESTDIR_SQ)$(man1dir)/$f' ;)
71 @echo 'Uninstall complete'
73 clean:
74 @$(RM) $(manpagesgz)
75 @$(RM) $(libraries)
76 @$(RM) $(scripts)
77 @echo "Successfull"