| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 | OPENLIBM_HOME=$(abspath .)include ./Make.incSUBDIRS = src $(ARCH) bsdsrcifeq ($(LONG_DOUBLE_NOT_DOUBLE),1)# Add ld80 directory on x86 and x64ifneq ($(filter $(ARCH),i387 amd64),)SUBDIRS += ld80elseifneq ($(filter $(ARCH),aarch64),)SUBDIRS += ld128elseendifendifendifdefine INC_templateTEST=testoverride CUR_SRCS = $(1)_SRCSinclude $(1)/Make.filesSRCS += $$(addprefix $(1)/,$$($(1)_SRCS))endefDIR=test$(foreach dir,$(SUBDIRS),$(eval $(call INC_template,$(dir))))DUPLICATE_NAMES = $(filter $(patsubst %.S,%,$($(ARCH)_SRCS)),$(patsubst %.c,%,$(src_SRCS)))DUPLICATE_SRCS = $(addsuffix .c,$(DUPLICATE_NAMES))OBJS =  $(patsubst %.f,%.f.o,\	$(patsubst %.S,%.S.o,\	$(patsubst %.c,%.c.o,$(filter-out $(addprefix src/,$(DUPLICATE_SRCS)),$(SRCS)))))# If we're on windows, don't do versioned shared libraries. Also, generate an import library# for the DLL. If we're on OSX, put the version number before the .dylib.  Otherwise,# put it after.ifeq ($(OS), WINNT)OLM_MAJOR_MINOR_SHLIB_EXT := $(SHLIB_EXT)LDFLAGS_add += -Wl,--out-implib,libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT).aelseifeq ($(OS), Darwin)OLM_MAJOR_MINOR_SHLIB_EXT := $(SOMAJOR).$(SOMINOR).$(SHLIB_EXT)OLM_MAJOR_SHLIB_EXT := $(SOMAJOR).$(SHLIB_EXT)elseOLM_MAJOR_MINOR_SHLIB_EXT := $(SHLIB_EXT).$(SOMAJOR).$(SOMINOR)OLM_MAJOR_SHLIB_EXT := $(SHLIB_EXT).$(SOMAJOR)endifLDFLAGS_add += -Wl,$(SONAME_FLAG),libopenlibm.$(OLM_MAJOR_SHLIB_EXT)endif.PHONY: all check test clean distclean \	install install-static install-shared install-pkgconfig install-headersOLM_LIBS := libopenlibm.aifneq ($(ARCH), wasm32)OLM_LIBS += libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT)endifall : $(OLM_LIBS)check test: test/test-double test/test-float	test/test-double	test/test-floatlibopenlibm.a: $(OBJS)	$(AR) -rcs libopenlibm.a $(OBJS)libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT): $(OBJS)	$(CC) -shared $(OBJS) $(LDFLAGS) $(LDFLAGS_add) -o $@ifneq ($(OS),WINNT)	ln -sf $@ libopenlibm.$(OLM_MAJOR_SHLIB_EXT)	ln -sf $@ libopenlibm.$(SHLIB_EXT)endiftest/test-double: libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT)	$(MAKE) -C test test-doubletest/test-float: libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT)	$(MAKE) -C test test-floatCOVERAGE_DIR:=cov-htmlCOVERAGE_FILE:=$(COVERAGE_DIR)/libopenlibm.info# Gen cov report with:  make clean && make coverage -jcoverage: clean-coverage	$(MAKE) test  CODE_COVERAGE=1	$(MAKE) gen-cov-reportgen-cov-report:	-mkdir $(COVERAGE_DIR)	lcov -d amd64 -d bsdsrc -d ld80 -d src \		--rc lcov_branch_coverage=1 --capture --output-file $(COVERAGE_FILE)	genhtml --legend --branch-coverage \		--title "Openlibm commit `git rev-parse HEAD`" \		--output-directory $(COVERAGE_DIR)/ \		$(COVERAGE_FILE)# Zero coverage statistics and Delete reportclean-coverage:	-lcov -d amd64 -d bsdsrc -d ld80 -d src --zerocounters	rm -f ./*/*.gcda	rm -rf $(COVERAGE_DIR)/clean: clean-coverage	rm -f aarch64/*.o amd64/*.o arm/*.o bsdsrc/*.o i387/*.o loongarch64/*.o ld80/*.o ld128/*.o src/*.o powerpc/*.o mips/*.o s390/*.o riscv64/*.o	rm -f libopenlibm.a libopenlibm.*$(SHLIB_EXT)*	rm -f ./*/*.gcno	$(MAKE) -C test cleanopenlibm.pc: openlibm.pc.in Make.inc Makefile	echo "version=${VERSION}" > openlibm.pc	echo "libdir=$(DESTDIR)$(libdir)" >> openlibm.pc	echo "includedir=$(DESTDIR)$(includedir)/openlibm" >> openlibm.pc	cat openlibm.pc.in >> openlibm.pcinstall-static: libopenlibm.a	mkdir -p $(DESTDIR)$(libdir)	cp -RpP -f libopenlibm.a $(DESTDIR)$(libdir)/install-shared: libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT)	mkdir -p $(DESTDIR)$(shlibdir)ifeq ($(OS), WINNT)	mkdir -p $(DESTDIR)$(libdir)	cp -RpP -f libopenlibm.*$(SHLIB_EXT) $(DESTDIR)$(shlibdir)/	cp -RpP -f libopenlibm.*$(SHLIB_EXT).a $(DESTDIR)$(libdir)/else	cp -RpP -f libopenlibm.*$(SHLIB_EXT)* $(DESTDIR)$(shlibdir)/endifinstall-pkgconfig: openlibm.pc	mkdir -p $(DESTDIR)$(pkgconfigdir)	cp -RpP -f openlibm.pc $(DESTDIR)$(pkgconfigdir)/install-headers:	mkdir -p $(DESTDIR)$(includedir)/openlibm	cp -RpP -f include/*.h $(DESTDIR)$(includedir)/openlibm	cp -RpP -f src/*.h $(DESTDIR)$(includedir)/openlibminstall: install-static install-shared install-pkgconfig install-headers
 |