[PPL-devel] PPL uses m4 option --prefix-builtins - Not available on non GNU systems

Tobias Grosser ppl-devel at 07.antispam.web-wahnsinn.de
Tue Jan 27 14:07:18 CET 2009


On Sat, 2009-01-24 at 16:14 +0100, Roberto Bagnara wrote:
> Tobias Grosser wrote:
> > I just compiled ppl on my FreeBSD system. And it works almost flawless.
> > Just a little problem during installation.
> > 
> > You use a GNU specific m4 option not available on non GNU systems like
> > *BSD or Solaris.
> > 
> > The command is:
> > 
> > m4 --prefix-builtin -I.. -I$(srcdir) -I$(srcdir)/.. \      
> > 
> > and is used e.g. in interfaces/C/Makefile.
> > 
> > My fast hack to solve the problem is to install gnu m4 and patch the
> > Makefiles to call gm4 instead of m4.
> > 
> > But it would be nice to be able to install ppl without to be forced to
> > install another m4 and to patch the Makefiles.
> > 
> > There seems to be solutions to get the prefixes without using gnu
> > specific stuff:
> > 
> > http://puszcza.gnu.org.ua/software/mailfromd/manual/html_node/Preprocessor.html#DOCF27
> > 
> > If this is not possible, it would be nice to get at least a better error
> > message and some documentation, that you need gnu m4 to install ppl.
> 
> Dear Tobias,
> 
> thanks for the report.  We have just committed a modification whereby the
> configuration script searches for a suitable version of GNU M4, which is
> then used in all makefiles.  Unfortunately, it would be problematic to
> support other versions of M4 as we use features (such as m4_indir) that
> are not always available elsewhere and (as far as we know) cannot be
> emulated.  We have uploaded a snapshot of the next PPL release containing
> these changes here:
> 
>      ftp://ftp.cs.unipr.it/pub/ppl/snapshots/ppl-0.10.1pre3.tar.bz2
> 
> All the best,
> 
>       Roberto
> 

Hi Roberto,

thanks for your fast reaction. The m4 detection works great.
PPL 0.10.1pre4 compiles on x68 FreeBSD current without any modification

The only thing I saw is a little warning:

../../src/ppl.hh:75993:9: warning: undefining "__STDC_LIMIT_MACROS"

for these lines:

src/ppl.h:

75992 #ifdef __STDC_LIMIT_MACROS
75993 # undef __STDC_LIMIT_MACROS
75994 #endif
75995 #ifdef PPL_SAVE_STDC_LIMIT_MACROS
75996 # define __STDC_LIMIT_MACROS PPL_SAVE_STDC_LIMIT_MACROS
75997 # undef PPL_SAVE_STDC_LIMIT_MACROS
75998 #endif

I also saw ppl 0.9 in the FreeBSD ports/package tree. I will update is
as soon as ppl 0.10.1 is released. 

I also tried to run "make check" and it seems to have some problems.

