#13325: eclib does not build on Cygwin
------------------------------------------------------------+---------------
Reporter: jpflori | Owner:
tbd
Type: defect | Status:
needs_review
Priority: major | Milestone:
sage-5.3
Component: cygwin | Resolution:
Keywords: eclib spkg cygwin | Work issues:
Report Upstream: Workaround found; Bug reported upstream. | Reviewers:
Authors: Jean-Pierre Flori | Merged in:
Dependencies: #13333 | Stopgaps:
------------------------------------------------------------+---------------
Comment (by jpflori):
Replying to [comment:43 cremona]:
/EXEEXT.html#EXEEXT
> > So I guess you unfortunately really have to add it to the
PROCS_TESTS and similar variables.
>
> OK, I'll do that. It makes sense.
>
Replacing
{{{
PROCS_PROGS = solve_conic solve_legendre reduce_cubics list_cubics
procs_progs: $(PROCS_PROGS)
}}}
by
{{{
PROCS_PROGS = solve_conic solve_legendre reduce_cubics list_cubics
procs_progs: $(addsuffix $(EXEEXT), $(PROCS_PROGS))
}}}
everywhere needed should do the trick.
> is built. Is this intended? On solw platform (let's say Cygwin...) it
would be nice to only build what is installed (and so remove the
noinst_PROGRAMS stuff). I see the noinst was added in commit 93229fe24a35,
could you elaborate on that? has it something to do with check targets?
>
> This should definitely be possible. I only added the allprogs thing
later on, specifically for Sage where the only binary used is mwrank. So
, progs that should be the only binary built (when allprogs is disabled).
Great!
I guess this implies removing noinst_PROGRAMS but also some dependencies
for the all target:
{{{
progs: procs_progs qcurves_progs qrank_progs g0n_progs
}}}
which would become
{{{
progs: $(bin_PROGRAMS)
}}}
if that works,
or something like
{{{
if ALLPROGS
PROGS = $(PROCS_PROGS) $(QCURVES_PROGS) $(QRANK_PROGS) $(G0N_PROGS)
else
PROGS = mwrank$(EXEEXT)
endif
progs: $(PROGS)
}}}
>
> > * all your tests in the check targets are really similar, except for
the executable name of course, do you plan on refatoring that?
>
> Do you mean, by some sort of loop, or by clever wildcard targets in the
Makefile? Would you fancy writing something suitable? Otherwise it does
not seem very urgent (and they are similar, but not identical...)
For all the programs tested in a similar way, you could replace
{{{
check_qrank: qrank_progs
@echo Checking qrank programs...
./mwrank < $(test_input_dir)/mwrank.in > mwrank.testout
2>/dev/null && diff mwrank.testout $(test_output_dir)/mwrank.out
./reduce_quartics < $(test_input_dir)/reduce_quartics.in >
reduce_quartics.testout 2>/dev/null && diff reduce_quartics.testout
$(test_output_dir)/reduce_quartics.out
./quartic_points < $(test_input_dir)/quartic_points.in >
quartic_points.testout 2>/dev/null && diff quartic_points.testout
$(test_output_dir)/quartic_points.out
rm -f PRIMES 1
}}}
by something like
{{{
check_run = ./$(prog)$(EXEEXT) < $(test_input_dir)/$(prog).in >
$(prog).testout 2>/dev/null && diff $(prog).testout
$(test_output_dir)/$(prog).out || exit $$?
check_qrank: qrank_progs
@echo Checking qrank programs...
$(foreach prog, $(PROCS_PROGS), $(check_run))
rm -f PRIMES 1
}}}
Or, potentially better cause it can use parallelism, using Makefile
dependencies
{{{
check_run = ./$<$(EXEEXT) < $(test_input_dir)/$<.in > $<.testout
2>/dev/null && diff $<.testout $(test_output_dir)/$<.out || exit $$?
%_RUN: %$(EXEEXT)
$(check_run)
qrank_progs_RUN: $(addsuffix _RUN, $(QRANK_PROGS))
check_qrank: qrank_progs qrank_progs_RUN
rm -f PRIMES 1
}}}
provided it works.
And for parts were not every executable is tested in this way, you could
create a secondary variable
{{{
QRANK_PROGS_TEST = ...
}}}
including only the ones to be tested and use it instead of
{{{
QRANK_PROGS
}}}
directly.
I'll test such ideas tonight.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13325#comment:44>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.