-install:
- $(INSTALL) -d -m 755 $(R)$(sbindir)
- $(INSTALL) -d -m 755 $(R)$(bindir)
- $(INSTALL) -d -m 755 $(R)$(raddbdir)
- $(INSTALL) -d -m 755 $(R)$(mandir)
- $(INSTALL) -d -m 755 $(R)$(RUNDIR)
- $(INSTALL) -d -m 700 $(R)$(logdir)
- $(INSTALL) -d -m 700 $(R)$(radacctdir)
- $(INSTALL) -d -m 700 $(R)$(datadir)
- $(INSTALL) -d -m 755 $(R)$(dictdir)
- for i in 1 5 8; do \
- $(INSTALL) -d -m 755 $(R)$(mandir)/man$$i; \
- for p in man/man$$i/*.$$i; do \
- $(INSTALL) -m 644 $$p $(R)$(mandir)/man$$i; \
- done \
- done
- @$(MAKE) $(MFLAGS) WHAT_TO_MAKE=$@ common
- @echo "Installing dictionary files in $(R)$(dictdir)"; \
- cd share; \
- for i in dictionary*; do \
- $(INSTALL) -m 644 $$i $(R)$(dictdir); \
- done
- $(LIBTOOL) --finish $(R)$(libdir)
-
-common:
- @for dir in $(SUBDIRS); do \
- echo "Making $(WHAT_TO_MAKE) in $$dir..."; \
- (cd $$dir && $(MAKE) $(MFLAGS) $(WHAT_TO_MAKE)) || exit 1;\
- done
+# For compatibility with typical GNU packages (e.g. as seen in libltdl),
+# we make sure DESTDIR is defined.
+#
+export DESTDIR := $(R)
+
+.PHONY: install.bindir
+install.bindir:
+ @[ -d $(R)$(bindir) ] || $(INSTALL) -d -m 755 $(R)$(bindir)
+
+.PHONY: install.sbindir
+install.sbindir:
+ @[ -d $(R)$(sbindir) ] || $(INSTALL) -d -m 755 $(R)$(sbindir)
+
+.PHONY: install.dirs
+install.dirs: install.bindir install.sbindir
+ @$(INSTALL) -d -m 755 $(R)$(mandir)
+ @$(INSTALL) -d -m 755 $(R)$(RUNDIR)
+ @$(INSTALL) -d -m 700 $(R)$(logdir)
+ @$(INSTALL) -d -m 700 $(R)$(radacctdir)
+ @$(INSTALL) -d -m 755 $(R)$(datadir)
+ @$(INSTALL) -d -m 755 $(R)$(dictdir)
+
+DICTIONARIES := $(wildcard share/dictionary*)
+install.share: $(addprefix $(R)$(dictdir)/,$(notdir $(DICTIONARIES)))
+
+$(R)$(dictdir)/%: share/%
+ @echo INSTALL $(notdir $<)
+ @$(INSTALL) -m 644 $< $@
+
+MANFILES := $(wildcard man/man*/*.?)
+install.man: $(subst man/,$(R)$(mandir)/,$(MANFILES))
+
+$(R)$(mandir)/%: man/%
+ @echo INSTALL $(notdir $<)
+ @$(INSTALL) -m 644 $< $@
+
+install: install.dirs install.share install.man
+
+ifneq ($(RADMIN),)
+ifneq ($(RGROUP),)
+.PHONY: install-chown
+install-chown:
+ chown -R $(RADMIN) $(R)$(raddbdir)
+ chgrp -R $(RGROUP) $(R)$(raddbdir)
+ chmod u=rwx,g=rx,o= `find $(R)$(raddbdir) -type d -print`
+ chmod u=rw,g=r,o= `find $(R)$(raddbdir) -type f -print`
+ chown -R $(RADMIN) $(R)$(logdir)
+ chgrp -R $(RGROUP) $(R)$(logdir)
+ find $(R)$(logdir) -type d -exec chmod u=rwx,g=rwx,o= {} \;
+ find $(R)$(logdir) -type d -exec chmod g+s {} \;
+ find $(R)$(logdir) -type f -exec chmod u=rw,g=rw,o= {} \;
+ chown -R $(RADMIN) $(R)$(RUNDIR)
+ chgrp -R $(RGROUP) $(R)$(RUNDIR)
+ find $(R)$(RUNDIR) -type d -exec chmod u=rwx,g=rwx,o= {} \;
+ find $(R)$(RUNDIR) -type d -exec chmod g+s {} \;
+ find $(R)$(RUNDIR) -type f -exec chmod u=rw,g=rw,o= {} \;
+endif
+endif