﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
1321	Dynamic shared library libcfitsio not referred to most portably in Mac OS X	Michael Wood-Vasey	eugene	"On Aug 30, 2009, at 16:10 , Michael Wood-Vasey wrote:
My compilation of today's SVN head (r25223) on my Mac Pro (Intel) failed with

---
[serenity ippdb.src] psautogen

You must have  installed to compile ippdb.
Download the appropriate package for your distribution,
or get the source tarball at http://ftp.gnu.org/gnu/libtool/
---

Is this a libtool issue?

I installed the distribution version of libtool, and compilation went fine, but now I get missing dylib library errors:

---
[serenity psconfig] ppSub
dyld: Library not loaded: libcfitsio.dylib
  Referenced from: /Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/bin/ppSub
  Reason: image not found
Trace/BPT trap
[serenity psconfig] echo $CFITSIO
/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86
[serenity psconfig] ls /Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/*cfits*
/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libcfitsio.a
/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libcfitsio.dylib*
[serenity psconfig] echo $LD_LIBRARY_PATH
/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib:/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/mysql:/usr/local/lib:/usr/lib:/usr/X11R6/lib:/sw/lib:
[serenity psconfig] otool -D /Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libcfitsio.dylib*
/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libcfitsio.dylib:
libcfitsio.dylib
[serenity psconfig] otool -L /Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libcfitsio.dylib
/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libcfitsio.dylib:
	libcfitsio.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
[serenity psconfig] otool -L /Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/bin/ppSub 
/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/bin/ppSub:
	/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libppStats.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libpsphot.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libpsmodules.1.dylib (compatibility version 2.0.0, current version 2.1.0)
	/Volumes/data/PS1/src/ipp-2.9/Ohana/src/libkapa/lib/libkapa.darwin_x86.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Volumes/data/PS1/src/ipp-2.9/Ohana/src/libdvo/lib/libdvo.darwin_x86.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Volumes/data/PS1/src/ipp-2.9/Ohana/src/libfits/lib/libFITS.darwin_x86.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Volumes/data/PS1/src/ipp-2.9/Ohana/src/libohana/lib/libohana.darwin_x86.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/X11/lib/libX11.6.dylib (compatibility version 9.0.0, current version 9.0.0)
	/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libpng12.0.dylib (compatibility version 16.0.0, current version 16.0.0)
	/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libnebclient-0.17.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libpslib.1.dylib (compatibility version 2.0.0, current version 2.1.0)
	/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/mysql/libmysqlclient.15.dylib (compatibility version 16.0.0, current version 16.0.0)
	/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
	libcfitsio.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libfftw3f.3.dylib (compatibility version 4.0.0, current version 4.1.0)
	/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libgsl.0.dylib (compatibility version 13.0.0, current version 13.0.0)
	/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib/libgslcblas.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
	/usr/lib/libmx.A.dylib (compatibility version 1.0.0, current version 292.4.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
[serenity psconfig] otool -L /Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/bin/ppSub | grep cfitsio
	libcfitsio.dylib (compatibility version 0.0.0, current version 0.0.0)
[serenity lib] pwd
/Volumes/data/PS1/code/ipp-2.9/default.darwin_x86/lib
[serenity lib] ppSub
2009-08-30 21:41:13Z|serenity.phyast.pitt.edu|I|ppSub
    ppSub at 2009-08-30T21:41:47.677001
2009-08-30 21:41:13Z|serenity.phyast.pitt.edu|I|ppSub
    psLib trunk/psLib@25223M from 60eb6cdc-a59c-4636-a4e0-dba66a9721fd, built Aug 30 2009, 16:14:57 with cfitsio-3.100 gsl-1.11 fftw-3.0.1 mysql-5.0.51a optimised without trace
2009-08-30 21:41:13Z|serenity.phyast.pitt.edu|I|ppSub
    psModules trunk/psModules@25223 from 60eb6cdc-a59c-4636-a4e0-dba66a9721fd, built Aug 30 2009, 16:16:22 optimised with nebclient
2009-08-30 21:41:13Z|serenity.phyast.pitt.edu|I|ppSub
    psphot trunk/psLib@25223M from 60eb6cdc-a59c-4636-a4e0-dba66a9721fd, built Aug 30 2009, 16:17:12 optimised with libkapa
2009-08-30 21:41:13Z|serenity.phyast.pitt.edu|I|ppSub
    ppStats trunk/ppStats@25223 from 60eb6cdc-a59c-4636-a4e0-dba66a9721fd, built Aug 30 2009, 16:16:44 optimised
2009-08-30 21:41:13Z|serenity.phyast.pitt.edu|I|ppSub
    ppSub trunk/ppSub@25223 from 60eb6cdc-a59c-4636-a4e0-dba66a9721fd, built Aug 30 2009, 16:19:28 optimised

Pan-STARRS PSF-matched image subtraction

Usage: ppSub OUTPUT_ROOT 
	[-psf REFERENCE.psf.fits]

This subtracts the convolved REFERENCE from the INPUT, by default.

Optional arguments, with default values:
  RECIPES         OPTIONS         -inimage      ()       Input image
  -inmask       ()       Input mask image
  -invariance   ()       Input variance image
  -insources    ()       Input source list
  -refimage     ()       Reference image
  -refmask      ()       Reference mask image
  -refvariance  ()       Reference variance image
  -refsources   ()       Reference source list
  -kernel       ()       Precalculated kernel to apply
  -stats        ()       Statistics file
  -stamps       ()       Stamps filename; x,y on each line
  -threads      (0)      Number of threads
  -dumpconfig   ()       file to dump configuration to
  -convolve     (0)      Image to convolve [1 or 2]
  -photometry   (FALSE)  Perform photometry?
  -inverse      (FALSE)  Generate inverse subtractions?
  -visual       (FALSE)  Show diagnostic plots
---

So I think my concern is that 'libcfitsio.dylib' is not fully specified in the ppSub executable and it's not in the default dynamic library paths.  See the helpful post at 

http://lists.apple.com/archives/xcode-users/2009/Aug/msg00165.html

for some details on how this works.  You can muck around with environment variables to try to help find dylib paths, but that actually tends to cause problems when loading just normal programs.  It's my understanding that the ""correct"" thing to do is install the dynamic library with the path of:

@executable_path/../lib/libcfitsio.dylib

In the ideal world this makes the directory completely portable.  You can just move the directory around and all the paths are still find.  This is how Mac OS X handles application bundles.
"	defect	assigned	normal		psconfig		normal			
