David,

with my latest changes I can build harbour on OS/2 using GCC and make (even 
make -j n works).

Maurilio.


>  >> Przemek, Viktor, Maurilio:
>  >>
>  >> As make381-os2 show problems (limits) and incompatibility with
>  >> make381-windows (and perhaps Linux), there are some way to use
>  >> ANOTHER make system in OS/2 ?
>  >> Reading docs of Watcom I found wmake.exe, based in GNU make but with
>  >> some differences specified in docs
>  >> I tried to use it to build Harbour and raised errors not described
>  >> in differences
>
>  >No, sorry. I'd certainly not want to reintroduce a parallel (non-GNU)
>  >make system for OS/2 after having spent a year getting rid of them
>  >for Windows (and all the permanent double work with them).
>
>  >Probably it would be better to find a GNU Make build for OS/2 which
>  >works well, or trying to work around the bugs which it has under
>  >OS/2. I don't exactly see what are these though, can't find any lines
>  >like "for %i in ( *.obj ) do @echo -+%i >> __lib__.tmp" in current SVN.
>
>  >[ It'd recommend to make tests using latest SVN, as changes are made
>  >regularly in the GNU Make process. Also, confirmed pending patches
>  >should better be uploaded to SVN, as currently it's very difficult to
>  >track what is the tested codebase. The only slight problem I see with
>  >these watcom patches, is that it's not too clean and for cross-
>  >compilation
>  >it would have to be added to all watcom.cf files, just to make OS/2
>  >happy. ]
>
>  >It should also be noted that our GNU Make process uses shell specific
>  >rules and parts, and some other OS specific tricks so maybe not GNU
>  >Make itself should be blamed for some problems you're seeing.
>
>  >It may also be an option to use the DOS build of GNU Make under OS/2.
>  >I don't know to what extent OS/2 is compatible with DOS exes, but it's
>  >worth a check.
>
> Viktor:
>
> The short history is:
> I have years building Harbour under OS/2 using os2make376. In February 
> 2008 Przemek added changes to "make process" not supported by
> os2make376. I checked some versions of os2make381 and all of them show 
> problems. Przemek reversed his changes.
> Until December 2008 os2make376 was able to build Harbour using gcc335
> and Watcom 1.7a
> This year you changed make process and in meantime some workarounds for
> OS/2-os2make376 were left off. Now Harbour under OS/2 does not build
> with os2make376 and partially build with os2make381
> We are currently discarding os2make376 and forcing to use os2make381,
> and trying to find why and how to apply workarounds
>
> Line "for %i in ( *.obj ) do @echo -+%i >> __lib__.tmp" are not in SVN 
> because is part of "local tests" to find solutions
> I have reported many of these issues in my previous messages and Przemek
> has explained many of the reasons also.
> "install" and "clean" stages show a lot of errors. At this moment we are
> trying to get a complete build of Harbour with workarounds and without 
> problems. Then we can concentrate in "install" and "clean"
>
> Przemek has been working deeply to find right workarounds. He knows much
> better than me what are the problems and how to clean them
> My tests in real OS/2 environment show the results and I contribute to 
> clarify problems and propose alternatives
> There were the cases with gcc335 build, OpenWatcom 1.8 build, os2->win 
> cross build and win->os2 cross build. Each of them show different
> problems with os2make381
> And additionally, differences between os2make381 and winmake381
>
> Przemek explained some days ago:
>
>   >Yes and it's a bug in OS2 GNU make port we are exploiting from time to
>   >time.
>   >If we find some acceptable solution the we will use it. If not we will
>   >have to return to the:
>   >   for %i in ( *$(OBJ_EXT) ) do @echo ... >> __lib__.tmp
>   >trick and add some hack to protect against adding hbpp.obj to library.
>
> I do not know if Maurilio has done test with OpenWatcom 1.8, native and
> cross build. If so then he can see problems, some of them faced with gcc
> version
>
> My proposal was simple:
>
> If os2make381 have problems, and wmake.exe (OpenWatcom) with some
> adjustments can do same process as os2make381, then we can discard
> os2make381 and to use wmake.exe
> As you can see is not to introduce a parallel make process. Is to use
> same structure of current GNUmake with proper adjustments
>
> Below are some parts of Watcom Tools Guide related to wmake
>
>
> David Macias
>
>
>
> ---------------
> Some readers will be quite familiar with the concepts of the Make file 
> maintenance tool. Open Watcom Make is patterned after the Make utility 
> found on UNIX systems. The next major section is simply intended to
> summarize, for reference purposes only, the syntax and options of Make's
> command line and special macros. Subsequent sections go into the
> philosophy and capabilities of Open Watcom Make. If you are not familiar
> with the capabilities of the Make utility, we recommend that you skip to
> the next major section entitled "Dependency Declarations" and read on.
> ---------------
>
> Open Watcom Make was originally based on the UNIX Make utility. The PC's
> operating environment presents a base of users which may or may not be 
> familiar with the UNIX operating system. Make is designed to be a PC
> product with some UNIX compatibility. The line continuation in UNIX Make
> is a backslash ("\") at the end of the line. The backslash ("\") is used
> by the operating system for directory specifications and as such will be
> confused with line continuation. For example, you could type:
>
>
>      cd \
>
> along with other commands ... and get unexpected results. However, if
> your makefile does not contain path separator characters ("\") and you 
> wish to use "\" as a line continuation indicator then you can use the
> Make "u" (UNIX compatibility mode) option.
>
> Also, in the UNIX operating system there is no concept of file
> extensions, only the concept of a file suffix. Make will accept the UNIX
> Make directive .SUFFIXES for compatibility with UNIX makefiles. The UNIX
> compatible special macros supported are:
>
> Macro
> Expansion
>
> $@
> full name of the target
>
> $*
> target with the extension removed
>
> $<
> list of all dependents
>
> $?
> list of dependents that are younger than the target
>
> The extra checking of makefiles done by Make will require modifications
> to UNIX makefiles. The UNIX Make utility does not check for the
> existence of targets after the associated command list is executed so
> the "c" or the .NOCHECK directive should be used to disable this
> checking. The lack of a command list to update a target is ignored by
> the UNIX Make utility but Open Watcom Make requires the special internal
> command %null to specify a null command list. In summary, Make supports
> many of the features of the UNIX Make utility but is not 100% compatible.
> ---------------
>
> _______________________________________________
> Harbour mailing list
> [email protected]
> http://lists.harbour-project.org/mailman/listinfo/harbour
>

_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to