Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2001-02

New problem compiling

15 messages · 5 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Curtis White
to Marc Weustink: I committed the new makefiles. You can create the binary tar.gz by issueing make clean…

I found the problem. The following code is missing from the FPCDIR Settings section of the lcl makefile. If I add this in, it works just fine.

ifndef PACKAGESDIR
PACKAGESDIR=$(FPCDIR)/packages
endif

This should be causing problems for everyone who is using the makefiles from CVS unless they have defined the PACKAGESDIR environment variable for some reason. Apparenly, I am the only one who has tried so far :-)

Curtis

Marc Weustink wrote 39 lines
At 09:30 17-02-01 +0000, you wrote: >It appears someone changed the Makefiles in CVS Yes, that was me. >and I can no longer compile Lazarus or the lcl. I now get the following >error when I try to compile the LCL: > >Compiling ./interfaces/gtk/gtkint.pp >gtkint.pp(32,21) Fatal: Can't find unit GTK >make: *** [allunits.ppu] Error 1 Hmm.... is the path to the gtk units still in you ppc386.cfg ? --------- part from /etc/ppc386.cfg --------------- # searchpath for units and other system dependent things -Fu/usr/lib/fpc/1.0.5/units/$target -Fu/usr/lib/fpc/1.0.5/units/$target/* -Fu/usr/lib/fpc/1.0.5/units/$target/rtl --------------------------------------------------- >For some reason, the makefile cannot find the fpc/packages/gtk directory >and files any more. >I haven't changed anything with the compiler or any >of the other packages. The only thing I have done is do a CVS update of >Lazarus. > >Does anyone know what I need to do to fix this so I can compile Lazarus >again? Check you ppc386 Marc

Reply by email

Marc Weustink
to Marc Weustink: I committed the new makefiles. You can create the binary tar.gz by issueing make clean…
Curtis White wrote 14 lines
Yes, it sure is. My paths in ppc386.cfg are: -Fu/opt/fpc/rtl/linux -Fu/opt/fpc/rtl -Fu/opt/fpc/rtl/objpas -Fu/opt/fpc/fcl/linux -Fu/opt/fpc/fcl/shedit -Fu/opt/fpc/packages/gtk -Fu/opt/fpc/lazarus/lcl/units -Fu/opt/fpc/lazarus/lcl/include -Fu/opt/fpc/lazarus/lcl/interfaces/gtk I even have some extras in there :-) But /opt/fpc/packages/gtk is in there, so it should be able to see the gtk units.

Yep

Show quoted text 8 lines
> > Check you ppc386 > I did and still don't understand why. I also checked my FPCDIR environment variable and it is set correctly: export FPCDIR=/opt/fpc

Ah, unset this.

The makefiles are made for release versions of the compiler, setting FPCDIR might cause a rebuild of the fpcunits, something that we don't want. You don't need to set FPCDIR to build lazarus (I'm not sure if you need it to build the compiler)
Let me know if it worked.

The only thing I can think of is that possibly Make is changing my paths or something. It was working before the latest changes to the Makefiles.

I added some pieces to create packages and I fized a bug with the unittargetdir. As far as I can see, they dont affect the unitdirs (where to find units)

Marc

Reply by email

Marc Weustink
to Marc Weustink: I committed the new makefiles. You can create the binary tar.gz by issueing make clean…
Curtis White wrote 7 lines
I found the problem. The following code is missing from the FPCDIR Settings section of the lcl makefile. If I add this in, it works just fine. ifndef PACKAGESDIR PACKAGESDIR=$(FPCDIR)/packages endif

You're right, they are gone. It stil doesn't make sense why the compiler needs it. If you have an installed compiler, you don't have a FPCDIR so .... you can't set it.

Maybe you should install the compiler and point the ppc386.cfg to the installed units and not to a dir with sources.
You only get these kind of errors (while building lazarus) if the compiler for some reason wants to recompile a fpc unit. This recompilation only occours when both sources and ppus are found.
The way makefiules are setup now is based upon a release compiler (wo sources). So fpc units/packages never ever should be recompiled by building lazarus.
This also count for the other dirs.

This should be causing problems for everyone who is using the makefiles from CVS unless they have defined the PACKAGESDIR environment variable for some reason. Apparenly, I am the only one who has tried so far :-)

Nope

Marc

Reply by email

