1307d7361SKeno FischerOPENLIBM_HOME=$(abspath .) 2ccd319c0SViral B. Shahinclude ./Make.inc 3ccd319c0SViral B. Shah 4f22d7db1SThomas LeonardSUBDIRS = src $(ARCH) bsdsrc 5*c2145306SElliot Saba# Add ld80 directory on x86 and x64 6*c2145306SElliot Sabaifneq ($(filter $(ARCH),i387 amd64),) 7f22d7db1SThomas LeonardSUBDIRS += ld80 8f22d7db1SThomas Leonardendif 9307d7361SKeno Fischer 10307d7361SKeno Fischerdefine INC_template 11307d7361SKeno FischerTEST=test 12307d7361SKeno Fischeroverride CUR_SRCS = $(1)_SRCS 13307d7361SKeno Fischerinclude $(1)/Make.files 14307d7361SKeno FischerSRCS += $$(addprefix $(1)/,$$($(1)_SRCS)) 15307d7361SKeno Fischerendef 16307d7361SKeno Fischer 17307d7361SKeno FischerDIR=test 18307d7361SKeno Fischer 19307d7361SKeno Fischer$(foreach dir,$(SUBDIRS),$(eval $(call INC_template,$(dir)))) 20307d7361SKeno Fischer 21307d7361SKeno FischerDUPLICATE_NAMES = $(filter $(patsubst %.S,%,$($(ARCH)_SRCS)),$(patsubst %.c,%,$(src_SRCS))) 22307d7361SKeno FischerDUPLICATE_SRCS = $(addsuffix .c,$(DUPLICATE_NAMES)) 23307d7361SKeno Fischer 24e8bf3685SViral B. ShahOBJS = $(patsubst %.f,%.f.o,\ 25e8bf3685SViral B. Shah $(patsubst %.S,%.S.o,\ 26e8bf3685SViral B. Shah $(patsubst %.c,%.c.o,$(filter-out $(addprefix src/,$(DUPLICATE_SRCS)),$(SRCS))))) 2756811b08SViral B. Shah 286708c96bSTracy Wadleigh# If we're on windows, don't do versioned shared libraries. Also, generate an import library 296708c96bSTracy Wadleigh# for the DLL. If we're on OSX, put the version number before the .dylib. Otherwise, 306708c96bSTracy Wadleigh# put it after. 314d0bc523SElliot Sabaifeq ($(OS), WINNT) 324d0bc523SElliot SabaOLM_MAJOR_MINOR_SHLIB_EXT := $(SHLIB_EXT) 336708c96bSTracy WadleighLDFLAGS_add += -Wl,--out-implib,libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT).a 344d0bc523SElliot Sabaelse 354d0bc523SElliot Sabaifeq ($(OS), Darwin) 364d0bc523SElliot SabaOLM_MAJOR_MINOR_SHLIB_EXT := $(SOMAJOR).$(SOMINOR).$(SHLIB_EXT) 374d0bc523SElliot SabaOLM_MAJOR_SHLIB_EXT := $(SOMAJOR).$(SHLIB_EXT) 384d0bc523SElliot Sabaelse 394d0bc523SElliot SabaOLM_MAJOR_MINOR_SHLIB_EXT := $(SHLIB_EXT).$(SOMAJOR).$(SOMINOR) 404d0bc523SElliot SabaOLM_MAJOR_SHLIB_EXT := $(SHLIB_EXT).$(SOMAJOR) 414d0bc523SElliot Sabaendif 424d0bc523SElliot Sabaendif 434d0bc523SElliot Saba 444002a91aSArjen Roodselaar.PHONY: all check test clean distclean \ 454002a91aSArjen Roodselaar install install-static install-shared install-pkgconfig install-headers 46bab41fc5SPeter Colberg 474d0bc523SElliot Sabaall: libopenlibm.a libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT) 48bab41fc5SPeter Colberg 49bab41fc5SPeter Colbergcheck test: test/test-double test/test-float 50bab41fc5SPeter Colberg test/test-double 51bab41fc5SPeter Colberg test/test-float 52bab41fc5SPeter Colberg 53307d7361SKeno Fischerlibopenlibm.a: $(OBJS) 5407085279SJameson Nash $(AR) -rcs libopenlibm.a $(OBJS) 55bab41fc5SPeter Colberg 564d0bc523SElliot Sabalibopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT): $(OBJS) 574d0bc523SElliot Saba $(CC) -shared $(OBJS) $(LDFLAGS) $(LDFLAGS_add) -Wl,$(SONAME_FLAG),libopenlibm.$(OLM_MAJOR_SHLIB_EXT) -o $@ 584d0bc523SElliot Sabaifneq ($(OS),WINNT) 594d0bc523SElliot Saba ln -sf $@ libopenlibm.$(OLM_MAJOR_SHLIB_EXT) 604d0bc523SElliot Saba ln -sf $@ libopenlibm.$(SHLIB_EXT) 61716317b7STony Kelmanendif 62ccd319c0SViral B. Shah 634d0bc523SElliot Sabatest/test-double: libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT) 64bab41fc5SPeter Colberg $(MAKE) -C test test-double 65bab41fc5SPeter Colberg 664d0bc523SElliot Sabatest/test-float: libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT) 67bab41fc5SPeter Colberg $(MAKE) -C test test-float 68bab41fc5SPeter Colberg 69d28fae97SViral B. Shahclean: 70*c2145306SElliot Saba rm -f aarch64/*.o amd64/*.o arm/*.o bsdsrc/*.o i387/*.o ld80/*.o ld128/*.o src/*.o powerpc/*.o 714d0bc523SElliot Saba rm -f libopenlibm.a libopenlibm.*$(SHLIB_EXT)* 720aef1f70SPeter Colberg $(MAKE) -C test clean 7371d942f7SViral B. Shah 745b16546dSThomas Leonardopenlibm.pc: openlibm.pc.in Make.inc Makefile 755b16546dSThomas Leonard echo "prefix=${prefix}" > openlibm.pc 765b16546dSThomas Leonard echo "version=${VERSION}" >> openlibm.pc 775b16546dSThomas Leonard cat openlibm.pc.in >> openlibm.pc 785b16546dSThomas Leonard 794002a91aSArjen Roodselaarinstall-static: libopenlibm.a 804002a91aSArjen Roodselaar mkdir -p $(DESTDIR)$(libdir) 81619f8102STony Kelman cp -f -a libopenlibm.a $(DESTDIR)$(libdir)/ 824002a91aSArjen Roodselaar 834002a91aSArjen Roodselaarinstall-shared: libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT) 844002a91aSArjen Roodselaar mkdir -p $(DESTDIR)$(shlibdir) 854002a91aSArjen Roodselaar cp -f -a libopenlibm.*$(SHLIB_EXT)* $(DESTDIR)$(shlibdir)/ 864002a91aSArjen Roodselaar 874002a91aSArjen Roodselaarinstall-pkgconfig: openlibm.pc 884002a91aSArjen Roodselaar mkdir -p $(DESTDIR)$(pkgconfigdir) 894002a91aSArjen Roodselaar cp -f -a openlibm.pc $(DESTDIR)$(pkgconfigdir)/ 904002a91aSArjen Roodselaar 914002a91aSArjen Roodselaarinstall-headers: 924002a91aSArjen Roodselaar mkdir -p $(DESTDIR)$(includedir)/openlibm 935840cef4SViral B. Shah cp -f -a include/*.h $(DESTDIR)$(includedir)/openlibm 945840cef4SViral B. Shah cp -f -a src/*.h $(DESTDIR)$(includedir)/openlibm 954002a91aSArjen Roodselaar 964002a91aSArjen Roodselaarinstall: install-static install-shared install-pkgconfig install-headers 97