Steve,

In my case, the config.scm you speak of is located here:
/sw/share/guile/1.6/gtk-1.2/config.scm

I changed:
(define-public gtkconf-prefix "/sw/src/root-guile16-gtk-1.2-0.31-1/sw")
to:
(define-public gtkconf-prefix "/sw")

I also reordered the libs line in the make file to:
GUILEGTK_LIBS =  -L/sw/lib -lguilegtk-1.2 -lguile -lguile-ltdl -lm -L/sw/lib -L/usr/X11R6/lib -lgtk -lgdk -lgmodule -lgthread -lglib -lpth

I still get the same problem after I 'make install', ie:
dyld: ./gwave can't open library: 
/sw/src/root-guile16-gtk-1.2-0.31-1/sw/lib/libguilegtk-1.2.0.dylib  (No such 
file or directory, errno = 2)
Trace/BPT trap
I did put a soft link for this path and got gwave to run. So it looks like
gwave still built ok. I suspect I need to get the guile-gtk libs rebuilt so it can
find the library in the correct place. I submitted
a bug to the fink package maintainers group to see if it can get fixed.
I will probably try and rebuild myself outside of fink to see if I can pinpoint
what is going on.

I will keep you posted what I find out on the guile-gtk libs rebuild.

Thanks!
Greg



Steve Tell wrote:
On Thu, 14 Apr 2005, Greg Lauer wrote:

  
Steve,

The head of my 'build-guile-gtk-1.2' has the same script,
ie it points to 'guile' not 'guile-1.6'.

build-guile-gtk-1.2 cflags (libs)
gives:

