Re: Problem with Makefile using EiffelStudio

"Germán Arias [email protected] [gobo-eiffel]" <[email protected]> Fri, 15 May 2020 23:53:59 -0600
Newsgroups gmane.comp.lang.eiffel.gobo.general
Message-ID <[email protected]>
--------------8CF8E1EA6244C60F5AC13BE6
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Thanks, that solve the problem. But now I have other problem. Eiffel-IUP
don't have C++ code, but the library IM (a dependency of IUP library)
have C++ code. The IM documentation say:

"Even if your application is only in C, you must link with a C++ capable
linker. Using Tecmake set "LINKER :=3D g++" in your "config.mak" when
compiling with gcc (UNIX and Windows)."


With Liberty Eiffel I link with the library "libstdc++" and this solve
the problem. With GOBO this library is automatically linked (I don't
know why). But now seems that "ec" is compiling it in pure C, even if I
add the libstdc++ library. The IM header file have a section:

# =C2=A0 ifdef __cplusplus
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 extern "C" {
# =C2=A0 endif
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 some_declarations_here

# =C2=A0 ifdef __cplusplus
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
# =C2=A0 endif

I don't know if this section should be compiled, but the functions
inside this section are precisely those mentioned in the warnings:

warning: implicit declaration of function .....

at the end I get a lot of warnings and errors. I don't have to much
experience with C and none with C++. Any advice?

Thanks


On 5/15/20 1:46 PM, Alexander Kogtenkov kwaxer-JGs/[email protected] [gobo-eiffel] wrote:
>
> To improve efficiency of C compilation, EiffelStudio combines code
> generated for several classes in one large compilation unit.
> Schematically this looks like
> #includes for class A
> code for class A
> #includes for class B
> code for class B
> As a result, if classes refer to the same header file, the references
> may appear in the large compilation unit more than once:
> #include "library_x.h"
> code for A
> #include "library_x.h" <--- This causes the problem.
> code for B
> Unfortunately, C compilers do not like when the same
> function/structure/etc. are declared more than once. Fortunately,
> there is a simple workaround. Suppose, C header file "library_x.h"
> looks like
> /* Begin */
> #include "something.h"
> #include "something_else.h"
> some_declarations_here
> /* End */
> Adding include guards in the header file fixes multiple inclusion issue:
> /* Begin */
> #ifndef _library_x_h
> # =C2=A0 define _library_x_h
> # =C2=A0 if defined(_MSC_VER) && (_MSC_VER >=3D 1020)
> # =C2=A0 =C2=A0 =C2=A0pragma once
> # =C2=A0 endif
> # =C2=A0=C2=A0include "something.h"
> # =C2=A0 include "something_else.h"
> # =C2=A0 ifdef __cplusplus
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 extern "C" {
> # =C2=A0 endif
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 some_declarations_here
>
> # =C2=A0 ifdef __cplusplus
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
> # =C2=A0 endif
> #endif
> /* End */
> Note that the code above now compiles also with C++ that might be
> needed if some C++ code is involved.
> Alexander Kogtenkov
>
>     Germ=C3=A1n Arias [email protected] [gobo-eiffel]
>     <[email protected]>:
>
>     No, now I get errors about duplication of C function. There is
>     only one C file "eiffel-iup.h" at library directory (EIFFEL_IUP
>     variable), but I get:
>
>     In file included from iu263.c:59,
>     =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:53:
>     /home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffel-iup.h:10=
20:6:
>     error: redefinition of =E2=80=98connect_callback=E2=80=99
>     =C2=A01020 | void connect_callback (Ihandle* ih, const char *name,
>     const char *type, int operation) {
>     =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^~~~~~=
~~~~~~~~~~
>     In file included from iu259.c:47,
>     =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:2:
>     /home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffel-iup.h:10=
20:6:
>     note: previous definition of =E2=80=98connect_callback=E2=80=99 was h=
ere
>     =C2=A01020 | void connect_callback (Ihandle* ih, const char *name,
>     const char *type, int operation) {
>     =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^~~~~~=
~~~~~~~~~~
>
>     my es-library.ecf is:
>
>     <?xml version=3D"1.0" encoding=3D"ISO-8859-1"?>
>     <system
>     =C2=A0=C2=A0=C2=A0 xmlns=3D"http://www.eiffel.com/developers/xml/conf=
iguration-1-20-0"
>     =C2=A0=C2=A0=C2=A0 xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-inst=
ance"
>     =C2=A0=C2=A0=C2=A0
>     xsi:schemaLocation=3D"http://www.eiffel.com/developers/xml/configurat=
ion-1-20-0
>     http://www.eiffel.com/developers/xml/configuration-1-20-0.xsd"
>     =C2=A0=C2=A0=C2=A0 name=3D"eiffel-iup"
>     =C2=A0=C2=A0=C2=A0 library_target=3D"eiffel-iup"
>     uuid=3D"3C312C2A-398E-4A0E-B834-1663DF82359F"
>     >
>
>     =C2=A0=C2=A0=C2=A0 <description>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 description: "ECF file for the =
Eiffel-IUP Library"
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 library: "Eiffel-IUP Library"
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 copyright: "Copyright (c) 2016-=
2020, German Arias"
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 license: "MIT License"
>     =C2=A0=C2=A0=C2=A0 </description>
>
>     =C2=A0=C2=A0=C2=A0 <target name=3D"eiffel-iup">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <root all_classes=3D"true"/>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <file_rule>
>     <exclude>/\.svn$</exclude>
>     <exclude>/\.git$</exclude>
>     <exclude>/EIFGENs$</exclude>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </file_rule>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <option warning=3D"true"/>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <external_cflag
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 value=3D"-I$=
{EIFFEL_IUP}"/>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <external_library location=3D"$=
{IUP_LIBS}/libiup.so">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <description=
>IUP Library</description>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </external_library>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <external_library location=3D"$=
{IUP_LIBS}/libiupcd.so">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <description=
>IUP Library</description>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </external_library>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <external_library location=3D"$=
{IUP_LIBS}/libcd.so">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <description=
>IUP Library</description>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </external_library>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <external_library location=3D"$=
{IUP_LIBS}/libiupcontrols.so">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <description=
>IUP Library</description>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </external_library>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <external_library location=3D"$=
{IUP_LIBS}/libiupgl.so">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <description=
>IUP Library</description>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </external_library>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <external_library location=3D"$=
{IUP_LIBS}/libiupglcontrols.so">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <description=
>IUP Library</description>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </external_library>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <external_library location=3D"$=
{IUP_LIBS}/libiupim.so">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <description=
>IUP Library</description>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </external_library>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <external_library location=3D"$=
{IUP_LIBS}/libim.so">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <description=
>IUP Library</description>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </external_library>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <external_library location=3D"$=
{IUP_LIBS}/libiupimglib.so">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <description=
>IUP Library</description>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </external_library>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <external_library location=3D"$=
{IUP_LIBS}/libcdcontextplus.so">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <description=
>IUP Library</description>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </external_library>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <library name=3D"base"
>     location=3D"$ISE_LIBRARY/library/base/base.ecf"/>
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 <cluster name=3D"eiffel-iup" lo=
cation=3D"./" recursive=3D"true">
>     =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 </cluster>
>     =C2=A0=C2=A0=C2=A0 </target>
>     </system>
>
>     Where is the problem?
>
>     Thanks
>
>     On 5/15/20 1:11 PM, Alexander Kogtenkov kwaxer-JGs/[email protected]
>     [gobo-eiffel] wrote:
>>
>>     Thank you for the update. Does it mean that the application can
>>     now be compiled with EiffelStudio and runs as expected?
>>     Regards,
>>     Alexander Kogtenkov
>>
>>         Germ=C3=A1n Arias [email protected] [gobo-eiffel]
>>         <[email protected]>:
>>         Sorry for the noise. I found the problem. At file library.ecf
>>         of eiffel-iup I include the headers from GOBO, otherwise it
>>         doesn't compile. Removing this line solves the problem.
>>
>>         Regards
>>
>>         On 5/15/20 2:19 AM, Germ=C3=A1n Arias [email protected]
>>         [gobo-eiffel] wrote:
>>>
>>>         Hi,
>>>
>>>         Not sure if this is an specific problem of EiffelStudio or
>>>         something in
>>>         my ecf files or maybe a bad command line arguments. But when
>>>         I try to
>>>         compile a project with Eiffel Compiler at command line using:
>>>
>>>         ec -freeze -c_compile -config es-system.ecf
>>>
>>>         I get this error:
>>>
>>>         [german@localhost example5 (master)]$ ec -freeze -c_compile
>>>         -config
>>>         es-system.ecf
>>>         Eiffel Compilation Manager
>>>         Version 19.05.10.3187 GPL Edition - linux-x86-64
>>>
>>>         Degree 6: Examining System
>>>         Degree 5: Parsing Classes
>>>         Degree 4: Analyzing Inheritance
>>>         Degree 3: Checking Types
>>>         Degree 2: Generating Byte Code
>>>         Freezing System Changes
>>>         Degree -1: Generating Code
>>>         System Recompiled.
>>>         Preparing C compilation
>>>         Makefile:2: *** recipe commences before first target.=C2=A0 Sto=
p.
>>>
>>>         My system is PCLinuxOS with GCC 9.3.0 and GNU Make 4.3
>>>
>>>         You can test with the code from git repository:
>>>
>>>         https://notabug.org/GermanGT/eiffel-iup
>>>
>>>         but you should install the IUP libraries and set the environmen=
t
>>>         variables EIFFEL_IUP to the IUP "library" directory and
>>>         IUP_LIBS to the
>>>         directory with IUP libraries. You should use "es-system.ecf"
>>>         files with
>>>         EiffelStudio compiler.
>>>
>>>         Regards
>>>
>=20

--------------8CF8E1EA6244C60F5AC13BE6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/htm=
l4/strict.dtd">
<html>
<head>
</head>






=20
<body style=3D"background-color: #fff;">
<span style=3D"display:none">&nbsp;</span>

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id=3D"ygrp-mlmsg" style=3D"position:relative;">
  <div id=3D"ygrp-msg" style=3D"z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id=3D"ygrp-text" >
=20=20=20=20=20=20
=20=20=20=20=20=20
      <p>
=20=20
=20=20
    <p>Thanks, that solve the problem. But now I have other problem.
      Eiffel-IUP don't have C&#43;+ code, but the library IM (a dependency
      of IUP library) have C&#43;+ code. The IM documentation say:</p>
    <p>"Even if your application is only in C, you must link with a C&#43;+
      capable linker. Using Tecmake set "LINKER :=3D g&#43;+" in your
      "config.mak" when compiling with gcc (UNIX and Windows)."</p>
    <p><br>
    </p>
    <p>With Liberty Eiffel I link with the library "libstdc&#43;+" and this
      solve the problem. With GOBO this library is automatically linked
      (I don't know why). But now seems that "ec" is compiling it in
      pure C, even if I add the libstdc&#43;+ library. The IM header file
      have a section:</p>
    <div># =C2=A0 ifdef __cplusplus<br>
      =C2=A0 =C2=A0 =C2=A0 =C2=A0 extern "C" {<br>
      # =C2=A0 endif</div>
    <div>=C2=A0</div>
    <div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 some_declarations_here</div>
    <div><br>
      # =C2=A0 ifdef __cplusplus<br>
      =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
      # =C2=A0 endif</div>
    <div><br>
    </div>
    <div>I don't know if this section should be compiled, but the
      functions inside this section are precisely those mentioned in the
      warnings:<br>
    </div>
    <div><br>
    </div>
    <div>warning: implicit declaration of function .....<br>
    </div>
    <p>at the end I get a lot of warnings and errors. I don't have to
      much experience with C and none with C&#43;+. Any advice?</p>
    <p>Thanks</p>
    <p><br>
    </p>
    <div class=3D"moz-cite-prefix">On 5/15/20 1:46 PM, Alexander Kogtenkov
      <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:kwaxer-JGs/[email protected]">=
kwaxer-JGs/[email protected]</a> [gobo-eiffel] wrote:<br>
    </div>
    <blockquote type=3D"cite" cite=3D"mid:[email protected]=
u">
=20=20=20=20=20=20
      <span>=C2=A0</span>
=20=20=20=20=20=20
          <div id=3D"ygrp-text">
            <p>
            </p>
            <div>To improve efficiency of C compilation, EiffelStudio
              combines code generated for several classes in one large
              compilation unit. Schematically this looks like</div>
            <div>
              <div>=C2=A0</div>
              <div>#includes for class A</div>
              <div>code for class A</div>
              <div>#includes for class B</div>
              <div>code for class B</div>
            </div>
            <div>=C2=A0</div>
            <div>As a result, if classes refer to the same header file,
              the references may appear in the large compilation unit
              more than once:</div>
            <div>=C2=A0</div>
            <div>#include "library_x.h"</div>
            <div>code for A<br>
              #include "library_x.h" &lt;--- This causes the problem.</div>
            <div>code for B<br>
              =C2=A0</div>
            <div>Unfortunately, C compilers do not like when the same
              function/structure/etc. are declared more than once.
              Fortunately, there is a simple workaround. Suppose, C
              header file "library_x.h" looks like</div>
            <div>=C2=A0</div>
            <div>/* Begin */</div>
            <div>#include "something.h"
              <div>#include "something_else.h"</div>
              <div>=C2=A0</div>
              <div>some_declarations_here</div>
              <div>/* End */</div>
              =C2=A0
              <div>Adding include guards in the header file fixes
                multiple inclusion issue:</div>
              <div>=C2=A0</div>
              <div>/* Begin */</div>
              <div>
                <div>#ifndef _library_x_h<br>
                  # =C2=A0 define _library_x_h<br>
                  # =C2=A0 if defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;=
=3D
                  1020)<br>
                  # =C2=A0 =C2=A0 =C2=A0pragma once<br>
                  # =C2=A0 endif</div>
                <div>
                  <div>=C2=A0</div>
                  <div># =C2=A0=C2=A0include "something.h"</div>
                  <div># =C2=A0 include "something_else.h"</div>
                </div>
                <div>=C2=A0</div>
                <div># =C2=A0 ifdef __cplusplus<br>
                  =C2=A0 =C2=A0 =C2=A0 =C2=A0 extern "C" {<br>
                  # =C2=A0 endif</div>
                <div>=C2=A0</div>
                <div>
                  <div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 some_declarations_here</=
div>
                  <div>
                    <div><br>
                      # =C2=A0 ifdef __cplusplus<br>
                      =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
                      # =C2=A0 endif</div>
                    <div>#endif</div>
                    <div>/* End */</div>
                    <div>=C2=A0</div>
                    <div>Note that the code above now compiles also with
                      C&#43;+ that might be needed if some C&#43;+ code is
                      involved.</div>
                  </div>
                </div>
              </div>
              <div>=C2=A0</div>
              <div data=3D"container">
                <div data=3D"content">
                  <div>
                    <div>Alexander Kogtenkov</div>
                  </div>
                </div>
              </div>
              <div>=C2=A0</div>
              <div>=C2=A0</div>
              <blockquote style=3D"border-left:1px solid
                #0857A6;margin:10px;padding:0 0 0 10px;">Germ=C3=A1n Arias
                <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:german=
[email protected]">[email protected]</a> [gobo-eiffel]
                <a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:gobo-eiff=
[email protected]">&lt;[email protected]&gt;</a>:<br>
                =C2=A0
                <div id>
                  <div class=3D"js-helper js-readmsg-msg">
                    <div>
                      <div id=3D"style_15895705160941543087_BODY">
                        <div class=3D"class_1589601901"><br>
                          =C2=A0
                          <p>No, now I get errors about duplication of C
                            function. There is only one C file
                            "eiffel-iup.h" at library directory
                            (EIFFEL_IUP variable), but I get:</p>
                          <p>=C2=A0</p>
                          In file included from iu263.c:59,<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:53:<b=
r>
/home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffel-iup.h:1020:6:
                          error: redefinition of =E2=80=98connect_callback=
=E2=80=99<br>
                          =C2=A01020 | void connect_callback (Ihandle* ih,
                          const char *name, const char *type, int
                          operation) {<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ^~~~~~~~~~~~~~~~<br>
                          In file included from iu259.c:47,<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:2:<br=
>
/home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffel-iup.h:1020:6:
                          note: previous definition of
                          =E2=80=98connect_callback=E2=80=99 was here<br>
                          =C2=A01020 | void connect_callback (Ihandle* ih,
                          const char *name, const char *type, int
                          operation) {<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ^~~~~~~~~~~~~~~~
                          <p>=C2=A0</p>
                          <p>my es-library.ecf is:</p>
                          <p>=C2=A0</p>
                          <p>&lt;?xml version=3D"1.0"
                            encoding=3D"ISO-8859-1"?&gt;<br>
                            &lt;system<br>
                            =C2=A0=C2=A0=C2=A0 xmlns=3D<a class=3D"moz-txt-=
link-rfc2396E_mailru_css_attribute_postfix" href=3D"http://www.eiffel.com/d=
evelopers/xml/configuration-1-20-0" rel=3D"noopener noreferrer" target=3D"_=
blank" moz=3D"true">"http://www.eiffel.com/developers/xml/configuration-1-2=
0-0"</a><br>
                            =C2=A0=C2=A0=C2=A0 xmlns:xsi=3D<a class=3D"moz-=
txt-link-rfc2396E_mailru_css_attribute_postfix" href=3D"http://www.w3.org/2=
001/XMLSchema-instance" rel=3D"noopener
                              noreferrer" target=3D"_blank" moz=3D"true">"h=
ttp://www.w3.org/2001/XMLSchema-instance"</a><br>
                            =C2=A0=C2=A0=C2=A0 xsi:schemaLocation=3D<a clas=
s=3D"moz-txt-link-rfc2396E_mailru_css_attribute_postfix" href=3D"http://www=
..eiffel.com/developers/xml/configuration-1-20-0http://www.eiffel.com/develo=
pers/xml/configuration-1-20-0.xsd" rel=3D"noopener noreferrer" target=3D"_b=
lank" moz=3D"true">"http://www.eiffel.com/developers/xml/configuration-1-20=
-0
http://www.eiffel.com/developers/xml/configuration-1-20-0.xsd"</a><br>
                            =C2=A0=C2=A0=C2=A0 name=3D"eiffel-iup"<br>
                            =C2=A0=C2=A0=C2=A0 library_target=3D"eiffel-iup=
"<br>
                            =C2=A0=C2=A0=C2=A0
                            uuid=3D"3C312C2A-398E-4A0E-B834-1663DF82359F"<b=
r>
                            &gt;<br>
                            <br>
                            =C2=A0=C2=A0=C2=A0 &lt;description&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 descripti=
on: "ECF file for the
                            Eiffel-IUP Library"<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 library: =
"Eiffel-IUP Library"<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 copyright=
: "Copyright (c) 2016-2020,
                            German Arias"<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 license: =
"MIT License"<br>
                            =C2=A0=C2=A0=C2=A0 &lt;/description&gt;<br>
                            <br>
                            =C2=A0=C2=A0=C2=A0 &lt;target name=3D"eiffel-iu=
p"&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;root =
all_classes=3D"true"/&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;file_=
rule&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0
                            &lt;exclude&gt;/\.svn$&lt;/exclude&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0
                            &lt;exclude&gt;/\.git$&lt;/exclude&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0
                            &lt;exclude&gt;/EIFGENs$&lt;/exclude&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/file=
_rule&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;optio=
n warning=3D"true"/&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;exter=
nal_cflag<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 value=3D"-I${EIFFEL_IUP}"/&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;exter=
nal_library
                            location=3D"${IUP_LIBS}/libiup.so"&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 &lt;description&gt;IUP
                            Library&lt;/description&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/exte=
rnal_library&gt;=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;exter=
nal_library
                            location=3D"${IUP_LIBS}/libiupcd.so"&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 &lt;description&gt;IUP
                            Library&lt;/description&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/exte=
rnal_library&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;exter=
nal_library
                            location=3D"${IUP_LIBS}/libcd.so"&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 &lt;description&gt;IUP
                            Library&lt;/description&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/exte=
rnal_library&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;exter=
nal_library
                            location=3D"${IUP_LIBS}/libiupcontrols.so"&gt;<=
br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 &lt;description&gt;IUP
                            Library&lt;/description&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/exte=
rnal_library&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;exter=
nal_library
                            location=3D"${IUP_LIBS}/libiupgl.so"&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 &lt;description&gt;IUP
                            Library&lt;/description&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/exte=
rnal_library&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;exter=
nal_library
                            location=3D"${IUP_LIBS}/libiupglcontrols.so"&gt=
;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 &lt;description&gt;IUP
                            Library&lt;/description&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/exte=
rnal_library&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;exter=
nal_library
                            location=3D"${IUP_LIBS}/libiupim.so"&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 &lt;description&gt;IUP
                            Library&lt;/description&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/exte=
rnal_library&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;exter=
nal_library
                            location=3D"${IUP_LIBS}/libim.so"&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 &lt;description&gt;IUP
                            Library&lt;/description&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/exte=
rnal_library&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;exter=
nal_library
                            location=3D"${IUP_LIBS}/libiupimglib.so"&gt;<br=
>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 &lt;description&gt;IUP
                            Library&lt;/description&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/exte=
rnal_library&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;exter=
nal_library
                            location=3D"${IUP_LIBS}/libcdcontextplus.so"&gt=
;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0 &lt;description&gt;IUP
                            Library&lt;/description&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/exte=
rnal_library&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;libra=
ry name=3D"base"
                            location=3D"$ISE_LIBRARY/library/base/base.ecf"=
/&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;clust=
er name=3D"eiffel-iup"
                            location=3D"./" recursive=3D"true"&gt;<br>
                            =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 &lt;/clus=
ter&gt;<br>
                            =C2=A0=C2=A0=C2=A0 &lt;/target&gt;<br>
                            &lt;/system&gt;</p>
                          <p>=C2=A0</p>
                          <p>Where is the problem?</p>
                          <p>Thanks</p>
                          <p>=C2=A0</p>
                          <div class=3D"moz-cite-prefix_mailru_css_attribut=
e_postfix">On
                            5/15/20 1:11 PM, Alexander Kogtenkov <a class=
=3D"moz-txt-link-abbreviated_mailru_css_attribute_postfix" href=3D"//e.mail=
..ru/compose/?mailto=3Dmailto%3akwaxer-JGs/[email protected]" rel=3D"noopener
                              noreferrer" moz=3D"true">kwaxer-JGs/[email protected]</a>
                            [gobo-eiffel] wrote:</div>
                          <blockquote type=3D"cite"> <span>=C2=A0</span>
                            <div id=3D"ygrp-text_mailru_css_attribute_postf=
ix">
                              <p>=C2=A0</p>
                              <div>Thank you for the update. Does it
                                mean that the application can now be
                                compiled with EiffelStudio and runs as
                                expected?</div>
                              <div>=C2=A0</div>
                              <div>Regards,</div>
                              <div>
                                <div>
                                  <div>
                                    <div>Alexander Kogtenkov</div>
                                  </div>
                                </div>
                              </div>
                              <div>=C2=A0</div>
                              <div>=C2=A0</div>
                              <blockquote style=3D"border-left:1px solid
                                #0857A6;margin:10px;padding:0 0 0 10px;">Ge=
rm=C3=A1n
                                Arias <a class=3D"moz-txt-link-abbreviated_=
mailru_css_attribute_postfix" href=3D"//e.mail.ru/compose/?mailto=3Dmailto%=
[email protected]" rel=3D"noopener noreferrer" moz=3D"true">germanandre@=
gmx.es</a>
                                [gobo-eiffel] <a class=3D"moz-txt-link-rfc2=
396E_mailru_css_attribute_postfix" href=3D"//e.mail.ru/compose/?mailto=3Dma=
ilto%3agobo%[email protected]" rel=3D"noopener noreferrer" moz=3D"tr=
ue">&lt;[email protected]&gt;</a>:<br>
                                =C2=A0
                                <div id>
                                  <div class=3D"js-helper_mailru_css_attrib=
ute_postfix
js-readmsg-msg_mailru_css_attribute_postfix">
                                    <div>
                                      <div id=3D"style_15895686471961104927=
_BODY_mailru_css_attribute_postfix">
                                        <div class=3D"class_1589593025_mail=
ru_css_attribute_postfix">Sorry
                                          for the noise. I found the
                                          problem. At file library.ecf
                                          of eiffel-iup I include the
                                          headers from GOBO, otherwise
                                          it doesn't compile. Removing
                                          this line solves the problem.
                                          <p>Regards</p>
                                          <div class=3D"moz-cite-prefix_mai=
lru_css_attribute_postfix_mailru_css_attribute_postfix">On
                                            5/15/20 2:19 AM, Germ=C3=A1n
                                            Arias <a class=3D"moz-txt-link-=
abbreviated_mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=
=3D"http://e.mail.ru/compose/?mailto=3Dmailto%[email protected]" rel=3D"=
noopener noreferrer" target=3D"_blank" moz=3D"true">[email protected]</a>
                                            [gobo-eiffel] wrote:</div>
                                          <blockquote type=3D"cite"><span>=
=C2=A0</span>
                                            <div id=3D"ygrp-text_mailru_css=
_attribute_postfix_mailru_css_attribute_postfix">
                                              <p>Hi,<br>
                                                <br>
                                                Not sure if this is an
                                                specific problem of
                                                EiffelStudio or
                                                something in<br>
                                                my ecf files or maybe a
                                                bad command line
                                                arguments. But when I
                                                try to<br>
                                                compile a project with
                                                Eiffel Compiler at
                                                command line using:<br>
                                                <br>
                                                ec -freeze -c_compile
                                                -config es-system.ecf<br>
                                                <br>
                                                I get this error:<br>
                                                <br>
                                                [german@localhost
                                                example5 (master)]$ ec
                                                -freeze -c_compile
                                                -config<br>
                                                es-system.ecf<br>
                                                Eiffel Compilation
                                                Manager<br>
                                                Version 19.05.10.3187
                                                GPL Edition -
                                                linux-x86-64<br>
                                                <br>
                                                Degree 6: Examining
                                                System<br>
                                                Degree 5: Parsing
                                                Classes<br>
                                                Degree 4: Analyzing
                                                Inheritance<br>
                                                Degree 3: Checking Types<br=
>
                                                Degree 2: Generating
                                                Byte Code<br>
                                                Freezing System Changes<br>
                                                Degree -1: Generating
                                                Code<br>
                                                System Recompiled.<br>
                                                Preparing C compilation<br>
                                                Makefile:2: *** recipe
                                                commences before first
                                                target.=C2=A0 Stop.<br>
                                                <br>
                                                My system is PCLinuxOS
                                                with GCC 9.3.0 and GNU
                                                Make 4.3<br>
                                                <br>
                                                You can test with the
                                                code from git
                                                repository:<br>
                                                <br>
                                                <a class=3D"moz-txt-link-fr=
eetext_mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=3D"h=
ttps://notabug.org/GermanGT/eiffel-iup" rel=3D"noopener noreferrer" target=
=3D"_blank" moz=3D"true">https://notabug.org/GermanGT/eiffel-iup</a><br>
                                                <br>
                                                but you should install
                                                the IUP libraries and
                                                set the environment<br>
                                                variables EIFFEL_IUP to
                                                the IUP "library"
                                                directory and IUP_LIBS
                                                to the<br>
                                                directory with IUP
                                                libraries. You should
                                                use "es-system.ecf"
                                                files with<br>
                                                EiffelStudio compiler.<br>
                                                <br>
                                                Regards<br>
                                                =C2=A0</p>
                                            </div>
                                          </blockquote>
                                        </div>
                                      </div>
                                    </div>
                                  </div>
                                </div>
                              </blockquote>
                              <div>=C2=A0</div>
                            </div>
                          </blockquote>
                          =C2=A0</div>
                      </div>
                    </div>
                  </div>
                </div>
              </blockquote>
              <div>=C2=A0</div>
            </div>
          </div>
=20=20=20=20=20=20=20=20=20=20
=20=20=20=20=20=20
=20=20=20=20=20=20
=20=20=20=20=20=20
      <!-- end group email -->
    </blockquote>
=20=20

</p>

    </div>
=20=20=20=20=20

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <div style=3D"color: #fff; height: 0;">__._,_.___</div>

=20=20=20=20=20=20=20=20=20=20
=20=20
=20

=20=20=20=20
    <div style=3D"clear:both"> </div>

    <div id=3D"fromDMARC" style=3D"margin-top: 10px;">
        <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; background=
-color:#E3E3E3;">
        Posted by: =3D?UTF-8?Q?Germ=3Dc3=3Da1n_Arias?=3D &lt;germanandre@gm=
x.es&gt;        <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; ba=
ckground-color:#E3E3E3;">
     </div>
    <div style=3D"clear:both"> </div>

    <table cellspacing=3D4px style=3D"margin-top: 10px; margin-bottom: 10px=
; color: #2D50FD;">
      <tbody>
        <tr>
          <td style=3D"font-size: 12px; font-family: arial; font-weight: bo=
ld; padding: 7px 5px 5px;"  >
                          <a style=3D"text-decoration: none; color: #2D50FD=
" href=3D"https://groups.yahoo.com/neo/groups/gobo-eiffel/conversations/mes=
sages/1914;_ylc=3DX3oDMTJwdXY1cWVnBF9TAzk3MzU5NzE0BGdycElkAzE1MjIyNzAEZ3Jwc=
3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE5MTQEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxNTg5NjA4=
Mjcy?act=3Dreply&messageNum=3D1914">Reply via web post</a>
                      </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;" >
            <a href=3D"mailto:[email protected]?subject=3DRe%3A%20%5Bgobo-=
eiffel%5D%20Problem%20with%20Makefile%20using%20EiffelStudio" style=3D"text=
-decoration: none; color: #2D50FD;">
               Reply to sender            </a>
          </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;">
            <a href=3D"mailto:[email protected]?subject=3DRe%3A%2=
0%5Bgobo-eiffel%5D%20Problem%20with%20Makefile%20using%20EiffelStudio" styl=
e=3D"text-decoration: none; color: #2D50FD">
              Reply to group            </a>
          </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;" >
            <a href=3D"https://groups.yahoo.com/neo/groups/gobo-eiffel/conv=
ersations/newtopic;_ylc=3DX3oDMTJlOWRhbThlBF9TAzk3MzU5NzE0BGdycElkAzE1MjIyN=
zAEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTU4OTYwODI3Mg--=
" style=3D"text-decoration: none; color: #2D50FD">Start a New Topic</a>
          </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;color: #2D50FD;" >
                            <a href=3D"https://groups.yahoo.com/neo/groups/=
gobo-eiffel/conversations/topics/1909;_ylc=3DX3oDMTM0OWF1Nm1jBF9TAzk3MzU5Nz=
E0BGdycElkAzE1MjIyNzAEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE5MTQEc2VjA2Z0cgRzb=
GsDdnRwYwRzdGltZQMxNTg5NjA4MjcyBHRwY0lkAzE5MDk-" style=3D"text-decoration: =
none; color: #2D50FD;">Messages in this topic</a>
                (6)
                      </td>
        </tr>
      </tbody>
    </table>

=20=20=20=20=20=20=20=20

<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<!-- |**|end egp html banner|**| -->


    <div id=3D"ygrp-grfd" style=3D"font-family: Verdana; font-size: 12px; p=
adding: 15px 0;">
=20=20=20=20=20=20
<!-- |**|begin egp html banner|**| -->

      To Post a message, send it to:&nbsp;&nbsp; [email protected]<BR=
>
To Unsubscribe, send a blank message to: gobo-eiffel-unsubscribe-B11MqFFcr06IwRZHo2/[email protected]=
m=20=20=20=20=20=20
<!-- |**|end egp html banner|**| -->

    </div>
=20=20

=20

<!-- |**|begin egp html banner|**| -->
<div id=3D"ygrp-vital" style=3D"background-color: #f2f2f2; font-family: Ver=
dana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

    <span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-transf=
orm: uppercase; "><a href=3D"https://groups.yahoo.com/neo/groups/gobo-eiffe=
l/info;_ylc=3DX3oDMTJldDNqbnE2BF9TAzk3MzU5NzE0BGdycElkAzE1MjIyNzAEZ3Jwc3BJZ=
AMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTU4OTYwODI3Mg--" style=3D"t=
ext-decoration: none;">Visit Your Group</a></span>

     <ul style=3D"list-style-type: none; margin: 0; padding: 0; display: in=
line;">
                                                    </ul>
  </div>


<div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p=
x; padding: 0 2px 0 0; clear: both;">
  <a href=3D"https://groups.yahoo.com/neo;_ylc=3DX3oDMTJkbmRvN2hnBF9TAzk3ND=
c2NTkwBGdycElkAzE1MjIyNzAEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzd=
GltZQMxNTg5NjA4Mjcy" style=3D"float: left;"><img src=3D"https://s.yimg.com/=
ru/0.9.12/min/css/yahoo_en-US_f_pw_101x21.png" height=3D"21" width=3D"101" =
alt=3D"Yahoo! Groups" style=3D"border: 0;"/></a>
  <div style=3D"color: #747575; float: right;"> &bull; <a href=3D"https://i=
nfo.yahoo.com/privacy/us/yahoo/groups/details.html" style=3D"text-decoratio=
n: none;">Privacy</a> &bull; <a href=3D"mailto:gobo-eiffel-unsubscribe@yaho=
ogroups.com?subject=3DUnsubscribe" style=3D"text-decoration: none;">Unsubsc=
ribe</a> &bull; <a href=3D"https://info.yahoo.com/legal/us/yahoo/utos/terms=
/" style=3D"text-decoration: none;">Terms of Use</a> </div>
</div>
<br>

<!-- |**|end egp html banner|**| -->

  </div> <!-- ygrp-msg -->

=20
  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id=3D"ygrp-sponsor" style=3D"width:160px; float:right; clear:none; m=
argin:0 0 25px 0; background: #fff;">

<!-- Start Recommendations -->
<div id=3D"ygrp-reco">
     </div>
<!-- End Recommendations -->



  </div>   <!-- |**|end egp html banner|**| -->

  <div style=3D"clear:both; color: #FFF; font-size:1px;">.</div>
</div>

  <img src=3D"http://geo.yahoo.com/serv?s=3D97359714/grpId=3D1522270/grpspI=
d=3D1705006764/msgId=3D1914/stime=3D1589608272" width=3D"1" height=3D"1"> <=
br>

<img src=3D"http://y.analytics.yahoo.com/fpc.pl?ywarid=3D515FB27823A7407E&a=
=3D10001310322279&js=3Dno&resp=3Dimg" width=3D"1" height=3D"1">=20

<div style=3D"color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->

</body>

<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
  <style type=3D"text/css">
  <!--
  #ygrp-mkp {
  border: 1px solid #d8d8d8;
  font-family: Arial;
  margin: 10px 0;
  padding: 0 10px;
}

#ygrp-mkp hr {
  border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
  color: #628c2a;
  font-size: 85%;
  font-weight: 700;
  line-height: 122%;
  margin: 10px 0;
}

#ygrp-mkp #ads {
  margin-bottom: 10px;
}

#ygrp-mkp .ad {
  padding: 0 0;
}

#ygrp-mkp .ad p {
  margin: 0;
}

#ygrp-mkp .ad a {
  color: #0000ff;
  text-decoration: none;
}
  #ygrp-sponsor #ygrp-lc {
  font-family: Arial;
}

