Hi all, Ruby 1.8.1 Solaris 9 wxwindows 2.4.2 (package from blastwave.org) wxruby 0.3.0 I''m having trouble getting this sucker to build on my Solaris box. Here''s how I''m building: ruby extconf.rb --with-xrc-dir=/opt/csw --with-xrc-include=/opt/csw/lib/wx The include directive I added because the setup.h file is there (for whatever reason). And yes, /opt/csw/bin and /opt/csw/lib are in my path. Anyway, when I try to make, I get this:>ruby extconf.rb --with-xrc-dir=/opt/cswchecking for main() in -lkernel32... no creating Makefile djberge@sp5wd-b1-/home/djberge/local/modules/ruby/wxruby-0.3.0-src/src-516>make g++ -Wall -fno-strict-aliasing -fPIC -g -O2 -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/opt/csw/include -c wx.cpp In file included from /opt/csw/include/wx/defs.h:23, from /opt/csw/include/wx/wx.h:15, from wx.h:16, from wx.cpp:14: /opt/csw/include/wx/platform.h:85:22: wx/setup.h: No such file or directory In file included from /opt/csw/include/wx/platform.h:88, from /opt/csw/include/wx/defs.h:23, from /opt/csw/include/wx/wx.h:15, from wx.h:16, from wx.cpp:14: /opt/csw/include/wx/chkconf.h:47:9: #error "wxUSE_DYNLIB_CLASS must be defined." /opt/csw/include/wx/chkconf.h:55:9: #error "wxUSE_FILESYSTEM must be defined." /opt/csw/include/wx/chkconf.h:68:9: #error "wxUSE_DYNAMIC_LOADER must be defined." /opt/csw/include/wx/chkconf.h:76:9: #error "wxUSE_LOG must be defined." ... And it''s just downhill from there. Why isn''t it picking up the setup.h file? I don''t get it. Help appreciated. Dan
Daniel Berger wrote:> Hi all, > > Ruby 1.8.1 > Solaris 9 > wxwindows 2.4.2 (package from blastwave.org)Is this wxGTK?> wxruby 0.3.0 > > I''m having trouble getting this sucker to build on my Solaris box. > Here''s how I''m building: > > ruby extconf.rb --with-xrc-dir=/opt/csw > --with-xrc-include=/opt/csw/lib/wx > > The include directive I added because the setup.h file is there (for > whatever reason). And yes, /opt/csw/bin and /opt/csw/lib are in my > path. Anyway, when I try to make, I get this:On my box (Linux, wxGTK), setup.h is here: /usr/lib/wx/include/gtk-2.4/wx/setup.h When I run wx-config, it knows about it: kevins@laptop:~/work/wxruby$ wx-config --cflags -I/usr/local/lib/wx/include/gtk-2.4 -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES kevins@laptop:~/work/wxruby$ Do you see something similar when you run wx-config? Kevin
Kevin Smith wrote:> > Daniel Berger wrote: > > Hi all, > > > > Ruby 1.8.1 > > Solaris 9 > > wxwindows 2.4.2 (package from blastwave.org) > > Is this wxGTK?Yes.> > wxruby 0.3.0 > > > > I''m having trouble getting this sucker to build on my Solaris box. > > Here''s how I''m building: > > > > ruby extconf.rb --with-xrc-dir=/opt/csw > > --with-xrc-include=/opt/csw/lib/wx > > > > The include directive I added because the setup.h file is there (for > > whatever reason). And yes, /opt/csw/bin and /opt/csw/lib are in my > > path. Anyway, when I try to make, I get this: > > On my box (Linux, wxGTK), setup.h is here: > /usr/lib/wx/include/gtk-2.4/wx/setup.hMine is at: /opt/csw/lib/wx/include/gtk2univ-2.4/wx> When I run wx-config, it knows about it: > > kevins@laptop:~/work/wxruby$ wx-config --cflags > -I/usr/local/lib/wx/include/gtk-2.4 -DGTK_NO_CHECK_CASTS -D__WXGTK__ > -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES > kevins@laptop:~/work/wxruby$ > > Do you see something similar when you run wx-config?Yep:>wx-config --cflags-I/opt/csw/lib/wx/include/gtk2univ-2.4 -I/opt/csw/include -DGTK_NO_CHECK_CASTS -D__WXUNIVERSAL__ -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES Although (on another note), as I look at this, I''m wondering if the wx package might be a bad idea - does the -D_WXUNIVERSAL__ flag indicate unicode? I''ve included the Makefile below if that helps. Regards, Dan SHELL = /bin/sh #### Start of system configuration section. #### srcdir = . topdir = $(rubylibdir)/$(arch) hdrdir = $(rubylibdir)/$(arch) VPATH = $(srcdir) prefix = $(DESTDIR)/opt exec_prefix = $(prefix) sitedir = $(prefix)/lib/ruby/site_ruby rubylibdir = $(libdir)/ruby/$(ruby_version) builddir = $(ac_builddir) archdir = $(rubylibdir)/$(arch) sbindir = $(exec_prefix)/sbin compile_dir = $(DESTDIR)/usr/local/src/ruby-1.8.1 datadir = $(prefix)/share includedir = $(prefix)/include infodir = $(prefix)/info top_builddir = $(ac_top_builddir) sysconfdir = $(prefix)/etc mandir = $(prefix)/man libdir = $(exec_prefix)/lib sharedstatedir = $(prefix)/com oldincludedir = $(DESTDIR)/usr/include sitearchdir = $(sitelibdir)/$(sitearch) bindir = $(exec_prefix)/bin localstatedir = $(prefix)/var sitelibdir = $(sitedir)/$(ruby_version) libexecdir = $(exec_prefix)/libexec CC = gcc -Wall -fno-strict-aliasing LIBRUBY = $(LIBRUBY_A) LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a LIBRUBYARG_SHARED = LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static CFLAGS = -fPIC -g -O2 CPPFLAGS = -I. -I$(topdir) -I$(hdrdir) -I$(srcdir) -I/opt/csw/lib/wx -I/opt/csw/include CXXFLAGS = $(CFLAGS) DLDFLAGS = LDSHARED = $(CC) -Wl,-G AR = ar EXEEXT = RUBY_INSTALL_NAME = ruby RUBY_SO_NAME = $(RUBY_INSTALL_NAME) arch = sparc-solaris2.9 sitearch = sparc-solaris2.9 ruby_version = 1.8 RUBY = ruby RM = $(RUBY) -run -e rm -- -f MAKEDIRS = $(RUBY) -run -e mkdir -- -p INSTALL_PROG = $(RUBY) -run -e install -- -vpm 0755 INSTALL_DATA = $(RUBY) -run -e install -- -vpm 0644 #### End of system configuration section. #### LIBPATH = -L"$(libdir)" -L"/opt/csw/lib" DEFFILE = CLEANFILES = DISTCLEANFILES = target_prefix = LOCAL_LIBS = LIBS = -ldl -lcrypt -lm -lc OBJS = wx.o app.o bitmap.o button.o calendar.o checkbox.o choice.o colour.o colourdata.o colourdialog.o combobox.o const.o date.o dialog.o dirdialog.o event.o evthandler.o filedialog.o font.o fontdata.o fontdialog.o frame.o gauge.o layout.o listbox.o menu.o menubar.o messagedialog.o point.o radio.o rect.o size.o sizer.o slider.o spin.o statictext.o textctrl.o timer.o validator.o window.o icon.o artprovider.o log.o listctrl.o list.o panel.o scrolledwindow.o dc.o brush.o pen.o caret.o statusbar.o ownerdrawn.o config.o region.o cursor.o notebook.o tooltip.o mask.o socket.o url.o stream.o toolbar.o image.o palette.o treectrl.o classinfo.o splitterwindow.o methods.o staticbitmap.o control.o grid.o menuitem.o textattr.o dataformat.o togglebutton.o dropsource.o droptarget.o textdroptarget.o filedroptarget.o filedataobject.o textdataobject.o dataobject.o dataobjectsimple.o dynamiccast.o mdiparentframe.o mdiclientwindow.o mdichildframe.o TARGET = wxruby DLLIB = $(TARGET).so STATIC_LIB = $(TARGET).a RUBYCOMMONDIR = $(sitedir)$(target_prefix) RUBYLIBDIR = $(sitelibdir)$(target_prefix) RUBYARCHDIR = $(sitearchdir)$(target_prefix) CLEANLIBS = "$(TARGET).{lib,exp,il?,tds,map}" $(DLLIB) CLEANOBJS = "*.{o,a,s[ol],pdb,bak}" all: $(DLLIB) static: $(STATIC_LIB) clean: @$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) distclean: clean @$(RM) Makefile extconf.h conftest.* mkmf.log @$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES) realclean: distclean install: $(RUBYARCHDIR) install: $(RUBYARCHDIR)/$(DLLIB) $(RUBYARCHDIR)/$(DLLIB): $(DLLIB) $(RUBYARCHDIR) @$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR) $(RUBYARCHDIR): @$(MAKEDIRS) $(RUBYARCHDIR) site-install: install .SUFFIXES: .c .cc .m .cxx .cpp .C .t .o .cc.o: $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< .cpp.o: $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< .cxx.o: $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< .C.o: $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< .c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c $< $(DLLIB): $(OBJS) @-$(RM) $@ $(LDSHARED) $(DLDFLAGS) $(LIBPATH) -o $(DLLIB) $(OBJS) $(LOCAL_LIBS) $(LIBS) $(STATIC_LIB): $(OBJS) $(AR) cru $@ $(OBJS) @-ranlib $(DLLIB) 2> /dev/null || true ### app.o: app.cpp wx.h app_cb.h app.h artprovider.o: artprovider.cpp wx.h bitmap.h icon.h size.h \ artprovider.h bitmap.o: bitmap.cpp wx.h bitmap.h mask.h image.h brush.o: brush.cpp wx.h brush.h bitmap.h colour.h button.o: button.cpp wx.h button.h control.h size.h \ bitmap.h window.h calendar.o: calendar.cpp wx.h calendar.h colour.h window.h caret.o: caret.cpp wx.h caret.h point.h size.h window.h checkbox.o: checkbox.cpp wx.h checkbox.h control.h listbox.h choice.o: choice.cpp wx.h choice.h control.h classinfo.o: classinfo.cpp wx.h classinfo.h colour.o: colour.cpp wx.h colour.h colourdata.o: colourdata.cpp wx.h colour.h colourdata.h colourdialog.o: colourdialog.cpp wx.h colourdialog.h dialog.h window.h \ colourdata.h combobox.o: combobox.cpp wx.h combobox.h window.h config.o: config.cpp wx.h config.h const.o: const.cpp wx.h bitmap.h point.h size.h date.h \ colour.h cursor.h pen.h font.h brush.h control.o: control.cpp wx.h control.h window.h cursor.o: cursor.cpp wx.h cursor.h bitmap.h dataformat.o: dataformat.cpp dataformat.h dataobject.o: dataobject.cpp dataobject.h dataformat.h dataobjectsimple.o: dataobjectsimple.cpp dataobjectsimple.h dataobject.h dataformat.h date.o: date.cpp wx.h date.h dc.o: dc.cpp wx.h dc.h font.h colour.h pen.h \ brush.h dialog.o: dialog.cpp wx.h dialog.h window.h dirdialog.o: dirdialog.cpp wx.h dirdialog.h dialog.h dropsource.o: dropsource.cpp dropsource.h dataobject.h droptarget.o: droptarget.cpp droptarget.h dataobject.h event.o: event.cpp wx.h event.h date.h size.h point.h \ calendar.h notebook.h window.h listctrl.h socket.h treectrl.h evthandler.o: evthandler.cpp wx.h calendar.h evthandler.h \ treectrl.h event.h filedataobject.o: filedataobject.cpp filedataobject.h dataobjectsimple.o filedialog.o: filedialog.cpp wx.h filedialog.h dialog.h filedroptarget.o: filedroptarget.cpp filedroptarget.h droptarget.h font.o: font.cpp wx.h font.h fontdata.o: fontdata.cpp wx.h font.h colour.h fontdata.h fontdialog.o: fontdialog.cpp wx.h fontdata.h fontdialog.h dialog.h frame.o: frame.cpp wx.h frame.h window.h statusbar.h \ menubar.h toolbar.h point.h gauge.o: gauge.cpp wx.h gauge.h window.h grid.o : grid.cpp grid.h font.h pen.h rect.h colour.h size.h icon.o: icon.cpp wx.h icon.h bitmap.h image.o: image.cpp wx.h image.h statusbar.h menubar.h \ toolbar.h bitmap.h palette.h layout.o: layout.cpp wx.h layout.h listbox.o: listbox.cpp wx.h listbox.h ownerdrawn.h window.h list.o: list.cpp wx.h list.h bitmap.h icon.h listctrl.o: listctrl.cpp wx.h listctrl.h textctrl.h list.h \ point.h rect.h colour.h font.h window.h log.o: log.cpp wx.h log.h mask.o: mask.cpp wx.h mask.h mdiparentframe.o: mdiparentframe.cpp mdiparentframe.h wx.h mdiclientwindow.h \ mdichildframe.h menubar.o: menubar.cpp wx.h menubar.h menu.o: menu.cpp wx.h menu.h menuitem.o : menuitem.cpp wx.h menuitem.h bitmap.h colour.h font.h menu.h messagedialog.o: messagedialog.cpp wx.h \ messagedialog.h dialog.h methods.o: methods.cpp wx.h evthandler.h dialog.h colour.h notebook.o: notebook.cpp wx.h notebook.h window.h list.h \ button.h ownerdrawn.o: ownerdrawn.cpp palette.o: palette.cpp wx.h palette.h bitmap.h colour.h panel.o: panel.cpp wx.h panel.h button.h window.h pen.o: pen.cpp wx.h pen.h bitmap.h colour.h point.o: point.cpp wx.h point.h radio.o: radio.cpp wx.h radio.h window.h rect.o: rect.cpp wx.h rect.h region.o: region.cpp wx.h region.h scrolledwindow.o: scrolledwindow.cpp wx.h \ dc.h scrolledwindow.h panel.h size.o: size.cpp wx.h size.h sizer.o: sizer.cpp wx.h size.h sizer.h notebook.h \ window.h slider.o: slider.cpp wx.h slider.h window.h socket.o: socket.cpp wx.h stream.h socket.h spin.o: spin.cpp wx.h spin.h window.h splitterwindow.o: splitterwindow.cpp wx.h \ splitterwindow.h window.h staticbitmap.o: staticbitmap.cpp wx.h staticbitmap.h window.h statictext.o: statictext.cpp wx.h statictext.h window.h statusbar.o: statusbar.cpp wx.h statusbar.h rect.h window.h stream.o: stream.cpp wx.h stream.h textattr.o: textattr.cpp wx.h textattr.h textctrl.o: textctrl.cpp wx.h textctrl.h window.h textattr.h textdataobject.o: textdataobject.cpp textdataobject.h wx.h textdroptarget.o: textdroptarget.cpp textdroptarget.h droptarget.h timer.o: timer.cpp wx.h timer.h togglebutton.o: togglebutton.cpp wx.h togglebutton.h button.h toolbar.o: toolbar.cpp wx.h toolbar.h size.h window.h tooltip.o: tooltip.cpp wx.h tooltip.h window.h treectrl.o: treectrl.cpp wx.h treectrl.h textctrl.h point.h \ rect.h colour.h font.h list.h window.h url.o: url.cpp wx.h socket.h stream.h url.h validator.o: validator.cpp wx.h window.h validator.h window.o: window.cpp wx.h window.h evthandler.h colour.h \ font.h size.h rect.h sizer.h caret.h point.h layout.h region.h \ validator.h cursor.h tooltip.h classinfo.h wx.o: wx.cpp wx.h .t.cpp: ruby wxpp.rb $< .t.h: ruby wxpp.rb $< tclean:; @$(RM) button.h caret.h checkbox.h choice.h colourdialog.h control.h dataformat.h dataobject.h dataobjectsimple.h dropsource.h droptarget.h filedataobject.h filedroptarget.h font.h frame.h grid.h mdichildframe.h mdiclientwindow.h mdiparentframe.h menuitem.h skeleton.h textattr.h textctrl.h textdataobject.h textdroptarget.h togglebutton.h window.h xmlresource.h
Daniel Berger wrote:>>wx-config --cflags > > -I/opt/csw/lib/wx/include/gtk2univ-2.4 -I/opt/csw/include > -DGTK_NO_CHECK_CASTS -D__WXUNIVERSAL__ -D__WXGTK__ > -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES > > Although (on another note), as I look at this, I''m wondering if the wx > package might be a bad idea - does the -D_WXUNIVERSAL__ flag indicate > unicode?UNIVERSAL doesn''t mean unicode, but combined with "gtk2univ" it means that you are using the GTK2 build of wxWindows, rather than the more stable GTK 1.2 build. This is confirmed by the wxWindows page at blastwave.org. The wxWindows GTK readme claims that GTK2 has only been tested under Linux with glibc 2.2, but I''m not sure the README is up to date. I have never explored the wxWindows GTK2 option myself. At any rate, things are becoming more clear now. The first test you should try is to compile a few sample wxWindows C++ programs. If/when those work, then we know it is a wxRuby problem, and not a generic wxWindows problem. Next, I noticed that your makefile does not refer to wx-config. It should. Looking at our extconf.rb, I see that it has a section for /linux/ and /i386-freebsd/, but none for Solaris. It should probably fail if none of the platforms match, but we are moving away from extconf.rb soon, so I doubt I will fix that now. In extconf.rb, try printing RUBY_PLATFORM. Once you know the value, either add it as another ''or'' condition for the linux/bsd section, or create a new section by copying that one. If you are not using gcc, you should create a new section. After doing that, you should be able to run extconf.rb without any options. The resulting makefile should have something like: CFLAGS = -fPIC -Wall -g -O2 -fPIC `wx-config --cxxflags` Good luck, and let us know how it goes! Kevin
Oops, I think I sent that last followup directly to Kevin by mistake. Sorry Kevin! (Note: why does the ''reply'' button not reply to the group instead of the user?) Anyway, I modified extconf.rb like so: ... elsif RUBY_PLATFORM =~ /sunos|solaris/i CONFIG[''LDSHARED''].gsub!("gcc",`wx-config --cxx`.strip) $CFLAGS += " `wx-config --cxxflags`" $LDFLAGS += " `wx-config --libs` -Wl,--version-script,./version-script " ... I got further, with this:>makeg++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -c wx.cpp wx.cpp:23: warning: `FILE*f'' defined but not used g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -c app.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -c bitmap.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -c button.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -c calendar.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -c checkbox.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -c choice.cpp choice.cpp: In static member function `static VALUE WxChoice::GetColumns(int, VALUE*, long unsigned int)'': choice.cpp:184: error: `GetColumns'' undeclared (first use this function) choice.cpp:184: error: (Each undeclared identifier is reported only once for each function it appears in.) choice.cpp: In static member function `static VALUE WxChoice::SetColumns(int, VALUE*, long unsigned int)'': choice.cpp:262: error: `SetColumns'' undeclared (first use this function) *** Error code 1 make: Fatal error: Command failed for target `choice.o'' Then I realized that wx-config --cxx returns "/opt/forte8/SUNWspro/bin/CC". Unfortunately, I use gcc not forte, so perhaps this is a compiler compatability issue? In any case, I''ll try building the wxwindows/motif source with gcc and see if I fare any better. Regards, Dan
Daniel Berger wrote:> > Oops, I think I sent that last followup directly to Kevin by mistake. > Sorry Kevin! (Note: why does the ''reply'' button not reply to the group > instead of the user?)Its a configurable setting in Mailman (the mailing list manager). The way it is now is the default setting. The supposed justification is that it makes it easier to send private replies.Its a sometimes hot topic of debate usually ending with non-Outlook users (who are the main ones with the problem) telling us that we should find a different email client. Anyway, it can be fixed by a configuration setting in Mailmain (this is how we have the FreeRIDE lists set up). I don''t like it either, and so I''d like to take this opportunity to suggest that we fix this in the ML. Are there any objections? If not I can go ahead and do it. Curt
> -----Original Message----- > I don''t like it either, and so I''d like to take this > opportunity to suggest that we fix this in the ML. Are there > any objections? If not I can go ahead and do it. > > CurtI second that motion. Dan
Kevin Smith wrote:> > Daniel Berger wrote: > >>wx-config --cflags > > > > -I/opt/csw/lib/wx/include/gtk2univ-2.4 -I/opt/csw/include > > -DGTK_NO_CHECK_CASTS -D__WXUNIVERSAL__ -D__WXGTK__ > > -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES > > > > Although (on another note), as I look at this, I''m wondering if the wx > > package might be a bad idea - does the -D_WXUNIVERSAL__ flag indicate > > unicode? > > UNIVERSAL doesn''t mean unicode, but combined with "gtk2univ" it means > that you are using the GTK2 build of wxWindows, rather than the more > stable GTK 1.2 build. This is confirmed by the wxWindows page at > blastwave.org. > > The wxWindows GTK readme claims that GTK2 has only been tested under > Linux with glibc 2.2, but I''m not sure the README is up to date. I have > never explored the wxWindows GTK2 option myself.Ok, I hand built wxwindows/motif 2.4.2 (under /usr/local) with gcc 3.3.3. Seemed to go fine. Then, I tried to build wxruby again, using the same options that Linux and FreeBSD use in extconf.rb. Here was the result of make:>makeg++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c wx.cpp wx.cpp:23: warning: `FILE*f'' defined but not used g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c app.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c bitmap.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c button.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c calendar.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c checkbox.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c choice.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c colour.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c colourdata.cpp ruby wxpp.rb colourdialog.t g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c colourdialog.cpp g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c combobox.cpp ruby wxpp.rb font.t g++ -Wall -fno-strict-aliasing -fPIC -g -O2 `wx-config --cxxflags` -I. -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -I/usr/local/include -c const.cpp const.cpp: In function `void SetConstants()'': const.cpp:1142: error: `wxDragError'' undeclared (first use this function) const.cpp:1142: error: (Each undeclared identifier is reported only once for each function it appears in.) const.cpp:1143: error: `wxDragNone'' undeclared (first use this function) const.cpp:1144: error: `wxDragCopy'' undeclared (first use this function) const.cpp:1145: error: `wxDragMove'' undeclared (first use this function) const.cpp:1146: error: `wxDragCancel'' undeclared (first use this function) const.cpp:1148: error: `wxDrag_CopyOnly'' undeclared (first use this function) const.cpp:1149: error: `wxDrag_AllowMove'' undeclared (first use this function) const.cpp:1150: error: `wxDrag_DefaultMove'' undeclared (first use this function) *** Error code 1 make: Fatal error: Command failed for target `const.o'' Any ideas? Regards, Dan
On 2004 Apr 28, at 12:27, Curt Hibbs wrote:> Its a sometimes hot topic of debate > usually ending with non-Outlook users (who are the main ones with the > problem) telling us that we should find a different email client.Would that be so bad? ;-)> I don''t like it either, and so I''d like to take this opportunity to > suggest > that we fix this in the ML. Are there any objections? If not I can go > ahead > and do it.Please do! -- Ryan "John" Platte Custom services, NIKA Consulting http://nikaconsulting.com/
Kevin Smith
2004-Apr-28 22:23 UTC
[Wxruby-users] List reply/reply all (was: Building wxruby on Solaris 9)
Curt Hibbs wrote:> I don''t like it either, and so I''d like to take this opportunity to suggest > that we fix this in the ML. Are there any objections? If not I can go ahead > and do it.I am ok changing it to default to replying to the list. We all need to realize that this *will* cause a few messages to show up on the list that were intended to be strictly personal. If it happens too often, we might want to revisit the issue. I think the default setting is intentionally the "safest" option. Kevin
Daniel Berger wrote:> Ok, I hand built wxwindows/motif 2.4.2 (under /usr/local) with gcc > 3.3.3. Seemed to go fine. Then, I tried to build wxruby again, using > the same options that Linux and FreeBSD use in extconf.rb. Here was the > result of make: > > const.cpp:1142: error: `wxDragError'' undeclared (first use this > function) > const.cpp:1143: error: `wxDragNone'' undeclared (first use this function) > const.cpp:1144: error: `wxDragCopy'' undeclared (first use this function) > const.cpp:1145: error: `wxDragMove'' undeclared (first use this function) > const.cpp:1146: error: `wxDragCancel'' undeclared (first use this > function) > const.cpp:1148: error: `wxDrag_CopyOnly'' undeclared (first use this > function) > const.cpp:1149: error: `wxDrag_AllowMove'' undeclared (first use this > function) > const.cpp:1150: error: `wxDrag_DefaultMove'' undeclared (first use this > function)My professional opinion is that it seems to be a problem with drag and drop :-) At first I thought DnD might not be supported under Motif, but the docs refer to it working with "any program supporting the XDnD protocol under X Windows". Then I saw this in the Drag and Drop Overview in the wxWindows docs: "Note that wxUSE_DRAG_AND_DROP must be defined in setup.h in order to use drag and drop in wxWindows." That''s where I would start looking. An alternative would be to surround those const definitions with a #ifdef wxUSE_DRAG_AND_DROP so they aren''t wrapped if they aren''t available. Hope this helps. Kevin
John Platte
2004-Apr-29 10:12 UTC
[Wxruby-users] List reply/reply all (was: Building wxruby on Solaris 9)
On 2004 Apr 28, at 20:54, Kevin Smith wrote:> We all need to realize that this *will* cause a few messages to show > up on the list that were intended to be strictly personal. If it > happens too often, we might want to revisit the issue. I think the > default setting is intentionally the "safest" option.I know what you did last summer, Kevin. -- Ryan "John" Platte Custom services, NIKA Consulting http://nikaconsulting.com/
> -----Original Message----- > From: wxruby-users-bounces@rubyforge.org > [mailto:wxruby-users-bounces@rubyforge.org] On Behalf Of Kevin Smith > Sent: Wednesday, April 28, 2004 8:01 PM > To: wxruby-users@rubyforge.org > Subject: Re: [Wxruby-users] Building wxruby on Solaris 9 > ><errors snipped>> > My professional opinion is that it seems to be a problem with > drag and > drop :-) > > At first I thought DnD might not be supported under Motif, > but the docs > refer to it working with "any program supporting the XDnD > protocol under > X Windows". Then I saw this in the Drag and Drop Overview in the > wxWindows docs: > > "Note that wxUSE_DRAG_AND_DROP must be defined in setup.h in order to > use drag and drop in wxWindows."I see wxUSE_DRAG_AND_DROP (set to 1) and wxUSE_DRAGIMAGE (set to 0) and that''s it. What''s next? Regards, Dan
Berger, Daniel wrote:> I see wxUSE_DRAG_AND_DROP (set to 1) and wxUSE_DRAGIMAGE (set to 0) and > that''s it. > > What''s next?Ugh. Ok. wxruby/src/const.cpp includes "wx/dnd.h". Looking at my wx/dnd.h, it says #if wxUSE_DRAG_AND_DROP. Almost immediately, it defines wxDrag_CopyOnly which is one of the compile errors you mentioned. So either const.cpp isn''t including wx/dnd.h (unlikely), or your dnd.h is different from mine (worth checking), or I''m missing something (possible), or wxUSE_DRAG_AND_DROP isn''t set during the wxRuby compile, even if it was when wxWindows was built. Ok. const.cpp includes wx/dnd.h which includes wx/platform.h which includes wx/setup.h. Now, wx/setup.h is special because it is actually in /usr/lib..., whereas all the other .h files up to that point were in /usr/include.... You already confirmed that your wx-config points to that directory. So I''m pretty confused. Try inserting this at the very top of const.cpp, above the first #include: #include <wx/setup.h> #if !wxUSE_DRAG_AND_DROP #warning "NEED DRAG AND DROP" #endif See if it fires a warning or not. Other experiments would be to replace the <wx/setup.h> with <wx/platform.h> or with <wx/wx.h>. Kevin
Kevin Smith wrote:> > Berger, Daniel wrote: > > I see wxUSE_DRAG_AND_DROP (set to 1) and wxUSE_DRAGIMAGE (set to 0) > and > > that''s it. > > > > What''s next? > > Ugh. Ok. wxruby/src/const.cpp includes "wx/dnd.h". > > Looking at my wx/dnd.h, it says #if wxUSE_DRAG_AND_DROP. Almost > immediately, it defines wxDrag_CopyOnly which is one of the compile > errors you mentioned. > > So either const.cpp isn''t including wx/dnd.h (unlikely), or your dnd.h > is different from mine (worth checking), or I''m missing something > (possible), or wxUSE_DRAG_AND_DROP isn''t set during the wxRuby compile, > even if it was when wxWindows was built. > > Ok. const.cpp includes wx/dnd.h which includes wx/platform.h which > includes wx/setup.h. Now, wx/setup.h is special because it is actually > in /usr/lib..., whereas all the other .h files up to that point were in > /usr/include.... You already confirmed that your wx-config points to > that directory. > > So I''m pretty confused. Try inserting this at the very top of const.cpp, > > above the first #include: > > #include <wx/setup.h> > #if !wxUSE_DRAG_AND_DROP > #warning "NEED DRAG AND DROP" > #endif > > See if it fires a warning or not. Other experiments would be to replace > the <wx/setup.h> with <wx/platform.h> or with <wx/wx.h>.I don''t think I ever followed up to this. I tried again with wxRuby 0.4.0. I added the above code to const.cpp and it does, indeed, emit a warning. So, wxUSE_DRAG_AND_DROP is not defined. What now? Side note: wx.cpp:23: warning: `FILE*f'' defined but not used Regards, Dan
Daniel Berger wrote:> Kevin Smith wrote: >>So I''m pretty confused. Try inserting this at the very top of const.cpp, >> >>above the first #include: >> >>#include <wx/setup.h> >>#if !wxUSE_DRAG_AND_DROP >> #warning "NEED DRAG AND DROP" >>#endif >> >>See if it fires a warning or not. Other experiments would be to replace >>the <wx/setup.h> with <wx/platform.h> or with <wx/wx.h>. > > > I don''t think I ever followed up to this. I tried again with wxRuby > 0.4.0. I added the above code to const.cpp and it does, indeed, emit a > warning. So, wxUSE_DRAG_AND_DROP is not defined. > > What now?Sorry about the delay. Let me get this straight...wx/setup.h defines wxUSE_DRAG_AND_DROP, but the above code claims it is not defined? I can only think of a couple possibilities: 1. You have multiple copies of wx/setup.h, and some do not define that constant 2. The #define wxUSE_DRAG_AND_DROP is buried inside some other #if condition, and therefore is not being executed. Kevin