Marc Weustink
to Marc Weustink: I committed the new makefiles. You can create the binary tar.gz by issueing make clean…
Curtis White wrote 18 lines
Marc Weustink wrote: > > Maybe you should install the compiler and point the ppc386.cfg to the > installed units and not to a dir with sources. > You only get these kind of errors (while building lazarus) if the compiler > for some reason wants to recompile a fpc unit. This recompilation only > occours when both sources and ppus are found. > The way makefiules are setup now is based upon a release compiler (wo > sources). So fpc units/packages never ever should be recompiled by building > lazarus. > This also count for the other dirs. > Well, I installed the fpc 1.0.5 from the Lazarus web site and it compiles the sources from CVS without any problems. So you are right that the makefiles are setup to work with the release compiler. Is it possible to setup the makefiles so that it works either way?

I can look at it.

It seems like it should work regardless of where the compiler is installed. Once the compiler guys get the 1.1 compiler fixed, some people may want to start using it to build lazarus. But the way the makefiles are currently setup, they couldn't do that.

You allways can install the compiler by doing a "make install" in the fpc dir.

Marc

Reply by email

Curtis White
to Marc Weustink: I committed the new makefiles. You can create the binary tar.gz by issueing make clean…

Oops. That same section of code is also missing from the Makefile in the components, components/synedit and components/mwedit directories. Once I add it to those makefiles, Lazarus compiles just fine.

Curtis

Marc Weustink wrote 39 lines
At 09:30 17-02-01 +0000, you wrote: >It appears someone changed the Makefiles in CVS Yes, that was me. >and I can no longer compile Lazarus or the lcl. I now get the following >error when I try to compile the LCL: > >Compiling ./interfaces/gtk/gtkint.pp >gtkint.pp(32,21) Fatal: Can't find unit GTK >make: *** [allunits.ppu] Error 1 Hmm.... is the path to the gtk units still in you ppc386.cfg ? --------- part from /etc/ppc386.cfg --------------- # searchpath for units and other system dependent things -Fu/usr/lib/fpc/1.0.5/units/$target -Fu/usr/lib/fpc/1.0.5/units/$target/* -Fu/usr/lib/fpc/1.0.5/units/$target/rtl --------------------------------------------------- >For some reason, the makefile cannot find the fpc/packages/gtk directory >and files any more. >I haven't changed anything with the compiler or any >of the other packages. The only thing I have done is do a CVS update of >Lazarus. > >Does anyone know what I need to do to fix this so I can compile Lazarus >again? Check you ppc386 Marc

Reply by email

Michael A. Hess
to Marc Weustink: I committed the new makefiles. You can create the binary tar.gz by issueing make clean…
Marc Weustink wrote
I committed the new makefiles. You can create the binary tar.gz by issueing

