Sign in Join

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

Mailing lists / lazarus / 2001-02

More Make problems

12 messages · 5 people ·

Reply by email Subscribe to this list Your subscription

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

Peter Vreman
to Marc Weustink: That means you can't tel it to use an external .ini file ? If so, I think we stick to…
Show quoted text 7 lines
>the main branch there is no manual fpcmake.ini available. The fpcmake.ini >is very dependent on the fpcmake.pp itself. That means you can't tel it to use an external .ini file ? If so, I think we stick to the old one a while, if there are some (the install path for instance)hardcoded fpc defaults.

No, it can be configured from Makefile.fpc. You can do things like:

[install]
unitdir=/opt/lazarus/0.7/units

But normally you should install the units under the lib/fpc/<version>/units dir. Just like the perl modules are all install under the /usr/lib/perl5/ subdir.

Show quoted text 9 lines
>FYI: The new version in the main branch is usable but that says >everything. It's not finished and has a lot of debug output. But it works >already better for finding dependencies for required units (currently only >working when you've the sources with Makefile.fpc, but in the future >should also work with only installed units without sources). This should >allow you to only have a >requirement on lcl that will then implicitly depend on fcl, gtk, etc. Might look at it, but we don't need much of the dependencies.

The gtk dependency, and in the future i guess also databases?

Reply by email

Peter Vreman
Show quoted text 9 lines
+ From: Peter Vreman + + It's a bug in fpcmake.ini. Here's a good [installrules] section: I fixed in another order, but the result is the same. Marc BTW, what are the procedures for me to add some changes to the fpcmake.ini.

Normally there shouldn't be any changes necessary. For the new fpcmake in the main branch there is no manual fpcmake.ini available. The fpcmake.ini is very dependent on the fpcmake.pp itself.

FYI: The new version in the main branch is usable but that says everything. It's not finished and has a lot of debug output. But it works already better for finding dependencies for required units (currently only working when you've the sources with Makefile.fpc, but in the future should also work with only installed units without sources). This should allow you to only have a requirement on lcl that will then implicitly depend on fcl, gtk, etc.

Reply by email

Marc Weustink
to Marc Weustink: That means you can't tel it to use an external .ini file ? If so, I think we stick to…
Peter Vreman wrote
No, it can be configured from Makefile.fpc. You can do things like: [install] unitdir=/opt/lazarus/0.7/units

Ahhh.....

Show quoted text 7 lines
But normally you should install the units under the lib/fpc/<version>/units dir. Just like the perl modules are all install under the /usr/lib/perl5/ subdir. > Might look at it, but we don't need much of the dependencies. The gtk dependency, and in the future i guess also databases?

There you have a point, I was thinking of unitdependencies :)

Marc

Reply by email

