YAM Development (#4) - Can't compile nightly builds under OS4 (#120) - Message List

Can't compile nightly builds under OS4
 unsolved

Hi, just downloaded latest YAM source trunk and try to compile under os4.

Seems problem is with Object * VARARGS68K YAM_NewObject(CONST_STRPTR className, …);

Aftr "fixing" some minor problems (some headers have an unwanted alone '*' character in headers). I always get stuck with 'YAM.c'. At first sight it seemed that those alone '*' character (and indeed it had one in line 55), but no luck, it always says/outputs:

#gmake OS=os4 debug= buildid=20150725 gmake[1]: Entering directory `/RAM Disk/trunk/src'

CC YAM.c

In file included from Config.h:40,

from YAM.c:104:

mui/TransferWindow.h:35: error: expected identifier or '(' before 'Object' gmake[1]: * [.obj_os4/YAM.o] Error 1

someone have any clue what problem can be?

/***************************************************************************
 YAM - Yet Another Mailer
 Copyright (C) 1995-2000 Marcel Beck
 Copyright (C) 2000-2015 YAM Open Source Team
 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 of the License, 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, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 YAM Official Support Site :  http://www.yam.ch/
 YAM OpenSource project    :  http://sourceforge.net/projects/yamos/
***************************************************************************/
/* This file is automatically generated with GenClasses - PLEASE DO NOT EDIT!!! */
#ifndef MUI_TRANSFERWINDOW_H
#define MUI_TRANSFERWINDOW_H 1
#ifndef SDI_COMPILER_H
  #include "SDI_compiler.h"
#endif
Object * VARARGS68K YAM_NewObject(CONST_STRPTR className, ...);
#define MUIC_TransferWindow "YAM_TransferWindow"
#define TransferWindowObject YAM_NewObject(MUIC_TransferWindow
#define MUIM_TransferWindow_CreateTransferControlGroup 0x80004400
#define MUIM_TransferWindow_DeleteTransferControlGroup 0x80004401
#define MUIA_TransferWindow_NumberOfControlGroups      0x80004402
/* Exported text */
enum TransferWindowMode
{
  TWM_HIDE = 0,
  TWM_AUTO,
  TWM_SHOW
};
struct MUIP_TransferWindow_CreateTransferControlGroup
{
  ULONG methodID;
  const char *title;
};
struct MUIP_TransferWindow_DeleteTransferControlGroup
{
  ULONG methodID;
  Object *group;
};
#endif /* MUI_TRANSFERWINDOW_H */

TIA

  • Message #428

    #gmake OS=os4 debug= buildid=20150725 gmake[1]: Entering directory `/RAM Disk/trunk/src'

    I never had any problems building YAM natively on AmigaOS4. Perhaps the path is the problem, especially the space in "RAM Disk". Better try it again in a path without space.

    But even if you finally manage to build YAM on AmigaOS4 the result will be disappointing more sooner than later. The reason is that latest available version of flex for AmigaOS to generate the mail parser is too old and generates wrong code. It will crash on certain mails. Unfortunately it is not possible to build the latest flex on AmigaOS due to the massive use of the dreaded fork() function. I worked around this limitation by building YAM on a Unix box and copying the generated source to my µA1 to let the build process skip them. That way YAM can be built on AmigaOS as well. I will include the generated files for this purpose in the SVN repository.

    • Message #429

      Seems it was problem of another alone '*' character on other header file. :-/

      Comping going fine little by little.

      THX about the FLEX problem. Will post here how build goes on my SAM460 :-)

      • Message #430

        Compiling done!!! Seems were some '*' characters left on headers, after removing them no problems building YAM :-)

        It creates YAM.os4 (and .debug) builds ok, but then when using it I get a crashlog/GR, maybe due to flex problem you wrote.

        Anyway, thx a lot.

        • Message #431

          Compiling done!!!

          Congratulations!

          Seems were some '*' characters left on headers, after removing them no problems building YAM :-)

          Which files exactly did you modify? It is really strange that you had to fix anything at all. For me everything always worked fine out of the box.

          It creates YAM.os4 (and .debug) builds ok, but then when using it I get a crashlog/GR, maybe due to flex problem you wrote.

          If you update your working copy you will get a directory named "generated" which contains the two generated files from a Unix box. Copy these to the parent directory and build YAM again. Then you will get a working binary, even without a recent flex version.

          • Message #432

            Will rebuild from scratch and note which header files need "retouching" (here on my system/machine). It takes here ~1h on my SAM460ex.

            Thse headers (.h) are autogenerated first time no? Maybe is some kind of FileSystem problem, will test it with RAM/SFS/NG..

            Will try hose 2 new generated files with "old" trunk_8331 and see what happens. Downloaded trunk_8332 too and willt est it too.

          • Message #433

            Compiling done!!!

            Congratulations!

            Seems were some '*' characters left on headers, after removing them no problems building YAM :-)

            Which files exactly did you modify? It is really strange that you had to fix anything at all. For me everything always worked fine out of the box.

            CC YAM.c

            gcc -MM -MP -MT '.obj_os4/YAM.o' -MF .dep_os4/YAM.d -I. -I./include -mcpu=powerpc -mstrict-align -W -Wall -Wwrite-strings -Wpointer-arith -Wsign-compare -Wdeclaration-after-statement -Wdisabled-optimization -Wshadow -O3 -fomit-frame-pointer -fno-strict-aliasing -DDEBUG -fno-omit-frame-pointer -g -gstabs -N -mcrt=newlib -DUSE_INLINE -DNEW_TIMEVAL_DEFINITION_USED -DCoerceMethod=ICoerceMethod -DDoMethod=IDoMethod -DDoSuperMethod=IDoSuperMethod -DDoSuperMethodA=IDoSuperMethodA -Wa,-mregnames -DDEVWARNING rx "say '-DEXPDATE=' || date(I)+31" YAM.c In file included from YAM.c:92: mui/AddressBookWindow.h:91: error: expected identifier or '(' before 'struct' In file included from YAM.c:93: mui/MainFolderListtree.h:40: error: expected identifier or '(' before 'Object' mui/MainFolderListtree.h:62: error: expected identifier or '(' before 'struct' In file included from YAM.c:94: mui/MainWindow.h:40: error: expected identifier or '(' before 'Object' In file included from YAM.c:95: mui/QuickSearchBar.h:40: error: expected identifier or '(' before 'Object' mui/QuickSearchBar.h:74: error: expected identifier or '(' before 'struct' In file included from YAM.c:96: mui/SplashWindow.h:40: error: expected identifier or '(' before 'Object' In file included from mui/YAMApplication.h:40,

            from YAM.c:99:

            ./mui/PreselectionWindow.h:61: error: expected identifier or '(' before 'struct' In file included from YAM.c:99: mui/YAMApplication.h:43: error: expected identifier or '(' before 'Object' In file included from Config.h:40,

            from YAM.c:104:

            mui/TransferWindow.h:35: error: expected identifier or '(' before 'Object' mui/TransferWindow.h:55: error: expected identifier or '(' before 'struct' gmake[1]: * [.obj_os4/YAM.o] Error 1 gmake[1]: Leaving directory `/SDH6/yam/trunk/src' gmake: * [src] Error 2

            All those headers are suspected to have the '*' character. Seems this step is suspected to create (on my system) those headers with "extra" '*' charachter on headers: #gmake OS=os4 gmake[1]: Entering directory `/SDH6/yam/trunk/src'

            GN GenClasses GN svnrev.h

            ./tools/svnrev/svnrev -osvnrev.h *.c *.h *.l ./mui/*.c ./rexx/*.c ./mime/*.c ./mime/*.h ./tcp/*.c ./tcp/*.h ./extrasrc/*.c ./extrasrc/*.h ./../locale/*.pot ./../locale/*.po

            Tried from RAM: and I get the same problem, maybe is due of this line:

            LD svnrev

            gmake[1]: Leaving directory `/RAM Disk/trunk/src/tools/svnrev'

            GN svnrev.h

            Warning: this is a working copy for Subversion 1.7, but this version of SvnRev was built without version 1.7 support. Warning: this is a working copy for Subversion 1.7, but this version of SvnRev was built without version 1.7 support

            … How can I get rid of such warning?

            TIA

            • Message #434
                 CC YAM.c
               gcc -MM -MP -MT '.obj_os4/YAM.o' -MF .dep_os4/YAM.d -I. -I./include -mcpu=powerpc -mstrict-align -W -Wall -Wwrite-strings -Wpointer-arith -Wsign-compare  -Wdeclaration-after-statement -Wdisabled-optimization -Wshadow -O3 -fomit-frame-pointer -fno-strict-aliasing -DDEBUG -fno-omit-frame-pointer  -g -gstabs -N -mcrt=newlib -D__USE_INLINE__ -D__NEW_TIMEVAL_DEFINITION_USED__ -DCoerceMethod=ICoerceMethod -DDoMethod=IDoMethod -DDoSuperMethod=IDoSuperMethod -DDoSuperMethodA=IDoSuperMethodA -Wa,-mregnames -DDEVWARNING `rx "say '-DEXPDATE=' || date(I)+31"` YAM.c
               In file included from YAM.c:92:
               mui/AddressBookWindow.h:91: error: expected identifier or '(' before 'struct'
              

              […]

              Tried from RAM: and I get the same problem, maybe is due of this line:

                 LD svnrev
               gmake[1]: Leaving directory `/RAM Disk/trunk/src/tools/svnrev'
                 GN svnrev.h
               	Warning: this is a working copy for Subversion 1.7, but this version of > SvnRev was built without version 1.7 support.
               	Warning: this is a working copy for Subversion 1.7, but this version of > SvnRev was built without version 1.7 support
              

              How can I get rid of such warning?

              Is it possible that you did the checkout on a Windows or Unix machine and then moved over the working copy to your Amiga? Otherwise it is impossible to get such a warning. The native SVN client for AmigaOS is definitely older than 1.7, IIRC it is 1.1. Subversion 1.7 introduced a new database format which the old 1.1 client cannot read anymore. So better do a "native" checkout to get a working copy instead of moving it around between different machines.

              With this new information the above error message get a completely different cause. I'd say you did the checkout on a Windows machine. All the source files in the repository have the "svn:eol-style" property set to "native". For Windows this means CR+LR at the end of each line, but for AmigaOS and Unix this means LF only. Most probably the automatically generated code is now a mixture of CR+LF and LF and this is what the compiler stumbles over.

              So either convert all source files to have LF only as line ending instead of CR+LF, or better do the checkout natively on AmigaOS.

              • Message #435

                I download the trunk archive using the ZIP ARCHIVE button on yam.ch at bottom of such page:

                Download in other formats: Zip Archive

                And points to: http://yam.ch/browser/trunk?rev=8332&format=zip

                Will do a svn/checkout and see if it solves, maybe you're right and is some kind of LF/CR problem.

                • Message #436

                  I download the trunk archive using the ZIP ARCHIVE button on yam.ch at bottom of such page:

                  The archive definitely contains the source with CR+LF line ending. I'll ask Jens if he can change this.

              • Message #437

                BTW: the svnrev tool definitely needs a normal SVN working copy, because it tries to obtain the latest SVN revision from there. The source archive contains the plain exported source code only without any SVN meta data.

Attachments

No attachments created.