]> git.sesse.net Git - vlc/blob - Makefile.modules
* ./src/input/mpeg_system.c: fixed a bus error on UltraSparc.
[vlc] / Makefile.modules
1 ###############################################################################
2 # vlc (VideoLAN Client) common module Makefile
3 # (c)2001 VideoLAN
4 ###############################################################################
5 # This file should be included by all module Makefiles
6 ###############################################################################
7
8 #
9 # include the local Makefile
10 #
11 include Makefile
12
13 #
14 # Analyze the target we are asked to build
15 #
16 module_name := $(shell echo $(MAKECMDGOALS) | sed 's@.*/\(.*\)\..*@\1@')
17 MODULE_NAME := $(shell echo $(module_name) | tr '[a-z]' '[A-Z]')
18
19 suff := $(shell echo $(MAKECMDGOALS) | sed 's@.*\.@@' | tr so/a lo/o)
20
21 #
22 # Compiler flags
23 #
24 SRC_C := $(filter %.c,$($(module_name)_SOURCES))
25 SRC_CPP := $(filter %.cpp,$($(module_name)_SOURCES))
26
27 ifeq (lo,$(suff))
28 CFLAGS_EXTRA := -I../../include -I../../extras $(CFLAGS_$(MODULE_NAME)) \
29                 -DMODULE_NAME=$(module_name) -DMODULE_NAME_IS_$(module_name) \
30                 -DPLUGIN $(CFLAGS_$(MODULE_NAME)_PLUGIN) $(PCFLAGS)
31 OBJ_ALL := $(SRC_C:%.c=%.lo.$(module_name)) $(SRC_CPP:%.cpp=%.lo.$(module_name))
32 else
33 CFLAGS_EXTRA := -I../../include -I../../extras $(CFLAGS_$(MODULE_NAME)) \
34                 -DMODULE_NAME=$(module_name) -DMODULE_NAME_IS_$(module_name) \
35                 -DBUILTIN $(CFLAGS_$(MODULE_NAME)_BUILTIN)
36 OBJ_ALL := $(SRC_C:%.c=%.o.$(module_name)) $(SRC_CPP:%.cpp=%.o.$(module_name))
37 endif
38
39
40 # Standard dependencies
41 #
42 C_DEP := $(SRC_C:%.c=.dep/%.d)
43 CPP_DEP := $(SRC_CPP:%.cpp=.dep/%.dpp)
44
45 export
46
47 #
48 # Virtual targets
49 #
50 all:
51
52 clean:
53 #       rm -f $(PLUGIN_ALL) $(BUILTIN_ALL)
54         rm -f *.o *.o.* *.lo *.lo.* *.moc *.moc.* *.bak
55         rm -rf .dep
56
57 FORCE:
58
59 $(OBJ_ALL): ../../Makefile.modules ../../Makefile.dep ../../Makefile Makefile
60 $(OBJ_ALL): $(H_DEP:%=../../include/%)
61
62 $(C_DEP): %.d: FORCE
63         @$(MAKE) -s --no-print-directory -f ../../Makefile.dep $@ CFLAGS="$(CFLAGS) $(CFLAGS_EXTRA)"
64
65 $(CPP_DEP): %.dpp: FORCE
66         @$(MAKE) -s --no-print-directory -f ../../Makefile.dep $@ CFLAGS="$(CFLAGS) $(CFLAGS_EXTRA)"
67
68 $(SRC_C:%.c=%.$(suff).$(module_name)): %.$(suff).$(module_name): .dep/%.d
69 $(SRC_C:%.c=%.$(suff).$(module_name)): %.$(suff).$(module_name): %.c
70         $(CC) $(CFLAGS) $(CFLAGS_EXTRA) -c $< -o $@
71
72 $(SRC_CPP:%.cpp=%.$(suff).$(module_name)): %.$(suff).$(module_name): .dep/%.dpp
73 $(SRC_CPP:%.cpp=%.$(suff).$(module_name)): %.$(suff).$(module_name): %.cpp
74         $(CC) $(CFLAGS) $(CFLAGS_EXTRA) -c $< -o $@
75
76 ../$(module_name).so: $(EXTRA_DEP) $(OBJ_ALL)
77         $(CC) $(OBJ_ALL) $(PLDFLAGS) $(LIB_$(MODULE_NAME)) $(LIB_COMMON) -o $@ && chmod a-x $@
78
79 ../$(module_name).a: $(EXTRA_DEP) $(OBJ_ALL)
80         rm -f $@ && ar rc $@ $(OBJ_ALL) && $(RANLIB) $@
81