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