[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ./ChangeLog ./Makefile.am ./configure.ac ...
From: |
Rob Savoye |
Subject: |
[Gnash-commit] gnash ./ChangeLog ./Makefile.am ./configure.ac ... |
Date: |
Thu, 20 Apr 2006 17:21:41 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Branch:
Changes by: Rob Savoye <address@hidden> 06/04/20 17:21:40
Modified files:
. : ChangeLog Makefile.am configure.ac
backend : sound_handler_sdl.cpp
macros : gtk2.m4 sdl.m4
packaging/redhat: gnash.spec
plugin : Makefile.am
server : array.cpp button.cpp fontlib.cpp shm.cpp
sound_handler_mp3.cpp xmlnode.cpp
Added files:
macros : fltk.m4
Log message:
* configure.ac: Add FLTK. Don't create mozilla-sdk/Makefile.
* Makefile.am: Add a dumpconfig target to see what configure
found.
* macros/fltk.m4: New configure tests for FLTK toolkit.
* packaging/redhat/gnash.spec: Don't build libmozsdk, it's now
part of the plguin.
* plugin/Makefile.am: Build the sources in mozilla-sdk as part of
the plugin, rather than as an additional shared library.
* server/array.cpp: Use the z modifier when printing a size_t.
* server/button.cpp: Use the z modifier when printing a size_t.
* server/fontlib.cpp: Use the z modifier when printing a size_t.
* server/shm.cpp: Use the z modifier when printing a size_t.
* server/xmlnode.cpp: Use the z modifier when printing a size_t.
* server/sound_handler_mp3.cpp: Remove unused variable.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/ChangeLog.diff?tr1=1.213&tr2=1.214&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/Makefile.am.diff?tr1=1.19&tr2=1.20&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/configure.ac.diff?tr1=1.58&tr2=1.59&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/backend/sound_handler_sdl.cpp.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/macros/fltk.m4?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/macros/gtk2.m4.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/macros/sdl.m4.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/packaging/redhat/gnash.spec.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/plugin/Makefile.am.diff?tr1=1.19&tr2=1.20&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/array.cpp.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/button.cpp.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/fontlib.cpp.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/shm.cpp.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/sound_handler_mp3.cpp.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/xmlnode.cpp.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
Patches:
Index: gnash/ChangeLog
diff -u gnash/ChangeLog:1.213 gnash/ChangeLog:1.214
--- gnash/ChangeLog:1.213 Wed Apr 19 08:09:38 2006
+++ gnash/ChangeLog Thu Apr 20 17:21:40 2006
@@ -1,3 +1,20 @@
+2006-04-20 Rob Savoye <address@hidden>
+
+ * configure.ac: Add FLTK. Don't create mozilla-sdk/Makefile.
+ * Makefile.am: Add a dumpconfig target to see what configure
+ found.
+ * macros/fltk.m4: New configure tests for FLTK toolkit.
+ * packaging/redhat/gnash.spec: Don't build libmozsdk, it's now
+ part of the plguin.
+ * plugin/Makefile.am: Build the sources in mozilla-sdk as part of
+ the plugin, rather than as an additional shared library.
+ * server/array.cpp: Use the z modifier when printing a size_t.
+ * server/button.cpp: Use the z modifier when printing a size_t.
+ * server/fontlib.cpp: Use the z modifier when printing a size_t.
+ * server/shm.cpp: Use the z modifier when printing a size_t.
+ * server/xmlnode.cpp: Use the z modifier when printing a size_t.
+ * server/sound_handler_mp3.cpp: Remove unused variable.
+
2006-04-19 Bastiaan Jacques <address@hidden>
* server/action.cpp: fixed compiler warnings.
Index: gnash/Makefile.am
diff -u gnash/Makefile.am:1.19 gnash/Makefile.am:1.20
--- gnash/Makefile.am:1.19 Fri Apr 7 00:59:42 2006
+++ gnash/Makefile.am Thu Apr 20 17:21:40 2006
@@ -40,7 +40,7 @@
AUTOMAKE_OPTIONS = dejagnu
ACLOCAL_AMFLAGS = -I macros
-STD_DIRS = libbase libgeometry server backend utilities plugin
+STD_DIRS = libbase libgeometry server backend utilities plugin # gui
if DOCBOOK
DOC_DIRS = doc
endif
@@ -80,3 +80,50 @@
@echo "Rebuilding with GCC Mudflap support"
$(MAKE) CXXFLAGS="$(CXXFLAGS) -fmudflap" LDFLAGS="$(LDFLAGS) -lmudflap"
+dumpconfig:
+ @uname -a
+ @gcc -v
+ @echo "JPEG_CFLAGS is $(JPEG_CFLAGS)"
+ @echo "JPEG_LIBS is $(JPEG_LIBS)"
+ @echo "PNG_CFLAGS is $(PNG_CFLAGS)"
+ @echo "PNG_LIBS is $(PNG_LIBS)"
+ @echo "OGG_CFLAGS is $(OGG_CFLAGS)"
+ @echo "OGG_LIBS is $(OGG_LIBS)"
+ @echo "ZLIB_CFLAGS is $(ZLIB_CFLAGS)"
+ @echo "ZLIB_LIBS is $(ZLIB_LIBS)"
+ @echo "LIBXML_CFLAGS is $(LIBXML_CFLAGS)"
+ @echo "LIBXML_LIBS is $(LIBXML_LIBS)"
+ @echo "SDL_CFLAGS is $(SDL_CFLAGS)"
+ @echo "SDL_LIBS is $(SDL_LIBS)"
+ @echo "SDL_MIXER_CFLAGS is $(SDL_MIXER_CFLAGS)"
+ @echo "SDL_MIXER_LIBS is $(SDL_MIXER_LIBS)"
+ @echo "OPENGL_CFLAGS is $(OPENGL_CFLAGS)"
+ @echo "OPENGL_LIBS is $(OPENGL_LIBS)"
+ @echo "GLEXT_CFLAGS is $(GLEXT_CFLAGS)"
+ @echo "GLEXT_LIBS is $(GLEXT_LIBS)"
+ @echo "GTK2_CFLAGS is $(GTK2_CFLAGS)"
+ @echo "GTK2_LIBS is $(GTK2_LIBS)"
+ @echo "FLTK_CFLAGS is $(FLTK_CFLAGS)"
+ @echo "FLTK_LIBS is $(FLTK_LIBS)"
+ @echo "XFT_CFLAGS is $(XFT_CFLAGS)"
+ @echo "XFT_LIBS is $(XFT_LIBS)"
+ @echo "PANGO_CFLAGS is $(PANGO_CFLAGS)"
+ @echo "PANGO_LIBS is $(PANGO_LIBS)"
+ @echo "CAIRO_CFLAGS is $(CAIRO_CFLAGS)"
+ @echo "CAIRO_LIBS is $(CAIRO_LIBS)"
+ @echo "ATK_CFLAGS is $(ATK_CFLAGS)"
+ @echo "ATK_LIBS is $(ATK_LIBS)"
+ @echo "GLIB_CFLAGS is $(GLIB_CFLAGS)"
+ @echo "GLIB_LIBS is $(GLIB_LIBS)"
+ @echo "X_CFLAGS is $(X_CFLAGS)"
+ @echo "X_LIBS is $(X_LIBS)"
+ @echo "DMALLOC_CFLAGS is $(DMALLOC_CFLAGS)"
+ @echo "DMALLOC_LIBS is $(DMALLOC_LIBS)"
+ @echo "MP3_CFLAGS is $(MP3_CFLAGS)"
+ @echo "MP3_LIBS is $(MP3_LIBS)"
+ @echo "PTHREAD_CFLAGS is $(PTHREAD_CFLAGS)"
+ @echo "PTHREAD_LIBS is $(PTHREAD_LIBS)"
+ @echo "A blank value for CFLAGS means the header is installed in the"
+ @echo "default system header location. All the LIBS should have a"
+ @echo "legit value"
+
Index: gnash/backend/sound_handler_sdl.cpp
diff -u gnash/backend/sound_handler_sdl.cpp:1.7
gnash/backend/sound_handler_sdl.cpp:1.8
--- gnash/backend/sound_handler_sdl.cpp:1.7 Sat Mar 18 12:22:59 2006
+++ gnash/backend/sound_handler_sdl.cpp Thu Apr 20 17:21:40 2006
@@ -134,7 +134,7 @@
if (1) {
Sint16* x_adjusted_data = 0;
int x_adjusted_size = 0;
- Mix_Chunk* x_sample = 0;
+// Mix_Chunk* x_sample = 0;
convert_mp3_data(&x_adjusted_data,
&x_adjusted_size, data, sample_count, 0, sample_rate, stereo);
/* convert_mp3_data doesn't ACTUALLY convert
samplerate, so... */
Index: gnash/configure.ac
diff -u gnash/configure.ac:1.58 gnash/configure.ac:1.59
--- gnash/configure.ac:1.58 Tue Apr 11 17:11:09 2006
+++ gnash/configure.ac Thu Apr 20 17:21:40 2006
@@ -255,11 +255,17 @@
GNASH_PATH_MP3
GNASH_PATH_OGG
GNASH_PATH_SDL
+AM_CONDITIONAL(HAS_SDL, [ test x$has_sdl = xyes ])
GNASH_PATH_SDL_MIXER
GNASH_PATH_GSTREAMER
GNASH_PATH_OPENGL
GNASH_PATH_GLEXT
GNASH_PATH_GTK2
+AM_CONDITIONAL(HAS_GTK2, [ test x$has_gtk2 = xyes ])
+GNASH_PATH_FLTK
+AM_CONDITIONAL(HAS_FLTK, [ test x$has_fltk = xyes ])
+GNASH_PATH_XFT
+AM_CONDITIONAL(HAS_XFT, [ test x$has_xft = xyes ])
GNASH_PATH_CAIRO
GNASH_PATH_GLIB
GNASH_PATH_PANGO
@@ -335,7 +341,6 @@
testsuite/Makefile
testsuite/actionscript.all/Makefile
plugin/Makefile
-plugin/mozilla-sdk/Makefile
plugin/klash/Makefile
)
dnl config.mk
@@ -621,6 +626,40 @@
fi
fi
+if test x"$fltk" = x"yes"; then
+ if test x"$FLTK_LIBS" != x; then
+ if test x"$FLTK_CFLAGS" != x; then
+ echo " Fltk flags are: $FLTK_CFLAGS"
+ else
+ echo " Fltk flags are: default include path"
+ fi
+ echo " Fltk libs are: $FLTK_LIBS"
+ else
+ echo "ERROR: No Fltk development package installed!\
+ You need to have the fltk development package installed\
+ to compile this project or install libfltk1.1-dev \
+ (using apt-get) or fltk-devel (using yum)."
+dnl nogo=true
+ fi
+fi
+
+if test x"$fltk" = x"yes"; then
+ if test x"$XFT_LIBS" != x; then
+ if test x"$XFT_CFLAGS" != x; then
+ echo " Xft flags are: $XFT_CFLAGS"
+ else
+ echo " Xft flags are: default include path"
+ fi
+ echo " Xft libs are: $XFT_LIBS"
+ else
+ echo "ERROR: No Xft development package installed!\
+ You need to have the xft development package installed\
+ to compile this project or install libxft-dev \
+ (using apt-get) or xft-devel (using yum)."
+dnl nogo=true
+ fi
+fi
+
if test x"$SDL_LIBS" != x; then
echo " SDL flags are: $SDL_CFLAGS"
echo " SDL libs are: $SDL_LIBS"
Index: gnash/macros/gtk2.m4
diff -u gnash/macros/gtk2.m4:1.6 gnash/macros/gtk2.m4:1.7
--- gnash/macros/gtk2.m4:1.6 Tue Apr 11 17:11:09 2006
+++ gnash/macros/gtk2.m4 Thu Apr 20 17:21:40 2006
@@ -164,8 +164,10 @@
if test x"${ac_cv_path_gtk2_lib}" != x ; then
GTK2_LIBS="${ac_cv_path_gtk2_lib}"
+ has_gtk2=yes
else
GTK2_LIBS=""
+ has_gtk2=no
fi
AC_SUBST(GTK2_CFLAGS)
Index: gnash/macros/sdl.m4
diff -u gnash/macros/sdl.m4:1.13 gnash/macros/sdl.m4:1.14
--- gnash/macros/sdl.m4:1.13 Tue Apr 11 17:11:09 2006
+++ gnash/macros/sdl.m4 Thu Apr 20 17:21:40 2006
@@ -96,6 +96,7 @@
])
SDL_LIBS=""
+ has_sdl=no
if test x"${ac_cv_path_sdl_lib}" = x ; then
AC_CHECK_LIB(SDL, SDL_Init, [ac_cv_path_sdl_lib="-lSDL"],[
AC_MSG_CHECKING([for SDL library])
@@ -109,6 +110,7 @@
else
ac_cv_path_sdl_lib="-lSDL"
AC_MSG_RESULT([yes])
+ has_sdl=yes
break
fi
fi
@@ -118,7 +120,10 @@
if test x"${ac_cv_path_sdl_lib}" != x ; then
SDL_LIBS="${ac_cv_path_sdl_lib}"
+ has_sdl=yes
AC_DEFINE(HAVE_SDL_H, [], [We have SDL support])
+ else
+ has_sdl=no
fi
AC_SUBST(SDL_CFLAGS)
Index: gnash/packaging/redhat/gnash.spec
diff -u gnash/packaging/redhat/gnash.spec:1.2
gnash/packaging/redhat/gnash.spec:1.3
--- gnash/packaging/redhat/gnash.spec:1.2 Fri Apr 7 17:11:00 2006
+++ gnash/packaging/redhat/gnash.spec Thu Apr 20 17:21:40 2006
@@ -104,7 +104,6 @@
%{_bindir}/gparser
%{_bindir}/gprocessor
%{_libdir}/libgnash*.so.*
-%{_libdir}/libmozsdk.so.*
%{_mandir}/man1/gnash*
%{_datadir}/gnash/
%{_datadir}/omf/gnash/
@@ -112,7 +111,6 @@
%files devel
%defattr(-,root,root,-)
%{_libdir}/libgnash*.so
-%{_libdir}/libmozsdk.so
%files plugin
%defattr(-,root,root,-)
Index: gnash/plugin/Makefile.am
diff -u gnash/plugin/Makefile.am:1.19 gnash/plugin/Makefile.am:1.20
--- gnash/plugin/Makefile.am:1.19 Mon Apr 10 01:18:11 2006
+++ gnash/plugin/Makefile.am Thu Apr 20 17:21:40 2006
@@ -42,7 +42,7 @@
if KLASH
KLASH = klash
endif
-SUBDIRS = mozilla-sdk $(KLASH) # test
+SUBDIRS = $(KLASH) # test mozilla-sdk
if MP3
MP3_CFLAGS = $(MAD_CFLAGS)
@@ -106,11 +106,35 @@
plugin_LTLIBRARIES = libgnashplugin.la
-noinst_HEADERS = plugin.h #player.h
+noinst_HEADERS = plugin.h \
+ mozilla-sdk/pluginbase.h \
+ mozilla-sdk/include/jri.h \
+ mozilla-sdk/include/npapi.h \
+ mozilla-sdk/include/npupp.h \
+ mozilla-sdk/include/prtypes.h \
+ mozilla-sdk/include/jni.h \
+ mozilla-sdk/include/jri_md.h \
+ mozilla-sdk/include/npruntime.h \
+ mozilla-sdk/include/jni_md.h \
+ mozilla-sdk/include/jritypes.h \
+ mozilla-sdk/include/nptypes.h \
+ mozilla-sdk/include/prcpucfg.h \
+ mozilla-sdk/include/prlock.h \
+ mozilla-sdk/include/prcvar.h \
+ mozilla-sdk/include/prthread.h \
+ mozilla-sdk/include/prinit.h \
+ mozilla-sdk/include/prerr.h \
+ mozilla-sdk/include/prerror.h \
+ mozilla-sdk/include/prinrval.h \
+ mozilla-sdk/include/prwin16.h \
+ mozilla-sdk/include/obsolete/protypes.h
+
+libgnashplugin_la_SOURCES = plugin.cpp \
+ mozilla-sdk/npn_gate.cpp \
+ mozilla-sdk/npp_gate.cpp \
+ mozilla-sdk/np_entry.cpp
-libgnashplugin_la_SOURCES = plugin.cpp #player.cpp
libgnashplugin_la_LIBADD = $(AM_LDFLAGS) \
- mozilla-sdk/libmozsdk.la\
../backend/libgnashbackend.la\
../server/libgnashasobjs.la \
../server/libgnashserver.la\
Index: gnash/server/array.cpp
diff -u gnash/server/array.cpp:1.15 gnash/server/array.cpp:1.16
--- gnash/server/array.cpp:1.15 Thu Mar 9 21:33:45 2006
+++ gnash/server/array.cpp Thu Apr 20 17:21:40 2006
@@ -179,7 +179,7 @@
// Get our index, log, then return result
(*fn.result) = array->elements[array->elements.size()-1];
array->elements.pop_back();
- IF_VERBOSE_ACTION(log_msg("calling array pop, result:%s, new
array size:%d\n",fn.result->to_string(),array->elements.size()));
+ IF_VERBOSE_ACTION(log_msg("calling array pop, result:%s, new
array size:%zd\n",fn.result->to_string(),array->elements.size()));
}
// Callback to pop a value from the front of an array
@@ -198,7 +198,7 @@
// Get our index, log, then return result
(*fn.result) = array->elements[0];
array->elements.pop_front();
- IF_VERBOSE_ACTION(log_msg("calling array shift, result:%s, new
array size:%d\n",fn.result->to_string(),array->elements.size()));
+ IF_VERBOSE_ACTION(log_msg("calling array shift, result:%s, new
array size:%zd\n",fn.result->to_string(),array->elements.size()));
}
// Callback to reverse the position of the elements in an array
@@ -217,7 +217,7 @@
array->elements[j] = temp;
}
- IF_VERBOSE_ACTION(log_msg("calling array reverse on array with
size:%d\n",array->elements.size()));
+ IF_VERBOSE_ACTION(log_msg("calling array reverse on array with
size:%zd\n",array->elements.size()));
// result is undefined
fn.result->set_undefined();
@@ -313,7 +313,7 @@
// if it's still negative, this is a problem
if (startindex < 0 || startindex >
int(array->elements.size()))
{
- IF_VERBOSE_ACTION(log_error("bad startindex
sent to array_slice! startindex: %s, Length: %d",
+ IF_VERBOSE_ACTION(log_error("bad startindex
sent to array_slice! startindex: %s, Length: %zd",
fn.arg(0).to_string(),array->elements.size()));
return;
}
@@ -327,7 +327,7 @@
endindex++;
if (endindex < 0)
{
- IF_VERBOSE_ACTION(log_error("bad
endindex sent to array_slice! endindex: %s, length: %d",
+ IF_VERBOSE_ACTION(log_error("bad
endindex sent to array_slice! endindex: %s, length: %zd",
fn.arg(1).to_string(),array->elements.size()));
return;
}
Index: gnash/server/button.cpp
diff -u gnash/server/button.cpp:1.9 gnash/server/button.cpp:1.10
--- gnash/server/button.cpp:1.9 Wed Mar 29 05:42:41 2006
+++ gnash/server/button.cpp Thu Apr 20 17:21:40 2006
@@ -891,7 +891,7 @@
log_msg(" out_point = %d\n", m_out_point);
log_msg(" loop_count = %d\n", m_loop_count);
- log_msg(" envelope size = %d\n",
m_envelopes.size());
+ log_msg(" envelope size = %zd\n",
m_envelopes.size());
);
}
Index: gnash/server/fontlib.cpp
diff -u gnash/server/fontlib.cpp:1.5 gnash/server/fontlib.cpp:1.6
--- gnash/server/fontlib.cpp:1.5 Sun Feb 26 21:44:53 2006
+++ gnash/server/fontlib.cpp Thu Apr 20 17:21:40 2006
@@ -1142,7 +1142,7 @@
if (nf != (int) fonts.size())
{
// Font counts must match!
- log_error("error: mismatched font count (read %d,
expected %d) in cached font data\n", nf, fonts.size());
+ log_error("error: mismatched font count (read %d,
expected %zd) in cached font data\n", nf, fonts.size());
in->go_to_end();
goto error_exit;
}
Index: gnash/server/shm.cpp
diff -u gnash/server/shm.cpp:1.8 gnash/server/shm.cpp:1.9
--- gnash/server/shm.cpp:1.8 Thu Mar 9 19:29:06 2006
+++ gnash/server/shm.cpp Thu Apr 20 17:21:40 2006
@@ -277,7 +277,7 @@
#endif // end of HAVE_SHM_OPEN
#endif // end of FLAT_ADDR_SPACE
- log_msg("Opened Shared Memory segment \"%s\": %d bytes at %p.\n",
+ log_msg("Opened Shared Memory segment \"%s\": %zd bytes at %p.\n",
filespec, _size, _addr);
}
Index: gnash/server/sound_handler_mp3.cpp
diff -u gnash/server/sound_handler_mp3.cpp:1.6
gnash/server/sound_handler_mp3.cpp:1.7
--- gnash/server/sound_handler_mp3.cpp:1.6 Thu Mar 30 19:12:53 2006
+++ gnash/server/sound_handler_mp3.cpp Thu Apr 20 17:21:40 2006
@@ -68,12 +68,14 @@
}
}
+#if 0
static void parse_frame_info(char *buf, const unsigned int len, const
mad_header *h) {
snprintf(buf, len, "%lu kb/s audio mpeg layer %s stream crc
[%s] mode '%s' with '%s' emphasis at %u Hz sample rate",
h->bitrate, parse_layer(h),
(h->flags&MAD_FLAG_PROTECTION)?"X":" ", parse_channel_mode(h),
parse_emphasis(h), h->samplerate);
buf[len-1] = 0;
}
-
+#endif
+
template <const unsigned int stride> static void
pcm_fixed_to_native(const mad_fixed_t *src, Sint16 *dst, const unsigned int
count) {
assert(count > 0);
unsigned int
Index: gnash/server/xmlnode.cpp
diff -u gnash/server/xmlnode.cpp:1.8 gnash/server/xmlnode.cpp:1.9
--- gnash/server/xmlnode.cpp:1.8 Thu Mar 30 19:12:53 2006
+++ gnash/server/xmlnode.cpp Thu Apr 20 17:21:40 2006
@@ -279,7 +279,7 @@
as_object *
XMLNode::previousSibling(int x)
{
- log_msg("%s: partially implemented. %d objects\n",
+ log_msg("%s: partially implemented. %zd objects\n",
__PRETTY_FUNCTION__, _objects.size());
if (_objects.size() > 0) {
return _objects[x-1];
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ./ChangeLog ./Makefile.am ./configure.ac ...,
Rob Savoye <=