]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/Makerules.global
update
[l4.git] / kernel / fiasco / src / Makerules.global
1 # -*- makefile  -*-
2
3 #
4 # Makerules for the sources of Fiasco
5 #
6
7 #
8 # Source-code locations
9 #
10
11
12 # If building in a separate srcdir, prepend it to module-provided include paths
13 ifneq ($(srcdir),.)
14 VPATH           := $(addprefix $(srcdir)/, $(VPATH))
15 PRIVATE_INCDIR  := $(addprefix $(srcdir)/, $(PRIVATE_INCDIR))
16 endif
17
18 # Finally add the current directory and the preprocessor directory
19 VPATH           += . auto
20 PRIVATE_INCDIR  += . auto
21
22 #
23 # Function for all Makreuls.<subsystem> files
24 #
25
26 MAKERULES_SUBSYS = $(foreach subsys, $(SUBSYSTEMS), $(firstword $(wildcard $(addsuffix /Makerules.$(subsys),$(VPATH) $(srcdir)))))
27
28 #
29 # special: build certain sources without profiling flags
30 #
31 NOPROFILE_C =  $(filter $(addsuffix .c,  $(NOPROFILE)), $(SRC_C))
32 NOPROFILE_CC = $(filter $(addsuffix .cc, $(NOPROFILE)), $(SRC_CC))
33 NOOPT_C =      $(filter $(addsuffix .c,  $(NOOPT)),     $(SRC_C))
34 NOOPT_CC =     $(filter $(addsuffix .cc, $(NOOPT)),     $(SRC_CC))
35 NONDEBUG_C =   $(filter $(addsuffix .c,  $(NONDEBUG)),  $(SRC_C))
36 NONDEBUG_CC =  $(filter $(addsuffix .cc, $(NONDEBUG)),  $(SRC_CC))
37 INSTRUMENT_C = $(filter $(addsuffix .c,  $(INSTRUMENT)),  $(SRC_C))
38 INSTRUMENT_CC = $(filter $(addsuffix .cc, $(INSTRUMENT)),  $(SRC_CC))
39
40 $(NOPROFILE_CC:.cc=.o) : %.o: %.cc
41         $(COMP_MESSAGE)
42         $(VERBOSE)$(CXX) -c -MD -MP -MF .$*.cc.d.new -o $@ \
43           $(CPPFLAGS) $(CXXFLAGS) $(OPT_CXXFLAGS) $<
44         @mv .$*.cc.d.new .$*.cc.d
45
46 $(NOPROFILE_C:.c=.o) : %.o: %.c
47         $(COMP_MESSAGE)
48         $(VERBOSE)$(CC) -c -MD -MP -MF .$*.c.d.new -o $@ \
49           $(CPPFLAGS) $(CFLAGS) $(OPT_CFLAGS) $<
50         @mv .$*.c.d.new .$*.c.d
51
52 $(NOOPT_CC:.cc=.o) : %.o: %.cc
53         $(COMP_MESSAGE_NOOPT)
54         $(VERBOSE)$(CXX) -c -MD -MP -MF .$*.cc.d.new -o $@ \
55           $(CPPFLAGS) $(CXXFLAGS) $(NOOPT_CXXFLAGS) $<
56         @mv .$*.cc.d.new .$*.cc.d
57
58 $(NOOPT_CC:.cc=.S) : %.S: %.cc
59         $(COMP_MESSAGE_NOOPT)
60         $(VERBOSE)$(CXX) -S -o $@ \
61           $(CPPFLAGS) $(CXXFLAGS) $(NOOPT_CXXFLAGS) $<
62
63 $(NOOPT_C:.c=.o) : %.o: %.c
64         $(COMP_MESSAGE_NOOPT)
65         $(VERBOSE)$(CC) -c -MD -MP -MF .$*.c.d.new -o $@ \
66           $(CPPFLAGS) $(CFLAGS) $(NOOPT_CFLAGS) $<
67         @mv .$*.c.d.new .$*.c.d
68
69 $(NOOPT_C:.c=.S) : %.S: %.c
70         $(COMP_MESSAGE_NOOPT)
71         $(VERBOSE)$(CC) -S -o $@ \
72           $(CPPFLAGS) $(CFLAGS) $(NOOPT_CFLAGS) $<
73
74 $(INSTRUMENT_CC:.cc=.o) : %.o: %.cc
75         $(COMP_MESSAGE)
76         $(VERBOSE)$(CXX) -c -MD -MP -MF .$*.cc.d.new -o $@ \
77           $(CPPFLAGS) $(CXXFLAGS) $(PROF_FLAGS) $(OPT_CXXFLAGS) $(INST_FLAGS) $<
78         @mv .$*.cc.d.new .$*.cc.d
79
80 $(INSTRUMENT_C:.c=.o) : %.o: %.c
81         $(COMP_MESSAGE)
82         $(VERBOSE)$(CC) -c -MD -MP -MF .$*.c.d.new -o $@ \
83           $(CPPFLAGS) $(CFLAGS) $(PROF_FLAGS) $(OPT_CFLAGS) $(INST_FLAGS) $<
84         @mv .$*.c.d.new .$*.c.d
85
86 $(NONDEBUG_CC:.cc=.o) : %.o: %.cc
87         $(COMP_MESSAGE)
88         $(VERBOSE)$(CXX) -c -MD -MP -MF .$*.cc.d.new -o $@ $(filter-out -DNDEBUG, \
89           $(CPPFLAGS) $(CXXFLAGS) $(PROF_FLAGS) $(OPT_CXXFLAGS)) $<
90         @mv .$*.cc.d.new .$*.cc.d
91
92 $(NONDEBUG_CC:.cc=.S) : %.S: %.cc
93         $(COMP_MESSAGE)
94         $(VERBOSE)$(CXX) -S -o $@ $(filter-out -DNDEBUG, \
95           $(CPPFLAGS) $(CXXFLAGS) $(PROF_FLAGS) $(OPT_CXXFLAGS)) $<
96
97 $(NONDEBUG_C:.c=.o) : %.o: %.c
98         $(COMP_MESSAGE)
99         $(VERBOSE)$(CC) -c -MD -MP -MF .$*.c.d.new -o $@ $(filter-out -DNDEBUG, \
100           $(CPPFLAGS) $(CFLAGS) $(PROF_FLAGS) $(OPT_CFLAGS)) $<
101         @mv .$*.c.d.new .$*.c.d
102
103 $(NONDEBUG_C:.c=.S) : %.S: %.c
104         $(COMP_MESSAGE)
105         $(VERBOSE)$(CC) -S -o $@ $(filter-out -DNDEBUG, \
106           $(CPPFLAGS) $(CFLAGS) $(PROF_FLAGS) $(OPT_CFLAGS)) $<
107
108 ###
109
110 #
111 # Implicit rules
112 #
113
114 .PHONY: FORCE
115
116 %.o:    %.cc
117         $(COMP_MESSAGE)
118         $(VERBOSE)$(CXX) -c -MD -MP -MF .$*.cc.d.new -o $@ \
119           $(CPPFLAGS) $(CXXFLAGS) $(PROF_FLAGS) $(OPT_CXXFLAGS) $<
120         @mv .$*.cc.d.new .$*.cc.d
121
122 %.S:    %.cc
123         $(COMP_MESSAGE)
124         $(VERBOSE)$(CC) -S -o $@ -fverbose-asm \
125           $(CPPFLAGS) $(CXXFLAGS) $(PROF_FLAGS) $(OPT_CXXFLAGS) $<
126
127 %.o:    %.c
128         $(COMP_MESSAGE)
129         $(VERBOSE)$(CC) -c -MD -MP -MF .$*.c.d.new -o $@ \
130           $(CPPFLAGS) $(CFLAGS) $(PROF_FLAGS) $(OPT_CFLAGS) $<
131         @mv .$*.c.d.new .$*.c.d
132
133 %.S:    %.c
134         $(COMP_MESSAGE)
135         $(VERBOSE)$(CC) -S -o $@ -fverbose-asm \
136           $(CPPFLAGS) $(CFLAGS) $(PROF_FLAGS) $(OPT_CFLAGS) $<
137
138 %.o:    %.S
139         $(COMP_MESSAGE)
140         $(VERBOSE)$(CC) -c -MD -MP -MF .$*.S.d.new -o $@ \
141           $(CPPFLAGS) $(ASFLAGS) $<
142         @mv .$*.S.d.new .$*.S.d
143
144 %.i:    %.c
145         $(COMP_MESSAGE)
146         $(VERBOSE)$(CC) -E -dD -o $@ \
147           $(CPPFLAGS) $(CFLAGS) $(PROF_FLAGS) $(OPT_CFLAGS) $<
148
149 %.i:    %.cc
150         $(COMP_MESSAGE)
151         $(VERBOSE)$(CXX) -E -dD -o $@ \
152           $(CPPFLAGS) $(CXXFLAGS) $(PROF_FLAGS) $(OPT_CXXFLAGS) $<
153
154 %.i:    %.S
155         $(COMP_MESSAGE)
156         $(VERBOSE)$(CC) -E -dD -o $@ $(CPPFLAGS) $(ASFLAGS) $<
157
158 %.lds:  %.ld
159         $(COMP_MESSAGE)
160         $(VERBOSE)$(SYSTEM_TARGET)cpp -undef -P -DASSEMBLER -o $@ $(CPPFLAGS) $<
161
162 (%): %
163         $(AR_MESSAGE)
164         $(VERBOSE)$(AR) $(ARFLAGS) $@ $<
165
166 vpath %.ld $(srcdir)
167
168 # Suck in user-specific optional Makerules files
169 -include Makerules.local