- README target support: make README will regenerate the README from all
[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 #
14
15 MOD_NAME=$(NAME:.so=)
16
17 # allow placing modules in separate directory apart from ser core
18 COREPATH ?=../..
19
20 ALLDEP=Makefile $(COREPATH)/Makefile.sources $(COREPATH)/Makefile.rules \
21  $(COREPATH)/Makefile.modules $(COREPATH)/Makefile.defs
22
23 #override modules value, a module cannot have submodules
24 override modules=
25 override static_modules=
26 override static_modules_path=
27
28 # should be set in Makefile of apart module
29 # INCLUDES += -I$(COREPATH)
30
31 ifeq ($(MAKELEVEL), 0)
32 # make called directly in the module dir!
33
34 #$(warning "you should run make from the main ser directory")
35 ifneq ($(makefile_defs), 1)
36 $(error "the local makefile does not include Makefile.defs!")
37 endif
38
39 else
40 # called by the main Makefile
41
42 ALLDEP+=$(COREPATH)/Makefile
43
44 endif
45
46 include $(COREPATH)/Makefile.sources
47
48 ifeq (,$(filter $(MOD_NAME), $(static_modules)))
49 CFLAGS:=$(MOD_CFLAGS)
50 LDFLAGS:=$(MOD_LDFLAGS)
51 endif
52
53
54 include $(COREPATH)/Makefile.rules
55
56
57 $(modules_prefix)/$(modules_dir):
58                 mkdir -p $(modules_prefix)/$(modules_dir)
59
60 LIBS:=$(filter-out -ldl -lresolv, $(LIBS))
61
62
63 .PHONY: install
64 .PHONY: install-libs
65 install: install-libs $(NAME) $(modules_prefix)/$(modules_dir)
66         $(INSTALL_TOUCH) $(modules_prefix)/$(modules_dir)/$(NAME)
67         $(INSTALL_MODULES)  $(NAME)  $(modules_prefix)/$(modules_dir)
68
69 install-libs:
70         @for lib in $(dir $(SER_LIBS)); do \
71                 $(MAKE) -C "$${lib}" install-if-newer ;\
72         done
73
74 # README build rules
75 ifneq (,$(wildcard doc/Makefile))
76 #doc/Makefile present => we can generate README
77
78 README: doc/*.xml
79         $(MAKE) -C doc $(MOD_NAME).txt
80         cp doc/$(MOD_NAME).txt $@
81
82 else
83 # do nothing
84
85 README:
86 endif
87
88 #man page build rules
89 ifneq (,$(wildcard $(MOD_NAME).xml))
90
91 $(MOD_NAME).7: $(MOD_NAME).xml
92         docbook2x-man -s ../../doc/stylesheets/serdoc2man.xsl $<
93
94 man: $(MOD_NAME).7
95
96 else
97
98 man:
99
100 endif