From 448e18f357919baac6987bed3fd1160d05acbaca Mon Sep 17 00:00:00 2001 From: "Alan T. DeKok" Date: Tue, 26 Feb 2013 14:58:10 -0500 Subject: [PATCH] Moved raddb/ to use boilermake --- Makefile | 25 ------- main.mk | 2 +- raddb/Makefile | 120 ------------------------------- raddb/all.mk | 107 +++++++++++++++++++++++++++ src/modules/rlm_perl/all.mk.in | 4 +- src/modules/rlm_python/all.mk.in | 4 +- src/modules/rlm_ruby/all.mk.in | 4 +- 7 files changed, 114 insertions(+), 152 deletions(-) delete mode 100644 raddb/Makefile create mode 100644 raddb/all.mk diff --git a/Makefile b/Makefile index 028ee0bea180..11c6a7545bf4 100644 --- a/Makefile +++ b/Makefile @@ -21,13 +21,9 @@ export DESTDIR := $(R) # And over-ride all of the other magic. include scripts/boiler.mk -# These are not yet converted to the new system -SUBDIRS = $(wildcard raddb) - .PHONY: test test: @$(MAKE) -C raddb/certs - @$(MAKE) -C src/tests tests # # The $(R) is a magic variable not defined anywhere in this source. @@ -56,10 +52,6 @@ install.bindir: install.sbindir: @[ -d $(R)$(sbindir) ] || $(INSTALL) -d -m 755 $(R)$(sbindir) -.PHONY: install.raddbdir -install.raddbdir: - @[ -d $(R)$(raddbdir) ] || $(INSTALL) -d -m 755 $(R)$(raddbdir) - .PHONY: install.dirs install.dirs: install.bindir install.sbindir @$(INSTALL) -d -m 755 $(R)$(mandir) @@ -85,9 +77,6 @@ $(R)$(mandir)/%: man/% install: install.dirs install.share install.man -install: - @$(MAKE) $(MFLAGS) WHAT_TO_MAKE=$@ common - ifneq ($(RADMIN),) ifneq ($(RGROUP),) .PHONY: install-chown @@ -109,20 +98,6 @@ install-chown: endif endif -.PHONY: common $(SUBDIRS) - -# -# We need to convert these directories to boilermake! -# -all: - @$(MAKE) $(MFLAGS) WHAT_TO_MAKE=$@ common - -common: $(SUBDIRS) - -$(SUBDIRS): - @echo "Making $(WHAT_TO_MAKE) in $@..." - @$(MAKE) $(MFLAGS) -C $@ $(WHAT_TO_MAKE) - distclean: clean @rm -f config.cache config.log config.status libtool \ src/include/radpaths.h src/include/stamp-h \ diff --git a/main.mk b/main.mk index 666d5b90c10b..69e0f6b72449 100644 --- a/main.mk +++ b/main.mk @@ -1 +1 @@ -SUBMAKEFILES := src/all.mk scripts/all.mk doc/all.mk +SUBMAKEFILES := src/all.mk scripts/all.mk doc/all.mk raddb/all.mk diff --git a/raddb/Makefile b/raddb/Makefile deleted file mode 100644 index ab8b0836712f..000000000000 --- a/raddb/Makefile +++ /dev/null @@ -1,120 +0,0 @@ -# -# Makefile -# -# Version: $Id$ -# - -include ../Make.inc - -# -# The list of files to install. -# -FILES = acct_users clients.conf dictionary templates.conf \ - experimental.conf hints huntgroups \ - preproxy_users proxy.conf radiusd.conf trigger.conf \ - users README.rst - -DEFAULT_SITES = default inner-tunnel - -DEFAULT_MODULES = always attr_filter attr_rewrite cache_eap chap checkval \ - counter cui detail detail.log digest dhcp dynamic_clients eap \ - echo exec expiration expr files inner-eap linelog logintime \ - mschap ntlm_auth pap passwd preprocess radutmp realm \ - replicate soh sradutmp unix utf8 wimax - -# -# This target is here for local debugging -# -all: sites-enabled mods-enabled - -.PHONY: sites-enabled -sites-enabled: - @if [ ! -d sites-enabled ]; then \ - mkdir sites-enabled; \ - fi - @cd sites-enabled/; \ - for x in $(DEFAULT_SITES); do \ - if [ ! -f $$x ]; then \ - ln -s ../sites-available/$$x; \ - fi; \ - done - -.PHONY: mods-enabled -mods-enabled: - @if [ ! -d mods-enabled ]; then \ - mkdir mods-enabled; \ - fi - @cd mods-enabled/; \ - for x in $(DEFAULT_MODULES); do \ - if [ ! -f $$x ]; then \ - ln -s ../mods-available/$$x; \ - fi; \ - done - -install: - $(INSTALL) -d -m 750 $(R)$(raddbdir) - $(INSTALL) -d -m 750 $(R)$(raddbdir)/sites-available - $(INSTALL) -d -m 750 $(R)$(raddbdir)/sites-enabled - $(INSTALL) -d -m 750 $(R)$(raddbdir)/mods-available - $(INSTALL) -d -m 750 $(R)$(raddbdir)/mods-enabled - $(INSTALL) -d -m 750 $(R)$(raddbdir)/policy.d - $(INSTALL) -d -m 750 $(R)$(raddbdir)/filter - @echo "Creating/updating files in $(R)$(raddbdir)"; \ - for i in $(FILES) `find sites-available/ mods-available/ policy.d/ filter/ -type f -print | sed 's/.*~//;s/.*#.*//' `; do \ - [ ! -f $(R)$(raddbdir)/$$i ] && $(INSTALL) -m 640 $$i $(R)$(raddbdir)/$$i; \ - if [ "`find $$i -newer $(R)$(raddbdir)/$$i`" ]; then \ - echo "** $(R)$(raddbdir)/$$i"; \ - nt=1; \ - fi; \ - done; \ - if [ "$$nt" ]; then \ - echo "**";\ - echo "** WARNING ** WARNING ** WARNING ** WARNING ** WARNING ** WARNING ** WARNING **";\ - echo "** WARNING ** WARNING ** WARNING ** WARNING ** WARNING ** WARNING ** WARNING **";\ - echo "**";\ - echo "** The sample configuration files in `pwd`";\ - echo "** are newer than those in $(R)$(raddbdir)";\ - echo "**";\ - echo "** Please investigate and manually copy (if appropriate) the files listed above.";\ - echo "**";\ - echo "** WARNING ** WARNING ** WARNING ** WARNING ** WARNING ** WARNING ** WARNING **";\ - echo "** WARNING ** WARNING ** WARNING ** WARNING ** WARNING ** WARNING ** WARNING **";\ - fi - chmod 640 $(R)$(raddbdir)/clients.conf - if [ ! -d $(R)$(raddbdir)/certs ]; then \ - $(INSTALL) -d -m 750 $(R)$(raddbdir)/certs; \ - $(INSTALL) -m 750 certs/bootstrap $(R)$(raddbdir)/certs; \ - for i in Makefile README xpextensions ca.cnf server.cnf client.cnf; do \ - $(INSTALL) -m 640 certs/$$i $(R)$(raddbdir)/certs; \ - done; \ - $(MAKE) -C $(R)$(raddbdir)/certs; \ - fi - if [ ! -d $(R)$(raddbdir)/sql ]; then \ - find sql -name CVS -prune -o -print | \ - while read file; do \ - if [ -d "$$file" ]; then \ - $(INSTALL) -d -m 750 "$(R)$(raddbdir)/$$file"; \ - else \ - $(INSTALL) -m 640 "$$file" "$(R)$(raddbdir)/$$file"; \ - fi; \ - done; \ - fi - @cd $(R)$(raddbdir)/sites-enabled/; \ - for x in $(DEFAULT_SITES); do \ - if [ ! -f $$x ]; then \ - ln -s ../sites-available/$$x; \ - fi; \ - done - @cd $(R)$(raddbdir)/mods-enabled/; \ - for x in $(DEFAULT_MODULES); do \ - if [ ! -f $$x ]; then \ - ln -s ../mods-available/$$x; \ - fi; \ - done - -clean: - @rm -rf *~ $(addprefix sites-enabled/,$(DEFAULT_SITES)) \ - $(addprefix mods-enabled/,$(DEFAULT_MODULES)) - -triggers: - @grep exec_trigger `find ../src -name "*.c" -print` | grep '"' | sed -e 's/.*,//' -e 's/ *"//' -e 's/");.*//' diff --git a/raddb/all.mk b/raddb/all.mk new file mode 100644 index 000000000000..7d5384e560f3 --- /dev/null +++ b/raddb/all.mk @@ -0,0 +1,107 @@ +# +# The list of files to install. +# +LOCAL_FILES := acct_users clients.conf dictionary templates.conf \ + experimental.conf hints huntgroups \ + preproxy_users proxy.conf radiusd.conf trigger.conf \ + users README.rst + +DEFAULT_SITES := default inner-tunnel +LOCAL_SITES := $(addprefix raddb/sites-enabled/,$(DEFAULT_SITES)) + +DEFAULT_MODULES := always attr_filter attr_rewrite cache_eap chap checkval \ + counter cui detail detail.log digest dhcp dynamic_clients eap \ + echo exec expiration expr files inner-eap linelog logintime \ + mschap ntlm_auth pap passwd preprocess radutmp realm \ + replicate soh sradutmp unix utf8 wimax + +LOCAL_MODULES := $(addprefix raddb/mods-enabled/,$(DEFAULT_MODULES)) + +LOCAL_CERT_FILES := Makefile bootstrap README xpextensions \ + ca.cnf server.cnf client.cnf + +RADDB_DIRS := sites-available sites-enabled mods-available mods-enabled \ + filter policy.d certs + +# Installed directories +INSTALL_RADDB_DIRS := $(R)$(raddbdir)/ $(addprefix $(R)$(raddbdir)/, \ + $(RADDB_DIRS) $(shell find raddb/sql -type d -print)) + +# Grab files from the various subdirectories +INSTALL_FILES := $(wildcard raddb/sites-available/* raddb/mods-available/*) \ + $(LOCAL_SITES) $(LOCAL_MODULES) \ + $(addprefix raddb/,$(LOCAL_FILES)) \ + $(addprefix raddb/certs/,$(LOCAL_CERT_FILES)) \ + $(wildcard raddb/policy.d/* raddb/filter/*) \ + $(shell find raddb/sql -type f -print) + + +# Re-write local files to installed files, filtering out editor backups +INSTALL_RADDB := $(patsubst raddb/%,$(R)$(raddbdir)/%,\ + $(filter-out %~,$(INSTALL_FILES))) + +all: $(LOCAL_SITES) $(LOCAL_MODULES) + +clean: clean.raddb + +install: install.raddb + +# Local build rules +raddb/sites-enabled mods-enabled: + @echo MKDIR $@ + @mkdir -p $@ + +# Set up the default modules for running in-source builds +raddb/mods-enabled/%: raddb/mods-available/% | raddb/mods-enabled + @echo LN-S $@ + @cd $(dir $@) && ln -sf ../mods-available/$(notdir $@) + +# Set up the default sites for running in-source builds +raddb/sites-enabled/%: raddb/sites-available/% | raddb/sites-enabled + @echo LN-S $@ + @cd $(dir $@) && ln -sf ../sites-available/$(notdir $@) + +# Installation rules for directories. Note permissions are 750! +$(INSTALL_RADDB_DIRS): + @echo INSTALL $(patsubst $(R)$(raddbdir)%,raddb%,$@) + @$(INSTALL) -d -m 750 $@ + +# The installed files have ORDER dependencies. This means that they +# will be installed if the target doesn't exist. And they won't be +# installed if the target already exists, even if it is out of date. +# +# This dependency lets us install the server on top of an existing +# system, hopefully without breaking anything. + +# Installation rules for mods-enabled. Note ORDER dependencies +$(R)$(raddbdir)/mods-enabled/%: | $(R)$(raddbdir)/mods-available/% + @cd $(dir $@) && ln -sf ../mods-available/$(notdir $@) + +# Installation rules for sites-enabled. Note ORDER dependencies +$(R)$(raddbdir)/sites-enabled/%: | $(R)$(raddbdir)/sites-available/% + @cd $(dir $@) && ln -sf ../mods-available/$(notdir $@) + +# Installation rules for plain modules. +$(R)$(raddbdir)/%: | raddb/% + @echo INSTALL $(patsubst $(R)$(raddbdir)/%,raddb/%,$@) + @$(INSTALL) -m 640 $(patsubst $(R)$(raddbdir)/%,raddb/%,$@) $@ + +# Bootstrap is special +$(R)$(raddbdir)/certs/bootstrap: | raddb/certs/bootstrap + @echo INSTALL $(patsubst $(R)$(raddbdir)/%,raddb/%,$@) + @$(INSTALL) -m 750 $(patsubst $(R)$(raddbdir)/%,raddb/%,$@) $@ + +# List directories before the file targets. +# It's not clear why GNU Make doesn't deal well with this. +install.raddb: $(INSTALL_RADDB_DIRS) $(INSTALL_RADDB) + +clean.raddb: + @rm -f *~ $(addprefix raddb/sites-enabled/,$(DEFAULT_SITES)) \ + $(addprefix raddb/mods-enabled/,$(DEFAULT_MODULES)) + +# +# A handy target to find out which triggers are where. +# Should only be run by SNMP developers. +# +triggers: + @grep exec_trigger `find src -name "*.c" -print` | grep '"' | sed -e 's/.*,//' -e 's/ *"//' -e 's/");.*//' diff --git a/src/modules/rlm_perl/all.mk.in b/src/modules/rlm_perl/all.mk.in index 874e67ca3d4e..1089dd14583a 100644 --- a/src/modules/rlm_perl/all.mk.in +++ b/src/modules/rlm_perl/all.mk.in @@ -9,8 +9,8 @@ SOURCES := rlm_perl.c SRC_CFLAGS := @perl_cflags@ TGT_LDLIBS := @perl_ldflags@ -install: install.raddbdir $(R)$(raddbdir)/example.pl +install: $(R)$(raddbdir)/example.pl -$(R)$(raddbdir)/example.pl: src/modules/rlm_perl/example.pl +$(R)$(raddbdir)/example.pl: src/modules/rlm_perl/example.pl | $(R)$(raddbdir)/ @$(ECHO) INSTALL $(notdir $<) @$(INSTALL) -m 755 $< $(R)$(raddbdir)/ diff --git a/src/modules/rlm_python/all.mk.in b/src/modules/rlm_python/all.mk.in index b21cd18e0b9b..182773962797 100644 --- a/src/modules/rlm_python/all.mk.in +++ b/src/modules/rlm_python/all.mk.in @@ -9,8 +9,8 @@ SOURCES := $(TARGETNAME).c TGT_LDLIBS := @python_ldflags@ SRC_CFLAGS := @python_cflags@ -install: install.raddbdir $(R)$(raddbdir)/example.py +install: $(R)$(raddbdir)/example.py -$(R)$(raddbdir)/example.py: src/modules/rlm_python/example.py +$(R)$(raddbdir)/example.py: src/modules/rlm_python/example.py | $(R)$(raddbdir)/ @$(ECHO) INSTALL $(notdir $<) @$(INSTALL) -m 755 $< $(R)$(raddbdir)/ diff --git a/src/modules/rlm_ruby/all.mk.in b/src/modules/rlm_ruby/all.mk.in index 6b8b2dc894e5..f0c4865f9b64 100644 --- a/src/modules/rlm_ruby/all.mk.in +++ b/src/modules/rlm_ruby/all.mk.in @@ -9,8 +9,8 @@ SOURCES := $(TARGETNAME).c SRC_CFLAGS := @ruby_cflags@ TGT_LDLIBS := @ruby_ldflags@ -install: install.raddbdir $(R)$(raddbdir)/example.rb +install: $(R)$(raddbdir)/example.rb -$(R)$(raddbdir)/example.rb: src/modules/rlm_ruby/example.rb +$(R)$(raddbdir)/example.rb: src/modules/rlm_ruby/example.rb | $(R)$(raddbdir)/ @$(ECHO) INSTALL $(notdir $<) @$(INSTALL) -m 755 $< $(R)$(raddbdir)/