381558e5d3ae49c3c3d2bef60ae40dedfdfa6f66
[freeradius.git] / Makefile
1 #
2 # Makefile      Makefile for the cistron-radius package.
3 #
4 #               NOTE: This top-level Makefile must not
5 #               use GNU-make extensions. The lower ones can.
6 #
7 # Version:      $Id$
8 #
9
10 include Make.inc
11
12 SUBDIRS         = src raddb doc scripts
13 WHAT_TO_MAKE    = all
14
15 all:
16         @$(MAKE) $(MFLAGS) WHAT_TO_MAKE=$@ common
17
18 clean:
19         @$(MAKE) $(MFLAGS) WHAT_TO_MAKE=$@ common
20         @rm -f *~
21
22 install:
23         @$(MAKE) $(MFLAGS) WHAT_TO_MAKE=$@ common
24         # Install the config files
25         @echo "Creating/updating files in $(raddbdir)"; \
26         cd ../raddb; \
27         for i in [a-c]* [e-z]*; do \
28                 [ ! -f $(raddbdir)/$$i ] && cp $$i $(raddbdir)/$$i; \
29         done; \
30         for i in dictionary*; do \
31                 [ ! -f $(raddbdir)/$$i ] && cp $$i $(raddbdir)/$$i; \
32                 if [ $$i -nt $(raddbdir)/$$i ]; then \
33                         echo "** $(raddbdir)/$$i"; \
34                         nt=1; \
35                 fi; \
36         done; \
37         if [ "$$nt" ]; then \
38                 echo "** The samples in ../raddb are newer than these files";\
39                 echo "** Please investigate and copy manually if appropriate";\
40         fi
41
42 common:
43         @for dir in $(SUBDIRS); do \
44                 echo "Making $(WHAT_TO_MAKE) in $$dir..."; \
45                 (cd $$dir && $(MAKE) $(MFLAGS) $(WHAT_TO_MAKE)) || exit 1;\
46         done
47
48 distclean: clean
49         rm -f config.cache config.log config.status
50         -find . ! -name configure.in -name \*.in -print | \
51                 sed 's/\.in$$//' | \
52                 while read file; do rm -f $$file; done
53         -find src/modules -name config.mak | \
54                 while read file; do rm -f $$file; done
55         -find src/modules -name config.h | \
56                 while read file; do rm -f $$file; done
57
58 ######################################################################
59 #
60 #  Automatic remaking rules suggested by info:autoconf#Automatic_Remaking
61 #
62 ######################################################################
63 reconfig: configure src/include/autoconf.h.in
64
65 configure: configure.in aclocal.m4
66         autoconf
67
68 # autoheader might not change autoconf.h.in, so touch a stamp file
69 src/include/autoconf.h.in: src/include/stamp-h.in acconfig.h
70 src/include/stamp-h.in: configure.in acconfig.h
71         autoheader
72         echo timestamp > src/include/stamp-h.in
73
74 src/include/autoconf.h: src/include/stamp-h
75 src/include/stamp-h: src/include/autoconf.h.in config.status
76         ./config.status
77
78 config.status: configure
79         ./config.status --recheck
80
81 configure.in: