[petsc-dev] Experimental GNU make build system
Satish Balay
balay at mcs.anl.gov
Wed Jun 5 15:21:22 CDT 2013
On Tue, 4 Jun 2013, Jed Brown wrote:
> > The following updated thingy also works - but with a [false] warning
> > from win32fe. I must have seen this before and assumed '@file' didn't
> > work from win32fe
> >
> > I guess I should look at fixing win32fe to handle '@file' properly
>
> I.e., just suppress the warning for arguments starting with '@'? That
> sounds good.
I have fixed up win32fe to process '@cmdfile' args to archiver
correctly. [i.e win32fe does the windows-unix path conversion for this
opton]. So the following now works.
[I'll have to look at fixing up win32fe anyway to get the
FC_MODULE_OUTPUT_FLAG test going properly anyway]
Also - I removed all the compiler/tool autodetection code in
win32fe. [it wasn't working well - and was disabled by default for the
past few releases. And we've been insisting on users setting up
working compiler enviornment via 'compiler cmd' anyway]
BTW: should we move kspams.c into a subdir [srcksp/ksp/interface/ams]
- so that its conditionally compiled? [or add in a dummy code at the
end of the current #ifdef in code]. This could go into maint
Satish
-------------
balay at msnehalem2 ~/petsc.clone
$ make -f gmakefile PETSC_ARCH=arch-cmplx -j 20 V=1
/home/balay/petsc.clone/bin/win32fe/win32fe lib -a /home/balay/petsc.clone/arch-cmplx/lib/libpetsc.lib @/home/balay/petsc.clone/arch-cmplx/lib/libpetsc.lib.args
kspams.o : warning LNK4221: no public symbols found; archive member will be inaccessible
/usr/bin/true /home/balay/petsc.clone/arch-cmplx/lib/libpetsc.lib
balay at msnehalem2 ~/petsc.clone
$ git diff gmakefile
diff --git a/gmakefile b/gmakefile
index bf9ce21..a0f761f 100644
--- a/gmakefile
+++ b/gmakefile
@@ -68,9 +68,11 @@ $(libpetsc_shared) : $(srcs.o) | $$(@D)/.DIR
$(libpetsc_static) : obj := $(srcs.o)
%.$(AR_LIB_SUFFIX) : $$(obj) | $$(@D)/.DIR
- @$(RM) $@
- $(call quiet,AR) $(AR_FLAGS) $@ $^
+ @$(RM) $@ $@.args
+ @cygpath -w $^ > $@.args
+ $(call quiet,AR) $(AR_FLAGS) $@ @$@.args
$(call quiet,RANLIB) $@
+ @$(RM) $@.args
# with-single-library=0
libpkg = $(foreach pkg, $1, $(LIBDIR)/libpetsc$(pkg).so)
balay at msnehalem2 ~/petsc.clone
More information about the petsc-dev
mailing list