;;; WARNING (no code for module (gtk-1.2 config))
Backtrace:
0* (define defsdir (string-append gtkconf-prefix "/share/guile-gtk"))
1* [string-append ...

/sw/bin/build-guile-gtk-1.2:172:17: While evaluating arguments to string-append 
in _expression_ (string-append gtkconf-prefix "/share/guile-gtk"):
/sw/bin/build-guile-gtk-1.2:172:17: Unbound variable: gtkconf-prefix

Editing the script to point to guile-1.6 gives:

build-guile-gtk-1.2 cflags
-I/sw/src/root-guile16-gtk-1.2-0.31-1/sw/include -I/sw/include/gtk-1.2 
-I/sw/include/glib-1.2 -I/sw/lib/glib/include -D_REENTRANT -I/usr/X11R6/include

build-guile-gtk-1.2 libs
 -lguilegtk-1.2 -L/sw/lib -lguile -lguile-ltdl -lm -L/sw/lib -L/usr/X11R6/lib 
-lgtk -lgdk -lgmodule -lgthread -lglib -lpthread -lintl -lXext -lX11 -lm
    
 
  
Doing that and adding the options you suggested, ie:
ac_cv_path_bggtk="/sw/bin/guile-1.6 -s /sw/bin/build-guile-gtk-1.2"

Looks like the configure script almost runs 'clean' now. The only
suspicious thing is I get:

checking with libtool for shlibpath_var... libtool: unknown option character `-' 
in: --config
Usage: libtool -static [-] file [...] [-filelist listfile[,dirname]] [-arch_only 
arch] [-sacLT]
Usage: libtool -dynamic [-] file [...] [-filelist listfile[,dirname]] 
[-arch_only arch] [-o output] [-install_name name] [-compatibility_version #] 
[-current_version
 #] [-seg1addr 0x#] [-segs_read_only_addr 0x#] [-segs_read_write_addr 0x#] 
[-seg_addr_table <filename>] [-seg_addr_table_filename <file_system_path>] 
[-all_load] [-n
oall_load]
    

I think that should be harmless; it was testing for some peculiarities of
HP/UX.  Its worrisome that your libtool's usage is so different from the
versions I've been using.
 
  
Make now compiles all of the way through!!!

Trying to run 'gwave', I get:

dyld: ./gwave can't open library: 
/sw/src/root-guile16-gtk-1.2-0.31-1/sw/lib/libguilegtk-1.2.0.dylib  (No such 
file or directory, errno = 2)
Trace/BPT trap
    

Have you done the make install?  running gwave before installing requires 
setting GWAVE_GUILE_DIR in the environment, as noted in the INSTALL.  But 
the error messages likely to result from that are quite different from 
what you see.
 
  
Turns out, there is no such directoy, the file should be at:
/sw/lib/libguilegtk-1.2.0.dylib

So, still looks like an issue with build-guile-gtk-1.2. It's returning
the cflag -I/sw/src/root-guile16-gtk-1.2-0.31-1/sw/include which
I don't think is right. Any clues?
    

Although the only odd path returned by build-guile-gtk-1.2 is an include 
path (and not a library path), it is suspiciously like the bad library 
directory, isn't it.

One thing suspicious about the build-guile-gtk-1.2 libs output:

  
 -lguilegtk-1.2 -L/sw/lib -lguile -lguile-ltdl -lm -L/sw/lib -L/usr/X11R6/lib 
-lgtk -lgdk -lgmodule -lgthread -lglib -lpthread -lintl -lXext -lX11 -lm
    

It has -lguilegtk-1.2 _before_ the library-directory  -L/sw/lib where its 
supposed to find it.   So I'm surprised that the link went OK. I suppose 
there could be another -L/sw/lib on the full link command line.
Still could be worth rearranging the order of things on actual link line.
(as an experiment, I'd copy, paste, and modify the makefile output and see 
what happens.)

The text that build-guile-gtk-1.2 returns is mostly computed when 
guile-gtk is built, and is stored in $prefix/guile/gtk-1.2/config.scm 
I suspect if you look there you won't see anything you haven't already 
seen in build-guile-gtk-1.2's output though.  You shouldn't have to go off 
debugging its build process, but that may be where the real problem lies.

 
  
I feel like we're almost there!
    

Yes, we've got to be close.

Steve

 
  
Thanks!
Greg


    
On Thu, 14 Apr 2005, Greg Lauer wrote:

      
Hi Steve,

Thanks for the reply.

Yes, fink is just a package manager for osx, it installs everything
to the /sw partition.

The versions I've ran with are:

guile 1.6.7
gtk+ 1.2.10
guile-gtk 1.2.0.31

Doing the test you suggest seems to work, it brings
up a 'Guile/Gtk+' box with buttons, etc.

One iffy spot is fink installs guile 1.6 as
guile-1.6 (keeping version 1.4 as just 'guile'). To be sure I point to the
right 'guile', I run the configure script with the following options:

./configure ac_cv_path_Guile=/sw/bin/guile-1.6 
ac_cv_path=GUILE_CONFIG=/sw/bin/guile-1.6-config \
ac_cv_path_bggtk=/sw/bin/build-guile-gtk-1.2

which sets the following in the Makefile(s):
GUILE = /sw/bin/guile-1.6
GUILE_CONFIG = /sw/bin/guile-1.6-config
bggtk = /sw/bin/build-guile-gtk-1.2

I think the BIG problem is when configure trys to set the guile-gtk flags
and  the configure script trys to execute 'build-guile-gtk-1.2 cflags', 
shown below:
        
Yes, my hunch is that the build-guile-gtk-1.2 script's failing results in
some bad (maybe empty) configure variables.  Obviously I need to add a
configure check for an error or empty result from calling build-guile-gtk.

What happens if you run on a command line:
	build-guile-gtk-1.2 cflags
	build-guile-gtk-1.2 libs

One likely hitch is that build-guile-gtk (and its -1.2 link) on my system 
starts off like:

#! /bin/sh
# -*- scheme -*-
exec guile -s $0 $*
!#

That is, it uses the shell's $PATH to search for a binary called "guile" 
with which to run itself.  This probably finds your guile-1.4, which 
doesn't have the (gtk-1.2 config) module that it keeps whining about.

If this is all true on your system, it suggests that a properly finkified
guile-gtk needs a patch to look for the right guile.

Or maybe it would work to try 
  ac_cv_path_bggtk="/sw/bin/guile-1.6 -s /sw/bin/build-guile-gtk-1.2"
in your configure. 


      
checking for guile-gtk CFLAGS...
;;; WARNING (no code for module (gtk-1.2 config))
Backtrace:
0* (define defsdir (string-append gtkconf-prefix "/share/guile-gtk"))
1* [string-append ...

/sw/bin/build-guile-gtk-1.2:172:17: While evaluating arguments to 
string-append in _expression_ (string-append gtkconf-prefix "/share/guile
-gtk"):
/sw/bin/build-guile-gtk-1.2:172:17: Unbound variable: gtkconf-prefix

checking for guile-gtk LIBS...
;;; WARNING (no code for module (gtk-1.2 config))
Backtrace:
0* (define defsdir (string-append gtkconf-prefix "/share/guile-gtk"))
1* [string-append ...

/sw/bin/build-guile-gtk-1.2:172:17: While evaluating arguments to 
string-append in _expression_ (string-append gtkconf-prefix "/share/guile
-gtk"):
/sw/bin/build-guile-gtk-1.2:172:17: Unbound variable: gtkconf-prefix

During 'make', it cholks on:

gcc  -g -O2 -I/sw/include/gtk-1.2 -I/sw/include/glib-1.2 
-I/sw/lib/glib/include -I/usr/X11R6/inc
lude -I/sw/include -DDATADIR=\"/home/glauer/ngspice/share\" 
-DBINGWAVE=\"/home/glauer/ngspice/bi
n/gwave\"    -o gwave -L/sw/lib -lguile -lguile-ltdl -lm cmd.o wavewin.o 
draw.o gwave.o event.o
gtkmisc.o pixmaps.o wavelist.o dnd.o scwm_guile.o guile-compat.o 
init_scheme_string.o wavepanel.
o rgeval.o xgserver.o measurebtn.o GtkTable_indel.o 
../spicefile/libspicefile.a  -L/sw/lib -L/us
r/X11R6/lib -lgtk -lgdk -lgmodule -lglib -lintl -lXext -lX11 -lm  
ld: warning multiple definitions of symbol _environ
/usr/lib/crt1.o definition of _environ in section (__DATA,__data)
/sw/lib/libguile.dylib(posix.o) definition of _environ
ld: Undefined symbols:
_sgtk_wrap_gtkobj
_sgtk_boxed2scm
_sgtk_gdk_event_info
_sgtk_get_gtkobj
_sgtk_is_a_gtkobj
        
Those are all definitely guile-gtk things, and
 -lguilegtk-1.2 is conspicuous by its absence in the link line.

      
make[4]: *** [gwave] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

I'm guessing not all of the right flags/options are getting set in the 
configure, but
this is as far as I could get.

Any ideas?

Thanks!
Greg


Steve Tell wrote:

        
On Thu, 14 Apr 2005, Greg Lauer wrote:

 

          
Hello,

I'm trying to get gwave and ngspice to compile under
osx. I've been reasonably successful with ngspice outside of fink, but
having a horrible time with gwave. I believe I have
a version dependency issue with gtk/guile, but can't resolve the 
            
dependency.
    
Can someone please provide a fink info file and/or patches to
get gwave and ngspice to compile under fink?

If there are no os x friendly developers on this board, can you please
suggest some './compile' options I might try?
   

            
I know gwave pretty well, having written it (although been busy and
neglectful recently) but know next to nothing about OS X.  Fink is a sort
of package manager, is that right?

Gwave depends on the three packages gtk+, guile, and guile-gtk.
At present it (still) requires the older gtk+-1.2.  (gtk+-1.2.10)

Guile and guile-gtk are quite fussy about what version works with what.  
guile-1.6.4 or guile-1.6.7 is recommended, as is guile-gtk 1.2-0.31.
The other general hint is that installing guile-gtk often goes much better 
if it is installed into the same prefix as guile itself.  It can be done 
otherwise, but you'll likely have to set $LD_LIBRARY_PATH and 
$GUILE_LOAD_PATH both while building and runnng gwave.

In difficult situations I recomend testing that the guile-gtk examples
work properly by themselves before trying to build gwave:
	cd guile-gtk-1.2-0.31/examples
	guile -s ./test-gtk.scm

Steve

 

          
        
    

  

Reply via email to