diff options
Diffstat (limited to 'mk/Compile.mk')
-rw-r--r-- | mk/Compile.mk | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/mk/Compile.mk b/mk/Compile.mk index 75dadde..ae88f14 100644 --- a/mk/Compile.mk +++ b/mk/Compile.mk @@ -1,7 +1,7 @@ # # some rules to compile stuff ... # -# (c) 2002 Gerd Knorr <kraxel@bytesex.org> +# (c) 2002-2006 Gerd Hoffmann <kraxel@suse.de> # # main features: # * autodependencies via "cpp -MD" @@ -21,8 +21,10 @@ depfile = mk/$(subst /,_,$*).dep depfiles = mk/*.dep compile_c = $(CC) $(CFLAGS) -Wp,-MD,$(tmpdep) -c -o $@ $< +compile_c_pic = $(CC) $(CFLAGS) -fPIC -Wp,-MD,$(tmpdep) -c -o $@ $< compile_cc = $(CXX) $(CXXFLAGS) -Wp,-MD,$(tmpdep) -c -o $@ $< fixup_deps = sed -e "s|.*\.o:|$@:|" < $(tmpdep) > $(depfile) && rm -f $(tmpdep) +cc_makedirs = mkdir -p $(dir $@) $(dir $(depfile)) link_app = $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) link_so = $(CC) $(LDFLAGS) -shared -Wl,-soname,$(@F) -o $@ $^ $(LDLIBS) @@ -34,6 +36,7 @@ msgfmt_po = msgfmt -o $@ $< # non-verbose output ifeq ($(verbose),no) echo_compile_c = echo " CC " $@ + echo_compile_c_pic = echo " CC " $@ echo_compile_cc = echo " CXX " $@ echo_link_app = echo " LD " $@ echo_link_so = echo " LD " $@ @@ -42,6 +45,7 @@ ifeq ($(verbose),no) echo_msgfmt_po = echo " MSGFMT " $@ else echo_compile_c = echo $(compile_c) + echo_compile_c_pic = echo $(compile_c_pic) echo_compile_cc = echo $(compile_cc) echo_link_app = echo $(link_app) echo_link_so = echo $(link_so) @@ -51,28 +55,42 @@ else endif %.o: %.c + @$(cc_makedirs) @$(echo_compile_c) @$(compile_c) @$(fixup_deps) +%.opic: %.c + @$(cc_makedirs) + @$(echo_compile_c_pic) + @$(compile_c_pic) + @$(fixup_deps) + %.o: %.cc + @$(cc_makedirs) @$(echo_compile_cc) @$(compile_cc) @$(fixup_deps) %.o: %.cpp + @$(cc_makedirs) @$(echo_compile_cc) @$(compile_cc) @$(fixup_deps) +%: %.o + @$(echo_link_app) + @$(link_app) + %.so: %.o @$(echo_link_so) @$(link_so) -%: %.o - @$(echo_link_app) - @$(link_app) +%.a: %.o + @$(echo_ar_lib) + @$(ar_lib) + %.moc : %.h @$(echo_moc_h) |