Commit da4f2c00 authored by Brahim Abes's avatar Brahim Abes

Merge branch 'develop' of /media/boudica/INT07/Git into develop

parents 06a44252 9c2013b0
......@@ -42,4 +42,6 @@ libeasmail/m4/*
*stub.h
*.anjuta*
*.*~
*.orig
ACLOCAL_AMFLAGS = -I m4
#SUBDIRS = libeasmail/src . libeasmail/tests
#SUBDIRS = eas-daemon/libeas eas-daemon/src eas-daemon/tests . libeasmail/src . check_tests
SUBDIRS = libeasmail/src . eas-daemon/libeas eas-daemon/src eas-daemon/tests . check_tests
SUBDIRS = libeascal/src . libeasmail/src . eas-daemon/libeas eas-daemon/src eas-daemon/tests . check_tests
EXTRA_DIST = autogen.sh
......@@ -26,7 +26,6 @@ AM_GLIB_GNU_GETTEXT
AM_DISABLE_STATIC
AC_PROG_LIBTOOL
AC_CONFIG_FILES([Makefile eas-daemon/data/Makefile eas-daemon/libeas/Makefile eas-daemon/src/Makefile eas-daemon/tests/Makefile libeasmail/src/Makefile check_tests/Makefile])
#AC_CONFIG_FILES([Makefile eas-daemon/src/Makefile eas-daemon/tests/Makefile libeasmail/src/Makefile libeasmail/tests/Makefile])
AC_CONFIG_FILES([Makefile eas-daemon/data/Makefile eas-daemon/libeas/Makefile eas-daemon/src/Makefile eas-daemon/tests/Makefile libeasmail/src/Makefile libeascal/src/Makefile check_tests/Makefile])
AC_OUTPUT
......@@ -28,13 +28,13 @@ G_DEFINE_TYPE (EasEmailInfoTranslator, eas_email_info_translator, G_TYPE_OBJECT)
static void
eas_email_info_translator_init (EasEmailInfoTranslator *object)
{
/* TODO: Add initialization code here */
/* initialization code */
}
static void
eas_email_info_translator_finalize (GObject *object)
{
/* TODO: Add deinitalization code here */
/* deinitalization code */
G_OBJECT_CLASS (eas_email_info_translator_parent_class)->finalize (object);
}
......@@ -48,6 +48,19 @@ eas_email_info_translator_class_init (EasEmailInfoTranslatorClass *klass)
object_class->finalize = eas_email_info_translator_finalize;
}
EasEmailInfoTranslator *
eas_email_info_translator_new()
{
g_debug("eas_email_info_new++");
EasEmailInfoTranslator *object = NULL;
object = g_object_new (EAS_TYPE_EMAIL_INFO_TRANSLATOR, NULL);
g_debug("eas_email_info_new--");
return object;
}
gchar *
eas_add_email_appdata_parse_response (EasEmailInfoTranslator* self, xmlNode *node, gchar *server_id)
......@@ -209,14 +222,14 @@ eas_add_email_appdata_parse_response (EasEmailInfoTranslator* self, xmlNode *nod
// serialise the emailinfo
if(!eas_email_info_serialise(email_info, &result))
{
g_warning("Failed to serialise email info\n");
g_warning("Failed to serialise email info");
}
g_object_unref(email_info);
}
else
{
g_error("Failed! Expected ApplicationData node at root\n");
g_error("Failed! Expected ApplicationData node at root");
}
return result;
......@@ -238,7 +251,7 @@ eas_update_email_appdata_parse_response (EasEmailInfoTranslator* self, xmlNode *
for (n = n->children; n; n = n->next)
{
// TODO - pull out other potentially updated data (flags/categories):
// TODO - figure out if/where other flags are stored (eg replied to)
//Read
if (n->type == XML_ELEMENT_NODE && !strcmp((char *)n->name, "email:Read"))
{
......@@ -271,7 +284,7 @@ eas_update_email_appdata_parse_response (EasEmailInfoTranslator* self, xmlNode *
}
else
{
g_error("Failed! Expected ApplicationData node at root\n");
g_error("Failed! Expected ApplicationData node at root");
}
return result;
}
......@@ -293,14 +306,14 @@ eas_delete_email_appdata_parse_response (EasEmailInfoTranslator* self, xmlNode *
if(!eas_email_info_serialise(email_info, &result))
{
g_warning("Failed to serialise email info\n");
g_warning("Failed to serialise email info");
}
g_object_unref(email_info);
}
else
{
g_error("Failed! Expected ApplicationData node at root\n");
g_error("Failed! Expected ApplicationData node at root");
}
return result;
......
......@@ -49,6 +49,9 @@ struct _EasEmailInfoTranslator
GType eas_email_info_translator_get_type (void) G_GNUC_CONST;
// C'tor
EasEmailInfoTranslator *eas_email_info_translator_new();
// parses the email ApplicationData for an add
gchar *eas_add_email_appdata_parse_response (EasEmailInfoTranslator* self, xmlNode *node, gchar *server_id);
......
......@@ -23,6 +23,8 @@ struct _EasSyncMsgPrivate
G_DEFINE_TYPE (EasSyncMsg, eas_sync_msg, EAS_TYPE_MSG_BASE);
static void eas_sync_parse_item_add(EasSyncMsg *self, xmlNode *node);
static void
eas_sync_msg_init (EasSyncMsg *object)
{
......@@ -87,7 +89,6 @@ eas_sync_msg_build_message (EasSyncMsg* self, gboolean getChanges)
*grandchild = NULL;
xmlNs *ns = NULL;
//TODO: this is taken from foldersync message - needs to be properly created
doc = xmlNewDoc ( (xmlChar *) "1.0");
node = xmlNewDocNode (doc, NULL, (xmlChar*)"Sync", NULL);
xmlDocSetRootElement (doc, node);
......@@ -97,16 +98,16 @@ eas_sync_msg_build_message (EasSyncMsg* self, gboolean getChanges)
(xmlChar*)"-//MICROSOFT//DTD ActiveSync//EN",
(xmlChar*)"http://www.microsoft.com/");
ns = xmlNewNs (node, (xmlChar *)"AirSync:",NULL);
xmlNewNs (node, (xmlChar *)"AirSyncBase:", (xmlChar *)"airsyncbase");
child = xmlNewChild(node, NULL, (xmlChar *)"Collections", NULL);
grandchild = xmlNewChild(child, NULL, (xmlChar *)"Collection", NULL);
xmlNewChild(grandchild, NULL, (xmlChar *)"SyncKey", (xmlChar*)priv->sync_key);
xmlNewChild(grandchild, NULL, (xmlChar *)"CollectionId", (xmlChar*)priv->folderID);
if(getChanges){
xmlNewChild(grandchild, NULL, (xmlChar *)"DeletesAsMoves", (xmlChar*)"1");
xmlNewChild(grandchild, NULL, (xmlChar *)"GetChanges", (xmlChar*)"1");
}
ns = xmlNewNs (node, (xmlChar *)"AirSync:",NULL);
xmlNewNs (node, (xmlChar *)"AirSyncBase:", (xmlChar *)"airsyncbase");
child = xmlNewChild(node, NULL, (xmlChar *)"Collections", NULL);
grandchild = xmlNewChild(child, NULL, (xmlChar *)"Collection", NULL);
xmlNewChild(grandchild, NULL, (xmlChar *)"SyncKey", (xmlChar*)priv->sync_key);
xmlNewChild(grandchild, NULL, (xmlChar *)"CollectionId", (xmlChar*)priv->folderID);
if(getChanges){
xmlNewChild(grandchild, NULL, (xmlChar *)"DeletesAsMoves", (xmlChar*)"1");
xmlNewChild(grandchild, NULL, (xmlChar *)"GetChanges", (xmlChar*)"1");
}
xmlNewChild(grandchild, NULL, (xmlChar *)"WindowSize", (xmlChar*)"100");
......@@ -169,10 +170,51 @@ eas_sync_msg_parse_reponse (EasSyncMsg* self, xmlDoc *doc)
}
for (node = node->children; node; node = node->next) {
if (node->type == XML_ELEMENT_NODE && !strcmp((char *)node->name, "Commands"))
{
g_debug ("Commands:\n");
break;
}
}
if (!node) {
g_debug ("Failed to find Commands element\n");
return;
}
for (node = node->children; node; node = node->next) {
if (node->type == XML_ELEMENT_NODE && !strcmp((char *)node->name, "Add")) {
eas_sync_parse_item_add(self, node);
continue;
}
if (node->type == XML_ELEMENT_NODE && !strcmp((char *)node->name, "Delete")) {
// TODO Parse deleted folders
g_assert(0);
continue;
}
if (node->type == XML_ELEMENT_NODE && !strcmp((char *)node->name, "Update")) {
// TODO Parse updated folders
g_assert(0);
continue;
}
}
g_debug ("eas_sync_msg_parse_response --");
}
static void
eas_sync_parse_item_add(EasSyncMsg *self, xmlNode *node)
{
EasSyncMsgPrivate *priv = self->priv;
}
GSList*
eas_sync_msg_get_added_items (EasSyncMsg* self)
{
......
......@@ -35,9 +35,30 @@ eas_calendar_class_init (EasCalendarClass *klass)
}
gboolean eas_calendar_start_sync(EasCalendar* obj, gint valueIn, GError** error)
void
eas_calendar_get_latest_calendar_items(EasCalendar* self,
guint64 account_uid,
const gchar* sync_key,
DBusGMethodInvocation* context)
{
return TRUE;
}
gboolean
eas_calendar_delete_calendar_items(EasCalendar* self,
const gchar* sync_key,
const gchar **server_id,
GError **error)
{
return TRUE;
}
gboolean
eas_calendar_update_calendar_items(EasCalendar* self,
const gchar* sync_key,
const gchar **calendar_items,
GError **error)
{
return TRUE;
}
......@@ -7,6 +7,7 @@
#define _EAS_CALENDAR_H_
#include <glib-object.h>
#include <dbus/dbus-glib.h>
G_BEGIN_DECLS
......@@ -19,6 +20,7 @@ G_BEGIN_DECLS
typedef struct _EasCalendarClass EasCalendarClass;
typedef struct _EasCalendar EasCalendar;
typedef struct _EasCalendarPrivate EasCalendarPrivate;
struct _EasCalendarClass
{
......@@ -28,12 +30,27 @@ struct _EasCalendarClass
struct _EasCalendar
{
GObject parent_instance;
EasCalendarPrivate* _priv;
};
GType eas_calendar_get_type (void) G_GNUC_CONST;
/* TODO:Insert your Calendar Interface APIS here*/
gboolean eas_calendar_start_sync(EasCalendar* obj, gint valueIn, GError** error) ;
void eas_calendar_get_latest_calendar_items(EasCalendar* self,
guint64 account_uid,
const gchar* sync_key,
DBusGMethodInvocation* context);
gboolean eas_calendar_delete_calendar_items(EasCalendar* self,
const gchar* sync_key,
const gchar **server_id,
GError **error);
gboolean eas_calendar_update_calendar_items(EasCalendar* self,
const gchar* sync_key,
const gchar **calendar_items,
GError **error);
G_END_DECLS
......
......@@ -6,14 +6,36 @@
-->
<interface name="org.meego.activesyncd.EasCalendar">
<!-- TODO: This is just an example exposed API use as a test - -->
<method name="start_sync">
<arg type="i" name="new_value" direction="in"/>
</method>
<!--
get latest changes from calendar folder
will use AS Sync command
-->
<method name="get_latest_calendar_items">
<annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
<arg type="t" name="account_uid" direction="in"/> <!-- t == UINT64-->
<arg type="s" name="sync_key" direction="in"/>
<arg type="s" name="ret_sync_key" direction="out"/>
<arg type="as" name="ret_created_items_array" direction="out"/>
<arg type="as" name="ret_deleted_items_array" direction="out"/>
<arg type="as" name="ret_updated_items_array" direction="out"/>
</method>
<!-- TODO: Insert your calendar exposed APIs here -->
<method name="update_calendar_items">
<annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
<arg type="t" name="account_uid" direction="in"/> <!-- t == UINT64-->
<arg type="s" name="sync_key" direction="in"/>
<arg type="as" name="updated_items_array" direction="in"/>
<arg type="s" name="ret_sync_key" direction="out"/>
</method>
<method name="delete_calendar_items">
<annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
<arg type="t" name="account_uid" direction="in"/> <!-- t == UINT64-->
<arg type="s" name="sync_key" direction="in"/>
<arg type="as" name="deleted_items_array" direction="in"/>
<arg type="s" name="ret_sync_key" direction="out"/>
</method>
</interface>
</node>
......@@ -136,7 +136,6 @@ build_serialised_folder_array(gchar ***serialised_folder_array, const GSList *fo
for(i = 0; i < array_len - 1; i++)
{
g_assert(l != NULL);
gchar *serialised;
EasFolder *folder;
folder = l->data;
......@@ -173,16 +172,15 @@ void eas_mail_sync_email_folder_hierarchy(EasMail* easMailObj,
GSList* added_folders = NULL;
GSList* updated_folders = NULL;
GSList* deleted_folders = NULL;
EFlag * eflag = NULL;
gchar* ret_sync_key = NULL;
gchar** ret_created_folders_array = NULL;
gchar** ret_updated_folders_array = NULL;
gchar** ret_deleted_folders_array = NULL;
EFlag * eflag =NULL;
eflag = e_flag_new ();
// Create the request
EasSyncFolderHierarchy *folderHierarchyObj =NULL;
......@@ -213,9 +211,6 @@ void eas_mail_sync_email_folder_hierarchy(EasMail* easMailObj,
g_debug("eas_mail_sync_email_folder_hierarchy - serialise objects");
//serialise the folder objects from GSList* to char** and populate :
g_debug(" Data: %s, %x, %x, %x",
ret_sync_key, added_folders, updated_folders, deleted_folders);
if(build_serialised_folder_array(&ret_created_folders_array, added_folders, &error))
{
if(build_serialised_folder_array(&ret_updated_folders_array, updated_folders, &error))
......@@ -250,29 +245,78 @@ void eas_mail_sync_email_folder_hierarchy(EasMail* easMailObj,
* @param[in] collection_id identifer for the folder to be sync'ed
* @param[in] deleted_email_array list of email ids to be deleted
* @param[in] changed_email_array list of changes to existing emails
* @param[out] ret_sync_key updated sync_key from the server response
* @param[out] ret_more_available TRUE if further sync data is available on the server
* @param[out] ret_added_email_array serialised list of added emails
* @param[out] ret_deleted_email_array serialised list of deleted email ids
* @param[out] ret_changed_email_array serialsed list of changes to existing emails
* @param[out] error NULL if no error, otherwise a GLib GError
* @param[in] context dbus context
*/
gboolean eas_mail_sync_folder_email(EasMail* easMailObj,
gboolean eas_mail_sync_folder_email(EasMail* easMailObj,
guint64 account_uid,
const gchar* sync_key,
const gchar* sync_key,
gboolean get_server_changes,
const gchar *collection_id, //folder to sync
const gchar *collection_id,
const gchar* deleted_email_array,
const gchar* changed_email_array,
gchar *ret_sync_key,
gboolean *ret_more_available,
gchar **ret_added_email_array,
gchar **ret_deleted_email_array,
gchar **ret_changed_email_array,
GError** error)
const gchar* changed_email_array,
DBusGMethodInvocation* context)
{
// TODO
return TRUE;
EFlag *flag = NULL;
GError *error = NULL;
// TODO
g_debug("eas_mail_sync_folder_email++");
flag = e_flag_new ();
// TODO Create Request
#if 0
EasSyncFolderEmailReq *req = eas_sync_folder_email_req_new();
eas_request_base_SetConnection (&req->parent_instance,
eas_mail_get_eas_connection(easMailObj));
// Activate Request
eas_sync_folder_email_req_Activate(req,
sync_key,
get_server_changes,
collection_id,
deleted_email_array,
changed_email_array,
flag);
#endif
// Wait for response
e_flag_wait (flag);
e_flag_free (flag);
gchar *ret_sync_key = NULL;
gboolean ret_more_available = FALSE;
gchar** ret_added_email_array = NULL;
gchar** ret_deleted_email_array = NULL;
gchar** ret_changed_email_array = NULL;
#if 0
// Fetch the serialised response for transmission over DBusresponse
eas_sync_folder_email_req_ActivateFinish(req,
&ret_sync_key,
&ret_more_available,
&ret_add_email_array,
&ret_deleted_email_array,
&ret_changed_email_array,
&error);
#endif
if (error)
{
dbus_g_method_return_error (context, error);
g_error_free (error);
}
else
{
dbus_g_method_return (context,
ret_sync_key,
ret_more_available,
ret_added_email_array,
ret_deleted_email_array,
ret_changed_email_array);
}
g_debug("eas_mail_sync_folder_email--");
return TRUE;
}
gboolean eas_mail_delete_email(EasMail* easMailObj,
......@@ -295,6 +339,8 @@ eas_mail_fetch (EasMail* easMailObj,
GError **error)
{
// TODO
g_debug("eas_mail_fetch++");
g_debug("eas_mail_fetch--");
return TRUE;
}
......@@ -307,7 +353,9 @@ gboolean eas_mail_send_email(EasMail* easMailObj,
const gchar *mime,
GError** error)
{
return TRUE;
g_debug("eas_mail_send_email++");
g_debug("eas_mail_send_email--");
return TRUE;
}
......@@ -60,19 +60,14 @@ void eas_mail_sync_email_folder_hierarchy(EasMail* self,
/*
synchronize an email folder. Gets email headers only, not bodies
*/
gboolean eas_mail_sync_folder_email(EasMail* self,
gboolean eas_mail_sync_folder_email(EasMail* easMailObj,
guint64 account_uid,
const gchar* sync_key,
const gchar* sync_key,
gboolean get_server_changes,
const gchar *collection_id, //folder to sync
const gchar *collection_id,
const gchar* deleted_email_array,
const gchar* changed_email_array,
gchar *ret_sync_key,
gboolean *ret_more_available,
gchar **ret_added_email_array,
gchar **ret_deleted_email_array,
gchar **ret_changed_email_array,
GError** error);
const gchar* changed_email_array,
DBusGMethodInvocation* context);
/*
delete an email
*/
......
......@@ -39,11 +39,13 @@
</method>
<!--
2-way sync of specified email folder. This will sync email headers only, not bodies
will use AS 'Sync' command
-->
<method name="sync_folder_email">
<annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
<arg type="t" name="account_uid" direction="in"/>
<arg type="s" name="sync_key" direction="in"/>
<arg type="b" name="get_server_changes" direction="in"/>
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
This diff is collapsed.
This diff is collapsed.
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2009-04-28.21; # UTC
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
# Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u="sed s,\\\\\\\\,/,g"
depmode=msvisualcpp
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
## the command line argument order; so add the flags where they
## appear in depend2.am. Note that the slowdown incurred here
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
for arg
do
case $arg in
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
*) set fnord "$@" "$arg" ;;
esac
shift # fnord
shift # $arg
done
"$@"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '