]> granicus.if.org Git - linux-pam/blob - modules/Simple.Rules
Relevant BUGIDs: -
[linux-pam] / modules / Simple.Rules
1 # $Id$
2 #
3 # For simple modules with no significant dependencies, set $(TITLE)
4 # and include this file.
5 #
6 # There are a few ways to customize this set of rules. Namely, define
7 #
8 #   $(MODULE_SIMPLE_EXTRACLEAN)
9 #   $(MODULE_SIMPLE_CLEAN)
10 #   $(MODULE_SIMPLE_REMOVE)
11 #   $(MODULE_SIMPLE_INSTALL)
12 #   $(MODULE_SIMPLE_EXTRALIBS)  - other things to link with the module
13 #   $(MODULE_SIMPLE_EXTRAFILES) - other files to build (no .c suffix)
14 #
15
16 -include ../Make.Rules
17
18 LIBFILES = $(TITLE) $(MODULE_SIMPLE_EXTRAFILES)
19 LIBSRC = $(addsuffix .c,$(LIBFILES))
20 LIBOBJ = $(addsuffix .o,$(LIBFILES))
21 LIBOBJD = $(addprefix dynamic/,$(LIBOBJ))
22 LIBOBJS = $(addprefix static/,$(LIBOBJ))
23
24 LINK_PAMMODUTILS = -L../pammodutil -lpammodutil -L../../libpam -lpam
25 INCLUDE_PAMMODUTILS = -I../pammodutil/include
26
27 ifdef DYNAMIC
28 LIBSHARED = $(TITLE).so
29 endif
30
31 ifdef STATIC
32 LIBSTATIC = lib$(TITLE).o
33 endif
34
35 ####################### don't edit below #######################
36
37 all: dirs $(LIBSHARED) $(LIBSTATIC) register
38
39 dynamic/%.o : %.c
40         $(CC) $(CFLAGS) $(INCLUDE_PAMMODUTILS) $(DYNAMIC) $(TARGET_ARCH) -c $< -o $@
41
42 static/%.o : %.c
43         $(CC) $(CFLAGS) $(INCLUDE_PAMMODUTILS) $(STATIC) $(TARGET_ARCH) -c $< -o $@
44
45 dirs:
46 ifdef DYNAMIC
47         $(MKDIR) ./dynamic
48 endif
49 ifdef STATIC
50         $(MKDIR) ./static
51 endif
52
53 register:
54 ifdef STATIC
55         ( cd .. ; ./register_static $(TITLE) $(TITLE)/$(LIBSTATIC) )
56 endif
57
58 ifdef DYNAMIC
59 $(LIBOBJD): $(LIBSRC)
60 endif
61
62 ifdef DYNAMIC
63 $(LIBSHARED):   $(LIBOBJD)
64         $(LD_D) -o $@ $(LIBOBJD) $(MODULE_SIMPLE_EXTRALIBS) $(NEED_LINK_LIB_C) $(LINK_PAMMODUTILS)
65
66 endif
67
68 ifdef STATIC
69 $(LIBOBJS): $(LIBSRC)
70 endif
71
72 ifdef STATIC
73 $(LIBSTATIC): $(LIBOBJS)
74         $(LD) -r -o $@ $(LIBOBJS) $(MODULE_SIMPLE_EXTRALIBS) $(LINK_PAMMODUTILS)
75 endif
76
77 install: all
78         $(MKDIR) $(FAKEROOT)$(SECUREDIR)
79 ifdef DYNAMIC
80         $(INSTALL) -m $(SHLIBMODE) $(LIBSHARED) $(FAKEROOT)$(SECUREDIR)
81 endif
82 ifdef MAN3
83         test -d $(FAKEROOT)$(mandir)/man3 || $(MKDIR) $(FAKEROOT)$(mandir)/man3
84         $(INSTALL) -m $(MANMODE) $(MAN3) $(FAKEROOT)$(mandir)/man3/
85 endif
86 ifdef MAN5
87         test -d $(FAKEROOT)$(mandir)/man5 || $(MKDIR) $(FAKEROOT)$(mandir)/man5
88         $(INSTALL) -m $(MANMODE) $(MAN5) $(FAKEROOT)$(mandir)/man5/
89 endif
90 ifdef MAN8
91         test -d $(FAKEROOT)$(mandir)/man8 || $(MKDIR) $(FAKEROOT)$(mandir)/man8
92         $(INSTALL) -m $(MANMODE) $(MAN8) $(FAKEROOT)$(mandir)/man8/
93 endif
94         $(MODULE_SIMPLE_INSTALL)
95
96 remove:
97         rm -f $(FAKEROOT)$(SECUREDIR)/$(TITLE).so
98         $(MODULE_SIMPLE_REMOVE)
99
100 clean:
101         rm -f $(LIBOBJD) $(LIBOBJS) core *~
102         $(MODULE_SIMPLE_CLEAN)
103         rm -f *.a *.o *.so *.bak
104         rm -rf dynamic static
105         $(MODULE_SIMPLE_EXTRACLEAN)
106
107 .c.o:   
108         $(CC) $(CFLAGS) -c $<
109