It fails with:
---------------------------------------------------------------------------
gmake[3]: Leaving directory
`/usr/home/Tobi/ppl-0.10.1pre4/tests/Partially_Reduced_Product'
gmake[2]: Leaving directory
`/usr/home/Tobi/ppl-0.10.1pre4/tests/Partially_Reduced_Product'
Making check in Box
gmake[2]: Entering directory `/usr/home/Tobi/ppl-0.10.1pre4/tests/Box'
gmake  addconstraints1 addspacedims1 affinedimension1 affineimage1
affinepreimage1 ascii_dump_load1 bgp99extrapolation1 bhz03widening1
bounded1 boundedaffineimage1 boundedaffinepreimage1 cc76narrowing1
cc76widening concatenate1 congruences1 constrains1 constraints1
contains1 containsintegerpoint1 difference1 discrete1 disjoint1 empty1
equality1 expandspacedim1 foldspacedims1 frombdshape1 frombox1
fromgensys1 fromgrid1 frompartiallyreducedproduct1 frompolyhedron1
frompolyhedron2 fromspacedim1 generalizedaffineimage1
generalizedaffineimage2 generalizedaffinepreimage1 geomcovers1
intersection1 interval1 mapspacedims1 max_min1 maxspacedim1 membytes1
minconstraints1 propagateconstraints1 propagateconstraints2 relations1
relations2 relations3 relations4 refinewithconstraint1
refinewithconstraint2 refinewithconstraints1 refinewithcongruences1
removespacedims1 timeelapse1 topclosed1 unconstrain1 universe1
upperbound1 upperboundifexact1 writebox1 nnc_frompolyhedron1
refinewithconstraints2  \
	  run_tests
gmake[3]: Entering directory `/usr/home/Tobi/ppl-0.10.1pre4/tests/Box'
g++ -DHAVE_CONFIG_H -I. -I../..  -DBOX_INSTANCE=rt_r_oc -I../../src
-I../../src -I../../tests -I../../utils -DNDEBUG=1 -I/usr/local/include
-g -O2 -frounding-math  -W -Wall -MT addconstraints1.o -MD -MP
-MF .deps/addconstraints1.Tpo -c -o addconstraints1.o addconstraints1.cc
In file included from ../../tests/ppl_test.hh:26,
                 from addconstraints1.cc:23:
../../src/ppl.hh:75993:9: warning: undefining "__STDC_LIMIT_MACROS"
mv -f .deps/addconstraints1.Tpo .deps/addconstraints1.Po
/bin/sh ../../libtool --tag=CXX   --mode=link g++  -g -O2
-frounding-math  -W -Wall   -o addconstraints1
addconstraints1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/libppl.la -lm -L/usr/local/lib -lgmpxx -L/usr/local/lib -lgmp -R/usr/local/lib -R/usr/local/lib 
libtool: link: g++ -g -O2 -frounding-math -W -Wall
-o .libs/addconstraints1
addconstraints1.o  ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/.libs/libppl.so -L/usr/local/lib -lm /usr/local/lib/libgmpxx.so /usr/local/lib/libgmp.so -Wl,-rpath -Wl,/usr/local/lib
g++ -DHAVE_CONFIG_H -I. -I../..  -DBOX_INSTANCE=rt_r_oc -I../../src
-I../../src -I../../tests -I../../utils -DNDEBUG=1 -I/usr/local/include
-g -O2 -frounding-math  -W -Wall -MT addspacedims1.o -MD -MP
-MF .deps/addspacedims1.Tpo -c -o addspacedims1.o addspacedims1.cc
In file included from ../../tests/ppl_test.hh:26,
                 from addspacedims1.cc:24:
../../src/ppl.hh:75993:9: warning: undefining "__STDC_LIMIT_MACROS"
mv -f .deps/addspacedims1.Tpo .deps/addspacedims1.Po
/bin/sh ../../libtool --tag=CXX   --mode=link g++  -g -O2
-frounding-math  -W -Wall   -o addspacedims1
addspacedims1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/libppl.la -lm -L/usr/local/lib -lgmpxx -L/usr/local/lib -lgmp -R/usr/local/lib -R/usr/local/lib 
libtool: link: g++ -g -O2 -frounding-math -W -Wall
-o .libs/addspacedims1
addspacedims1.o  ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/.libs/libppl.so -L/usr/local/lib -lm /usr/local/lib/libgmpxx.so /usr/local/lib/libgmp.so -Wl,-rpath -Wl,/usr/local/lib
g++ -DHAVE_CONFIG_H -I. -I../..  -DBOX_INSTANCE=rt_r_oc -I../../src
-I../../src -I../../tests -I../../utils -DNDEBUG=1 -I/usr/local/include
-g -O2 -frounding-math  -W -Wall -MT affinedimension1.o -MD -MP
-MF .deps/affinedimension1.Tpo -c -o affinedimension1.o
affinedimension1.cc
In file included from ../../tests/ppl_test.hh:26,
                 from affinedimension1.cc:23:

[...]