Peter Vreman
Show quoted text 29 lines
Greetings, Maybe some of the FPC people reading this can shed some light. I have been having problems using Make. For some reason when I am doing a make zipinstall it processes the *.ppu files correctly but when it generates the path for the *.o files it doubles up on the path so it looks like ./units/./units/*.o This of course doesn't work. I thought that was my only problem until today. I decided to move Lazarus out of the FPC tree and use FPC in installed mode. I set everything up and was going to try the zipinstall again. However I checked out the directories after doing a make clean and now discovered that the .ppu files are not being cleaned out of the lcl/units directory. When I check the clean command it appears that it is now trying to clean ./units/.units/*.ppu (where the * is the individual names) The rm for the *.o that follows the .ppu is correct. What the heck is going on. It appears to be just my system but I don't understand what is set incorrectly.

It's a bug in fpcmake.ini. Here's a good [installrules] section:

[installrules]
##################################################################### # Install rules
#####################################################################

PHONY: fpc_showinstall fpc_install

ifdef EXTRAINSTALLUNITS
override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS)) endif

ifdef INSTALLPPUFILES
ifdef PPUFILES
override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES)) override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES)))
else
override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES)) override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES)))
endif
endif

ifdef INSTALLEXEFILES
override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES)) endif

fpc_showinstall: $(SHOWINSTALLTARGET)
ifdef INSTALLEXEFILES
@$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES)) endif
ifdef INSTALLPPUFILES
@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES)) ifneq ($(INSTALLPPULINKFILES),)
@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES)) endif
ifneq ($(wildcard $(LIBFULLNAME)),)
@$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
ifdef HASSHAREDLIB
@$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
endif
endif
endif
ifdef EXTRAINSTALLFILES
@$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES)) endif

fpc_install: $(INSTALLTARGET)
# Create UnitInstallFiles
ifdef INSTALLEXEFILES
$(MKDIR) $(BININSTALLDIR)
# Compress the exes if upx is defined
ifdef UPXPROG
-$(UPXPROG) $(INSTALLEXEFILES)
endif
$(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
endif
ifdef INSTALLPPUFILES
$(MKDIR) $(UNITINSTALLDIR)
$(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
ifneq ($(INSTALLPPULINKFILES),)
$(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR) endif
ifneq ($(wildcard $(LIBFULLNAME)),)
$(MKDIR) $(LIBINSTALLDIR)
$(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
ifdef inUnix
ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
endif
endif
endif
ifdef EXTRAINSTALLFILES
$(MKDIR) $(DATAINSTALLDIR)
$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
endif

Reply by email

Marc Weustink
to Michael A. Hess: Maybe some of the FPC people reading this can shed some light. I have been having…
Michael A. Hess wrote 9 lines
again. However I checked out the directories after doing a make clean and now discovered that the .ppu files are not being cleaned out of the lcl/units directory. When I check the clean command it appears that it is now trying to clean ./units/.units/*.ppu (where the * is the individual names)

Errmmmm.... I see that as well. I have to look at it (again).

Marc

Reply by email

Jens Arm
to Peter Vreman: Normally there shouldn't be any changes necessary. For the new fpcmake in the main branch…

Hi

If you start Lazarus then do a File new unit, then move the cursor at the beginning of the line between unit and the mode statement when you do now a CTRL-Space a empty dialog appears. Now press ENTER and you get the following SegFault:

[LMCaptureChanged for TSYNBASECOMPLETIONFORM]
SetMOuseCapture TSYNBASECOMPLETIONFORM
Getting focus...
An unhandled exception occurred at 0x080F8976 :
List index exceeds bounds (0)
0x080F8976
0x00000000

An unhandled exception occurred at 0x08109EEC :
Access violation
0x08109EEC
0x2C35313A main, line 43 of lcllinux.pp
0x16C30605 main, line 43 of lcllinux.pp

[TgtkObject.Destroy] WARNING: There are 136 unreleased DCs and 527 unreleased GDIObjects
[TgtkObject.Destroy] WARNING: There are 1 messages left in the queue! I'll free them

cu Jens

Reply by email

Michael A. Hess

Greetings,

Maybe some of the FPC people reading this can shed some light. I have been having problems using Make. For some reason when I am doing a

make zipinstall

it processes the *.ppu files correctly but when it generates the path for the *.o files it doubles up on the path so it looks like

./units/./units/*.o

This of course doesn't work. I thought that was my only problem until today. I decided to move Lazarus out of the FPC tree and use FPC in installed mode. I set everything up and was going to try the zipinstall again. However I checked out the directories after doing a

make clean

and now discovered that the .ppu files are not being cleaned out of the lcl/units directory. When I check the clean command it appears that it is now trying to clean

./units/.units/*.ppu (where the * is the individual names)

The rm for the *.o that follows the .ppu is correct.

What the heck is going on. It appears to be just my system but I don't understand what is set incorrectly.

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

Reply by email

Shane Miller

Yes you do. It's working as it should except I'm not filling the "empty" box with anything yet. Once I get the code completion code done it'll work. To see it work type Form1.

and then type Ctrl-Space. Otherwise hitting enter when in an empty box will crash it.

Shane

>> 02/21/01 07:48AM >>>

Hi

If you start Lazarus then do a File new unit, then move the cursor at the beginning of the line between unit and the mode statement when you do now a CTRL-Space a empty dialog appears. Now press ENTER and you get the following SegFault:

[LMCaptureChanged for TSYNBASECOMPLETIONFORM]
SetMOuseCapture TSYNBASECOMPLETIONFORM
Getting focus...
An unhandled exception occurred at 0x080F8976 :
List index exceeds bounds (0)
0x080F8976
0x00000000

An unhandled exception occurred at 0x08109EEC :
Access violation
0x08109EEC
0x2C35313A main, line 43 of lcllinux.pp
0x16C30605 main, line 43 of lcllinux.pp

[TgtkObject.Destroy] WARNING: There are 136 unreleased DCs and 527 unreleased GDIObjects
[TgtkObject.Destroy] WARNING: There are 1 messages left in the queue! I'll free them

cu Jens

_________________________________________________________________ To unsubscribe: mail with
"unsubscribe" as the Subject
archives at http://www.miraclec.com/list_archives/lazarus

Reply by email

Michael A. Hess
to Marc Weustink: Errmmmm.... I see that as well. I have to look at it (again). Marc
Marc Weustink wrote 13 lines
At 15:35 20-02-01 -0500, Michael A. Hess wrote: >again. However I checked out the directories after doing a > > make clean > >and now discovered that the .ppu files are not being cleaned out of the >lcl/units directory. When I check the clean command it appears that it >is now trying to clean > > ./units/.units/*.ppu (where the * is the individual names) Errmmmm.... I see that as well. I have to look at it (again).

OK as I said in our other email the 'make clean' works but it is cheating. I did a log of the clean and what it is doing is calling

rm -f ./units/*.ppu {where * is all the different names} rm -f ./units/./units/*.o
rm -f ./units/*.o

The .ppu is correct but the .o based on the .ppu is still incorrect. It only works because you force the files information in the .fpc to also do the .o files.

We can force the issue by messing around but I think that the Makefile built from fpcmake really needs to be corrected or modified.

It has to do with that dang extra addprefix being placed on the PPULINKFILES. I believe it is an error. The reason that many of the FPC sections don't have a problem with it is that they are placing the units in the '.' directory. This means the line looks like

././*.o

It is strange but correct.

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

Reply by email

Marc Weustink
to Peter Vreman: Normally there shouldn't be any changes necessary. For the new fpcmake in the main branch…

At 10:45 21-02-01 +0000, Peter Vreman wrote:

Show quoted text 6 lines
> > BTW, what are the procedures for me to add some changes to the fpcmake.ini. Normally there shouldn't be any changes necessary. For the new fpcmake in the main branch there is no manual fpcmake.ini available. The fpcmake.ini is very dependent on the fpcmake.pp itself.

That means you can't tel it to use an external .ini file ?

If so, I think we stick to the old one a while, if there are some (the install path for instance)hardcoded fpc defaults.

Show quoted text 7 lines
FYI: The new version in the main branch is usable but that says everything. It's not finished and has a lot of debug output. But it works already better for finding dependencies for required units (currently only working when you've the sources with Makefile.fpc, but in the future should also work with only installed units without sources). This should allow you to only have a requirement on lcl that will then implicitly depend on fcl, gtk, etc.

Might look at it, but we don't need much of the dependencies.

Marc

Reply by email

Marc Weustink
to Marc Weustink: Errmmmm.... I see that as well. I have to look at it (again). Marc
Michael A. Hess wrote 25 lines
Marc Weustink wrote: > > At 15:35 20-02-01 -0500, Michael A. Hess wrote: > >again. However I checked out the directories after doing a > > > > make clean > > > >and now discovered that the .ppu files are not being cleaned out of the > >lcl/units directory. When I check the clean command it appears that it > >is now trying to clean > > > > ./units/.units/*.ppu (where the * is the individual names) > > Errmmmm.... I see that as well. I have to look at it (again). OK as I said in our other email the 'make clean' works but it is cheating. I did a log of the clean and what it is doing is calling rm -f ./units/*.ppu {where * is all the different names} rm -f ./units/./units/*.o rm -f ./units/*.o The .ppu is correct but the .o based on the .ppu is still incorrect. It only works because you force the files information in the .fpc to also do the .o files.

It has to do with if /usr/bin/ppufiles is installed or not. In my case it was installed and I didn't have the double path in the .o files. If I remove ppufiles I get the same problem.

I'm working now to get something workable.

Marc

Reply by email