Merge branch 'master' of ssh://janakj@git.sip-router.org/sip-router
[sip-router] / Makefile.modules
1 #
2 # $Id$
3 #
4 # module Makefile
5 #(to be included from each module)
6 #
7 # History:
8 # --------
9 #  2007-03-29  if a module depends on SER_LIBS, it will be rebuilt on install
10 #               with the proper rpath; libraries will be automatically
11 #               installed if needed (andrei)
12 #  2008-06-23  added the README & man targets (andrei)
13 #  2008-06-27  make cfg / config.mak support (andrei)
14 #
15
16 MOD_NAME=$(NAME:.so=)
17
18 # allow placing modules in separate directory apart from ser core
19 COREPATH ?=../..
20
21 ALLDEP=Makefile $(COREPATH)/Makefile.sources $(COREPATH)/Makefile.rules \
22  $(COREPATH)/Makefile.modules $(COREPATH)/config.mak
23
24 #override modules value, a module cannot have submodules
25 override modules=
26 override static_modules=
27 override static_modules_path=
28
29 # should be set in Makefile of apart module
30 # INCLUDES += -I$(COREPATH)
31
32 DEFS += -DMOD_NAME='"$(MOD_NAME)"'
33
34 ifneq ($(makefile_defs_included),1)
35 $(error "the local makefile does not include Makefile.defs!")
36 endif
37
38 ifeq ($(MAKELEVEL), 0)
39 # make called directly in the module dir!
40
41 #$(warning "you should run make from the main ser directory")
42
43 else
44 # called by the main Makefile
45
46 ALLDEP+=$(COREPATH)/Makefile
47
48 endif
49
50 include $(COREPATH)/Makefile.sources
51
52
53 # if config was not loaded (makefile_defs!=1) ignore
54 # the rest of makefile and try only to remake the config
55 ifeq ($(makefile_defs),1)
56
57 ifeq (,$(filter $(MOD_NAME), $(static_modules)))
58 CFLAGS:=$(MOD_CFLAGS)
59 LDFLAGS:=$(MOD_LDFLAGS)
60 endif
61
62
63
64 include $(COREPATH)/Makefile.targets
65 include $(COREPATH)/Makefile.rules
66
67
68
69 $(modules_prefix)/$(modules_dir):
70                 mkdir -p $(modules_prefix)/$(modules_dir)
71
72 LIBS:=$(filter-out -ldl -lresolv, $(LIBS))
73
74
75 .PHONY: install
76 .PHONY: install-libs
77 install: $(NAME) $(modules_prefix)/$(modules_dir) install-libs
78         $(INSTALL_TOUCH) $(modules_prefix)/$(modules_dir)/$(NAME)
79         $(INSTALL_MODULES)  $(NAME)  $(modules_prefix)/$(modules_dir)
80
81 install-libs:
82         @for lib in $(dir $(SER_LIBS)); do \
83                 $(MAKE) -C "$${lib}" install-if-newer ;\
84         done
85
86 # README build rules
87 ifneq (,$(wildcard doc/Makefile))
88 #doc/Makefile present => we can generate README
89
90 README: doc/*.xml
91         $(MAKE) -C doc $(MOD_NAME).txt
92         cp doc/$(MOD_NAME).txt $@
93
94 else
95 # do nothing
96
97 README:
98 endif
99
100 #man page build rules
101 ifneq (,$(wildcard $(MOD_NAME).xml))
102
103 $(MOD_NAME).7: $(MOD_NAME).xml
104         docbook2x-man -s ../../doc/stylesheets/serdoc2man.xsl $<
105
106 man: $(MOD_NAME).7
107
108 else
109
110 man:
111
112 endif
113
114 endif # ifeq($(makefile_defs),1)
115
116 include $(COREPATH)/Makefile.cfg