![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Hello All,
I am attempting to compile and install povray3.6.1 on a Mac Pro dual quad core
running Snow Leopard. While configure complains of the following errors (will
email config.log to interested parties), it exits 0:
onfigure:3930: checking dependency style of gcc
configure:4013: result: gcc3
configure:4035: checking how to run the C preprocessor
configure:4071: gcc -E conftest.c
configure:4077: $? = 0
configure:4109: gcc -E conftest.c
configure:4116:28: error: ac_nonexistent.h: No such file or directory
configure:4115: $? = 1
configure: failed program was:
| #line 4100 "configure"
| /* confdefs.h. */
An attempt at make fails immediately with the following error:
make all-recursive
Making all in libraries
Making all in png
make[3]: *** No rule to make target `all'. Stop.
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Any advice would be much appreciated. Again, config.log available upon request.
Best regards,
Mark
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
wilson schrieb:
> I am attempting to compile and install povray3.6.1 on a Mac Pro dual quad core
> running Snow Leopard. While configure complains of the following errors (will
> email config.log to interested parties), it exits 0:
>
> onfigure:3930: checking dependency style of gcc
> configure:4013: result: gcc3
> configure:4035: checking how to run the C preprocessor
> configure:4071: gcc -E conftest.c
> configure:4077: $? = 0
> configure:4109: gcc -E conftest.c
> configure:4116:28: error: ac_nonexistent.h: No such file or directory
> configure:4115: $? = 1
> configure: failed program was:
> | #line 4100 "configure"
> | /* confdefs.h. */
This is no reason to be alarmed: The configure script does not only
verify that certain constructs work, but also that others fail. As the
file that wasn't found bears the suspicious name "ac_nonexistent.h", I
presume it is not intended to be found. (It seems this construct is used
by the configure script to check whether the compiler returns a proper
exit code when it fails.)
As a matter of fact, I see exactly the same "error" report in the
config.log of a perfectly successful build.
> An attempt at make fails immediately with the following error:
>
> make all-recursive
> Making all in libraries
> Making all in png
> make[3]: *** No rule to make target `all'. Stop.
> make[2]: *** [all-recursive] Error 1
> make[1]: *** [all-recursive] Error 1
> make: *** [all] Error 2
That, however, /is/ a reason to be alarmed. You may want to check
whether .../libraries/png/Makefile exists, and contains (among others)
the following lines (somewhere around line 180 in my case):
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
Ironically, normally you'd probably live happy without libpng being
built from scratch and statically linked into POV-Ray, but a flaw in the
configure script makes it think that your installed libpng is too old to
be of any use. (At least I can't believe Snow Leopard would ship with a
libpng even older than 1.2.5, which is what POV-Ray 3.6.1 wants.)
You may try hacking the configure script to circumvent building libpng
altogether, by changing the line:
required_libpng_version="1.2.5"
(should be line 1389 as far as I can tell) to instead read:
required_libpng_version="1.2.0"
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Dear Clipka,
Thank you for your prompt response. I have played a bit with the library
requirements but still cannot get the package to build. Importantly, the stdout
from configure indicates that it has found acceptable image libraries, as below:
Libraries
---------
checking whether to enable static linking... no
checking for sin in -lm... yes
checking for asinh... yes
checking for vga_init in -lvga... no
configure: SVGAlib display will be disabled
checking for X... libraries /Developer/SDKs/MacOSX10.6.sdk/usr/X11//lib, headers
/Developer/SDKs/MacOSX10.6.sdk/usr/X11//include
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking for XFlush in -lX11... yes
checking for XpmCreatePixmapFromData in -lXpm... yes
checking whether to enable the watch cursor... no
checking for installed supporting libraries... yes
checking for library containing zlibVersion... -lz
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for libz version >= 1.2.1... 1.2.3, ok
checking for library containing png_get_libpng_ver... -lpng12
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
checking for libpng version >= 1.2.0... 1.2.35, ok
checking for library containing jpeg_std_error... -ljpeg
checking jpeglib.h usability... yes
checking jpeglib.h presence... yes
checking for jpeglib.h... yes
checking for libjpeg version >= 7... 7, ok
checking for library containing TIFFGetVersion... -ltiff
checking tiffio.h usability... yes
checking tiffio.h presence... yes
checking for tiffio.h... yes
checking for libtiff version >= 3.9.2... 3.9.2, ok
However, make still fails with:
make all-recursive
Making all in libraries
Making all in png
make[3]: *** No rule to make target `all'. Stop.
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Any ideas?
Best regards,
Mark
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Sorry for the rapid update, however, I was able to solve the png library issue
by separately configuring and making in that directory first. However, the next
error in make (this time in the povray top directory) is even more worrisome:
make all-recursive
Making all in libraries
Making all in png
make all-am
make[4]: Nothing to be done for `all-am'.
make[3]: Nothing to be done for `all-am'.
Making all in source
Making all in base
g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../source -I../../unix
-I/Developer/SDKs/MacOSX10.6.sdk/usr/X11/include -pipe -Wno-multichar -O3
-march=i686 -mtune=i686 -minline-all-stringops -c -o fileinputoutput.o `test -f
'fileinputoutput.cpp' || echo './'`fileinputoutput.cpp
fileinputoutput.cpp:1: error: CPU you selected does not support x86-64
instruction set
make[3]: *** [fileinputoutput.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
The cpu I am running is i686 (apple-darwin10.2.0 system type). Do I understand
this error to mean that it is not possible to build povray on this platform?
Best regards,
Mark
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: clipka
Subject: Re: Make failure for povray 3.6.1 on Snow Leopard
Date: 16 Nov 2009 12:51:10
Message: <4b01910e@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
wilson schrieb:
> g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../source -I../../unix
> -I/Developer/SDKs/MacOSX10.6.sdk/usr/X11/include -pipe -Wno-multichar -O3
> -march=i686 -mtune=i686 -minline-all-stringops -c -o fileinputoutput.o `test -f
> 'fileinputoutput.cpp' || echo './'`fileinputoutput.cpp
> fileinputoutput.cpp:1: error: CPU you selected does not support x86-64
> instruction set
> make[3]: *** [fileinputoutput.o] Error 1
> make[2]: *** [all-recursive] Error 1
> make[1]: *** [all-recursive] Error 1
> make: *** [all] Error 2
>
> The cpu I am running is i686 (apple-darwin10.2.0 system type). Do I understand
> this error to mean that it is not possible to build povray on this platform?
> Best regards,
> Mark
It /should/ build fine on your system. But somehow the configure script
seems to have detected a 32-bit ("i686", that is Pentium II or later)
CPU, while the compiler for some reasons appears to insist that you must
build for a 64-bit CPU ("x86-64"). (While AMD64-compatible CPUs, aka
x86-64, are perfectly capable of running 32-bit applications, some
operating systems aren't.)
Are you sure your CPU is "only" a 32-bit CPU? In that case, your build
system must be pretty whacky.
OTOH, if your CPU /is/ a 64-bit CPU, then it remains to be examined why
the configure script decided to compile for i686 instead of x86-64.
I'll have a look at the config.log of my own 3.6 build on my Linux
machine and check. Maybe the configure script is generally unable to
detect 64-bit CPUs, and it built for i686 on my machine as well, without
me noticing because my Linux distribution happens to support 32-bit
applications.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Thanks again for your help. As for the processor,
>
> Are you sure your CPU is "only" a 32-bit CPU? In that case, your build
> system must be pretty whacky.
I am in fact sure that it is not, but, as you mentioned, configure is not
convinced. I have been able to push this further with the following configure
flag hack:
CFLAGS="-m32" CXXFLAGS="-m32"
but this leaves your excellent question (below) unanswered:
> OTOH, if your CPU /is/ a 64-bit CPU, then it remains to be examined why
> the configure script decided to compile for i686 instead of x86-64.
In any event, even with the 32 bit declaration, make now fails with this
following error:
Undefined symbols:
"_png_write_finish_row", referenced from:
pov::PNG_Image::~PNG_Image()in libpovray.a(png_pov.o)
pov::PNG_Image::~PNG_Image()in libpovray.a(png_pov.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [povray] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
I've looked around a bit and not been able to find "_png_write_finish_row", and,
as usual, any help is much appreciated.
Best regards,
Mark
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
wilson schrieb:
> In any event, even with the 32 bit declaration, make now fails with this
> following error:
>
>
> Undefined symbols:
> "_png_write_finish_row", referenced from:
> pov::PNG_Image::~PNG_Image()in libpovray.a(png_pov.o)
> pov::PNG_Image::~PNG_Image()in libpovray.a(png_pov.o)
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make[2]: *** [povray] Error 1
> make[1]: *** [all-recursive] Error 1
> make: *** [all] Error 2
The symbol should be defined in libpng. I would guess that you don't
have a 32-bit version of libpng installed. Did you re-configure (and
rebuild) the copy of libpng that comes with POV-Ray with the same options?
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> The symbol should be defined in libpng. I would guess that you don't
> have a 32-bit version of libpng installed. Did you re-configure (and
> rebuild) the copy of libpng that comes with POV-Ray with the same options?
Did all of this and it now works. Thank you very much for your help with this.
I'm hoping that there is a more elegant solution to -32m configure flag hack
that I had to use, and, if so, I'd be very interested to hear about it.
Thanks again,
Mark
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |