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