1307d7361SKeno FischerOPENLIBM_HOME=$(abspath .) 2ccd319c0SViral B. Shahinclude ./Make.inc 3ccd319c0SViral B. Shah 4f22d7db1SThomas LeonardSUBDIRS = src $(ARCH) bsdsrc 5f22d7db1SThomas Leonardifneq ($(ARCH), arm) 6f22d7db1SThomas LeonardSUBDIRS += ld80 7f22d7db1SThomas Leonardendif 8307d7361SKeno Fischer 9307d7361SKeno Fischerdefine INC_template 10307d7361SKeno FischerTEST=test 11307d7361SKeno Fischeroverride CUR_SRCS = $(1)_SRCS 12307d7361SKeno Fischerinclude $(1)/Make.files 13307d7361SKeno FischerSRCS += $$(addprefix $(1)/,$$($(1)_SRCS)) 14307d7361SKeno Fischerendef 15307d7361SKeno Fischer 16307d7361SKeno FischerDIR=test 17307d7361SKeno Fischer 18307d7361SKeno Fischer$(foreach dir,$(SUBDIRS),$(eval $(call INC_template,$(dir)))) 19307d7361SKeno Fischer 20307d7361SKeno FischerDUPLICATE_NAMES = $(filter $(patsubst %.S,%,$($(ARCH)_SRCS)),$(patsubst %.c,%,$(src_SRCS))) 21307d7361SKeno FischerDUPLICATE_SRCS = $(addsuffix .c,$(DUPLICATE_NAMES)) 22307d7361SKeno Fischer 23e8bf3685SViral B. ShahOBJS = $(patsubst %.f,%.f.o,\ 24e8bf3685SViral B. Shah $(patsubst %.S,%.S.o,\ 25e8bf3685SViral B. Shah $(patsubst %.c,%.c.o,$(filter-out $(addprefix src/,$(DUPLICATE_SRCS)),$(SRCS))))) 2656811b08SViral B. Shah 27*bab41fc5SPeter Colberg.PHONY: all check test clean distclean install 28*bab41fc5SPeter Colberg 29307d7361SKeno Fischerall: libopenlibm.a libopenlibm.$(SHLIB_EXT) 30*bab41fc5SPeter Colberg 31*bab41fc5SPeter Colbergcheck test: test/test-double test/test-float 32*bab41fc5SPeter Colberg test/test-double 33*bab41fc5SPeter Colberg test/test-float 34*bab41fc5SPeter Colberg 35307d7361SKeno Fischerlibopenlibm.a: $(OBJS) 3607085279SJameson Nash $(AR) -rcs libopenlibm.a $(OBJS) 37*bab41fc5SPeter Colberg 38307d7361SKeno Fischerlibopenlibm.$(SHLIB_EXT): $(OBJS) 39716317b7STony Kelmanifeq ($(OS),WINNT) 40f70240deSAlexander Light $(CC) -shared $(OBJS) $(LDFLAGS) $(LDFLAGS_add) -Wl,$(SONAME_FLAG),libopenlibm.$(SHLIB_EXT) -o libopenlibm.$(SHLIB_EXT) 41716317b7STony Kelmanelse 42f70240deSAlexander Light $(CC) -shared $(OBJS) $(LDFLAGS) $(LDFLAGS_add) -Wl,$(SONAME_FLAG),libopenlibm.$(SHLIB_EXT).$(SOMAJOR) -o libopenlibm.$(SHLIB_EXT).$(SOMAJOR).$(SOMINOR) 431f77ae02SMilan Bouchet-Valat @-ln -sf libopenlibm.$(SHLIB_EXT).$(SOMAJOR).$(SOMINOR) libopenlibm.$(SHLIB_EXT).$(SOMAJOR) 441f77ae02SMilan Bouchet-Valat @-ln -sf libopenlibm.$(SHLIB_EXT).$(SOMAJOR).$(SOMINOR) libopenlibm.$(SHLIB_EXT) 45716317b7STony Kelmanendif 46ccd319c0SViral B. Shah 47*bab41fc5SPeter Colbergtest/test-double: libopenlibm.$(SHLIB_EXT) 48*bab41fc5SPeter Colberg $(MAKE) -C test test-double 49*bab41fc5SPeter Colberg 50*bab41fc5SPeter Colbergtest/test-float: libopenlibm.$(SHLIB_EXT) 51*bab41fc5SPeter Colberg $(MAKE) -C test test-float 52*bab41fc5SPeter Colberg 53d28fae97SViral B. Shahclean: 5471d942f7SViral B. Shah @for dir in $(SUBDIRS) .; do \ 5571d942f7SViral B. Shah rm -fr $$dir/*.o $$dir/*.a $$dir/*.$(SHLIB_EXT)*; \ 5671d942f7SViral B. Shah done 573ac6130bSThomas Leonard @rm -f test/test-double test/test-float 58d28fae97SViral B. Shah 591ac594e4SViral B. Shahdistclean: 60e9c0ba7aSIsaiah Norton -rm -f $(OBJS) *.a *.$(SHLIB_EXT) libopenlibm.* 61e9c0ba7aSIsaiah Norton -$(MAKE) -C test clean 6271d942f7SViral B. Shah 635b16546dSThomas Leonardopenlibm.pc: openlibm.pc.in Make.inc Makefile 645b16546dSThomas Leonard echo "prefix=${prefix}" > openlibm.pc 655b16546dSThomas Leonard echo "version=${VERSION}" >> openlibm.pc 665b16546dSThomas Leonard cat openlibm.pc.in >> openlibm.pc 675b16546dSThomas Leonard 685b16546dSThomas Leonardinstall: all openlibm.pc 69716317b7STony Kelman mkdir -p $(DESTDIR)$(shlibdir) 705b16546dSThomas Leonard mkdir -p $(DESTDIR)$(libdir)/pkgconfig 71eb2f4d4bSElliot Saba mkdir -p $(DESTDIR)$(includedir)/openlibm 72619f8102STony Kelman cp -f -a libopenlibm.$(SHLIB_EXT)* $(DESTDIR)$(shlibdir)/ 73619f8102STony Kelman cp -f -a libopenlibm.a $(DESTDIR)$(libdir)/ 74bc3f903bSEd Schouten cp -f -a include/openlibm*.h $(DESTDIR)$(includedir)/ 75619f8102STony Kelman cp -f -a openlibm.pc $(DESTDIR)$(libdir)/pkgconfig/ 76