From 3ec82a5a420fc00d38ad7dded819525a91533652 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Fri, 5 Mar 2010 08:13:25 +0000 Subject: First steps for libapk --- Make.rules | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'Make.rules') diff --git a/Make.rules b/Make.rules index 3bdf267..9fd4862 100644 --- a/Make.rules +++ b/Make.rules @@ -70,7 +70,7 @@ INSTALL := install INSTALLDIR := $(INSTALL) -d CFLAGS ?= -g -O2 -CFLAGS_ALL := -Werror -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99 +CFLAGS_ALL := -Werror -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99 -fPIC CFLAGS_ALL += $(CFLAGS) LDFLAGS ?= -g @@ -196,6 +196,24 @@ $(obj)/%.o: override local-target-prereqs=% $(obj)/%.o: $(src)/%.c FORCE $(call if_changed_rule,cc_o_c) +##### +# Link shared libraries +# +__shlibs := $(addprefix $(obj)/,$(sort $(shlibs-y))) +shobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(shlibs-y),$($(m)-objs)))) + +# link shared library +quiet_cmd_shlib = LD -shared $@ + cmd_shlib = $(CC) $(ld_flags) -shared -o $@ \ + $(addprefix $(obj)/,$($(@F)-objs)) \ + $(LIBS) $(LIBS_$(@F)) + +$(__shlibs): override local-target-prereqs=$(addprefix $(obj)/,$($(*F)-objs)) + +$(__shlibs): $(obj)/%: $(shobjs) FORCE + $(call if_changed,shlib) + +targets += $(__shlibs) $(shobjs) ##### # Link programs @@ -256,7 +274,7 @@ ifeq ($(toplevelrun),yes) \( -name '*.[oas]' -o -name '.*.cmd' -o -name '.*.d' \) \ -type f -print | xargs rm -f endif - $(Q)rm -rf $(addprefix $(obj)/,$(sort $(progs-y) $(progs-n) $(progs-))) + $(Q)rm -rf $(addprefix $(obj)/,$(sort $(progs-y) $(progs-n) $(progs-) $(shlibs-y) $(shlibs-n) $(shlibs-))) ifeq ($(origin VERSION),command line) DIST_VERSION=$(VERSION) -- cgit v1.2.3