]> granicus.if.org Git - linux-pam/blob - modules/Simple.Rules
Relevant BUGIDs: 124923
[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 #
14
15 LIBSRC = $(TITLE).c
16 LIBOBJ = $(TITLE).o
17 LIBOBJD = $(addprefix dynamic/,$(LIBOBJ))
18 LIBOBJS = $(addprefix static/,$(LIBOBJ))
19
20 ifdef DYNAMIC
21 LIBSHARED = $(TITLE).so
22 endif
23
24 ifdef STATIC
25 LIBSTATIC = lib$(TITLE).o
26 endif
27
28 ####################### don't edit below #######################
29
30 all: dirs $(LIBSHARED) $(LIBSTATIC) register
31
32 dynamic/%.o : %.c
33         $(CC) $(CFLAGS) $(DYNAMIC) $(TARGET_ARCH) -c $< -o $@
34
35 static/%.o : %.c
36         $(CC) $(CFLAGS) $(STATIC) $(TARGET_ARCH) -c $< -o $@
37
38 dirs:
39 ifdef DYNAMIC
40         $(MKDIR) ./dynamic
41 endif
42 ifdef STATIC
43         $(MKDIR) ./static
44 endif
45
46 register:
47 ifdef STATIC
48         ( cd .. ; ./register_static $(TITLE) $(TITLE)/$(LIBSTATIC) )
49 endif
50
51 ifdef DYNAMIC
52 $(LIBOBJD): $(LIBSRC)
53 endif
54
55 ifdef DYNAMIC
56 $(LIBSHARED):   $(LIBOBJD)
57         $(LD_D) -o $@ $(LIBOBJD) $(MODULE_SIMPLE_EXTRALIBS) $(NEED_LINK_LIB_C)
58
59 endif
60
61 ifdef STATIC
62 $(LIBOBJS): $(LIBSRC)
63 endif
64
65 ifdef STATIC
66 $(LIBSTATIC): $(LIBOBJS)
67         $(LD) -r -o $@ $(LIBOBJS) $(MODULE_SIMPLE_EXTRALIBS)
68 endif
69
70 install: all
71         $(MKDIR) $(FAKEROOT)$(SECUREDIR)
72 ifdef DYNAMIC
73         $(INSTALL) -m $(SHLIBMODE) $(LIBSHARED) $(FAKEROOT)$(SECUREDIR)
74 endif
75         $(MODULE_SIMPLE_INSTALL)
76
77 remove:
78         rm -f $(FAKEROOT)$(SECUREDIR)/$(TITLE).so
79         $(MODULE_SIMPLE_REMOVE)
80
81 clean:
82         rm -f $(LIBOBJD) $(LIBOBJS) core *~
83         $(MODULE_SIMPLE_CLEAN)
84         rm -f *.a *.o *.so *.bak
85         rm -rf dynamic static
86         $(MODULE_SIMPLE_EXTRACLEAN)
87
88 .c.o:   
89         $(CC) $(CFLAGS) -c $<
90