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-install
34 all: subdirs _exports
$(TARGETS
)
36 clean: subdirs-clean _clean
38 realclean: subdirs-realclean _clean _realclean
40 install: subdirs-install _install
44 ######################################
51 TO_CLEAN
:= $(TO_CLEAN
) $(EXPORTS_C
) $(EXPORTS_H
)
53 _exports
: $(EXPORTS_C
)
55 # this funny syntax (more than one pattern-based target) is meant to tell Make
56 # that this rule makes BOTH of these targets. Look at the last paragraph of
57 # http://www.gnu.org/software/make/manual/html_node/Pattern-Intro.html
59 $(MKEXPORTS
) -module
$(MAKE_EXPORTS
) -o
$(EXPORTS_C
) -h
$(EXPORTS_H
) $(SOURCES
)
69 # Compilation and linking
70 ######################################
72 OBJS
=$(subst .c
,.o
,$(SOURCES
) $(EXPORTS_C
))
76 ifneq ($(PRELOAD_MODULES
),1)
78 CC_PICFLAGS
=-fPIC
-DPIC
79 LD_SHAREDFLAGS
=-shared
82 $(CC
) $(CC_PICFLAGS
) $(CFLAGS
) -c
$< -o
$@
84 $(MODULE
).so
: $(OBJS
) $(EXT_OBJS
)
85 $(CC
) $(LD_SHAREDFLAGS
) $(LDFLAGS
) $(OBJS
) $(EXT_OBJS
) -o
$@
88 module_install
: module_stub_install
89 $(INSTALLDIR
) $(MODULEDIR
)
90 $(INSTALL
) -m
$(BIN_MODE
) $(MODULE
).so
$(MODULEDIR
)
92 else # PRELOAD_MODULES
98 $(CC
) $(CFLAGS
) -c
$< -o
$@
100 $(MODULE
).a
: $(OBJS
) $(EXT_OBJS
)
101 $(AR
) $(ARFLAGS
) $@
$+
104 module_install
: module_stub_install
106 endif # PRELOAD_MODULES
109 $(INSTALLDIR
) $(LCDIR
)
110 $(INSTALL
) -m
$(DATA_MODE
) $(MODULE
).lc
$(LCDIR
)
115 echo
"ioncore.load_module('$(MODULE)')" |
$(LUAC
) -o
$@
-
118 LUA_SOURCES
+= $(MODULE_STUB
)
126 $(CC
) $(CFLAGS
) -c
$< -o
$@
133 ######################################
136 $(RM
) -f
$(TO_CLEAN
) core
*.d
$(OBJS
)
139 $(RM
) -f
$(TO_REALCLEAN
) $(TARGETS
)
142 ######################################
148 $(INSTALLDIR
) $(LCDIR
)
149 for i in
$(LUA_COMPILED
); do \
150 $(INSTALL
) -m
$(DATA_MODE
) $$i $(LCDIR
); \
154 $(INSTALLDIR
) $(ETCDIR
)
155 for i in
$(ETC
); do \
156 $(INSTALL
) -m
$(DATA_MODE
) $$i $(ETCDIR
); \
160 ######################################
166 ######################################
171 set
-e
; for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i; done
174 set
-e
; for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i depend
; done
177 set
-e
; for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i clean; done
180 set
-e
; for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i realclean; done
183 set
-e
; for i in
$(INSTALL_SUBDIRS
); do
$(MAKE
) -C
$$i install; done
188 ######################################
190 TO_CLEAN
+= potfiles_c potfiles_lua
193 echo
"$(SOURCES)"|tr
' ' '\n' > potfiles_c
194 echo
"$(LUA_SOURCES) $(ETC)"|tr
' ' '\n' > potfiles_lua