I don't know if I'll get to give this a test tonight (it's my birthday today ... plug plug plug) :-)

But I will get to it tomorrow at the latest. Then we can start to have nightly builds of the IDE available. It will just be for Linux to start since the Win32 version of GTK doesn't seem to be working altogether well at this point.

==== Programming my first best destiny! ==== Michael A. Hess Miracle Concepts, Inc. http://www.miraclec.com

Reply by email

Curtis White
to Marc Weustink: I committed the new makefiles. You can create the binary tar.gz by issueing make clean…

It appears someone changed the Makefiles in CVS and I can no longer compile Lazarus or the lcl. I now get the following error when I try to compile the LCL:

Compiling ./interfaces/gtk/gtkint.pp
gtkint.pp(32,21) Fatal: Can't find unit GTK
make: *** [allunits.ppu] Error 1

and I get this following error when I try to compile Lazarus:

Compiling ./interfaces/gtk/gtkint.pp
gtkint.pp(32,21) Fatal: Can't find unit GTK
make[1]: *** [allunits.ppu] Error 1
make[1]: Leaving directory `/opt/fpc/lazarus/lcl'
make: *** [lcl_all] Error 2

For some reason, the makefile cannot find the fpc/packages/gtk directory and files any more. I haven't changed anything with the compiler or any of the other packages. The only thing I have done is do a CVS update of Lazarus.

Does anyone know what I need to do to fix this so I can compile Lazarus again?

Curtis

Reply by email

Curtis White
to Marc Weustink: I committed the new makefiles. You can create the binary tar.gz by issueing make clean…
Marc Weustink wrote 11 lines
Maybe you should install the compiler and point the ppc386.cfg to the installed units and not to a dir with sources. You only get these kind of errors (while building lazarus) if the compiler for some reason wants to recompile a fpc unit. This recompilation only occours when both sources and ppus are found. The way makefiules are setup now is based upon a release compiler (wo sources). So fpc units/packages never ever should be recompiled by building lazarus. This also count for the other dirs.

Well, I installed the fpc 1.0.5 from the Lazarus web site and it compiles the sources from CVS without any problems. So you are right that the makefiles are setup to work with the release compiler.

Is it possible to setup the makefiles so that it works either way? It seems like it should work regardless of where the compiler is installed. Once the compiler guys get the 1.1 compiler fixed, some people may want to start using it to build lazarus. But the way the makefiles are currently setup, they couldn't do that.

Curtis

Reply by email

Marc Weustink

Hi,

I committed the new makefiles. You can create the binary tar.gz by issueing

make clean all zipinstall FPC_VERSION=0.7

the FPC_VERSION=0.7 at the end is maybe somewhat misleading, but it is used to create a lib/lazarus/0.7/units/ dir. I might change that to PRODUCT_VERSION in the future.

In order to get this I changed the fpcmake.ini, fixed the unittarget bug (and named it temporary lazarusmake.ini). I have to find out if I can put the changes in the fpcmake.ini so that the fpc team can use it as before and we can use it as well.
For fpcmake to work you have to export the FPCMAKEINI environment var to the lazarusmake.ini (like FPCMAKEINI=/home/marc/lazarus/tools/lazarusmake.ini) If you don't intend to change the makefile.fpc then you dont need to set it.

Installation notes:

*) Untar the archive in the dir you want (in /usr/ or /local/usr/)

*) edit the ppc386.cfg and adding the line:

-Fu/usr/lib/lazarus/0.7/units

Marc

Reply by email

Curtis White
to Marc Weustink
Marc Weustink wrote 5 lines
At 09:30 17-02-01 +0000, you wrote: >It appears someone changed the Makefiles in CVS Yes, that was me.

I just noticed that from another email you sent on Wednesday :-)

Show quoted text 20 lines
>and I can no longer compile Lazarus or the lcl. I now get the following >error when I try to compile the LCL: > >Compiling ./interfaces/gtk/gtkint.pp >gtkint.pp(32,21) Fatal: Can't find unit GTK >make: *** [allunits.ppu] Error 1 Hmm.... is the path to the gtk units still in you ppc386.cfg ? --------- part from /etc/ppc386.cfg --------------- # searchpath for units and other system dependent things -Fu/usr/lib/fpc/1.0.5/units/$target -Fu/usr/lib/fpc/1.0.5/units/$target/* -Fu/usr/lib/fpc/1.0.5/units/$target/rtl ---------------------------------------------------

Yes, it sure is. My paths in ppc386.cfg are:

-Fu/opt/fpc/rtl/linux
-Fu/opt/fpc/rtl
-Fu/opt/fpc/rtl/objpas
-Fu/opt/fpc/fcl/linux
-Fu/opt/fpc/fcl/shedit
-Fu/opt/fpc/packages/gtk
-Fu/opt/fpc/lazarus/lcl/units
-Fu/opt/fpc/lazarus/lcl/include
-Fu/opt/fpc/lazarus/lcl/interfaces/gtk

I even have some extras in there :-) But /opt/fpc/packages/gtk is in there, so it should be able to see the gtk units.

Show quoted text 12 lines
>For some reason, the makefile cannot find the fpc/packages/gtk directory >and files any more. >I haven't changed anything with the compiler or any >of the other packages. The only thing I have done is do a CVS update of >Lazarus. > >Does anyone know what I need to do to fix this so I can compile Lazarus >again? Check you ppc386

I did and still don't understand why. I also checked my FPCDIR environment variable and it is set correctly:

export FPCDIR=/opt/fpc

The only thing I can think of is that possibly Make is changing my paths or something. It was working before the latest changes to the Makefiles.

Curtis

Reply by email

Curtis White
to Marc Weustink: I committed the new makefiles. You can create the binary tar.gz by issueing make clean…
Marc Weustink wrote 13 lines
At 10:41 17-02-01 +0000, Curtis White wrote: >I found the problem. The following code is missing from the FPCDIR >Settings section of the lcl makefile. If I add this in, it works just >fine. > >ifndef PACKAGESDIR >PACKAGESDIR=$(FPCDIR)/packages >endif You're right, they are gone. It stil doesn't make sense why the compiler needs it. If you have an installed compiler, you don't have a FPCDIR so .... you can't set it.

I have been using the compiler from CVS instead of the released compiler. I tried unsetting FPCDIR and that caused even more problems. When I set it again and added the above code to those makefiles, it compiled without any problems.

Show quoted text 10 lines
Maybe you should install the compiler and point the ppc386.cfg to the installed units and not to a dir with sources. You only get these kind of errors (while building lazarus) if the compiler for some reason wants to recompile a fpc unit. This recompilation only occours when both sources and ppus are found. The way makefiules are setup now is based upon a release compiler (wo sources). So fpc units/packages never ever should be recompiled by building lazarus. This also count for the other dirs.

I will do this. It will be quite a change in mindset for me since I have been using this existing (/opt/fpc) setup for quite a long time now :-) Do the compiler guys ever make changes (bug fixes) to the FIXES_1_0_0 branch anymore? If so, then using the release version will not allow us to use those changes.

Some day we will need to get Lazarus working with the 1.1 compiler. How will we do that if the makefiles are setup for the 1.0.5 release compiler?

Maybe we should create a FIXES_1_0_0 branch for lazarus and set CVS up the same as the compiler guys have. So the main branch would be lazarus that works with the 1.1 compiler and the FIXES_1_0_0 branch would contain the current lazarus. Could this be done? How?

BTW, does anyone know why Lazarus doesn't compile with the 1.1 compiler anymore?

Curtis

Reply by email

Marc Weustink
to Marc Weustink: I committed the new makefiles. You can create the binary tar.gz by issueing make clean…
you wrote
It appears someone changed the Makefiles in CVS

Yes, that was me.

Show quoted text 6 lines
and I can no longer compile Lazarus or the lcl. I now get the following error when I try to compile the LCL: Compiling ./interfaces/gtk/gtkint.pp gtkint.pp(32,21) Fatal: Can't find unit GTK make: *** [allunits.ppu] Error 1

Hmm....

is the path to the gtk units still in you ppc386.cfg ?

--------- part from /etc/ppc386.cfg ---------------

# searchpath for units and other system dependent things -Fu/usr/lib/fpc/1.0.5/units/$target
-Fu/usr/lib/fpc/1.0.5/units/$target/*
-Fu/usr/lib/fpc/1.0.5/units/$target/rtl

---------------------------------------------------

Show quoted text 8 lines
For some reason, the makefile cannot find the fpc/packages/gtk directory and files any more. I haven't changed anything with the compiler or any of the other packages. The only thing I have done is do a CVS update of Lazarus. Does anyone know what I need to do to fix this so I can compile Lazarus again?

Check you ppc386

Marc

Reply by email

Unknown author
to Curtis White: I have been using the compiler from CVS instead of the released compiler. I tried…
Curtis White wrote 7 lines
Marc Weustink wrote: I will do this. It will be quite a change in mindset for me since I have been using this existing (/opt/fpc) setup for quite a long time now :-) Do the compiler guys ever make changes (bug fixes) to the FIXES_1_0_0 branch anymore? If so, then using the release version will not allow us to use those changes.

Bugfixes are made continually in the fixes branch.

Some day we will need to get Lazarus working with the 1.1 compiler. How will we do that if the makefiles are setup for the 1.0.5 release compiler?

The release compiler will be version 1.0.6 (odd numbers indicate a compiler under development). However, it is unknown when this will be released.

Show quoted text 5 lines
Maybe we should create a FIXES_1_0_0 branch for lazarus and set CVS up the same as the compiler guys have. So the main branch would be lazarus that works with the 1.1 compiler and the FIXES_1_0_0 branch would contain the current lazarus. Could this be done? How?

I don't think this should be necessary. Lazarus should compile "as-is" with both the fixbranch or mainbranch compiler. Nothing crucial has been changed in the compiler in this area.

BTW, does anyone know why Lazarus doesn't compile with the 1.1 compiler anymore?

I've been checking, and there must be some internal compiler error; it claims that the checksum changed for some rtl units; This is an internal compiler error; Peter or Florian should check this.

Michael.

Reply by email

Marc Weustink

Hi,

After some problems with the new makefiles I think most problems are solved now.
It should be possible to build lazarus by using a compiler build from CVS without installing (set the FPCDIR env-var) or by using an installed compiler (unset FPCDIR)
The problem with the double path is s9olved. It was caused by the absence of /usr/bin/ppufiles. In that case other parts of the Makefile were used resulting in a double path.

Marc

Reply by email