Add configure scripts for rlm_securid
[freeradius.git] / raddb / all.mk
1 #
2 #  The list of files to install.
3 #
4 LOCAL_FILES := acct_users clients.conf dictionary templates.conf \
5                 experimental.conf hints huntgroups \
6                 preproxy_users proxy.conf radiusd.conf trigger.conf \
7                 users README.rst
8
9 DEFAULT_SITES := default inner-tunnel
10 LOCAL_SITES   := $(addprefix raddb/sites-enabled/,$(DEFAULT_SITES))
11
12 DEFAULT_MODULES := always attr_filter attr_rewrite cache_eap chap checkval \
13                 counter cui detail detail.log digest dhcp dynamic_clients eap \
14                 echo exec expiration expr files inner-eap linelog logintime \
15                 mschap ntlm_auth pap passwd preprocess radutmp realm \
16                 replicate soh sradutmp unix utf8 wimax
17
18 LOCAL_MODULES   := $(addprefix raddb/mods-enabled/,$(DEFAULT_MODULES))
19
20 LOCAL_CERT_FILES := Makefile bootstrap README xpextensions \
21                     ca.cnf server.cnf client.cnf
22
23 RADDB_DIRS := sites-available sites-enabled mods-available mods-enabled \
24                 filter policy.d certs
25
26 # Installed directories
27 INSTALL_RADDB_DIRS := $(R)$(raddbdir)/ $(addprefix $(R)$(raddbdir)/, \
28                         $(RADDB_DIRS) $(shell find raddb/sql -type d -print))
29
30 # Grab files from the various subdirectories
31 INSTALL_FILES := $(wildcard raddb/sites-available/* raddb/mods-available/*) \
32                  $(LOCAL_SITES) $(LOCAL_MODULES) \
33                  $(addprefix raddb/,$(LOCAL_FILES)) \
34                  $(addprefix raddb/certs/,$(LOCAL_CERT_FILES)) \
35                  $(wildcard raddb/policy.d/* raddb/filter/*) \
36                  $(shell find raddb/sql -type f -print)
37
38
39 # Re-write local files to installed files, filtering out editor backups
40 INSTALL_RADDB := $(patsubst raddb/%,$(R)$(raddbdir)/%,\
41                         $(filter-out %~,$(INSTALL_FILES)))
42
43 all: $(LOCAL_SITES) $(LOCAL_MODULES)
44
45 clean: clean.raddb
46
47 install: install.raddb
48
49 # Local build rules
50 raddb/sites-enabled raddb/mods-enabled:
51         @echo MKDIR $@
52         @mkdir -p $@
53
54 # Set up the default modules for running in-source builds
55 raddb/mods-enabled/%: raddb/mods-available/% | raddb/mods-enabled
56         @echo LN-S $@
57         @cd $(dir $@) && ln -sf ../mods-available/$(notdir $@)
58
59 # Set up the default sites for running in-source builds
60 raddb/sites-enabled/%: raddb/sites-available/% | raddb/sites-enabled
61         @echo LN-S $@
62         @cd $(dir $@) && ln -sf ../sites-available/$(notdir $@)
63
64 # Installation rules for directories.  Note permissions are 750!
65 $(INSTALL_RADDB_DIRS):
66         @echo INSTALL $(patsubst $(R)$(raddbdir)%,raddb%,$@)
67         @$(INSTALL) -d -m 750 $@
68
69 #  The installed files have ORDER dependencies.  This means that they
70 #  will be installed if the target doesn't exist.  And they won't be
71 #  installed if the target already exists, even if it is out of date.
72 #
73 #  This dependency lets us install the server on top of an existing
74 #  system, hopefully without breaking anything.
75
76 # Installation rules for mods-enabled.  Note ORDER dependencies
77 $(R)$(raddbdir)/mods-enabled/%: | $(R)$(raddbdir)/mods-available/%
78         @cd $(dir $@) && ln -sf ../mods-available/$(notdir $@)
79
80 # Installation rules for sites-enabled.  Note ORDER dependencies
81 $(R)$(raddbdir)/sites-enabled/%: | $(R)$(raddbdir)/sites-available/%
82         @cd $(dir $@) && ln -sf ../mods-available/$(notdir $@)
83
84 # Installation rules for plain modules.
85 $(R)$(raddbdir)/%: | raddb/%
86         @echo INSTALL $(patsubst $(R)$(raddbdir)/%,raddb/%,$@)
87         @$(INSTALL) -m 640 $(patsubst $(R)$(raddbdir)/%,raddb/%,$@) $@
88
89 # Bootstrap is special
90 $(R)$(raddbdir)/certs/bootstrap: | raddb/certs/bootstrap
91         @echo INSTALL $(patsubst $(R)$(raddbdir)/%,raddb/%,$@)
92         @$(INSTALL) -m 750 $(patsubst $(R)$(raddbdir)/%,raddb/%,$@) $@
93
94 #  List directories before the file targets.
95 #  It's not clear why GNU Make doesn't deal well with this.
96 install.raddb: $(INSTALL_RADDB_DIRS) $(INSTALL_RADDB)
97
98 clean.raddb:
99         @rm -f *~ $(addprefix raddb/sites-enabled/,$(DEFAULT_SITES)) \
100                 $(addprefix raddb/mods-enabled/,$(DEFAULT_MODULES))
101
102 #
103 #  A handy target to find out which triggers are where.
104 #  Should only be run by SNMP developers.
105 #
106 triggers:
107         @grep exec_trigger `find src -name "*.c" -print` | grep '"' | sed -e 's/.*,//' -e 's/ *"//' -e 's/");.*//'