From: Alan T. DeKok Date: Tue, 17 Nov 2015 19:55:36 +0000 (-0500) Subject: Automatically create install directories. X-Git-Tag: release_3_0_12~64 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=freeradius.git;a=commitdiff_plain;h=bdd546b9ef44ab2717ed482497dc9e077a8a6a5c Automatically create install directories. And make executables / libraries have order dependence on install directories --- diff --git a/Makefile b/Makefile index 300b590..b9cdc78 100644 --- a/Makefile +++ b/Makefile @@ -85,23 +85,6 @@ endif # 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))) @@ -125,7 +108,9 @@ $(R)$(mandir)/%: man/% # ALL_INSTALL := $(patsubst %rlm_test.la,,$(ALL_INSTALL)) -install: install.dirs install.share install.man +install: install.share install.man + @$(INSTALL) -d -m 700 $(R)$(logdir) + @$(INSTALL) -d -m 700 $(R)$(radacctdir) ifneq ($(RADMIN),) ifneq ($(RGROUP),) diff --git a/scripts/boiler.mk b/scripts/boiler.mk index 6205904..be5f6b8 100644 --- a/scripts/boiler.mk +++ b/scripts/boiler.mk @@ -648,6 +648,11 @@ ifneq "$(MAKECMDGOALS)" "clean" $(eval -include ${${TGT}_DEPS})) endif +# Build rules for installation subdirectories +$(foreach D,$(sort $(dir ${ALL_INSTALL})),\ + $(eval $(call ADD_INSTALL_RULE.dir,${D}))) + + scan: ${ALL_PLISTS} .PHONY: clean.scan diff --git a/scripts/install.mk b/scripts/install.mk index 66c4943..f233350 100644 --- a/scripts/install.mk +++ b/scripts/install.mk @@ -46,9 +46,8 @@ define ADD_INSTALL_RULE.exe install: $${${1}_INSTALLDIR}/$(notdir ${1}) # Install executable ${1} - $${${1}_INSTALLDIR}/$(notdir ${1}): $${${1}_BUILD}/${1} + $${${1}_INSTALLDIR}/$(notdir ${1}): $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR} @$(ECHO) INSTALL ${1} - $(Q)$${PROGRAM_INSTALL} -d -m 755 $${${1}_INSTALLDIR} $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/bin/${1} $${${1}_INSTALLDIR}/ $(Q)$${${1}_POSTINSTALL} @@ -66,9 +65,8 @@ define ADD_INSTALL_RULE.a install: $${${1}_INSTALLDIR}/$(notdir ${1}) # Install static library ${1} - $${${1}_INSTALLDIR}/$(notdir ${1}): ${1} + $${${1}_INSTALLDIR}/$(notdir ${1}): ${1} | $${${1}_INSTALLDIR} @$(ECHO) INSTALL ${1} - $(Q)$${PROGRAM_INSTALL} -d -m 755 $${${1}_INSTALLDIR} $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/ $(Q)$${${1}_POSTINSTALL} @@ -89,9 +87,8 @@ define ADD_INSTALL_RULE.la install: $${${1}_INSTALLDIR}/$(notdir ${1}) # Install libtool library ${1} - $${${1}_INSTALLDIR}/$(notdir ${1}): $${${1}_BUILD}/${1} + $${${1}_INSTALLDIR}/$(notdir ${1}): $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR} @$(ECHO) INSTALL ${1} - $(Q)$${PROGRAM_INSTALL} -d -m 755 $${${1}_INSTALLDIR} $(Q)$${PROGRAM_INSTALL} -c -m 755 $${LOCAL_FLAGS_MIN} $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/ $(Q)$${${1}_POSTINSTALL} @@ -110,14 +107,27 @@ define ADD_INSTALL_RULE.man install: ${2}/$(notdir ${1}) # Install manual page ${1} - ${2}/$(notdir ${1}): ${1} + ${2}/$(notdir ${1}): ${1} | ${2} @$(ECHO) INSTALL $(notdir ${1}) - $(Q)[ -d ${2} ] || $${PROGRAM_INSTALL} -d -m 755 ${2} $(Q)$${PROGRAM_INSTALL} -c -m 644 ${1} ${2}/ endef +# ADD_INSTALL_RULE.dir - Parameterized "function" that adds a new rule +# and phony target for installing a directory +# +# USE WITH EVAL +# +define ADD_INSTALL_RULE.dir + # Install directory + .PHONY: ${1} + ${1}: + @$(ECHO) INSTALL -d -m 755 ${1} + $(Q)$${PROGRAM_INSTALL} -d -m 755 ${1} +endef + + # ADD_INSTALL_TARGET - Parameterized "function" that adds a new rule # which installs everything for the target. # diff --git a/src/main/checkrad.mk b/src/main/checkrad.mk index 40f9cd8..e991bf7 100644 --- a/src/main/checkrad.mk +++ b/src/main/checkrad.mk @@ -1,5 +1,5 @@ -install: install.sbindir $(R)$(sbindir)/checkrad +install: $(R)$(sbindir)/checkrad -$(R)$(sbindir)/checkrad: src/main/checkrad +$(R)$(sbindir)/checkrad: src/main/checkrad | $(R)$(sbindir) @echo INSTALL $(notdir $<) @$(INSTALL) -m 755 $< $(R)$(sbindir) diff --git a/src/main/radlast.mk b/src/main/radlast.mk index 3823c96..766ce1f 100644 --- a/src/main/radlast.mk +++ b/src/main/radlast.mk @@ -1,5 +1,5 @@ -install: install.bindir $(R)$(bindir)/radlast +install: $(R)$(bindir)/radlast -$(R)$(bindir)/radlast: src/main/radlast +$(R)$(bindir)/radlast: src/main/radlast | $(R)$(bindir) @echo INSTALL $(notdir $<) @$(INSTALL) -m 755 $< $(R)$(bindir) diff --git a/src/main/radtest.mk b/src/main/radtest.mk index 1941997..3adc133 100644 --- a/src/main/radtest.mk +++ b/src/main/radtest.mk @@ -1,5 +1,5 @@ -install: install.bindir $(R)$(bindir)/radtest +install: $(R)$(bindir)/radtest -$(R)$(bindir)/radtest: src/main/radtest +$(R)$(bindir)/radtest: src/main/radtest | $(R)$(bindir) @echo INSTALL $(notdir $<) @$(INSTALL) -m 755 $< $(R)$(bindir) diff --git a/src/main/radzap.mk b/src/main/radzap.mk index 44d8d4a..bd0eb6d 100644 --- a/src/main/radzap.mk +++ b/src/main/radzap.mk @@ -1,5 +1,5 @@ -install: install.bindir $(R)$(bindir)/radzap +install: $(R)$(bindir)/radzap -$(R)$(bindir)/radzap: src/main/radzap +$(R)$(bindir)/radzap: src/main/radzap | $(R)$(bindir) @echo INSTALL $(notdir $<) @$(INSTALL) -m 755 $< $(R)$(bindir) diff --git a/src/modules/rlm_counter/all.mk.in b/src/modules/rlm_counter/all.mk.in index 0da346f..5570dd4 100644 --- a/src/modules/rlm_counter/all.mk.in +++ b/src/modules/rlm_counter/all.mk.in @@ -10,8 +10,8 @@ SRC_CFLAGS := @mod_cflags@ TGT_LDLIBS := @mod_ldflags@ ifneq "$(TARGETNAME)" "" -install: install.bindir $(R)$(bindir)/rad_counter +install: $(R)$(bindir)/rad_counter -$(R)$(bindir)/rad_counter: src/modules/rlm_counter/rad_counter +$(R)$(bindir)/rad_counter: src/modules/rlm_counter/rad_counter | $(R)$(bindir) @$(INSTALL) -m 755 src/modules/rlm_counter/rad_counter $(R)$(bindir)/ endif