1307d7361SKeno FischerOPENLIBM_HOME=$(abspath .) 2ccd319c0SViral B. Shahinclude ./Make.inc 3ccd319c0SViral B. Shah 4f22d7db1SThomas LeonardSUBDIRS = src $(ARCH) bsdsrc 5c2145306SElliot Saba# Add ld80 directory on x86 and x64 6c2145306SElliot Sabaifneq ($(filter $(ARCH),i387 amd64),) 7f22d7db1SThomas LeonardSUBDIRS += ld80 8238a9095SYichao Yuelse 9238a9095SYichao Yuifneq ($(filter $(ARCH),aarch64),) 10238a9095SYichao YuSUBDIRS += ld128 11238a9095SYichao Yuelse 12238a9095SYichao Yuendif 13f22d7db1SThomas Leonardendif 14307d7361SKeno Fischer 15307d7361SKeno Fischerdefine INC_template 16307d7361SKeno FischerTEST=test 17307d7361SKeno Fischeroverride CUR_SRCS = $(1)_SRCS 18307d7361SKeno Fischerinclude $(1)/Make.files 19307d7361SKeno FischerSRCS += $$(addprefix $(1)/,$$($(1)_SRCS)) 20307d7361SKeno Fischerendef 21307d7361SKeno Fischer 22307d7361SKeno FischerDIR=test 23307d7361SKeno Fischer 24307d7361SKeno Fischer$(foreach dir,$(SUBDIRS),$(eval $(call INC_template,$(dir)))) 25307d7361SKeno Fischer 26307d7361SKeno FischerDUPLICATE_NAMES = $(filter $(patsubst %.S,%,$($(ARCH)_SRCS)),$(patsubst %.c,%,$(src_SRCS))) 27307d7361SKeno FischerDUPLICATE_SRCS = $(addsuffix .c,$(DUPLICATE_NAMES)) 28307d7361SKeno Fischer 29e8bf3685SViral B. ShahOBJS = $(patsubst %.f,%.f.o,\ 30e8bf3685SViral B. Shah $(patsubst %.S,%.S.o,\ 31e8bf3685SViral B. Shah $(patsubst %.c,%.c.o,$(filter-out $(addprefix src/,$(DUPLICATE_SRCS)),$(SRCS))))) 3256811b08SViral B. Shah 336708c96bSTracy Wadleigh# If we're on windows, don't do versioned shared libraries. Also, generate an import library 346708c96bSTracy Wadleigh# for the DLL. If we're on OSX, put the version number before the .dylib. Otherwise, 356708c96bSTracy Wadleigh# put it after. 364d0bc523SElliot Sabaifeq ($(OS), WINNT) 374d0bc523SElliot SabaOLM_MAJOR_MINOR_SHLIB_EXT := $(SHLIB_EXT) 386708c96bSTracy WadleighLDFLAGS_add += -Wl,--out-implib,libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT).a 394d0bc523SElliot Sabaelse 404d0bc523SElliot Sabaifeq ($(OS), Darwin) 414d0bc523SElliot SabaOLM_MAJOR_MINOR_SHLIB_EXT := $(SOMAJOR).$(SOMINOR).$(SHLIB_EXT) 424d0bc523SElliot SabaOLM_MAJOR_SHLIB_EXT := $(SOMAJOR).$(SHLIB_EXT) 434d0bc523SElliot Sabaelse 444d0bc523SElliot SabaOLM_MAJOR_MINOR_SHLIB_EXT := $(SHLIB_EXT).$(SOMAJOR).$(SOMINOR) 454d0bc523SElliot SabaOLM_MAJOR_SHLIB_EXT := $(SHLIB_EXT).$(SOMAJOR) 464d0bc523SElliot Sabaendif 474d0bc523SElliot Sabaendif 484d0bc523SElliot Saba 494002a91aSArjen Roodselaar.PHONY: all check test clean distclean \ 504002a91aSArjen Roodselaar install install-static install-shared install-pkgconfig install-headers 51bab41fc5SPeter Colberg 524d0bc523SElliot Sabaall: libopenlibm.a libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT) 53bab41fc5SPeter Colberg 54bab41fc5SPeter Colbergcheck test: test/test-double test/test-float 55bab41fc5SPeter Colberg test/test-double 56bab41fc5SPeter Colberg test/test-float 57bab41fc5SPeter Colberg 58307d7361SKeno Fischerlibopenlibm.a: $(OBJS) 5907085279SJameson Nash $(AR) -rcs libopenlibm.a $(OBJS) 60bab41fc5SPeter Colberg 614d0bc523SElliot Sabalibopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT): $(OBJS) 624d0bc523SElliot Saba $(CC) -shared $(OBJS) $(LDFLAGS) $(LDFLAGS_add) -Wl,$(SONAME_FLAG),libopenlibm.$(OLM_MAJOR_SHLIB_EXT) -o $@ 634d0bc523SElliot Sabaifneq ($(OS),WINNT) 644d0bc523SElliot Saba ln -sf $@ libopenlibm.$(OLM_MAJOR_SHLIB_EXT) 654d0bc523SElliot Saba ln -sf $@ libopenlibm.$(SHLIB_EXT) 66716317b7STony Kelmanendif 67ccd319c0SViral B. Shah 684d0bc523SElliot Sabatest/test-double: libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT) 69bab41fc5SPeter Colberg $(MAKE) -C test test-double 70bab41fc5SPeter Colberg 714d0bc523SElliot Sabatest/test-float: libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT) 72bab41fc5SPeter Colberg $(MAKE) -C test test-float 73bab41fc5SPeter Colberg 74d28fae97SViral B. Shahclean: 75*2a1e5685SDan Horák rm -f aarch64/*.o amd64/*.o arm/*.o bsdsrc/*.o i387/*.o ld80/*.o ld128/*.o src/*.o powerpc/*.o mips/*.o s390/*.o 764d0bc523SElliot Saba rm -f libopenlibm.a libopenlibm.*$(SHLIB_EXT)* 770aef1f70SPeter Colberg $(MAKE) -C test clean 7871d942f7SViral B. Shah 795b16546dSThomas Leonardopenlibm.pc: openlibm.pc.in Make.inc Makefile 805b16546dSThomas Leonard echo "prefix=${prefix}" > openlibm.pc 815b16546dSThomas Leonard echo "version=${VERSION}" >> openlibm.pc 825b16546dSThomas Leonard cat openlibm.pc.in >> openlibm.pc 835b16546dSThomas Leonard 844002a91aSArjen Roodselaarinstall-static: libopenlibm.a 854002a91aSArjen Roodselaar mkdir -p $(DESTDIR)$(libdir) 8648c6c2c2SAlex Arslan cp -RpP -f libopenlibm.a $(DESTDIR)$(libdir)/ 874002a91aSArjen Roodselaar 884002a91aSArjen Roodselaarinstall-shared: libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT) 894002a91aSArjen Roodselaar mkdir -p $(DESTDIR)$(shlibdir) 9048c6c2c2SAlex Arslan cp -RpP -f libopenlibm.*$(SHLIB_EXT)* $(DESTDIR)$(shlibdir)/ 914002a91aSArjen Roodselaar 924002a91aSArjen Roodselaarinstall-pkgconfig: openlibm.pc 934002a91aSArjen Roodselaar mkdir -p $(DESTDIR)$(pkgconfigdir) 9448c6c2c2SAlex Arslan cp -RpP -f openlibm.pc $(DESTDIR)$(pkgconfigdir)/ 954002a91aSArjen Roodselaar 964002a91aSArjen Roodselaarinstall-headers: 974002a91aSArjen Roodselaar mkdir -p $(DESTDIR)$(includedir)/openlibm 9848c6c2c2SAlex Arslan cp -RpP -f include/*.h $(DESTDIR)$(includedir)/openlibm 9948c6c2c2SAlex Arslan cp -RpP -f src/*.h $(DESTDIR)$(includedir)/openlibm 1004002a91aSArjen Roodselaar 1014002a91aSArjen Roodselaarinstall: install-static install-shared install-pkgconfig install-headers 102