]> git.zerfleddert.de Git - amt/blame - mk/Compile.mk
fix order of OEMparameters to enable BIOS SOL on newer AMT generations
[amt] / mk / Compile.mk
CommitLineData
402f63cd
MG
1#
2# some rules to compile stuff ...
3#
4# (c) 2002-2006 Gerd Hoffmann <kraxel@suse.de>
5#
6# main features:
7# * autodependencies via "cpp -MD"
8# * fancy, non-verbose output
9#
10# This file is public domain. No warranty. If it breaks you keep
11# both pieces.
12#
13########################################################################
14
15# verbose yes/no
16verbose ?= no
17
18# dependency files
19tmpdep = mk/$(subst /,_,$*).tmp
20depfile = mk/$(subst /,_,$*).dep
21depfiles = mk/*.dep
22
23compile_c = $(CC) $(CFLAGS) -Wp,-MD,$(tmpdep) -c -o $@ $<
24compile_cc = $(CXX) $(CXXFLAGS) -Wp,-MD,$(tmpdep) -c -o $@ $<
25fixup_deps = sed -e "s|.*\.o:|$@:|" < $(tmpdep) > $(depfile) && rm -f $(tmpdep)
26cc_makedirs = mkdir -p $(dir $@) $(dir $(depfile))
27
28link_app = $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
29link_so = $(CC) $(LDFLAGS) -shared -Wl,-soname,$(@F) -o $@ $^ $(LDLIBS)
30ar_lib = rm -f $@ && ar -r $@ $^ && ranlib $@
31
32moc_h = $(MOC) $< -o $@
33msgfmt_po = msgfmt -o $@ $<
34
35# non-verbose output
36ifeq ($(verbose),no)
37 echo_compile_c = echo " CC " $@
38 echo_compile_cc = echo " CXX " $@
39 echo_link_app = echo " LD " $@
40 echo_link_so = echo " LD " $@
41 echo_ar_lib = echo " AR " $@
42 echo_moc_h = echo " MOC " $@
43 echo_msgfmt_po = echo " MSGFMT " $@
44else
45 echo_compile_c = echo $(compile_c)
46 echo_compile_cc = echo $(compile_cc)
47 echo_link_app = echo $(link_app)
48 echo_link_so = echo $(link_so)
49 echo_ar_lib = echo $(ar_lib)
50 echo_moc_h = echo $(moc_h)
51 echo_msgfmt_po = echo $(msgfmt_po)
52endif
53
54%.o: %.c
55 @$(cc_makedirs)
56 @$(echo_compile_c)
57 @$(compile_c)
58 @$(fixup_deps)
59
60%.o: %.cc
61 @$(cc_makedirs)
62 @$(echo_compile_cc)
63 @$(compile_cc)
64 @$(fixup_deps)
65
66%.o: %.cpp
67 @$(cc_makedirs)
68 @$(echo_compile_cc)
69 @$(compile_cc)
70 @$(fixup_deps)
71
72
73%.so: %.o
74 @$(echo_link_so)
75 @$(link_so)
76
77%: %.o
78 @$(echo_link_app)
79 @$(link_app)
80
81%.moc : %.h
82 @$(echo_moc_h)
83 @$(moc_h)
84
85%.mo : %.po
86 @$(echo_msgfmt_po)
87 @$(msgfmt_po)
88
Impressum, Datenschutz