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 trapI 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 -lmDoing 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 trapHave 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 -lmIt 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. SteveThanks! GregOn 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_gtkobjThose 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 thedependency.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
