5 # Beware: in releases, the Notion rules.mk is used to build both libtu,
6 # libextl and notion - so structural changes to this file should also be
7 # carried out on the Notion rules.mk
10 ifeq ($(PRELOAD_MODULES
),1)
11 MODULE_TARGETS
:= $(MODULE
).a
$(MODULE
).lc
13 MODULE_TARGETS
:= $(MODULE
).so
$(MODULE
).lc
15 TARGETS
:= $(TARGETS
) $(MODULE_TARGETS
)
19 LUA_COMPILED
:= $(subst .lua
,.lc
, $(LUA_SOURCES
))
20 TARGETS
:= $(TARGETS
) $(LUA_COMPILED
)
25 ######################################
29 .PHONY
: subdirs-realclean
30 .PHONY
: subdirs-depend
31 .PHONY
: subdirs-install
36 all: subdirs _exports
$(TARGETS
)
38 clean: subdirs-clean _clean
40 realclean: subdirs-realclean _clean _realclean
42 depend
: subdirs-depend _depend
44 install: subdirs-install _install
48 ######################################
55 DEPEND_DEPENDS
+= $(EXPORTS_H
)
57 TO_CLEAN
:= $(TO_CLEAN
) $(EXPORTS_C
) $(EXPORTS_H
)
59 _exports
: $(EXPORTS_C
)
61 $(EXPORTS_H
): $(EXPORTS_C
)
64 $(MKEXPORTS
) -module
$(MAKE_EXPORTS
) -o
$(EXPORTS_C
) -h
$(EXPORTS_H
) $(SOURCES
)
74 # Compilation and linking
75 ######################################
77 OBJS
=$(subst .c
,.o
,$(SOURCES
) $(EXPORTS_C
))
81 ifneq ($(PRELOAD_MODULES
),1)
83 CC_PICFLAGS
=-fPIC
-DPIC
84 LD_SHAREDFLAGS
=-shared
87 $(CC
) $(CC_PICFLAGS
) $(CFLAGS
) -c
$< -o
$@
89 $(MODULE
).so
: $(OBJS
) $(EXT_OBJS
)
90 $(CC
) $(LD_SHAREDFLAGS
) $(LDFLAGS
) $(OBJS
) $(EXT_OBJS
) -o
$@
93 module_install
: module_stub_install
94 $(INSTALLDIR
) $(MODULEDIR
)
95 $(INSTALL
) -m
$(BIN_MODE
) $(MODULE
).so
$(MODULEDIR
)
97 else # PRELOAD_MODULES
103 $(CC
) $(CFLAGS
) -c
$< -o
$@
105 $(MODULE
).a
: $(OBJS
) $(EXT_OBJS
)
106 $(AR
) $(ARFLAGS
) $@
$+
109 module_install
: module_stub_install
111 endif # PRELOAD_MODULES
114 $(INSTALLDIR
) $(LCDIR
)
115 $(INSTALL
) -m
$(DATA_MODE
) $(MODULE
).lc
$(LCDIR
)
120 echo
"ioncore.load_module('$(MODULE)')" |
$(LUAC
) -o
$@
-
123 LUA_SOURCES
+= $(MODULE_STUB
)
131 $(CC
) $(CFLAGS
) -c
$< -o
$@
138 ######################################
141 $(RM
) -f
$(TO_CLEAN
) core
$(DEPEND_FILE
) $(OBJS
)
144 $(RM
) -f
$(TO_REALCLEAN
) $(TARGETS
)
147 ######################################
153 $(INSTALLDIR
) $(LCDIR
)
154 for i in
$(LUA_COMPILED
); do \
155 $(INSTALL
) -m
$(DATA_MODE
) $$i $(LCDIR
); \
159 $(INSTALLDIR
) $(ETCDIR
)
160 for i in
$(ETC
); do \
161 $(INSTALL
) -m
$(DATA_MODE
) $$i $(ETCDIR
); \
165 ######################################
169 _depend
: $(DEPEND_DEPENDS
)
172 ifeq ($(DEPEND_FILE
),$(wildcard $(DEPEND_FILE
)))
173 include $(DEPEND_FILE
)
179 ######################################
184 set
-e
; for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i; done
187 set
-e
; for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i depend
; done
190 set
-e
; for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i clean; done
193 set
-e
; for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i realclean; done
196 set
-e
; for i in
$(INSTALL_SUBDIRS
); do
$(MAKE
) -C
$$i install; done
201 ######################################
203 TO_CLEAN
+= potfiles_c potfiles_lua
206 echo
"$(SOURCES)"|tr
' ' '\n' > potfiles_c
207 echo
"$(LUA_SOURCES) $(ETC)"|tr
' ' '\n' > potfiles_lua