../../src/ppl.hh:75993:9: warning: undefining "__STDC_LIMIT_MACROS"
mv
-f .deps/nnc_frompolyhedron1-frompolyhedron1.Tpo .deps/nnc_frompolyhedron1-frompolyhedron1.Po
/bin/sh ../../libtool --tag=CXX   --mode=link g++ -DDERIVED_TEST  -g -O2
-frounding-math  -W -Wall   -o nnc_frompolyhedron1
nnc_frompolyhedron1-frompolyhedron1.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/libppl.la -lm -L/usr/local/lib -lgmpxx -L/usr/local/lib -lgmp -R/usr/local/lib -R/usr/local/lib 
libtool: link: g++ -DDERIVED_TEST -g -O2 -frounding-math -W -Wall
-o .libs/nnc_frompolyhedron1
nnc_frompolyhedron1-frompolyhedron1.o  ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/.libs/libppl.so -L/usr/local/lib -lm /usr/local/lib/libgmpxx.so /usr/local/lib/libgmp.so -Wl,-rpath -Wl,/usr/local/lib
g++ -DHAVE_CONFIG_H -I. -I../..  -DBOX_INSTANCE=rt_r_oc -I../../src
-I../../src -I../../tests -I../../utils -DNDEBUG=1 -I../../Watchdog
-I../../Watchdog/src -I/usr/local/include  -g -O2 -frounding-math  -W
-Wall -MT refinewithconstraints2-refinewithconstraints2.o -MD -MP
-MF .deps/refinewithconstraints2-refinewithconstraints2.Tpo -c -o
refinewithconstraints2-refinewithconstraints2.o `test -f
'refinewithconstraints2.cc' || echo './'`refinewithconstraints2.cc
In file included from ../../tests/ppl_test.hh:26,
                 from refinewithconstraints2.cc:24:
../../src/ppl.hh:75993:9: warning: undefining "__STDC_LIMIT_MACROS"
mv
-f .deps/refinewithconstraints2-refinewithconstraints2.Tpo .deps/refinewithconstraints2-refinewithconstraints2.Po
/bin/sh ../../libtool --tag=CXX   --mode=link g++  -g -O2
-frounding-math  -W -Wall   -o refinewithconstraints2
refinewithconstraints2-refinewithconstraints2.o ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/libppl.la -lm -L/usr/local/lib -lgmpxx -L/usr/local/lib -lgmp -R/usr/local/lib -R/usr/local/lib ../../Watchdog/src/libpwl.la 
libtool: link: g++ -g -O2 -frounding-math -W -Wall
-o .libs/refinewithconstraints2
refinewithconstraints2-refinewithconstraints2.o  ../../utils/libppl_utils.a ../../tests/libppl_tests.a ../../src/.libs/libppl.so -L/usr/local/lib -lm /usr/local/lib/libgmpxx.so /usr/local/lib/libgmp.so ../../Watchdog/src/.libs/libpwl.so -Wl,-rpath -Wl,/usr/local/lib
gmake[3]: Nothing to be done for `run_tests'.
gmake[3]: Leaving directory `/usr/home/Tobi/ppl-0.10.1pre4/tests/Box'
gmake  check-TESTS
gmake[3]: Entering directory `/usr/home/Tobi/ppl-0.10.1pre4/tests/Box'
./run_tests
****************************  rt_r_oc  ****************************
make: don't know how to make w. Stop
gmake[3]: *** [run_tests.stamp] Error 1
gmake[3]: Leaving directory `/usr/home/Tobi/ppl-0.10.1pre4/tests/Box'
gmake[2]: *** [check-am] Error 2
gmake[2]: Leaving directory `/usr/home/Tobi/ppl-0.10.1pre4/tests/Box'
gmake[1]: *** [check-recursive] Error 1
gmake[1]: Leaving directory `/usr/home/Tobi/ppl-0.10.1pre4/tests'
gmake: *** [check-recursive] Error 1
--------------------------------------------------------------------

At the moment I have no idea where the "w" comes from. But I will look a
little bit more into it.

Best regards from the foggy Austin

Tobi




More information about the PPL-devel mailing list