Sun, 21 Jan 2007 21:02:55 +0100
Added stringstore_ref
6 | 1 | ## |
2 | ## Some make rules | |
3 | ## | |
4 | ||
82 | 5 | ifdef MODULE |
6 | ifeq ($(PRELOAD_MODULES),1) | |
7 | MODULE_TARGETS := $(MODULE).a $(MODULE).lc | |
8 | else | |
9 | MODULE_TARGETS := $(MODULE).so $(MODULE).lc | |
10 | endif | |
11 | TARGETS := $(TARGETS) $(MODULE_TARGETS) | |
12 | endif | |
6 | 13 | |
82 | 14 | ifdef LUA_SOURCES |
15 | LUA_COMPILED := $(subst .lua,.lc, $(LUA_SOURCES)) | |
16 | TARGETS := $(TARGETS) $(LUA_COMPILED) | |
51 | 17 | endif |
18 | ||
19 | ||
82 | 20 | # Main targets |
21 | ###################################### | |
22 | ||
23 | .PHONY: subdirs | |
24 | .PHONY: subdirs-clean | |
25 | .PHONY: subdirs-realclean | |
26 | .PHONY: subdirs-depend | |
27 | .PHONY: subdirs-install | |
28 | .PHONY: _install | |
29 | .PHONY: _depend | |
6 | 30 | |
31 | all: subdirs $(TARGETS) | |
32 | ||
33 | clean: subdirs-clean _clean | |
34 | ||
51 | 35 | realclean: subdirs-realclean _clean _realclean |
6 | 36 | |
37 | depend: subdirs-depend _depend | |
38 | ||
39 | install: subdirs-install _install | |
40 | ||
41 | ||
82 | 42 | # Exports |
6 | 43 | ###################################### |
44 | ||
51 | 45 | ifdef MAKE_EXPORTS |
46 | ||
47 | TO_CLEAN := $(TO_CLEAN) exports.c | |
48 | ||
82 | 49 | EXPORTS_C = exports.c |
51 | 50 | |
51 | exports.c: $(SOURCES) | |
82 | 52 | $(MKEXPORTS) -module $(MAKE_EXPORTS) -o exports.c $(SOURCES) |
53 | ||
54 | else # !MAKE_EXPORTS | |
55 | ||
56 | EXPORTS_C = | |
51 | 57 | |
82 | 58 | endif # !MAKE_EXPORTS |
59 | ||
60 | ||
61 | # Compilation and linking | |
62 | ###################################### | |
63 | ||
64 | OBJS=$(subst .c,.o,$(SOURCES) $(EXPORTS_C)) | |
51 | 65 | |
66 | ifdef MODULE | |
67 | ||
82 | 68 | ifneq ($(PRELOAD_MODULES),1) |
69 | ||
70 | CC_PICFLAGS=-fPIC -DPIC | |
71 | LD_SHAREDFLAGS=-shared | |
72 | ||
73 | %.o: %.c | |
74 | $(CC) $(CC_PICFLAGS) $(CFLAGS) -c $< -o $@ | |
51 | 75 | |
76 | $(MODULE).so: $(OBJS) $(EXT_OBJS) | |
82 | 77 | $(CC) $(LD_SHAREDFLAGS) $(LDFLAGS) $(OBJS) $(EXT_OBJS) -o $@ |
51 | 78 | |
82 | 79 | |
80 | module_install: module_stub_install | |
51 | 81 | $(INSTALLDIR) $(MODULEDIR) |
82 | $(INSTALL) -m $(BIN_MODE) $(MODULE).so $(MODULEDIR) | |
82 | 83 | |
84 | else # PRELOAD_MODULES | |
51 | 85 | |
82 | 86 | PICOPT=-fPIC -DPIC |
87 | LINKOPT=-shared | |
51 | 88 | |
82 | 89 | %.o: %.c |
90 | $(CC) $(CFLAGS) -c $< -o $@ | |
91 | ||
92 | $(MODULE).a: $(OBJS) $(EXT_OBJS) | |
51 | 93 | $(AR) $(ARFLAGS) $@ $+ |
94 | $(RANLIB) $@ | |
95 | ||
82 | 96 | module_install: module_stub_install |
51 | 97 | |
82 | 98 | endif # PRELOAD_MODULES |
51 | 99 | |
82 | 100 | module_stub_install: |
101 | $(INSTALLDIR) $(LCDIR) | |
102 | $(INSTALL) -m $(DATA_MODE) $(MODULE).lc $(LCDIR) | |
51 | 103 | |
82 | 104 | ifndef MODULE_STUB |
105 | ||
106 | $(MODULE).lc: | |
107 | echo "ioncore.load_module('$(MODULE)')" | $(LUAC) -o $@ - | |
51 | 108 | else |
109 | ||
82 | 110 | LUA_SOURCES += $(MODULE_STUB) |
111 | ||
112 | endif #MODULE_STUB | |
113 | ||
114 | else # !MODULE | |
115 | ||
116 | ||
117 | %.o: %.c | |
9 | 118 | $(CC) $(CFLAGS) -c $< -o $@ |
6 | 119 | |
82 | 120 | |
121 | endif# !MODULE | |
122 | ||
123 | ||
124 | # Clean rules | |
125 | ###################################### | |
126 | ||
127 | _clean: | |
128 | $(RM) -f $(TO_CLEAN) core $(DEPEND_FILE) $(OBJS) | |
129 | ||
130 | _realclean: | |
131 | $(RM) -f $(TO_REALCLEAN) $(TARGETS) | |
132 | ||
133 | # Lua rules | |
134 | ###################################### | |
135 | ||
136 | %.lc: %.lua | |
137 | $(LUAC) -o $@ $< | |
138 | ||
139 | lc_install: | |
140 | $(INSTALLDIR) $(LCDIR) | |
141 | for i in $(LUA_COMPILED); do \ | |
142 | $(INSTALL) -m $(DATA_MODE) $$i $(LCDIR); \ | |
143 | done | |
144 | ||
145 | etc_install: | |
146 | $(INSTALLDIR) $(ETCDIR) | |
147 | for i in $(ETC); do \ | |
148 | $(INSTALL) -m $(DATA_MODE) $$i $(ETCDIR); \ | |
149 | done | |
150 | ||
151 | # Dependencies | |
152 | ###################################### | |
153 | ||
154 | ifdef SOURCES | |
155 | ||
156 | _depend: $(DEPEND_DEPENDS) | |
157 | $(MAKE_DEPEND) | |
158 | ||
159 | ifeq ($(DEPEND_FILE),$(wildcard $(DEPEND_FILE))) | |
160 | include $(DEPEND_FILE) | |
161 | endif | |
162 | ||
51 | 163 | endif |
6 | 164 | |
82 | 165 | # Subdirectories |
166 | ###################################### | |
51 | 167 | |
82 | 168 | ifdef SUBDIRS |
6 | 169 | |
170 | subdirs: | |
9 | 171 | set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i; done |
6 | 172 | |
173 | subdirs-depend: | |
9 | 174 | set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i depend; done |
6 | 175 | |
176 | subdirs-clean: | |
9 | 177 | set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done |
6 | 178 | |
179 | subdirs-realclean: | |
9 | 180 | set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i realclean; done |
6 | 181 | |
182 | subdirs-install: | |
9 | 183 | set -e; for i in $(INSTALL_SUBDIRS); do $(MAKE) -C $$i install; done |
6 | 184 | |
82 | 185 | endif |
186 | ||
187 | # Localisation | |
6 | 188 | ###################################### |
189 | ||
82 | 190 | TO_CLEAN += potfiles_c potfiles_lua |
191 | ||
192 | _potfiles: | |
193 | echo "$(SOURCES)"|tr ' ' '\n' > potfiles_c | |
194 | echo "$(LUA_SOURCES) $(ETC)"|tr ' ' '\n' > potfiles_lua |