diff --git a/Makefile.in b/Makefile.in index 2832d3886f..f371c70cb6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -746,16 +746,17 @@ ALL_BASE_SOURCES = \ src/common/zstream.cpp \ src/common/fdiodispatcher.cpp \ src/common/selectdispatcher.cpp \ - src/unix/epolldispatcher.cpp \ src/unix/appunix.cpp \ - src/unix/evtloopunix.cpp \ src/unix/dir.cpp \ src/unix/dlunix.cpp \ + src/unix/epolldispatcher.cpp \ + src/unix/evtloopunix.cpp \ + src/unix/fdiounix.cpp \ src/unix/snglinst.cpp \ + src/unix/stackwalk.cpp \ src/unix/stdpaths.cpp \ src/unix/timerunx.cpp \ src/unix/threadpsx.cpp \ - src/unix/stackwalk.cpp \ src/unix/utilsunx.cpp \ src/unix/mimetype.cpp \ src/msw/basemsw.cpp \ @@ -1965,16 +1966,17 @@ COND_USE_STC_1___wxscintilla___depname = \ COND_TOOLKIT__BASE_OSX_SRC = \ src/common/fdiodispatcher.cpp \ src/common/selectdispatcher.cpp \ - src/unix/epolldispatcher.cpp \ src/unix/appunix.cpp \ - src/unix/evtloopunix.cpp \ src/unix/dir.cpp \ src/unix/dlunix.cpp \ + src/unix/epolldispatcher.cpp \ + src/unix/evtloopunix.cpp \ + src/unix/fdiounix.cpp \ src/unix/snglinst.cpp \ + src/unix/stackwalk.cpp \ src/unix/stdpaths.cpp \ src/unix/timerunx.cpp \ src/unix/threadpsx.cpp \ - src/unix/stackwalk.cpp \ src/unix/utilsunx.cpp \ src/unix/mimetype.cpp \ src/osx/core/cfstring.cpp \ @@ -1985,16 +1987,17 @@ COND_TOOLKIT__BASE_OSX_SRC = \ COND_TOOLKIT_COCOA_BASE_OSX_SRC = \ src/common/fdiodispatcher.cpp \ src/common/selectdispatcher.cpp \ - src/unix/epolldispatcher.cpp \ src/unix/appunix.cpp \ - src/unix/evtloopunix.cpp \ src/unix/dir.cpp \ src/unix/dlunix.cpp \ + src/unix/epolldispatcher.cpp \ + src/unix/evtloopunix.cpp \ + src/unix/fdiounix.cpp \ src/unix/snglinst.cpp \ + src/unix/stackwalk.cpp \ src/unix/stdpaths.cpp \ src/unix/timerunx.cpp \ src/unix/threadpsx.cpp \ - src/unix/stackwalk.cpp \ src/unix/utilsunx.cpp \ src/unix/mimetype.cpp \ src/osx/core/cfstring.cpp \ @@ -2005,16 +2008,17 @@ COND_TOOLKIT_COCOA_BASE_OSX_SRC = \ COND_TOOLKIT_GTK_BASE_OSX_SRC = \ src/common/fdiodispatcher.cpp \ src/common/selectdispatcher.cpp \ - src/unix/epolldispatcher.cpp \ src/unix/appunix.cpp \ - src/unix/evtloopunix.cpp \ src/unix/dir.cpp \ src/unix/dlunix.cpp \ + src/unix/epolldispatcher.cpp \ + src/unix/evtloopunix.cpp \ + src/unix/fdiounix.cpp \ src/unix/snglinst.cpp \ + src/unix/stackwalk.cpp \ src/unix/stdpaths.cpp \ src/unix/timerunx.cpp \ src/unix/threadpsx.cpp \ - src/unix/stackwalk.cpp \ src/unix/utilsunx.cpp \ src/unix/mimetype.cpp \ src/osx/core/cfstring.cpp \ @@ -2025,16 +2029,17 @@ COND_TOOLKIT_GTK_BASE_OSX_SRC = \ COND_TOOLKIT_MOTIF_BASE_OSX_SRC = \ src/common/fdiodispatcher.cpp \ src/common/selectdispatcher.cpp \ - src/unix/epolldispatcher.cpp \ src/unix/appunix.cpp \ - src/unix/evtloopunix.cpp \ src/unix/dir.cpp \ src/unix/dlunix.cpp \ + src/unix/epolldispatcher.cpp \ + src/unix/evtloopunix.cpp \ + src/unix/fdiounix.cpp \ src/unix/snglinst.cpp \ + src/unix/stackwalk.cpp \ src/unix/stdpaths.cpp \ src/unix/timerunx.cpp \ src/unix/threadpsx.cpp \ - src/unix/stackwalk.cpp \ src/unix/utilsunx.cpp \ src/unix/mimetype.cpp \ src/osx/core/cfstring.cpp \ @@ -2050,16 +2055,17 @@ COND_TOOLKIT_OSX_CARBON_BASE_OSX_SRC = \ src/osx/core/utilsexc_base.cpp \ src/common/fdiodispatcher.cpp \ src/common/selectdispatcher.cpp \ - src/unix/epolldispatcher.cpp \ src/unix/appunix.cpp \ - src/unix/evtloopunix.cpp \ src/unix/dir.cpp \ src/unix/dlunix.cpp \ + src/unix/epolldispatcher.cpp \ + src/unix/evtloopunix.cpp \ + src/unix/fdiounix.cpp \ src/unix/snglinst.cpp \ + src/unix/stackwalk.cpp \ src/unix/stdpaths.cpp \ src/unix/timerunx.cpp \ src/unix/threadpsx.cpp \ - src/unix/stackwalk.cpp \ src/unix/utilsunx.cpp @COND_TOOLKIT_OSX_CARBON@BASE_OSX_SRC = $(COND_TOOLKIT_OSX_CARBON_BASE_OSX_SRC) COND_TOOLKIT_OSX_COCOA_BASE_OSX_SRC = \ @@ -2070,31 +2076,33 @@ COND_TOOLKIT_OSX_COCOA_BASE_OSX_SRC = \ src/osx/core/utilsexc_base.cpp \ src/common/fdiodispatcher.cpp \ src/common/selectdispatcher.cpp \ - src/unix/epolldispatcher.cpp \ src/unix/appunix.cpp \ - src/unix/evtloopunix.cpp \ src/unix/dir.cpp \ src/unix/dlunix.cpp \ + src/unix/epolldispatcher.cpp \ + src/unix/evtloopunix.cpp \ + src/unix/fdiounix.cpp \ src/unix/snglinst.cpp \ + src/unix/stackwalk.cpp \ src/unix/stdpaths.cpp \ src/unix/timerunx.cpp \ src/unix/threadpsx.cpp \ - src/unix/stackwalk.cpp \ src/unix/utilsunx.cpp @COND_TOOLKIT_OSX_COCOA@BASE_OSX_SRC = $(COND_TOOLKIT_OSX_COCOA_BASE_OSX_SRC) COND_TOOLKIT_X11_BASE_OSX_SRC = \ src/common/fdiodispatcher.cpp \ src/common/selectdispatcher.cpp \ - src/unix/epolldispatcher.cpp \ src/unix/appunix.cpp \ - src/unix/evtloopunix.cpp \ src/unix/dir.cpp \ src/unix/dlunix.cpp \ + src/unix/epolldispatcher.cpp \ + src/unix/evtloopunix.cpp \ + src/unix/fdiounix.cpp \ src/unix/snglinst.cpp \ + src/unix/stackwalk.cpp \ src/unix/stdpaths.cpp \ src/unix/timerunx.cpp \ src/unix/threadpsx.cpp \ - src/unix/stackwalk.cpp \ src/unix/utilsunx.cpp \ src/unix/mimetype.cpp \ src/osx/core/cfstring.cpp \ @@ -3854,16 +3862,17 @@ COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS = \ monodll_utilsexc_base.o \ monodll_fdiodispatcher.o \ monodll_selectdispatcher.o \ - monodll_epolldispatcher.o \ monodll_appunix.o \ - monodll_evtloopunix.o \ monodll_unix_dir.o \ monodll_dlunix.o \ + monodll_epolldispatcher.o \ + monodll_evtloopunix.o \ + monodll_fdiounix.o \ monodll_unix_snglinst.o \ + monodll_unix_stackwalk.o \ monodll_unix_stdpaths.o \ monodll_timerunx.o \ monodll_threadpsx.o \ - monodll_unix_stackwalk.o \ monodll_utilsunx.o @COND_PLATFORM_MACOSX_1@__BASE_PLATFORM_SRC_OBJECTS = $(COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS) @COND_PLATFORM_MSDOS_1@__BASE_PLATFORM_SRC_OBJECTS = \ @@ -3886,16 +3895,17 @@ COND_PLATFORM_OS2_1___BASE_PLATFORM_SRC_OBJECTS = \ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS = \ monodll_fdiodispatcher.o \ monodll_selectdispatcher.o \ - monodll_epolldispatcher.o \ monodll_appunix.o \ - monodll_evtloopunix.o \ monodll_unix_dir.o \ monodll_dlunix.o \ + monodll_epolldispatcher.o \ + monodll_evtloopunix.o \ + monodll_fdiounix.o \ monodll_unix_snglinst.o \ + monodll_unix_stackwalk.o \ monodll_unix_stdpaths.o \ monodll_timerunx.o \ monodll_threadpsx.o \ - monodll_unix_stackwalk.o \ monodll_utilsunx.o \ monodll_unix_mimetype.o @COND_PLATFORM_UNIX_1@__BASE_PLATFORM_SRC_OBJECTS = $(COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS) @@ -5652,16 +5662,17 @@ COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_1 = \ monolib_utilsexc_base.o \ monolib_fdiodispatcher.o \ monolib_selectdispatcher.o \ - monolib_epolldispatcher.o \ monolib_appunix.o \ - monolib_evtloopunix.o \ monolib_unix_dir.o \ monolib_dlunix.o \ + monolib_epolldispatcher.o \ + monolib_evtloopunix.o \ + monolib_fdiounix.o \ monolib_unix_snglinst.o \ + monolib_unix_stackwalk.o \ monolib_unix_stdpaths.o \ monolib_timerunx.o \ monolib_threadpsx.o \ - monolib_unix_stackwalk.o \ monolib_utilsunx.o @COND_PLATFORM_MACOSX_1@__BASE_PLATFORM_SRC_OBJECTS_1 = $(COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_1) @COND_PLATFORM_MSDOS_1@__BASE_PLATFORM_SRC_OBJECTS_1 \ @@ -5684,16 +5695,17 @@ COND_PLATFORM_OS2_1___BASE_PLATFORM_SRC_OBJECTS_1 = \ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_1 = \ monolib_fdiodispatcher.o \ monolib_selectdispatcher.o \ - monolib_epolldispatcher.o \ monolib_appunix.o \ - monolib_evtloopunix.o \ monolib_unix_dir.o \ monolib_dlunix.o \ + monolib_epolldispatcher.o \ + monolib_evtloopunix.o \ + monolib_fdiounix.o \ monolib_unix_snglinst.o \ + monolib_unix_stackwalk.o \ monolib_unix_stdpaths.o \ monolib_timerunx.o \ monolib_threadpsx.o \ - monolib_unix_stackwalk.o \ monolib_utilsunx.o \ monolib_unix_mimetype.o @COND_PLATFORM_UNIX_1@__BASE_PLATFORM_SRC_OBJECTS_1 = $(COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_1) @@ -7487,16 +7499,17 @@ COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_2 = \ basedll_utilsexc_base.o \ basedll_fdiodispatcher.o \ basedll_selectdispatcher.o \ - basedll_epolldispatcher.o \ basedll_appunix.o \ - basedll_evtloopunix.o \ basedll_unix_dir.o \ basedll_dlunix.o \ + basedll_epolldispatcher.o \ + basedll_evtloopunix.o \ + basedll_fdiounix.o \ basedll_unix_snglinst.o \ + basedll_unix_stackwalk.o \ basedll_unix_stdpaths.o \ basedll_timerunx.o \ basedll_threadpsx.o \ - basedll_unix_stackwalk.o \ basedll_utilsunx.o @COND_PLATFORM_MACOSX_1@__BASE_PLATFORM_SRC_OBJECTS_2 = $(COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_2) @COND_PLATFORM_MSDOS_1@__BASE_PLATFORM_SRC_OBJECTS_2 \ @@ -7519,16 +7532,17 @@ COND_PLATFORM_OS2_1___BASE_PLATFORM_SRC_OBJECTS_2 = \ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_2 = \ basedll_fdiodispatcher.o \ basedll_selectdispatcher.o \ - basedll_epolldispatcher.o \ basedll_appunix.o \ - basedll_evtloopunix.o \ basedll_unix_dir.o \ basedll_dlunix.o \ + basedll_epolldispatcher.o \ + basedll_evtloopunix.o \ + basedll_fdiounix.o \ basedll_unix_snglinst.o \ + basedll_unix_stackwalk.o \ basedll_unix_stdpaths.o \ basedll_timerunx.o \ basedll_threadpsx.o \ - basedll_unix_stackwalk.o \ basedll_utilsunx.o \ basedll_unix_mimetype.o @COND_PLATFORM_UNIX_1@__BASE_PLATFORM_SRC_OBJECTS_2 = $(COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_2) @@ -7580,16 +7594,17 @@ COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_3 = \ baselib_utilsexc_base.o \ baselib_fdiodispatcher.o \ baselib_selectdispatcher.o \ - baselib_epolldispatcher.o \ baselib_appunix.o \ - baselib_evtloopunix.o \ baselib_unix_dir.o \ baselib_dlunix.o \ + baselib_epolldispatcher.o \ + baselib_evtloopunix.o \ + baselib_fdiounix.o \ baselib_unix_snglinst.o \ + baselib_unix_stackwalk.o \ baselib_unix_stdpaths.o \ baselib_timerunx.o \ baselib_threadpsx.o \ - baselib_unix_stackwalk.o \ baselib_utilsunx.o @COND_PLATFORM_MACOSX_1@__BASE_PLATFORM_SRC_OBJECTS_3 = $(COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_3) @COND_PLATFORM_MSDOS_1@__BASE_PLATFORM_SRC_OBJECTS_3 \ @@ -7612,16 +7627,17 @@ COND_PLATFORM_OS2_1___BASE_PLATFORM_SRC_OBJECTS_3 = \ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_3 = \ baselib_fdiodispatcher.o \ baselib_selectdispatcher.o \ - baselib_epolldispatcher.o \ baselib_appunix.o \ - baselib_evtloopunix.o \ baselib_unix_dir.o \ baselib_dlunix.o \ + baselib_epolldispatcher.o \ + baselib_evtloopunix.o \ + baselib_fdiounix.o \ baselib_unix_snglinst.o \ + baselib_unix_stackwalk.o \ baselib_unix_stdpaths.o \ baselib_timerunx.o \ baselib_threadpsx.o \ - baselib_unix_stackwalk.o \ baselib_utilsunx.o \ baselib_unix_mimetype.o @COND_PLATFORM_UNIX_1@__BASE_PLATFORM_SRC_OBJECTS_3 = $(COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_3) @@ -16007,12 +16023,6 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_PLATFORM_OS2_1@monodll_selectdispatcher.o: $(srcdir)/src/common/selectdispatcher.cpp $(MONODLL_ODEP) @COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/selectdispatcher.cpp -@COND_PLATFORM_UNIX_1@monodll_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(MONODLL_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp - -@COND_PLATFORM_MACOSX_1@monodll_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(MONODLL_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp - @COND_PLATFORM_UNIX_1@monodll_appunix.o: $(srcdir)/src/unix/appunix.cpp $(MONODLL_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp @@ -16022,15 +16032,6 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_PLATFORM_OS2_1@monodll_appunix.o: $(srcdir)/src/unix/appunix.cpp $(MONODLL_ODEP) @COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp -@COND_PLATFORM_UNIX_1@monodll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONODLL_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - -@COND_PLATFORM_MACOSX_1@monodll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONODLL_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - -@COND_PLATFORM_OS2_1@monodll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONODLL_ODEP) -@COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - @COND_PLATFORM_UNIX_1@monodll_unix_dir.o: $(srcdir)/src/unix/dir.cpp $(MONODLL_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/dir.cpp @@ -16043,12 +16044,39 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_PLATFORM_MACOSX_1@monodll_dlunix.o: $(srcdir)/src/unix/dlunix.cpp $(MONODLL_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/dlunix.cpp +@COND_PLATFORM_UNIX_1@monodll_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(MONODLL_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp + +@COND_PLATFORM_MACOSX_1@monodll_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(MONODLL_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp + +@COND_PLATFORM_UNIX_1@monodll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONODLL_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_MACOSX_1@monodll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONODLL_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_OS2_1@monodll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONODLL_ODEP) +@COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_UNIX_1@monodll_fdiounix.o: $(srcdir)/src/unix/fdiounix.cpp $(MONODLL_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/fdiounix.cpp + +@COND_PLATFORM_MACOSX_1@monodll_fdiounix.o: $(srcdir)/src/unix/fdiounix.cpp $(MONODLL_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/fdiounix.cpp + @COND_PLATFORM_UNIX_1@monodll_unix_snglinst.o: $(srcdir)/src/unix/snglinst.cpp $(MONODLL_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/snglinst.cpp @COND_PLATFORM_MACOSX_1@monodll_unix_snglinst.o: $(srcdir)/src/unix/snglinst.cpp $(MONODLL_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/snglinst.cpp +@COND_PLATFORM_UNIX_1@monodll_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(MONODLL_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp + +@COND_PLATFORM_MACOSX_1@monodll_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(MONODLL_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp + @COND_PLATFORM_UNIX_1@monodll_unix_stdpaths.o: $(srcdir)/src/unix/stdpaths.cpp $(MONODLL_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/stdpaths.cpp @@ -16070,12 +16098,6 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_PLATFORM_MACOSX_1@monodll_threadpsx.o: $(srcdir)/src/unix/threadpsx.cpp $(MONODLL_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/threadpsx.cpp -@COND_PLATFORM_UNIX_1@monodll_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(MONODLL_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp - -@COND_PLATFORM_MACOSX_1@monodll_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(MONODLL_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp - @COND_PLATFORM_UNIX_1@monodll_utilsunx.o: $(srcdir)/src/unix/utilsunx.cpp $(MONODLL_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/utilsunx.cpp @@ -20729,12 +20751,6 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_PLATFORM_OS2_1@monolib_selectdispatcher.o: $(srcdir)/src/common/selectdispatcher.cpp $(MONOLIB_ODEP) @COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/selectdispatcher.cpp -@COND_PLATFORM_UNIX_1@monolib_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(MONOLIB_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp - -@COND_PLATFORM_MACOSX_1@monolib_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(MONOLIB_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp - @COND_PLATFORM_UNIX_1@monolib_appunix.o: $(srcdir)/src/unix/appunix.cpp $(MONOLIB_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp @@ -20744,15 +20760,6 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_PLATFORM_OS2_1@monolib_appunix.o: $(srcdir)/src/unix/appunix.cpp $(MONOLIB_ODEP) @COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp -@COND_PLATFORM_UNIX_1@monolib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONOLIB_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - -@COND_PLATFORM_MACOSX_1@monolib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONOLIB_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - -@COND_PLATFORM_OS2_1@monolib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONOLIB_ODEP) -@COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - @COND_PLATFORM_UNIX_1@monolib_unix_dir.o: $(srcdir)/src/unix/dir.cpp $(MONOLIB_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/dir.cpp @@ -20765,12 +20772,39 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_PLATFORM_MACOSX_1@monolib_dlunix.o: $(srcdir)/src/unix/dlunix.cpp $(MONOLIB_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/dlunix.cpp +@COND_PLATFORM_UNIX_1@monolib_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(MONOLIB_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp + +@COND_PLATFORM_MACOSX_1@monolib_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(MONOLIB_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp + +@COND_PLATFORM_UNIX_1@monolib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONOLIB_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_MACOSX_1@monolib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONOLIB_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_OS2_1@monolib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONOLIB_ODEP) +@COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_UNIX_1@monolib_fdiounix.o: $(srcdir)/src/unix/fdiounix.cpp $(MONOLIB_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/fdiounix.cpp + +@COND_PLATFORM_MACOSX_1@monolib_fdiounix.o: $(srcdir)/src/unix/fdiounix.cpp $(MONOLIB_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/fdiounix.cpp + @COND_PLATFORM_UNIX_1@monolib_unix_snglinst.o: $(srcdir)/src/unix/snglinst.cpp $(MONOLIB_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/snglinst.cpp @COND_PLATFORM_MACOSX_1@monolib_unix_snglinst.o: $(srcdir)/src/unix/snglinst.cpp $(MONOLIB_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/snglinst.cpp +@COND_PLATFORM_UNIX_1@monolib_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(MONOLIB_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp + +@COND_PLATFORM_MACOSX_1@monolib_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(MONOLIB_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp + @COND_PLATFORM_UNIX_1@monolib_unix_stdpaths.o: $(srcdir)/src/unix/stdpaths.cpp $(MONOLIB_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/stdpaths.cpp @@ -20792,12 +20826,6 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_PLATFORM_MACOSX_1@monolib_threadpsx.o: $(srcdir)/src/unix/threadpsx.cpp $(MONOLIB_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/threadpsx.cpp -@COND_PLATFORM_UNIX_1@monolib_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(MONOLIB_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp - -@COND_PLATFORM_MACOSX_1@monolib_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(MONOLIB_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp - @COND_PLATFORM_UNIX_1@monolib_utilsunx.o: $(srcdir)/src/unix/utilsunx.cpp $(MONOLIB_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/utilsunx.cpp @@ -23861,12 +23889,6 @@ basedll_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASEDLL_ODEP) @COND_PLATFORM_OS2_1@basedll_selectdispatcher.o: $(srcdir)/src/common/selectdispatcher.cpp $(BASEDLL_ODEP) @COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/selectdispatcher.cpp -@COND_PLATFORM_UNIX_1@basedll_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(BASEDLL_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp - -@COND_PLATFORM_MACOSX_1@basedll_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(BASEDLL_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp - @COND_PLATFORM_UNIX_1@basedll_appunix.o: $(srcdir)/src/unix/appunix.cpp $(BASEDLL_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp @@ -23876,15 +23898,6 @@ basedll_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASEDLL_ODEP) @COND_PLATFORM_OS2_1@basedll_appunix.o: $(srcdir)/src/unix/appunix.cpp $(BASEDLL_ODEP) @COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp -@COND_PLATFORM_UNIX_1@basedll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASEDLL_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - -@COND_PLATFORM_MACOSX_1@basedll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASEDLL_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - -@COND_PLATFORM_OS2_1@basedll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASEDLL_ODEP) -@COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - @COND_PLATFORM_UNIX_1@basedll_unix_dir.o: $(srcdir)/src/unix/dir.cpp $(BASEDLL_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/dir.cpp @@ -23897,12 +23910,39 @@ basedll_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASEDLL_ODEP) @COND_PLATFORM_MACOSX_1@basedll_dlunix.o: $(srcdir)/src/unix/dlunix.cpp $(BASEDLL_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/dlunix.cpp +@COND_PLATFORM_UNIX_1@basedll_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(BASEDLL_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp + +@COND_PLATFORM_MACOSX_1@basedll_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(BASEDLL_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp + +@COND_PLATFORM_UNIX_1@basedll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASEDLL_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_MACOSX_1@basedll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASEDLL_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_OS2_1@basedll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASEDLL_ODEP) +@COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_UNIX_1@basedll_fdiounix.o: $(srcdir)/src/unix/fdiounix.cpp $(BASEDLL_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/fdiounix.cpp + +@COND_PLATFORM_MACOSX_1@basedll_fdiounix.o: $(srcdir)/src/unix/fdiounix.cpp $(BASEDLL_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/fdiounix.cpp + @COND_PLATFORM_UNIX_1@basedll_unix_snglinst.o: $(srcdir)/src/unix/snglinst.cpp $(BASEDLL_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/snglinst.cpp @COND_PLATFORM_MACOSX_1@basedll_unix_snglinst.o: $(srcdir)/src/unix/snglinst.cpp $(BASEDLL_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/snglinst.cpp +@COND_PLATFORM_UNIX_1@basedll_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(BASEDLL_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp + +@COND_PLATFORM_MACOSX_1@basedll_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(BASEDLL_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp + @COND_PLATFORM_UNIX_1@basedll_unix_stdpaths.o: $(srcdir)/src/unix/stdpaths.cpp $(BASEDLL_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/stdpaths.cpp @@ -23924,12 +23964,6 @@ basedll_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASEDLL_ODEP) @COND_PLATFORM_MACOSX_1@basedll_threadpsx.o: $(srcdir)/src/unix/threadpsx.cpp $(BASEDLL_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/threadpsx.cpp -@COND_PLATFORM_UNIX_1@basedll_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(BASEDLL_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp - -@COND_PLATFORM_MACOSX_1@basedll_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(BASEDLL_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp - @COND_PLATFORM_UNIX_1@basedll_utilsunx.o: $(srcdir)/src/unix/utilsunx.cpp $(BASEDLL_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/utilsunx.cpp @@ -24326,12 +24360,6 @@ baselib_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASELIB_ODEP) @COND_PLATFORM_OS2_1@baselib_selectdispatcher.o: $(srcdir)/src/common/selectdispatcher.cpp $(BASELIB_ODEP) @COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/selectdispatcher.cpp -@COND_PLATFORM_UNIX_1@baselib_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(BASELIB_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp - -@COND_PLATFORM_MACOSX_1@baselib_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(BASELIB_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp - @COND_PLATFORM_UNIX_1@baselib_appunix.o: $(srcdir)/src/unix/appunix.cpp $(BASELIB_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp @@ -24341,15 +24369,6 @@ baselib_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASELIB_ODEP) @COND_PLATFORM_OS2_1@baselib_appunix.o: $(srcdir)/src/unix/appunix.cpp $(BASELIB_ODEP) @COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp -@COND_PLATFORM_UNIX_1@baselib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASELIB_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - -@COND_PLATFORM_MACOSX_1@baselib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASELIB_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - -@COND_PLATFORM_OS2_1@baselib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASELIB_ODEP) -@COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp - @COND_PLATFORM_UNIX_1@baselib_unix_dir.o: $(srcdir)/src/unix/dir.cpp $(BASELIB_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/dir.cpp @@ -24362,12 +24381,39 @@ baselib_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASELIB_ODEP) @COND_PLATFORM_MACOSX_1@baselib_dlunix.o: $(srcdir)/src/unix/dlunix.cpp $(BASELIB_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/dlunix.cpp +@COND_PLATFORM_UNIX_1@baselib_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(BASELIB_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp + +@COND_PLATFORM_MACOSX_1@baselib_epolldispatcher.o: $(srcdir)/src/unix/epolldispatcher.cpp $(BASELIB_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/epolldispatcher.cpp + +@COND_PLATFORM_UNIX_1@baselib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASELIB_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_MACOSX_1@baselib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASELIB_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_OS2_1@baselib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASELIB_ODEP) +@COND_PLATFORM_OS2_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp + +@COND_PLATFORM_UNIX_1@baselib_fdiounix.o: $(srcdir)/src/unix/fdiounix.cpp $(BASELIB_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/fdiounix.cpp + +@COND_PLATFORM_MACOSX_1@baselib_fdiounix.o: $(srcdir)/src/unix/fdiounix.cpp $(BASELIB_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/fdiounix.cpp + @COND_PLATFORM_UNIX_1@baselib_unix_snglinst.o: $(srcdir)/src/unix/snglinst.cpp $(BASELIB_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/snglinst.cpp @COND_PLATFORM_MACOSX_1@baselib_unix_snglinst.o: $(srcdir)/src/unix/snglinst.cpp $(BASELIB_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/snglinst.cpp +@COND_PLATFORM_UNIX_1@baselib_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(BASELIB_ODEP) +@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp + +@COND_PLATFORM_MACOSX_1@baselib_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(BASELIB_ODEP) +@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp + @COND_PLATFORM_UNIX_1@baselib_unix_stdpaths.o: $(srcdir)/src/unix/stdpaths.cpp $(BASELIB_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/stdpaths.cpp @@ -24389,12 +24435,6 @@ baselib_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASELIB_ODEP) @COND_PLATFORM_MACOSX_1@baselib_threadpsx.o: $(srcdir)/src/unix/threadpsx.cpp $(BASELIB_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/threadpsx.cpp -@COND_PLATFORM_UNIX_1@baselib_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(BASELIB_ODEP) -@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp - -@COND_PLATFORM_MACOSX_1@baselib_unix_stackwalk.o: $(srcdir)/src/unix/stackwalk.cpp $(BASELIB_ODEP) -@COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/stackwalk.cpp - @COND_PLATFORM_UNIX_1@baselib_utilsunx.o: $(srcdir)/src/unix/utilsunx.cpp $(BASELIB_ODEP) @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/utilsunx.cpp diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl index feb503bf6e..e43ccb2fa5 100644 --- a/build/bakefiles/files.bkl +++ b/build/bakefiles/files.bkl @@ -63,6 +63,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/unix/dlunix.cpp src/unix/epolldispatcher.cpp src/unix/evtloopunix.cpp + src/unix/fdiounix.cpp src/unix/snglinst.cpp src/unix/stackwalk.cpp src/unix/stdpaths.cpp diff --git a/include/wx/os2/apptbase.h b/include/wx/os2/apptbase.h index 5916fda07d..d1b9b494bd 100644 --- a/include/wx/os2/apptbase.h +++ b/include/wx/os2/apptbase.h @@ -27,11 +27,9 @@ public: // Clean up message queue. virtual void TerminateGui(unsigned long ulHab); + #if wxUSE_SOCKETS - // returns the select()-based socket manager for console applications which - // is also used by some ports (wxX11, wxDFB) in the GUI build (hence it is - // here and not in wxConsoleAppTraits) - virtual wxSocketManager *GetSocketManager(); + virtual wxFDIOManager *GetFDIOManager(); #endif }; diff --git a/include/wx/os2/apptrait.h b/include/wx/os2/apptrait.h index 4038e88094..2cdb32a4a8 100644 --- a/include/wx/os2/apptrait.h +++ b/include/wx/os2/apptrait.h @@ -50,7 +50,7 @@ public: virtual wxString GetDesktopEnvironment() const; #endif #if wxUSE_SOCKETS - virtual wxSocketManager *GetSocketManager(); + virtual wxFDIOManager *GetFDIOManager(); #endif }; diff --git a/include/wx/private/fdiohandler.h b/include/wx/private/fdiohandler.h index 3e24c43786..ad5f6b8f71 100644 --- a/include/wx/private/fdiohandler.h +++ b/include/wx/private/fdiohandler.h @@ -18,6 +18,8 @@ class wxFDIOHandler { public: + wxFDIOHandler() { m_regmask = 0; } + // called when descriptor is available for non-blocking read virtual void OnReadWaiting() = 0; @@ -31,8 +33,21 @@ public: // wxSocketImplUnix currently virtual bool IsOk() const { return true; } + + // get/set the mask of events for which we're currently registered for: + // it's a combination of wxFDIO_{INPUT,OUTPUT,EXCEPTION} + int GetRegisteredEvents() const { return m_regmask; } + void SetRegisteredEvent(int flag) { m_regmask |= flag; } + void ClearRegisteredEvent(int flag) { m_regmask &= ~flag; } + + // virtual dtor for the base class virtual ~wxFDIOHandler() { } + +private: + int m_regmask; + + wxDECLARE_NO_COPY_CLASS(wxFDIOHandler); }; #endif // _WX_PRIVATE_FDIOHANDLER_H_ diff --git a/include/wx/private/fdiomanager.h b/include/wx/private/fdiomanager.h new file mode 100644 index 0000000000..764f4bdc46 --- /dev/null +++ b/include/wx/private/fdiomanager.h @@ -0,0 +1,43 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/private/fdiomanager.h +// Purpose: declaration of wxFDIOManager +// Author: Vadim Zeitlin +// Created: 2009-08-17 +// RCS-ID: $Id: wxhead.h,v 1.11 2009-06-29 10:23:04 zeitlin Exp $ +// Copyright: (c) 2009 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_PRIVATE_FDIOMANAGER_H_ +#define _WX_PRIVATE_FDIOMANAGER_H_ + +#include "wx/private/fdiohandler.h" + +// ---------------------------------------------------------------------------- +// wxFDIOManager: register or unregister wxFDIOHandlers +// ---------------------------------------------------------------------------- + +// currently only used in wxGTK and wxMotif, see wx/unix/apptrait.h + +class wxFDIOManager +{ +public: + // identifies either input or output direction + // + // NB: the values of this enum shouldn't change + enum Direction + { + INPUT, + OUTPUT + }; + + // start or stop monitoring the events on the given file descriptor + virtual int AddInput(wxFDIOHandler *handler, int fd, Direction d) = 0; + virtual void RemoveInput(wxFDIOHandler *handler, int fd, Direction d) = 0; + + // empty but virtual dtor for the base class + virtual ~wxFDIOManager() { } +}; + +#endif // _WX_PRIVATE_FDIOMANAGER_H_ + diff --git a/include/wx/unix/apptbase.h b/include/wx/unix/apptbase.h index 4ec132c140..8bf6b4cb97 100644 --- a/include/wx/unix/apptbase.h +++ b/include/wx/unix/apptbase.h @@ -14,6 +14,7 @@ struct wxEndProcessData; struct wxExecuteData; +class wxFDIOManager; // ---------------------------------------------------------------------------- // wxAppTraits: the Unix version adds extra hooks needed by Unix code @@ -42,6 +43,18 @@ public: // loop virtual int AddProcessCallback(wxEndProcessData *data, int fd); +#if wxUSE_SOCKETS + // return a pointer to the object which should be used to integrate + // monitoring of the file descriptors to the event loop (currently this is + // used for the sockets only but should be used for arbitrary event loop + // sources in the future) + // + // this object may be different for the console and GUI applications + // + // the pointer is not deleted by the caller as normally it points to a + // static variable + virtual wxFDIOManager *GetFDIOManager(); +#endif // wxUSE_SOCKETS protected: // a helper for the implementation of WaitForChild() in wxGUIAppTraits: diff --git a/include/wx/unix/apptrait.h b/include/wx/unix/apptrait.h index 59cb7595cc..d0c5b47bcf 100644 --- a/include/wx/unix/apptrait.h +++ b/include/wx/unix/apptrait.h @@ -36,7 +36,12 @@ public: // TODO: Should we use XtAddInput() for wxX11 too? Or, vice versa, if there is // no advantage in doing this compared to the generic way currently used // by wxX11, should we continue to use GTK/Motif-specific stuff? -#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) +#if defined(__WXGTK__) || defined(__WXMOTIF__) + #define wxHAS_GUI_FDIOMANAGER + #define wxHAS_GUI_PROCESS_CALLBACKS +#endif // ports using wxFDIOManager + +#if defined(__WXMAC__) #define wxHAS_GUI_PROCESS_CALLBACKS #define wxHAS_GUI_SOCKET_MANAGER #endif @@ -76,9 +81,17 @@ public: virtual bool ShowAssertDialog(const wxString& msg); #endif -#if wxUSE_SOCKETS && defined(wxHAS_GUI_SOCKET_MANAGER) +#if wxUSE_SOCKETS + +#ifdef wxHAS_GUI_SOCKET_MANAGER virtual wxSocketManager *GetSocketManager(); #endif + +#ifdef wxHAS_GUI_FDIOMANAGER + virtual wxFDIOManager *GetFDIOManager(); +#endif + +#endif // wxUSE_SOCKETS }; #endif // wxUSE_GUI diff --git a/include/wx/unix/private/fdiounix.h b/include/wx/unix/private/fdiounix.h new file mode 100644 index 0000000000..fa864486f3 --- /dev/null +++ b/include/wx/unix/private/fdiounix.h @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/unix/private/fdiounix.h +// Purpose: wxFDIOManagerUnix class used by console Unix applications +// Author: Vadim Zeitlin +// Created: 2009-08-17 +// RCS-ID: $Id: wxhead.h,v 1.11 2009-06-29 10:23:04 zeitlin Exp $ +// Copyright: (c) 2009 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _UNIX_PRIVATE_FDIOUNIX_H_ +#define _UNIX_PRIVATE_FDIOUNIX_H_ + +#include "wx/private/fdiomanager.h" + +// ---------------------------------------------------------------------------- +// wxFDIOManagerUnix: implement wxFDIOManager interface using wxFDIODispatcher +// ---------------------------------------------------------------------------- + +class wxFDIOManagerUnix : public wxFDIOManager +{ +public: + virtual int AddInput(wxFDIOHandler *handler, int fd, Direction d); + virtual void RemoveInput(wxFDIOHandler *handler, int fd, Direction d); +}; + +#endif // _UNIX_PRIVATE_FDIOUNIX_H_ + diff --git a/include/wx/unix/private/sockunix.h b/include/wx/unix/private/sockunix.h index 4b8f80afe3..63fc0d885d 100644 --- a/include/wx/unix/private/sockunix.h +++ b/include/wx/unix/private/sockunix.h @@ -14,7 +14,7 @@ #include #include -#include "wx/private/fdiodispatcher.h" +#include "wx/private/fdiomanager.h" class wxSocketImplUnix : public wxSocketImpl, public wxFDIOHandler @@ -25,8 +25,6 @@ public: { m_fds[0] = m_fds[1] = -1; - - m_enabledCallbacks = 0; } virtual wxSocketError GetLastError() const; @@ -54,14 +52,6 @@ public: virtual void OnExceptionWaiting(); virtual bool IsOk() const { return m_fd != INVALID_SOCKET; } - // Unix-specific functions used by wxSocketFDIOManager only - bool HasAnyEnabledCallbacks() const { return m_enabledCallbacks != 0; } - void EnableCallback(wxFDIODispatcherEntryFlags flag) - { m_enabledCallbacks |= flag; } - void DisableCallback(wxFDIODispatcherEntryFlags flag) - { m_enabledCallbacks &= ~flag; } - int GetEnabledCallbacks() const { return m_enabledCallbacks; } - private: virtual void DoClose() { @@ -92,10 +82,6 @@ protected: // with the socket int m_fds[2]; - // the events which are currently enabled for this socket, combination of - // wxFDIO_INPUT and wxFDIO_OUTPUT values - int m_enabledCallbacks; - private: // notify the associated wxSocket about a change in socket state and shut // down the socket if the event is wxSOCKET_LOST @@ -110,12 +96,18 @@ private: friend class wxSocketFDBasedManager; }; -// A version of wxSocketManager which uses FDs for socket IO +// A version of wxSocketManager which uses FDs for socket IO: it is used by +// Unix console applications and some X11-like ports (wxGTK and wxMotif but not +// wxX11 currently) which implement their own port-specific wxFDIOManagers class wxSocketFDBasedManager : public wxSocketManager { public: - // no special initialization/cleanup needed when using FDs - virtual bool OnInit() { return true; } + wxSocketFDBasedManager() + { + m_fdioManager = NULL; + } + + virtual bool OnInit(); virtual void OnExit() { } virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket) @@ -123,95 +115,23 @@ public: return new wxSocketImplUnix(wxsocket); } + virtual void Install_Callback(wxSocketImpl *socket_, wxSocketNotify event); + virtual void Uninstall_Callback(wxSocketImpl *socket_, wxSocketNotify event); + protected: - // identifies either input or output direction - // - // NB: the values of this enum shouldn't change - enum SocketDir - { - FD_INPUT, - FD_OUTPUT - }; - // get the FD index corresponding to the given wxSocketNotify - SocketDir GetDirForEvent(wxSocketImpl *socket, wxSocketNotify event) - { - switch ( event ) - { - default: - wxFAIL_MSG( "unknown socket event" ); - return FD_INPUT; // we must return something - - case wxSOCKET_LOST: - wxFAIL_MSG( "unexpected socket event" ); - return FD_INPUT; // as above - - case wxSOCKET_INPUT: - return FD_INPUT; - - case wxSOCKET_OUTPUT: - return FD_OUTPUT; - - case wxSOCKET_CONNECTION: - // for server sockets we're interested in events indicating - // that a new connection is pending, i.e. that accept() will - // succeed and this is indicated by socket becoming ready for - // reading, while for the other ones we're interested in the - // completion of non-blocking connect() which is indicated by - // the socket becoming ready for writing - return socket->IsServer() ? FD_INPUT : FD_OUTPUT; - } - } + wxFDIOManager::Direction + GetDirForEvent(wxSocketImpl *socket, wxSocketNotify event); // access the FDs we store - int& FD(wxSocketImplUnix *socket, SocketDir d) + int& FD(wxSocketImplUnix *socket, wxFDIOManager::Direction d) { return socket->m_fds[d]; } -}; -// Common base class for all ports using X11-like (and hence implemented in -// X11, Motif and GTK) AddInput() and RemoveInput() functions -class wxSocketInputBasedManager : public wxSocketFDBasedManager -{ -public: - virtual void Install_Callback(wxSocketImpl *socket_, wxSocketNotify event) - { - wxSocketImplUnix * const - socket = static_cast(socket_); + wxFDIOManager *m_fdioManager; - wxCHECK_RET( socket->m_fd != -1, - "shouldn't be called on invalid socket" ); - - const SocketDir d = GetDirForEvent(socket, event); - - int& fd = FD(socket, d); - if ( fd != -1 ) - RemoveInput(fd); - - fd = AddInput(socket, socket->m_fd, d); - } - - virtual void Uninstall_Callback(wxSocketImpl *socket_, wxSocketNotify event) - { - wxSocketImplUnix * const - socket = static_cast(socket_); - - const SocketDir d = GetDirForEvent(socket, event); - - int& fd = FD(socket, d); - if ( fd != -1 ) - { - RemoveInput(fd); - fd = -1; - } - } - -private: - // these functions map directly to XtAdd/RemoveInput() or - // gdk_input_add/remove() - virtual int AddInput(wxSocketImplUnix *handler, int fd, SocketDir d) = 0; - virtual void RemoveInput(int fd) = 0; + wxDECLARE_NO_COPY_CLASS(wxSocketFDBasedManager); }; #endif /* _WX_UNIX_GSOCKUNX_H_ */ diff --git a/src/common/socketiohandler.cpp b/src/common/socketiohandler.cpp index 3b1504a329..977b9fd027 100644 --- a/src/common/socketiohandler.cpp +++ b/src/common/socketiohandler.cpp @@ -24,83 +24,91 @@ #pragma hdrstop #endif -#if wxUSE_SOCKETS && wxUSE_SELECT_DISPATCHER +#if wxUSE_SOCKETS +#include "wx/app.h" #include "wx/apptrait.h" #include "wx/private/socket.h" #include "wx/link.h" // ============================================================================ -// implementation +// wxSocketFDBasedManager implementation // ============================================================================ -// ---------------------------------------------------------------------------- -// wxSocketFDIOManager: socket manager using wxFDIODispatcher -// ---------------------------------------------------------------------------- - -class wxSocketFDIOManager : public wxSocketFDBasedManager +bool wxSocketFDBasedManager::OnInit() { -public: - virtual void Install_Callback(wxSocketImpl *socket, wxSocketNotify event); - virtual void Uninstall_Callback(wxSocketImpl *socket, wxSocketNotify event); -}; + wxAppTraits * const traits = wxApp::GetTraitsIfExists(); + if ( !traits ) + return false; -void wxSocketFDIOManager::Install_Callback(wxSocketImpl *socket_, - wxSocketNotify event) -{ - wxSocketImplUnix * const socket = static_cast(socket_); - - const int fd = socket->m_fd; - - if ( fd == -1 ) - return; - - const SocketDir d = GetDirForEvent(socket, event); - - wxFDIODispatcher * const dispatcher = wxFDIODispatcher::Get(); - if ( !dispatcher ) - return; - - FD(socket, d) = fd; - - // register it when it's used for the first time, update it if it had been - // previously registered - const bool alreadyRegistered = socket->HasAnyEnabledCallbacks(); - - socket->EnableCallback(d == FD_INPUT ? wxFDIO_INPUT : wxFDIO_OUTPUT); - - if ( alreadyRegistered ) - dispatcher->ModifyFD(fd, socket, socket->GetEnabledCallbacks()); - else - dispatcher->RegisterFD(fd, socket, socket->GetEnabledCallbacks()); + m_fdioManager = traits->GetFDIOManager(); + return m_fdioManager != NULL; } -void wxSocketFDIOManager::Uninstall_Callback(wxSocketImpl *socket_, - wxSocketNotify event) +void wxSocketFDBasedManager::Install_Callback(wxSocketImpl *socket_, + wxSocketNotify event) { - wxSocketImplUnix * const socket = static_cast(socket_); + wxSocketImplUnix * const + socket = static_cast(socket_); - const SocketDir d = GetDirForEvent(socket, event); + wxCHECK_RET( socket->m_fd != -1, + "shouldn't be called on invalid socket" ); - const int fd = FD(socket, d); - if ( fd == -1 ) - return; + const wxFDIOManager::Direction d = GetDirForEvent(socket, event); - FD(socket, d) = -1; + int& fd = FD(socket, d); + if ( fd != -1 ) + m_fdioManager->RemoveInput(socket, fd, d); - const wxFDIODispatcherEntryFlags - flag = d == FD_INPUT ? wxFDIO_INPUT : wxFDIO_OUTPUT; + fd = m_fdioManager->AddInput(socket, socket->m_fd, d); +} - wxFDIODispatcher * const dispatcher = wxFDIODispatcher::Get(); - if ( !dispatcher ) - return; +void wxSocketFDBasedManager::Uninstall_Callback(wxSocketImpl *socket_, + wxSocketNotify event) +{ + wxSocketImplUnix * const + socket = static_cast(socket_); - socket->DisableCallback(flag); + const wxFDIOManager::Direction d = GetDirForEvent(socket, event); - if ( !socket->HasAnyEnabledCallbacks() ) - dispatcher->UnregisterFD(fd); - else - dispatcher->ModifyFD(fd, socket, socket->GetEnabledCallbacks()); + int& fd = FD(socket, d); + if ( fd != -1 ) + { + m_fdioManager->RemoveInput(socket, fd, d); + fd = -1; + } +} + +wxFDIOManager::Direction +wxSocketFDBasedManager::GetDirForEvent(wxSocketImpl *socket, + wxSocketNotify event) +{ + switch ( event ) + { + default: + wxFAIL_MSG( "unknown socket event" ); + return wxFDIOManager::INPUT; // we must return something + + case wxSOCKET_LOST: + wxFAIL_MSG( "unexpected socket event" ); + return wxFDIOManager::INPUT; // as above + + case wxSOCKET_INPUT: + return wxFDIOManager::INPUT; + + case wxSOCKET_OUTPUT: + return wxFDIOManager::OUTPUT; + + case wxSOCKET_CONNECTION: + // for server sockets we're interested in events indicating + // that a new connection is pending, i.e. that accept() will + // succeed and this is indicated by socket becoming ready for + // reading, while for the other ones we're interested in the + // completion of non-blocking connect() which is indicated by + // the socket becoming ready for writing + return socket->IsServer() ? wxFDIOManager::INPUT + : wxFDIOManager::OUTPUT; + } } // set the wxBase variable to point to our wxSocketManager implementation @@ -111,7 +119,7 @@ static struct ManagerSetter { ManagerSetter() { - static wxSocketFDIOManager s_manager; + static wxSocketFDBasedManager s_manager; wxAppTraits::SetDefaultSocketManager(&s_manager); } } gs_managerSetter; diff --git a/src/gtk/sockgtk.cpp b/src/gtk/sockgtk.cpp index 7c0ed5c27d..71d26ace50 100644 --- a/src/gtk/sockgtk.cpp +++ b/src/gtk/sockgtk.cpp @@ -5,6 +5,7 @@ // Created: 1999 // RCS-ID: $Id$ // Copyright: (c) 1999, 2007 wxWidgets dev team +// (c) 2009 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -13,14 +14,11 @@ #if wxUSE_SOCKETS -#include -#include - #include #include -#include "wx/private/socket.h" #include "wx/apptrait.h" +#include "wx/private/fdiomanager.h" extern "C" { static @@ -28,7 +26,7 @@ void wxSocket_GDK_Input(gpointer data, gint WXUNUSED(source), GdkInputCondition condition) { - wxSocketImplUnix * const handler = static_cast(data); + wxFDIOHandler * const handler = static_cast(data); if ( condition & GDK_INPUT_READ ) { @@ -46,29 +44,30 @@ void wxSocket_GDK_Input(gpointer data, } } -class GTKSocketManager : public wxSocketInputBasedManager +class GTKFDIOManager : public wxFDIOManager { public: - virtual int AddInput(wxSocketImplUnix *handler, int fd, SocketDir d) + virtual int AddInput(wxFDIOHandler *handler, int fd, Direction d) { return gdk_input_add ( fd, - d == FD_OUTPUT ? GDK_INPUT_WRITE : GDK_INPUT_READ, + d == OUTPUT ? GDK_INPUT_WRITE : GDK_INPUT_READ, wxSocket_GDK_Input, handler ); } - virtual void RemoveInput(int fd) + virtual void + RemoveInput(wxFDIOHandler* WXUNUSED(handler), int fd, Direction WXUNUSED(d)) { gdk_input_remove(fd); } }; -wxSocketManager *wxGUIAppTraits::GetSocketManager() +wxFDIOManager *wxGUIAppTraits::GetFDIOManager() { - static GTKSocketManager s_manager; + static GTKFDIOManager s_manager; return &s_manager; } diff --git a/src/gtk1/sockgtk.cpp b/src/gtk1/sockgtk.cpp index 7c0ed5c27d..71d26ace50 100644 --- a/src/gtk1/sockgtk.cpp +++ b/src/gtk1/sockgtk.cpp @@ -5,6 +5,7 @@ // Created: 1999 // RCS-ID: $Id$ // Copyright: (c) 1999, 2007 wxWidgets dev team +// (c) 2009 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -13,14 +14,11 @@ #if wxUSE_SOCKETS -#include -#include - #include #include -#include "wx/private/socket.h" #include "wx/apptrait.h" +#include "wx/private/fdiomanager.h" extern "C" { static @@ -28,7 +26,7 @@ void wxSocket_GDK_Input(gpointer data, gint WXUNUSED(source), GdkInputCondition condition) { - wxSocketImplUnix * const handler = static_cast(data); + wxFDIOHandler * const handler = static_cast(data); if ( condition & GDK_INPUT_READ ) { @@ -46,29 +44,30 @@ void wxSocket_GDK_Input(gpointer data, } } -class GTKSocketManager : public wxSocketInputBasedManager +class GTKFDIOManager : public wxFDIOManager { public: - virtual int AddInput(wxSocketImplUnix *handler, int fd, SocketDir d) + virtual int AddInput(wxFDIOHandler *handler, int fd, Direction d) { return gdk_input_add ( fd, - d == FD_OUTPUT ? GDK_INPUT_WRITE : GDK_INPUT_READ, + d == OUTPUT ? GDK_INPUT_WRITE : GDK_INPUT_READ, wxSocket_GDK_Input, handler ); } - virtual void RemoveInput(int fd) + virtual void + RemoveInput(wxFDIOHandler* WXUNUSED(handler), int fd, Direction WXUNUSED(d)) { gdk_input_remove(fd); } }; -wxSocketManager *wxGUIAppTraits::GetSocketManager() +wxFDIOManager *wxGUIAppTraits::GetFDIOManager() { - static GTKSocketManager s_manager; + static GTKFDIOManager s_manager; return &s_manager; } diff --git a/src/motif/sockmot.cpp b/src/motif/sockmot.cpp index 6e347bfe60..7b5802743b 100644 --- a/src/motif/sockmot.cpp +++ b/src/motif/sockmot.cpp @@ -15,7 +15,7 @@ #include // XtAppAdd/RemoveInput() #include "wx/motif/private.h" // wxGetAppContext() -#include "wx/private/socket.h" +#include "wx/private/fdiomanager.h" #include "wx/apptrait.h" extern "C" { @@ -23,7 +23,7 @@ extern "C" { static void wxSocket_Motif_Input(XtPointer data, int *WXUNUSED(fid), XtInputId *WXUNUSED(id)) { - wxSocketImplUnix * const handler = static_cast(data); + wxFDIOHandler * const handler = static_cast(data); handler->OnReadWaiting(); } @@ -31,39 +31,40 @@ static void wxSocket_Motif_Input(XtPointer data, int *WXUNUSED(fid), static void wxSocket_Motif_Output(XtPointer data, int *WXUNUSED(fid), XtInputId *WXUNUSED(id)) { - wxSocketImplUnix * const handler = static_cast(data); + wxFDIOHandler * const handler = static_cast(data); handler->OnWriteWaiting(); } } -class MotifSocketManager : public wxSocketInputBasedManager +class MotifFDIOManager : public wxFDIOManager { public: - virtual int AddInput(wxSocketImplUnix *handler, int fd, SocketDir d) + virtual int AddInput(wxFDIOHandler *handler, int fd, Direction d) { return XtAppAddInput ( wxGetAppContext(), fd, - (XtPointer)(d == FD_OUTPUT ? XtInputWriteMask - : XtInputReadMask), - d == FD_OUTPUT ? wxSocket_Motif_Output - : wxSocket_Motif_Input, + (XtPointer)(d == OUTPUT ? XtInputWriteMask + : XtInputReadMask), + d == OUTPUT ? wxSocket_Motif_Output + : wxSocket_Motif_Input, handler ); } - virtual void RemoveInput(int fd) + virtual void + RemoveInput(wxFDIOHandler* WXUNUSED(handler), int fd, Direction WXUNUSED(d)) { XtRemoveInput(fd); } }; -wxSocketManager *wxGUIAppTraits::GetSocketManager() +wxFDIOManager *wxGUIAppTraits::GetFDIOManager() { - static MotifSocketManager s_manager; + static MotifFDIOManager s_manager; return &s_manager; } diff --git a/src/os2/sockpm.cpp b/src/os2/sockpm.cpp index 2c7d7a209a..8aa2c2f008 100644 --- a/src/os2/sockpm.cpp +++ b/src/os2/sockpm.cpp @@ -23,22 +23,24 @@ static void wxSocket_PM_Input(void *data) { - wxSocketImplUnix *handler = static_cast(data); + wxFDIOHandler *handler = static_cast(data); handler->OnReadWaiting(); } static void wxSocket_PM_Output(void *data) { - wxSocketImplUnix *handler = static_cast(data); + wxFDIOHandler *handler = static_cast(data); handler->OnWriteWaiting(); } -class PMSocketManager : public wxSocketInputBasedManager +class PMFDIOManager : public wxFDIOManager { public: - virtual int AddInput(wxSocketImplUnix *handler, int fd, SocketDir d) + virtual int AddInput(wxFDIOHandler *handler, + int fd, + wxFDIOManager::Direction d) { if (d == FD_OUTPUT) return wxTheApp->AddSocketHandler(fd, wxSockWriteMask, @@ -48,15 +50,18 @@ public: wxSocket_PM_Input, handler); } - virtual void RemoveInput(int fd) + virtual void + RemoveInput(wxFDIOHandler * WXUNUSED(handler), + int fd, + wxFDIOManager::Direction WXUNUSED(dir)) { wxTheApp->RemoveSocketHandler(fd); } }; -wxSocketManager *wxGUIAppTraits::GetSocketManager() +wxFDIOManager *wxGUIAppTraits::GetFDIOManager() { - static PMSocketManager s_manager; + static PMFDIOManager s_manager; return &s_manager; } diff --git a/src/unix/fdiounix.cpp b/src/unix/fdiounix.cpp new file mode 100644 index 0000000000..746d8ed9bb --- /dev/null +++ b/src/unix/fdiounix.cpp @@ -0,0 +1,100 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: src/unix/fdiounix.cpp +// Purpose: wxFDIOManager implementation for console Unix applications +// Author: Vadim Zeitlin +// Created: 2009-08-17 +// RCS-ID: $Id: wxhead.cpp,v 1.10 2009-06-29 10:23:04 zeitlin Exp $ +// Copyright: (c) 2009 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +// for compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include "wx/apptrait.h" +#include "wx/private/fdiodispatcher.h" +#include "wx/unix/private/fdiounix.h" + +// ============================================================================ +// wxFDIOManagerUnix implementation +// ============================================================================ + +int wxFDIOManagerUnix::AddInput(wxFDIOHandler *handler, int fd, Direction d) +{ + wxFDIODispatcher * const dispatcher = wxFDIODispatcher::Get(); + wxCHECK_MSG( dispatcher, -1, "can't monitor FDs without FD IO dispatcher" ); + + // translate our direction to dispatcher flags + const int flag = d == INPUT ? wxFDIO_INPUT : wxFDIO_OUTPUT; + + // we need to either register this FD with the dispatcher or update an + // existing registration depending on whether it had been previously + // registered for anything or not + bool ok; + const int regmask = handler->GetRegisteredEvents(); + if ( !regmask ) + { + ok = dispatcher->RegisterFD(fd, handler, flag); + } + else + { + ok = dispatcher->ModifyFD(fd, handler, regmask | flag); + } + + if ( !ok ) + return -1; + + // update the stored mask of registered events + handler->SetRegisteredEvent(flag); + + return fd; +} + +void wxFDIOManagerUnix::RemoveInput(wxFDIOHandler *handler, int fd, Direction d) +{ + wxFDIODispatcher * const dispatcher = wxFDIODispatcher::Get(); + if ( !dispatcher ) + return; + + const int flag = d == INPUT ? wxFDIO_INPUT : wxFDIO_OUTPUT; + + // just as in AddInput() above we may need to either just modify the FD or + // remove it completely if we don't need to monitor it any more + bool ok; + const int regmask = handler->GetRegisteredEvents(); + if ( regmask == flag ) + { + ok = dispatcher->UnregisterFD(fd); + } + else + { + ok = dispatcher->ModifyFD(fd, handler, regmask & ~flag); + } + + if ( !ok ) + { + wxLogDebug("Failed to unregister %d in direction %d", fd, d); + } + + // do this even after a failure to unregister it, we still tried... + handler->ClearRegisteredEvent(flag); +} + +wxFDIOManager *wxAppTraits::GetFDIOManager() +{ + static wxFDIOManagerUnix s_manager; + return &s_manager; +} +