help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Image package


From: Robert Fong-tom
Subject: Re: Image package
Date: Fri, 5 Dec 2008 23:34:19 -0500


On Dec 5, 2008, at 4:31 PM, Thomas Treichl wrote:

Robert Fong-tom schrieb:
On Dec 4, 2008, at 3:11 AM, Thomas Treichl wrote:
Robert Fong-tom schrieb:
On Dec 3, 2008, at 4:23 PM, Thomas Treichl wrote:
Søren Hauberg schrieb:
ons, 03 12 2008 kl. 12:57 -0500, skrev Robert Fong-tom:
On Dec 3, 2008, at 2:57 AM, Søren Hauberg wrote:

tir, 02 12 2008 kl. 21:03 -0500, skrev Robert Fong-tom:
Yes I see the headers. In MacPorts they appear to be in / opt/local/ include/ImageMagick. There are also a ton of other files in the "include" directory which may be the includes for the dependencies.
So, what does the following commands print if you run the from the
terminal

  Magick++-config --cppflags
I get the following:   -I/opt/local/include/ImageMagick
  Magick++-config --ldflags
I get the following: -L/opt/local/lib -L/opt/local/lib -L/ usr/X11R6/ lib -L/opt/local/lib -lfreetype -lz -Wl,- framework,CoreServices -Wl,- framework,ApplicationServices -L/ opt/local/lib
? Also try to run the from Octave using the 'system' command, i.e.

  system ("Magick++-config --cppflags")
I get the following: -I/Applications/Octave.app/Contents/ Resources/ include/ImageMagick
ans = 0
  system ("Magick++-config --ldflags")
I get: -L/Applications/Octave.app/Contents/Resources/lib -L/ usr/ X11R6/lib
ans = 0
Okay, I'm confused. When you run 'Magick++-config --cppflags' from the terminal you get the right path to the header files, but when you run the command from within Octave, you get the wrong path to the header files. Is that right? If so, then I guess this means you have to set some environment variable before starting Octave. I don't even know how to start Octave on a Mac, so I doubt I'll be able to help you. Perhaps we have some Mac-experts on the list, that are able to say something
smart?
Søren

There must be installed two different versions of ImageMagick in two different locations. Otherwise the system command shouldn't produce a different result. The first one is in /opt/ local/bin that comes with MacPorts, please check from Terminal.app

  ~$ which Magick++-config
 I get  : /opt/local/bin/Magick++-config
  ~$ Magick++-config --version
 I get: 6.4.6 Q16

The other one must have been installed manually because I currently don't pack ImageMagick/GraphicsMagick into the stable Octave.app 3.0.x versions. And the return argument of the system command from above is strange. Please check in Octave.app

  octave-3.0.3> system ("which Magick++-config")
I get: /Applications/Octave.app/Contents/Resources/bin/Magick++- config
ans = 0
  octave-3.0.3> system ("Magick++-config --version")
I get: 6.4.6 Q16
ans = 0

What I've found out some time ago is that the sources of ImageMagick have been changed from 5.x.x to 6.x.x. I am not able to find out which version of ImageMagick should be used to correctly install the Octave-Forge package image-1.0.8.tar.gz.

Regards,

  Thomas
You are right about there being two version. Before using MacPorts to port ImageMagick, I made the mistake of installing it manually from the ImageMagick ftp site using the UNIX installation instructions. This did not work with Octave, so I renamed all the ImageMagick directories/files I could find (but did not delete them just in case). I guess there must be some statement in the Octave set-up that is incorrect. Do you know how to fix this?

I think I don't know exactly what you mean here, but if you need a fresh unmodified Octave.app without a 'Magick++-config' program in

  /Applications/Octave.app/Contents/Resources/bin/Magick++-config

then why not just moving Octave.app into trash and then install it again?

Regards,

  Thomas
I blew away Octave.app and reinstalled, and now Octave seem to be getting the location of ImageMagick correctly. However I still am having problems installing the Image package. The error messages I get now are: 1) /usr/bin/ld: warning can't open dynamic library: /tmp/ dependencies-i386/lib/libz.1.dylib referenced from: /Applications/ Octave.app/Contents/Resources/lib/octave-3.0.3/liboctinterp.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2)
/usr/bin/ld: Undefined symbols:
_CloneImageInfo
_DestroyImageInfo
_GetExceptionInfo
_ReadImage

In the file 'src/Makefile' of the package image-1.0.8.tar.gz it is not enough to get back the --cppflags and --ldflags from Magick++- config. At least on a Mac (but I expect this won't make any difference on Linux, too) it is necessary to get back --libs, otherwise the installation of image-1.0.8 fails because of the linker error Bob reported before.

I changed the following line in 'src/Makefile'

  __magick_read__.oct: __magick_read__.cc
$(MKOCTFILE) $< `Magick++-config --cppflags` `Magick++- config --ldflags`

into

  __magick_read__.oct: __magick_read__.cc
        $(MKOCTFILE) $< `Magick++-config --cppflags --ldflags --libs`

and then was able to successfully install image-1.0.8.tar.gz in Octave.app, too.

Bob, I send you a modified package offside any mailing-list. Please try to install that one instead and report back if this works for you so that we can think about making a modification in the sources.

Regards,

  Thomas
I failed to mention in my last reply that I am using an Intel Mac with OS X 10.4


reply via email to

[Prev in Thread] Current Thread [Next in Thread]