xref: /relibc/openlibm/Makefile (revision bab41fc510f738832f0f9c50a83bfd13e0da5d29)
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