Sign in Join

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

Mailing lists / lazarus / 2001-08

fpcmake and fpc source dependency

8 messages · 3 people ·

Reply by email Subscribe to this list Your subscription

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

Peter Vreman

The reason why you need to have the fpc source tree is that when packages (rtl/fcl/paszlib/etc.) are installed for a specific target you don't have all information available for other targets. In the source tree all this information is available.

The reason why not all information is included in Package.fpc is that it will then also require that you install the units for all targets. An example is that the fcl for linux will require the inet unit, but this unit is not available in win32. So creating a Makefile with dependency on fcl that supports linux under win32 is not possible as it can't find the information for inet.

Reply by email

Michael A. Hess
to Peter Vreman: No, you can only build the Makefile for the targets you've installed. The Package.fpc is…
Peter Vreman wrote
No, you can only build the Makefile for the targets you've installed. The Package.fpc is also build only for the current target so you should be able to build a binary release using the latest fpcmake

But that is just it, I can't. I have now installed the latest binary release of the compiler that Marc created on Aug. 14. This installed the complete compiler and the latest fpcmake. This is only the binary with no sources included. He also generated all of the Package.fpc files and they are in every one of the directories. I can compile the Lazarus application just fine but when it tries to do the make zipinstall I get the following error.

/usr/bin/fpcmake -p Makefile.fpc
Processing Makefile.fpc
An unhandled exception occurred at 0x0805ED78 :
s_package_not_found rtl
0x0805ED78
0x00000000

It never gets past the above problem. I have exported FPCDIR so that fpcmake can find the files OK. Here is the fpcmake -w -v dump from the same directory.

Processing Makefile.fpc
Globals:
FPCDIR = "/usr/lib/fpc/1.0.5"
PACKAGES = "$(FPCDIR)/packages"
UNITSDIR = "$(FPCDIR)/units"
Required packages for linux: rtl rtl fcl gtk
An unhandled exception occurred at 0x0805ED78 :
s_package_not_found rtl
0x0805ED78
0x00000000

Again since I am not an fpcmake guru I don't even know where to begin to look for what is going wrong.

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

Reply by email

Michael A. Hess
to Peter Vreman: The reason why you need to have the fpc source tree is that when packages…
Peter Vreman wrote 12 lines
The reason why you need to have the fpc source tree is that when packages (rtl/fcl/paszlib/etc.) are installed for a specific target you don't have all information available for other targets. In the source tree all this information is available. The reason why not all information is included in Package.fpc is that it will then also require that you install the units for all targets. An example is that the fcl for linux will require the inet unit, but this unit is not available in win32. So creating a Makefile with dependency on fcl that supports linux under win32 is not possible as it can't find the information for inet.

So if I understand what you are saying, it is impossible to use a binary releases of the compiler. If someone wants to use 'make' with their project, as Lazarus does, and they want to package it up the only way they can do it is by having the source for the compiler as well. If that is not what you are saying please explain.

If that is what you mean then I guess I need another method of building binary releases of Lazarus. :-(

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

Reply by email

Peter Vreman
Show quoted text 22 lines
Peter Vreman wrote: > > The reason why you need to have the fpc source tree is that when > packages (rtl/fcl/paszlib/etc.) are installed for a specific target > you don't have all information available for other targets. In the > source tree all this information is available. > > The reason why not all information is included in Package.fpc is that > it will then also require that you install the units for all targets. > An example is that the fcl for linux will require the inet unit, but > this unit is not available in win32. So creating a Makefile with > dependency on fcl that supports linux under win32 is not possible as > it can't find the information for inet. So if I understand what you are saying, it is impossible to use a binary releases of the compiler. If someone wants to use 'make' with their project, as Lazarus does, and they want to package it up the only way they can do it is by having the source for the compiler as well. If that is not what you are saying please explain. If that is what you mean then I guess I need another method of building binary releases of Lazarus. :-(

No, you can only build the Makefile for the targets you've installed. The Package.fpc is also build only for the current target so you should be able to build a binary release using the latest fpcmake

Reply by email

Marc Weustink
to Michael A. Hess: So if I understand what you are saying, it is impossible to use a binary releases of the…

+ From: Michael A. Hess
+
+ So if I understand what you are saying, it is impossible to
+ use a binary releases of the compiler. If someone wants to
+ use 'make' with their project, as Lazarus does, and they
+ want to package it up the only way they can do it is by
+ having the source for the compiler as well. If that
+ is not what you are saying please explain.
+
+ If that is what you mean then I guess I need another method
+ of building binary releases of Lazarus. :-(

As far as I can see it, we don't need the sources. The problems we had last night are merely the result of the lack of Package.fpc files and a wrong fpcmake version.
True if you want to use lazarus as a package (on win32), you might need the win32 version of Package.fpc. But since the win32 entries aren't there in the linux version of Package.fpc, fpcmake isn't aware that other (win32) packages are needed and thus won't complain about it.

See it this way, packaging is nice, but we don't need it. If we deliver empty Package.fpc files everything works fine for us, as long as those files are there.

Marc

Reply by email

Peter Vreman
Show quoted text 6 lines
+ I'll to package lazarus guess the fpcmake + source in the FIXES_1_0_0 branch are not yet updated with + the latest version in from the mainbranch. That is then + easy solved by moving the tag. For fpcmake I use the mainbranch.

It is now solved. I moved the tag last sunday.

Reply by email

Peter Vreman
Show quoted text 41 lines
Peter Vreman wrote: > > No, you can only build the Makefile for the targets you've installed. > The Package.fpc is also build only for the current target so you > should be able to build a binary release using the latest fpcmake But that is just it, I can't. I have now installed the latest binary release of the compiler that Marc created on Aug. 14. This installed the complete compiler and the latest fpcmake. This is only the binary with no sources included. He also generated all of the Package.fpc files and they are in every one of the directories. I can compile the Lazarus application just fine but when it tries to do the make zipinstall I get the following error. /usr/bin/fpcmake -p Makefile.fpc Processing Makefile.fpc An unhandled exception occurred at 0x0805ED78 : s_package_not_found rtl 0x0805ED78 0x00000000 It never gets past the above problem. I have exported FPCDIR so that fpcmake can find the files OK. Here is the fpcmake -w -v dump from the same directory. Processing Makefile.fpc Globals: FPCDIR = "/usr/lib/fpc/1.0.5" PACKAGES = "$(FPCDIR)/packages" UNITSDIR = "$(FPCDIR)/units" Required packages for linux: rtl rtl fcl gtk An unhandled exception occurred at 0x0805ED78 : s_package_not_found rtl 0x0805ED78 0x00000000 Again since I am not an fpcmake guru I don't even know where to begin to look for what is going wrong.

I'll to package lazarus guess the fpcmake source in the FIXES_1_0_0 branch are not yet updated with the latest version in from the mainbranch. That is then easy solved by moving the tag.

Reply by email

Marc Weustink
to Peter Vreman

+ From: Peter Vreman
+
+ I'll to package lazarus guess the fpcmake
+ source in the FIXES_1_0_0 branch are not yet updated with
+ the latest version in from the mainbranch. That is then
+ easy solved by moving the tag.

For fpcmake I use the mainbranch.

Marc

Reply by email