1OPENLIBM_HOME=$(abspath .) 2include ./Make.inc 3 4SUBDIRS = src ld80 $(ARCH) bsdsrc amos 5 6define INC_template 7TEST=test 8override CUR_SRCS = $(1)_SRCS 9include $(1)/Make.files 10SRCS += $$(addprefix $(1)/,$$($(1)_SRCS)) 11endef 12 13DIR=test 14 15$(foreach dir,$(SUBDIRS),$(eval $(call INC_template,$(dir)))) 16 17DUPLICATE_NAMES = $(filter $(patsubst %.S,%,$($(ARCH)_SRCS)),$(patsubst %.c,%,$(src_SRCS))) 18DUPLICATE_SRCS = $(addsuffix .c,$(DUPLICATE_NAMES)) 19 20OBJS = $(patsubst %.f,%.f.o,\ 21 $(patsubst %.S,%.S.o,\ 22 $(patsubst %.c,%.c.o,$(filter-out $(addprefix src/,$(DUPLICATE_SRCS)),$(SRCS))))) 23 24all: libopenlibm.a libopenlibm.$(SHLIB_EXT) 25 $(MAKE) -C test 26libopenlibm.a: $(OBJS) 27 ar -rcs libopenlibm.a $(OBJS) 28libopenlibm.$(SHLIB_EXT): $(OBJS) 29 $(FC) -shared $(OBJS) -o libopenlibm.$(SHLIB_EXT) 30 31distclean: 32 rm -f $(OBJS) *.a *.$(SHLIB_EXT) 33 $(MAKE) -C test clean 34