Create static and shared versions of the PORD library. Index: mumps/PORD/lib/Makefile =================================================================== --- mumps.orig/PORD/lib/Makefile +++ mumps/PORD/lib/Makefile @@ -9,7 +9,7 @@ INCLUDES = -I../include -COPTIONS = $(INCLUDES) $(CFLAGS) $(OPTFLAGS) +COPTIONS = $(INCLUDES) $(CFLAGS) $(OPTFLAGS) -fPIC OBJS = graph.o gbipart.o gbisect.o ddcreate.o ddbisect.o nestdiss.o \ multisector.o gelim.o bucket.o tree.o \ @@ -24,12 +24,16 @@ OBJS = graph.o gbipart.o gbisect.o ddcre .c.o: $(CC) $(COPTIONS) -c $*.c $(OUTC)$*.o -libpord$(LIBEXT):$(OBJS) - $(AR)$@ $(OBJS) +libpord$(PLAT).a:$(OBJS) + $(AR) $@ $(OBJS) $(RANLIB) $@ +libpord$(PLAT).so: $(OBJS) + $(CC) -shared $(OBJS) -Wl,-soname,libpord$(PLAT)-5.2.1.so -o libpord$(PLAT)-5.2.1.so -Wl,-z,defs + ln -s libpord$(PLAT)-5.2.1.so $@ + clean: rm -f *.o realclean: - rm -f *.o libpord.a + rm -f *.o libpord*.a *.so Index: mumps/Makefile =================================================================== --- mumps.orig/Makefile +++ mumps/Makefile @@ -54,7 +54,7 @@ dexamples: d multi_example: s d c z (cd examples ; $(MAKE) multi) -requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT)$(LIBEXT) +requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT).a $(libdir)/libpord$(PLAT).so # dummy MPI library (sequential version) @@ -62,19 +62,25 @@ libseqneeded: (cd libseq; $(MAKE)) # Build the libpord.a library and copy it into $(topdir)/lib -$(libdir)/libpord$(PLAT)$(LIBEXT): +$(libdir)/libpord$(PLAT).a: if [ "$(LPORDDIR)" != "" ] ; then \ cd $(LPORDDIR); \ $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" RANLIB="$(RANLIB)" OUTC="$(OUTC)" LIBEXT=$(LIBEXT); \ fi; if [ "$(LPORDDIR)" != "" ] ; then \ - cp $(LPORDDIR)/libpord$(LIBEXT) $@; \ + cp $(LPORDDIR)/libpord$(PLAT).a $@; \ fi; +$(libdir)/libpord$(PLAT).so: + if [ "$(LPORDDIR)" != "" ] ; then \ + cd $(LPORDDIR); make CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)" libpord$(PLAT).so; fi; + if [ "$(LPORDDIR)" != "" ] ; then \ + cp -a $(LPORDDIR)/libpord*.so lib/; fi; + clean: (cd src; $(MAKE) clean) (cd examples; $(MAKE) clean) - (cd $(libdir); $(RM) *$(PLAT)$(LIBEXT)) + (cd $(libdir); $(RM) *$(PLAT).a *$(PLAT).so) (cd libseq; $(MAKE) clean) if [ "$(LPORDDIR)" != "" ] ; then \ cd $(LPORDDIR); $(MAKE) realclean; \ /union.scm?id=a43e0d5a5b68a51f9a6f88bde9d27dd7bd8b75ea&showmsg=1'>Expand)Author 2019-06-14tests: Make builds less expensive....The switch to the reduced bootstrap broke build time assumptions made by tests, notably the assumption that GNU-MAKE-BOOT0 was cheap to build. This commit adjusts this to make these tests cheaper. * gnu/packages/bootstrap.scm (%bootstrap-inputs-for-tests): New variable. * guix/tests.scm (gnu-make-for-tests): New variable. * tests/guix-environment.sh: Use GNU-MAKE-FOR-TESTS instead of GNU-MAKE-BOOT0. Remove test with FINDUTILS-BOOT0. * tests/guix-package-net.sh (boot_make): Use GNU-MAKE-FOR-TESTS. * tests/packages.scm ("GNU Make, bootstrap"): Likewise. * tests/profiles.scm ("profile-derivation relative symlinks, two entries"): Likewise. * tests/union.scm (%bootstrap-inputs): Remove. ("union-build"): Use %BOOTSTRAP-INPUTS-FOR-TESTS instead of %BOOTSTRAP-INPUTS. Ludovic Courtès 2018-09-23bootstrap: %bootstrap-inputs+toolchain: Replace %bootstrap-inputs....* gnu/packages/commencement.scm (%bootstrap-inputs+toolchain): : New procedure replacing %bootstrap-inputs to prepare for Mes bootstrap. Update users. * tests/union.scm (%bootstrap-inputs): New variable: set to %bootstrap-inputs+toolchain. Jan Nieuwenhuizen 2018-09-22bootstrap: %bootstrap-inputs: Wrap input lists into thunks....* gnu/packages/bootstrap.scm (%bootstrap-inputs): Change to procedure. Update users; prepares for Mes bootstrap. * gnu/packages/commencement.scm (%boot0-inputs, %boot1-inputs, %boot2-inputs, %boot3-inputs, %boot4-inputs, %boot5-inputs, %boot-6-inputs): Change to procedure. Update users. * tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths): Make a procedure, filter on package?. Update users. Jan Nieuwenhuizen 2018-05-10union: Add 'relative-file-name'....* guix/build/union.scm (%not-slash): New variable. (relative-file-name): New procedure. * tests/union.scm (test-relative-file-name): New macro and tests. Ludovic Courtès 2018-04-08union: Allow callers to choose the collision resolution policy....* guix/build/union.scm (warn-about-collision): New procedure. (union-build): Add #:resolve-collision. [resolve-collisions]: Call it. * tests/union.scm ("union-build collision first & last"): New test. Ludovic Courtès 2017-03-26union: Add create-all-directories? parameter to 'union-build'....* guix/build/union.scm (union-build): Add create-all-directories? keyword parameter. * tests/union.scm ("union-build #:create-all-directories? #t"): New test. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Huang Ying