]> git.decadent.org.uk Git - nfs-utils.git/blob - rules.mk
* debian/changelog: Version 1.0.6-1.
[nfs-utils.git] / rules.mk
1 #
2 # General make rules
3 #
4 .DEFAULT:       all
5 .PHONY:         $(ALLTARGETS)
6
7 include $(TOP)config.mk
8
9 ##################################################################
10 # Subdirectory handling
11 ##################################################################
12 ifneq ($(SUBDIRS),)
13 $(ALLTARGETS)::
14         @set -e; for d in $(SUBDIRS); do \
15                 echo "Making $@ in $$d"; \
16                 $(MAKE) $(MFLAGS) --no-print-directory \
17                         -C $$d TOP=../$(TOP) $@; \
18         done
19 endif
20
21 ##################################################################
22 # Building an RPC daemon
23 ##################################################################
24 ifneq ($(PROGRAM),)
25 TARGET  = $(PROGRAM)
26
27 $(PROGRAM): $(OBJS) $(LIBDEPS)
28         $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
29
30 install:: $(PROGRAM)
31         -$(MKDIR) $(SBINDIR)
32         $(INSTALLBIN) $(PROGRAM) $(SBINDIR)/$(PREFIX)$k$(PROGRAM)
33 endif
34
35 ##################################################################
36 # Building a tool
37 ##################################################################
38 ifneq ($(TOOL),)
39 TARGET  = $(TOOL)
40
41 $(TOOL): $(OBJS) $(LIBDEPS)
42         $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
43 endif
44
45 ##################################################################
46 # Building a library
47 ##################################################################
48 ifneq ($(LIBNAME),)
49 TARGET  = $(LIBNAME)
50
51 $(LIBNAME): $(OBJS)
52         $(AR) cr $@ $^
53         $(RANLIB) $@
54 endif
55
56 ##################################################################
57 # Generic target rules
58 ##################################################################
59 ifneq ($(TARGET),)
60 all:: $(TARGET)
61         @echo "Building $(TARGET) done."
62
63 install:: $(TARGET)
64
65 distclean::
66         rm -f $(TARGET)
67 endif
68
69 ##################################################################
70 # Cleaning rules
71 ##################################################################
72 clean distclean::
73         rm -f *.o *~ \#* a.out core
74
75 distclean::
76         rm -f LOG X Y Z x y z .depend
77
78 ##################################################################
79 # Manpage installation
80 # Isn't GNU make a wonderful thing?
81 ##################################################################
82 ifneq ($(MAN1)$(MAN5)$(MAN8)$(MAN9),)
83 MANINIT = ext=$(MAN$sEXT); dir=$(MAN$sDIR); pgs="$(MAN$s)";
84 MANLOOP = $(MANINIT) for man in $$pgs; do mn=`echo $$man | sed 's/[0-9]$$//'`; eval $$cmd; done
85 MDCMD   = $(MKDIR) \$$dir
86 MICMD   = $(RM) \$$dir/\$$mn.\$$ext; \
87           echo $(INSTALLMAN) \$$man.man \$$dir/\$$mn.\$$ext; \
88           $(INSTALLMAN) \$$man.man \$$dir/\$$mn.\$$ext
89 LNCMD   = $(RM) \$$dir/$(PREFIX)\$$mn.\$$ext; \
90           echo $(LN_S) \$$mn.\$$ext \$$dir/$(PREFIX)\$$mn.\$$ext; \
91           $(LN_S) \$$mn.\$$ext \$$dir/$(PREFIX)\$$mn.\$$ext
92 PSCMD   = echo \"$(MAN2PS) \$$man.man > $(TOP)postscript/\$$man.ps\"; \
93           $(MAN2PS) \$$man.man > $(TOP)postscript/\$$man.ps
94
95 installman::
96         @$(foreach s, 1 5 7 8 9, cmd="$(MDCMD)" $(MANLOOP);)
97         @$(foreach s, 1 5 7 8 9, cmd="$(MICMD)" $(MANLOOP);)
98 ifneq ($(PREFIX),)
99         @$(foreach s, 1 5 7 8 9, cmd="$(LNCMD)" $(MANLOOP);)
100 endif
101
102 postscript::
103         @$(foreach s, 1 5 8 9, cmd="$(PSCMD)" $(MANLOOP);)
104 else
105 postscript installman::
106         @: No manpages...
107 endif
108
109 ##################################################################
110 # Indenting
111 ##################################################################
112 ifneq ($(SRCS),)
113 indent:
114         $(INDENT) $(SRCS)
115 endif
116
117 ##################################################################
118 # Handling of dependencies
119 ##################################################################
120 ifneq ($(OBJS),)
121 depend dep::
122         $(CC) $(CFLAGS) -M $(OBJS:.o=.c) > .depend
123 endif
124
125 ifeq (.depend,$(wildcard .depend))
126 include .depend
127 endif