From f70602be19ff8042c369ea33b29f90b8c0f5d02e Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Wed, 28 Sep 2005 12:34:41 +0000 Subject: Remove ar-target and shared targets, at build time now we traverse the tree only once. Generalize all toplevel makefiles. Make sure, that libdl.so is built against libc.so and not libc.a --- libm/Makefile | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) (limited to 'libm/Makefile') diff --git a/libm/Makefile b/libm/Makefile index d8927a89a..00d29d589 100644 --- a/libm/Makefile +++ b/libm/Makefile @@ -36,19 +36,22 @@ include $(TOPDIR)Rules.mak CFLAGS+=$(SSP_ALL_CFLAGS) +CFLAGS+=-D_IEEE_LIBM -D_ISOC99_SOURCE -D_SVID_SOURCE + +ALL_SUBDIRS = powerpc + DIRS = ifeq ($(strip $(HAS_FPU)),y) ifeq ($(TARGET_ARCH),$(wildcard $(TARGET_ARCH))) DIRS = $(TARGET_ARCH) endif endif -ALL_SUBDIRS = powerpc +LIB_NAME=libm +AR_LIB_NAME=$(TOPDIR)lib/$(LIB_NAME).a +SO_LIB_NAME=$(TOPDIR)lib/$(LIB_NAME).so +SO_FULL_NAME=$(LIB_NAME)-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so -LIBM=libm.a -LIBM_SHARED=libm.so -LIBM_SHARED_FULLNAME=libm-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so -CFLAGS+=-D_IEEE_LIBM -D_ISOC99_SOURCE -D_SVID_SOURCE FL_MSRC = float_wrappers.c ifeq ($(strip $(DO_C99_MATH)),y) @@ -92,26 +95,25 @@ endif COBJS=$(patsubst %.c,%.o, $(CSRC)) OBJS=$(COBJS) $(FL_MOBJ) +ifeq ($(strip $(HAVE_SHARED)),y) +all: $(SO_LIB_NAME) +else +all: subdirs +endif -all: $(LIBM) subdirs - -ar-target: $(OBJS) - $(AR) $(ARFLAGS) $(LIBM) $(OBJS) -$(LIBM): ar-target +$(AR_LIB_NAME): $(OBJS) $(INSTALL) -d $(TOPDIR)lib - $(RM) $(TOPDIR)lib/$(LIBM) - $(INSTALL) -m 644 $(LIBM) $(TOPDIR)lib + $(RM) $(AR_LIB_NAME) + $(AR) $(ARFLAGS) $(AR_LIB_NAME) $(OBJS) -shared: all - $(LD) $(LDFLAGS) -soname=$(LIBM_SHARED).$(MAJOR_VERSION) \ - -o $(LIBM_SHARED_FULLNAME) --whole-archive $(LIBM) \ +$(SO_LIB_NAME): subdirs + $(RM) $(TOPDIR)lib/$(SO_FULL_NAME) $(SO_LIB_NAME).$(MAJOR_VERSION) $(SO_LIB_NAME) + $(LD) $(LDFLAGS) -soname=$(LIB_NAME).so.$(MAJOR_VERSION) \ + -o $(TOPDIR)lib/$(SO_FULL_NAME) --whole-archive $(AR_LIB_NAME) \ --no-whole-archive $(TOPDIR)libc/misc/internals/interp.o \ -L$(TOPDIR)lib -lc $(LDADD_LIBFLOAT) $(LIBGCC) - $(INSTALL) -d $(TOPDIR)lib - $(RM) $(TOPDIR)lib/$(LIBM_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBM_SHARED).$(MAJOR_VERSION) - $(INSTALL) -m 644 $(LIBM_SHARED_FULLNAME) $(TOPDIR)lib - $(LN) -sf $(LIBM_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBM_SHARED) - $(LN) -sf $(LIBM_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBM_SHARED).$(MAJOR_VERSION) + $(LN) -sf $(SO_FULL_NAME) $(SO_LIB_NAME).$(MAJOR_VERSION) + $(LN) -sf $(SO_FULL_NAME) $(SO_LIB_NAME) $(COBJS): %.o : %.c $(CC) $(CFLAGS) -c $< -o $@ @@ -125,12 +127,12 @@ tags: ctags -R clean: subdirs_clean - $(RM) *.[oa] *~ core $(LIBM) $(LIBM_SHARED_FULLNAME) + $(RM) *.o *~ core subdirs: $(patsubst %, _dir_%, $(DIRS)) subdirs_clean: $(patsubst %, _dirclean_%, $(ALL_SUBDIRS)) -$(patsubst %, _dir_%, $(DIRS)): ar-target +$(patsubst %, _dir_%, $(DIRS)): $(AR_LIB_NAME) $(MAKE) -C $(patsubst _dir_%, %, $@) $(patsubst %, _dirclean_%, $(ALL_SUBDIRS)): dummy -- cgit v1.2.3