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

Hi,
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.h...
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.
Thanks a lot
Tobias

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.h...
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

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.h...
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

Tobias Grosser wrote:
thanks for your fast reaction. The m4 detection works great. PPL 0.10.1pre4 compiles on x68 FreeBSD current without any modification
Hi Tobias,
thanks for testing it.
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
This was a bug (now fixed) in GCC: see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34859
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.
Great, thanks.
I also tried to run "make check" and it seems to have some problems.
It fails with: [...] 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.
Very strange. Please let us know if you find what happens.
Best regards from the foggy Austin
Enjoy ;-) Cheers,
Roberto
participants (2)
-
Roberto Bagnara
-
Tobias Grosser