#ygrp-sponsor #ygrp-lc #hd {
  margin: 10px 0px;
  font-weight: 700;
  font-size: 78%;
  line-height: 122%;
}

#ygrp-sponsor #ygrp-lc .ad {
  margin-bottom: 10px;
  padding: 0 0;
}

  #actions {
    font-family: Verdana;
    font-size: 11px;
    padding: 10px 0;
  }

  #activity {
    background-color: #e0ecee;
    float: left;
    font-family: Verdana;
    font-size: 10px;
    padding: 10px;
  }

  #activity span {
    font-weight: 700;
  }

  #activity span:first-child {
    text-transform: uppercase;
  }

  #activity span a {
    color: #5085b6;
    text-decoration: none;
  }

  #activity span span {
    color: #ff7900;
  }

  #activity span .underline {
    text-decoration: underline;
  }

  .attach {
    clear: both;
    display: table;
    font-family: Arial;
    font-size: 12px;
    padding: 10px 0;
    width: 400px;
  }

  .attach div a {
    text-decoration: none;
  }

  .attach img {
    border: none;
    padding-right: 5px;
  }

  .attach label {
    display: block;
    margin-bottom: 5px;
  }

  .attach label a {
    text-decoration: none;
  }
=20=20
  blockquote {
    margin: 0 0 0 4px;
  }

  .bold {
    font-family: Arial;
    font-size: 13px;
    font-weight: 700;
  }

  .bold a {
    text-decoration: none;
  }

  dd.last p a {
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span {
    margin-right: 10px;
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span.yshortcuts {
    margin-right: 0;
  }

  div.attach-table div div a {
    text-decoration: none;
  }

  div.attach-table {
    width: 400px;
  }

  div.file-title a, div.file-title a:active, div.file-title a:hover, div.fi=
le-title a:visited {
    text-decoration: none;
  }

  div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div=
..photo-title a:visited {
    text-decoration: none;
  }

  div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
    font-family: Verdana;
    font-size: 10px;
    font-weight: normal;
  }

  .green {
    color: #628c2a;
  }

  .MsoNormal {
    margin: 0 0 0 0;
  }

  o {
    font-size: 0;
  }

  #photos div {
    float: left;
    width: 72px;
  }

  #photos div div {
    border: 1px solid #666666;
    height: 62px;
    overflow: hidden;
    width: 62px;
  }

  #photos div label {
    color: #666666;
    font-size: 10px;
    overflow: hidden;
    text-align: center;
    white-space: nowrap;
    width: 64px;
  }

  #reco-category {
    font-size: 77%;
  }

  #reco-desc {
    font-size: 77%;
  }

  .replbq {
    margin: 4px;
  }

  #ygrp-actbar div a:first-child {
   /* border-right: 0px solid #000;*/
    margin-right: 2px;
    padding-right: 5px;
  }

  #ygrp-mlmsg {
    font-size: 13px;
    font-family: Arial, helvetica,clean, sans-serif;
    *font-size: small;
    *font: x-small;
  }

  #ygrp-mlmsg table {
    font-size: inherit;
    font: 100%;
  }

  #ygrp-mlmsg select, input, textarea {
    font: 99% Arial, Helvetica, clean, sans-serif;
  }

  #ygrp-mlmsg pre, code {
    font:115% monospace;
    *font-size:100%;
  }

  #ygrp-mlmsg * {
    line-height: 1.22em;
  }

  #ygrp-mlmsg #logo {
    padding-bottom: 10px;
  }


  #ygrp-msg p a {
    font-family: Verdana;
  }

  #ygrp-msg p#attach-count span {
    color: #1E66AE;
    font-weight: 700;
  }

  #ygrp-reco #reco-head {
    color: #ff7900;
    font-weight: 700;
  }

  #ygrp-reco {
    margin-bottom: 20px;
    padding: 0px;
  }

  #ygrp-sponsor #ov li a {
    font-size: 130%;
    text-decoration: none;
  }

  #ygrp-sponsor #ov li {
    font-size: 77%;
    list-style-type: square;
    padding: 6px 0;
  }=20

  #ygrp-sponsor #ov ul {
    margin: 0;
    padding: 0 0 0 8px;
  }

  #ygrp-text {
    font-family: Georgia;
  }

  #ygrp-text p {
    margin: 0 0 1em 0;
  }

  #ygrp-text tt {
    font-size: 120%;
  }

  #ygrp-vital ul li:last-child {
    border-right: none !important;=20
  }=20
  -->
  </style>
</head>

<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->


--------------8CF8E1EA6244C60F5AC13BE6--