[lazarus] More details about Win32 makefile and makefile.fpc problems

Peter Vreman peter at freepascal.org
Sun Jan 27 14:48:19 EST 2002


At 16:57 27-1-02, you wrote:
>Peter Vreman wrote:
> >
> > > There will be times when it will repeat
> > > the whole -gl -Fu..... -Fi..... -d386 sequence 3 times
> >
> > This is a bug. If you know how i can reproduce this i can look at it.
>
>Here is a dump from the compile itself. As you can see it is very long
>and convoluted.  {I have edited onto separate lines for readability.
>
>
>MAKE.EXE[4]: Entering directory `C:/opt/lazarus/lcl/interfaces/win32'
>C:/PP/BIN/WIN32/ppc386.exe -dSUPPORTS_RESOURCES
>    -gl
>    -Fu.
>    -Fu./lcl/units
>    -Fu./lcl/units/win32
>    -Fu./components/units
>    -Fu./designer
>    -Fu./debugger
>    -Fuc:/pp/units/win32/rtl
>    -Fuc:/pp/units/win32/paszlib
>    -Fuc:/pp/units/win32/fcl
>    -Fuc:/pp/units/win32/gtk
>    -Fuc:/pp/units/win32/regexpr -Fuc:/pp/units/win32/mysql
>    -Fuc:/pp/units/win32/ibase
>    -Fuc:/pp/units/win32/opengl
>    -Fi.
>    -Fi./include
>    -Fi./include/win32
>    -di386
>    -gl
>    -Fu./units
>    -Fu./interfaces/abstract
>    -Fuc:/pp/units/win32/rtl
>    -Fi./include
>    -FU./units
>    -di386
>    -di386
>    -gl
>    -S2
>    -Sh
>    -Fu../../units/win32
>    -Fu../../units
>    -Fuc:/pp/units/win32/rtl
>    -Fuc:/pp/units/win32/paszlib
>    -Fuc:/pp/units/win32/fcl
>    -Fuc:/pp/units/win32/mysql
>    -Fuc:/pp/units/win32/ibase
>    -Fi.
>    -FU../../units/win32
>    -di386
>    -gl
>    -S2
>    -Sh
>    -Fu../../units/win32
>    -Fu../../units
>    -Fuc:/pp/units/win32/rtl
>    -Fuc:/pp/units/win32/paszlib
>    -Fuc:/pp/units/win32/fcl
>    -Fuc:/pp/units/win32/mysql
>    -Fuc:/pp/units/win32/ibase
>    -Fi.
>    -FU../../units/win32
>    -di386
>    interfaces.pp
>
>MAKE.EXE[4]: Leaving directory `C:/opt/lazarus/lcl/interfaces/win32'
>
>It appears to be remembering and using previous Make level settings as
>it goes down in the tree. Again if you call 'make' from the top level of
>Lazarus on Win32 this is what happens. At least for me.  :-)
>
> > >Now if I go to the top level and do a 'make ide' it works and doesn't
> > > complain about the synedit file.???????  :-\  :-\
>
>I have sorted this out to some extent by using -va during the compile.
>The problem seems to rise out of the fact that Lazarus has a file called
>'register.pp' AND the fcl has a file call 'register'. Now I didn't look
>real deep but I am guessing because of the above weirdness with the
>'make' call it is finding different 'registry' files at different times
>during the compile.

I'm currently looking at the Makefiles for win32. I hope to finish it 
tonight. When everything works i'll commit the working versions. The 
fpcmake changes i wrote about are already finished and working under linux. 
Only testing them under win32 still needs to be done.


>As to the windres not building issue. I made sure I had the latest
>version of make.exe and it didn't act any differently. Here is the exact
>output from a make call when lazarus.res does not exist. The same
>command made outside of the make environment works just fine. {line
>breaks added to make it more readable}
>
>
>windres -i lazarus.rc -o lazarus.res
>
>GCC.EXE: installation problem, cannot exec 'cpp': No such file or
>directory
>
>windres: no resources
>
>MAKE.EXE[1]: *** [lazarus.res] Error 1

windres requires the preprocessor from gcc, any cpp.exe would be enough. 
It's a known problem. The best case would to have a resource compiler not 
depending on other executables.


Peter






More information about the Lazarus mailing list