Sign in Join

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

Mailing lists / fpc-pascal / 2006-04

FPC on NetBSD (i386)

17 messages · 3 people · –

Reply by email Subscribe to this list Your subscription

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

Adrian Maier

Hello ,

NetBSD is not on fpc's list of supported operating systems, although there is an older version available (1.0.10) which works fine, at least for my purposes.

I've tried to compile the latest sources (svn), but :

system.pp(23,6) Error: Illegal unit name: SYSTEM
systemh.inc(26,4) Fatal: User defined: You need at least FPC 2.0.0

My questions are:
- is there interest in having a fpc binary package for NetBSD ? I would be glad to dig in this direction.

- could someone give me some hints about how to compile freepascal ? I am assuming that i should build some intermediary versions of fpc (step by step from one version to a newer one) . Which is the newset fpc that can be compiled
by fpc 1.0.10?
(or should i better consider cross compiling it from linux ?)

Cheers,
Adrian Maier

Jonas Maebe
to Adrian Maier
Adrian Maier wrote 10 lines
NetBSD is not on fpc's list of supported operating systems, although there is an older version available (1.0.10) which works fine, at least for my purposes. I've tried to compile the latest sources (svn), but : system.pp(23,6) Error: Illegal unit name: SYSTEM systemh.inc(26,4) Fatal: User defined: You need at least FPC 2.0.0

Yes, the current svn version requires minimally 2.0 as starting version.

My questions are: - is there interest in having a fpc binary package for NetBSD ? I would be glad to dig in this direction.

If you provide patches to get the NetBSD port back up to speed, we'll happily integrate them. And if you can provide a binary package, we'll gladly put it on the ftp site.

Show quoted text 6 lines
- could someone give me some hints about how to compile freepascal ? I am assuming that i should build some intermediary versions of fpc (step by step from one version to a newer one) . Which is the newset fpc that can be compiled by fpc 1.0.10?

FPC 2.0.

(or should i better consider cross compiling it from linux ?)

It depends. If you get 2.0 running, there's probably not that much you have to change to your patches to get 2.0.2 and 2.1.1 running as wel. The downside is that you have to download the 2.0 sources. The upside is that you don't have to mess with cross binutils etc.

Jonas

Marco van de Voort
to Adrian Maier: NetBSD is not on fpc's list of supported operating systems, although there is an older…
NetBSD is not on fpc's list of supported operating systems, although there is an older version available (1.0.10) which works fine, at least for my purposes.

Currently there is none. 1.9.2 had NetBSD/macppc support for a while, but it wasn't maintained.

I've tried to compile the latest sources (svn), but :

(as jonas already said, for current CVS you need 2.0 as starting compiler)

My questions are: - is there interest in having a fpc binary package for NetBSD ? I would be glad to dig in this direction.

Sure, but keep in mind that the _port_ must be done. It is more than a mere (cross)compile.

Show quoted text 5 lines
- could someone give me some hints about how to compile freepascal ? I am assuming that i should build some intermediary versions of fpc (step by step from one version to a newer one) . Which is the newset fpc that can be compiled by fpc 1.0.10?

2.0, but it doesn't have a functioning NetBSD rtl.

The problem with NetBSD and OpenBSD was that usage was near zero, and maintaining installations was more work than that I actually invested in the port, specially now that I also have Linux and FreeBSD 64-bit installs on the same machine.

Maybe in the mid-long term with XEN this will become less of a problem. I quickly looked into this, but currently the problem seems to be that Linux aims for Xen3 support, and the BSDs for Xen2.

Adrian Maier
to Jonas Maebe: Yes, the current svn version requires minimally 2.0 as starting version. If you provide…
Jonas Maebe wrote 5 lines
It depends. If you get 2.0 running, there's probably not that much you have to change to your patches to get 2.0.2 and 2.1.1 running as wel. The downside is that you have to download the 2.0 sources. The upside is that you don't have to mess with cross binutils etc.

Ok. I'll try to get 2.0.0 working, but i'll certainly need some guidance at the beginning.

I downloaded the release_2_0_0 from svn , and i am now trying to compile rtl using the fpc 1.0.10 .

1. cd rtl/netbsd
2. gmake
[...]

/usr/local/bin/ppc386 -dUNIX -Fi../inc -Fi../i386 -Fi../unix -Fi../bsd -Fi../bsd/i386 -Fi../netbsd/i386 -FE. -FU../../rtl/units/i386-netbsd -di386 ../bsd/system.pp
Compiling ../bsd/system.pp
system.pp(24,21) Error: Illegal unit name: SYSBSD
system.pp(24,21) Warning: Compiling the system unit requires the -Us switch

3. I've modified in bsd/system.pp  the line :
  Unit {$ifdef VER1_0}SysBSD{$else}System{$endif};
to :
  Unit System;
  Is this correct ?
  Then I ran ppc386 manually (and added the -Us switch)  :

/usr/local/bin/ppc386 -dUNIX -Fi../inc -Fi../i386 -Fi../unix -Fi../bsd -Fi../bsd/i386 -Fi../netbsd/i386 -FE. -FU../../rtl/units/i386-netbsd -di386 -Us ../bsd/system.pp

4. Ran gmake again , but when building the baseunix unit it is missing some files:
$(BSDINC)/bunxtype.inc
$(BSDINC)/ctypes.inc
$(BSDINC)/bunxmain.inc
$(BSDINC)/bunxfunc.inc
$(BSDINC)/ossysch.inc
$(BSDINC)/bunxmacr.inc

I have noticed that in freebsd/Makefile these files are not referred .

This is the progress so far.

Adrian Maier

Adrian Maier
to Adrian Maier

( i'm re-posting. My answer got rejected bacause gmail's smtp is blacklisted as spam *again* . very annoying )

Jonas Maebe wrote 5 lines
It depends. If you get 2.0 running, there's probably not that much you have to change to your patches to get 2.0.2 and 2.1.1 running as wel. The downside is that you have to download the 2.0 sources. The upside is that you don't have to mess with cross binutils etc.

Ok. I'll try to get 2.0.0 working, but i'll certainly need some guidance at the beginning.

I downloaded the release_2_0_0 from svn , and i am now trying to compile rtl using the fpc 1.0.10 .

1. cd rtl/netbsd
2. gmake
[...]

/usr/local/bin/ppc386 -dUNIX -Fi../inc -Fi../i386 -Fi../unix -Fi../bsd -Fi../bsd/i386 -Fi../netbsd/i386 -FE. -FU../../rtl/units/i386-netbsd -di386 ../bsd/system.pp
Compiling ../bsd/system.pp
system.pp(24,21) Error: Illegal unit name: SYSBSD
system.pp(24,21) Warning: Compiling the system unit requires the -Us switch

3. I've modified in bsd/system.pp  the line :
  Unit {$ifdef VER1_0}SysBSD{$else}System{$endif};
to :
  Unit System;
  Is this correct ?
  Then I ran ppc386 manually (and added the -Us switch)  :

/usr/local/bin/ppc386 -dUNIX -Fi../inc -Fi../i386 -Fi../unix -Fi../bsd -Fi../bsd/i386 -Fi../netbsd/i386 -FE. -FU../../rtl/units/i386-netbsd -di386 -Us ../bsd/system.pp

4. Ran gmake again , but when building the baseunix unit it is missing some files:
$(BSDINC)/bunxtype.inc
$(BSDINC)/ctypes.inc
$(BSDINC)/bunxmain.inc
$(BSDINC)/bunxfunc.inc
$(BSDINC)/ossysch.inc
$(BSDINC)/bunxmacr.inc

I have noticed that in freebsd/Makefile these files are not referred .

This is the progress so far.

Adrian Maier

Marco van de Voort
to Adrian Maier
Show quoted text 7 lines
> It depends. If you get 2.0 running, there's probably not that much > you have to change to your patches to get 2.0.2 and 2.1.1 running as > wel. The downside is that you have to download the 2.0 sources. The > upside is that you don't have to mess with cross binutils etc. Ok. I'll try to get 2.0.0 working, but i'll certainly need some guidance at the beginning.

Personally I'd work on crosscompiling 2.x to NetBSD, and not attempt 1.0.x->2.0.0 re-bootstrapping.

Otherwise you are wasting time on making temporary workarounds for this bootstrap, that are not necessary anymore after a 2.0 is available.

Marco van de Voort
to Adrian Maier: ( i'm re-posting. My answer got rejected bacause gmail's smtp is blacklisted as spam…
Show quoted text 11 lines
-Fi../bsd/i386 -Fi../netbsd/i386 -FE. -FU../../rtl/units/i386-netbsd -di386 -Us ../bsd/system.pp 4. Ran gmake again , but when building the baseunix unit it is missing some files: $(BSDINC)/bunxtype.inc $(BSDINC)/ctypes.inc $(BSDINC)/bunxmain.inc $(BSDINC)/bunxfunc.inc $(BSDINC)/ossysch.inc $(BSDINC)/bunxmacr.inc

These files may have moved or renamed. Note again that it is not just a compile-on-NetBSD job. Roughly all post 1.9.2 changes to the 1.1.x/1.9.x/2.0.x branch must be applied and enhanced for NetBSD, and the 1.9.2 port was already only basic. This is well over an years mutations.

IMHO the best way to start is to take the FreeBSD rtl, and start porting it, occasionally looking at the current versions in the NetBSD/ dir for clues if you get stuck or something isn't working, specially for the implementation of syscalls and similar stuff.

The usual pain points are:
- the calls that return or pass 64-bit values (off_t)
- the signal to exception handling
- the assembler startup code.

The good point is that 2.0.x shared a _lot_ more code between Unix platforms, _and_ has an additional sharing between the BSDs (Open,Net,FreeBSD + FreeBSD derivatives like Darwin and DragonFly)

Jonas Maebe
to Adrian Maier: Ok. I'll try to get 2.0.0 working, but i'll certainly need some guidance at the beginning.
Adrian Maier wrote
Ok. I'll try to get 2.0.0 working, but i'll certainly need some guidance at the beginning.

Of course.

Show quoted text 14 lines
I downloaded the release_2_0_0 from svn , and i am now trying to compile rtl using the fpc 1.0.10 . 1. cd rtl/netbsd 2. gmake [...] /usr/local/bin/ppc386 -dUNIX -Fi../inc -Fi../i386 -Fi../unix -Fi../bsd -Fi../bsd/i386 -Fi../netbsd/i386 -FE. -FU../../rtl/units/i386-netbsd -di386 ../bsd/system.pp Compiling ../bsd/system.pp system.pp(24,21) Error: Illegal unit name: SYSBSD system.pp(24,21) Warning: Compiling the system unit requires the - Us switch

This is quite strange. The 2.0.0 netbsd Makefile contains:

$(SYSTEMUNIT)$(PPUEXT) : $(BSDINC)/$(SYSTEMUNIT).pp sysconst.inc systypes.inc sy
scalls.inc $(SYSDEPS)
$(COMPILER) -Us -Sg $(BSDINC)/$(SYSTEMUNIT).pp

I.e., it does specify -Us

Show quoted text 6 lines
3. I've modified in bsd/system.pp the line : Unit {$ifdef VER1_0}SysBSD{$else}System{$endif}; to : Unit System; Is this correct ?

At some time, we switched from platform-specific system unit names to "system" for all platforms. Afaik that was when switching from 1.x to 2.x, so normally 1.x should still require sysbsd.

The Makefile contains this:

ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
SYSTEMUNIT=system
LINUXUNIT=
PRT0=prt0
else
SYSTEMUNIT=sysbsd
LINUXUNIT=
override FPCOPT+=-dUNIX
PRT0=prt0_10
endif

So normally it should try to compile sysbsd.pp and not system.pp (rtl/ bsd/sysbsd.pp simply includes the contents of rtl/bsd/system.pp, but a unit file called "system.pp" cannot have the unit name "sysbsd"). Is your /usr/local/bin/ppc386 a version 1.0.10 compiler? What does "/ usr/local/bin/ppc386 -iV" show? And what does "gmake info" show? (when run in the rtl/netbsd directory)

Show quoted text 19 lines
Then I ran ppc386 manually (and added the -Us switch) : /usr/local/bin/ppc386 -dUNIX -Fi../inc -Fi../i386 -Fi../unix -Fi../bsd -Fi../bsd/i386 -Fi../netbsd/i386 -FE. -FU../../rtl/units/i386-netbsd -di386 -Us ../bsd/system.pp 4. Ran gmake again , but when building the baseunix unit it is missing some files: $(BSDINC)/bunxtype.inc $(BSDINC)/ctypes.inc $(BSDINC)/bunxmain.inc $(BSDINC)/bunxfunc.inc $(BSDINC)/ossysch.inc $(BSDINC)/bunxmacr.inc I have noticed that in freebsd/Makefile these files are not referred . This is the progress so far.

I think the easiest would be to

a) move rtl/netbsd/Makefile and rtl/netbsd/Makefile.fpc aside for reference
b) copy rtl/freebsd/Makefile.fpc to rtl/netbsd
c) edit the copied Makefile.fpc, changing all "freebsd" to "netbsd" and removing references to gprt0* (that one is only needed for gprof support, and is not implemented for netbsd at this time) d) run "fpcmake" inside the rtl/netbsd directory to regenerate the Makefile from the new Makefile.fpc
e) try running gmake again

If you get errors about missing seemingly OS-specific files, check if those files exist in rtl/freebsd and either copy/adapt them, or if they're not part of a critical unit (like terminfo or so), just remove the involved unit from the units to be compiled in the Makefile.fpc and regenerate the Makefile.

Jonas

Adrian Maier
Jonas Maebe wrote 11 lines
Since lists.freepascal.org is down currently... Begin forwarded message: > From: Jonas Maebe > So normally it should try to compile sysbsd.pp and not system.pp > (rtl/bsd/sysbsd.pp simply includes the contents of rtl/bsd/ > system.pp, but a unit file called "system.pp" cannot have the unit > name "sysbsd"). Is your /usr/local/bin/ppc386 a version 1.0.10 > compiler?

Yes. the compiler is 1.0.10

Show quoted text 12 lines
> I think the easiest would be to > a) move rtl/netbsd/Makefile and rtl/netbsd/Makefile.fpc > b) copy rtl/freebsd/Makefile.fpc to rtl/netbsd > c) edit the copied Makefile.fpc > d) run "fpcmake" to regenerate the Makefile from the new Makefile.fpc > e) try running gmake again > > If you get errors about missing seemingly OS-specific files, check > if those files exist in rtl/freebsd and either copy/adapt them, or > if they're not part of a critical unit (like terminfo or so), just > remove the involved unit from the units to be compiled in the > Makefile.fpc and regenerate the Makefile.

When compiling the unit
- Strings , the error says that SIZEINT is not defined.
- BaseUnix , the error says that TSTATFS is not defined.

I've determined that SizeInt is defined in rtl/inc/systemh.inc , which is included in rtl/unix/sysunixh.inc. And sysunixh.inc is included in bsd/system.pp .
I'm not sure what can be done to compile the Strings unit ? ( maybe I should somehow tell the compiler to use the newly compiled sysbsd.ppu , and not the system unit that came with fpc 1.0.10 ? )

Cheers,
Adrian Maier

Jonas Maebe
to Adrian Maier
Adrian Maier wrote 7 lines
>> So normally it should try to compile sysbsd.pp and not system.pp >> (rtl/bsd/sysbsd.pp simply includes the contents of rtl/bsd/ >> system.pp, but a unit file called "system.pp" cannot have the unit >> name "sysbsd"). Is your /usr/local/bin/ppc386 a version 1.0.10 >> compiler? Yes. the compiler is 1.0.10

Does "make info" also show this?

Show quoted text 25 lines
>> I think the easiest would be to >> a) move rtl/netbsd/Makefile and rtl/netbsd/Makefile.fpc >> b) copy rtl/freebsd/Makefile.fpc to rtl/netbsd >> c) edit the copied Makefile.fpc >> d) run "fpcmake" to regenerate the Makefile from the new >> Makefile.fpc >> e) try running gmake again >> >> If you get errors about missing seemingly OS-specific files, check >> if those files exist in rtl/freebsd and either copy/adapt them, or >> if they're not part of a critical unit (like terminfo or so), just >> remove the involved unit from the units to be compiled in the >> Makefile.fpc and regenerate the Makefile. When compiling the unit - Strings , the error says that SIZEINT is not defined. - BaseUnix , the error says that TSTATFS is not defined. I've determined that SizeInt is defined in rtl/inc/systemh.inc , which is included in rtl/unix/sysunixh.inc. And sysunixh.inc is included in bsd/system.pp . I'm not sure what can be done to compile the Strings unit ? ( maybe I should somehow tell the compiler to use the newly compiled sysbsd.ppu ,

So now it is properly compiling sysbsd and not system?

and not the system unit that came with fpc 1.0.10 ? )

If you just run gmake in the netbsd directory, the compiler should automatically use the newly compiled system unit. But there seems to be something fishy with your gmake, given that it's omitting command line parameters and not detecting the compiler version number correctly. Which version of gmake is it? Maybe using the -d or -p options of gmake may shed some light on what it's detecting and doing.

Jonas

Adrian Maier
to Jonas Maebe
Jonas Maebe wrote 5 lines
On 22 Apr 2006, at 21:23, Adrian Maier wrote: > Yes. the compiler is 1.0.10 Does "make info" also show this?

Yes, it does. I've included the full output of 'gmake info' at the end of the email.
Why do you suspect that the compiler version is not well detected? (the only compiler i have is 1.0.10 anyway ... )

Show quoted text 13 lines
> When compiling the unit > - Strings , the error says that SIZEINT is not defined. > - BaseUnix , the error says that TSTATFS is not defined. > > I've determined that SizeInt is defined in rtl/inc/systemh.inc , > which is > included in rtl/unix/sysunixh.inc. And sysunixh.inc is included in > bsd/system.pp . > I'm not sure what can be done to compile the Strings unit ? > ( maybe I should somehow tell the compiler to use the newly compiled > sysbsd.ppu , So now it is properly compiling sysbsd and not system?

Yes, it's compiling the sysbsd unit now that I've replaced the netbsd Makefile and Makefile.fpc with those copied from freebsd.

Show quoted text 8 lines
> and not the system unit that came with fpc 1.0.10 ? ) If you just run gmake in the netbsd directory, the compiler should automatically use the newly compiled system unit. But there seems to be something fishy with your gmake, given that it's omitting command line parameters and not detecting the compiler version number correctly. Which version of gmake is it? Maybe using the -d or -p options of gmake may shed some light on what it's detecting and doing.
$ gmake --version
GNU Make 3.80

One more thing: when compiling rtl/inc/ctypes.pp , it was unable to find the unit UNIXTYPE. And i had to add to fpc.conf: -Fu/data/fpc/2.0.0/release_2_0_0/rtl/unix
So, it seems to me that it is not finding automagically all the newly compiled units.

gmake -d and -p generate a lot of output. I'm not sure what to look for.

Adrian Maier

---------------------------------------------------------- gmake info output:

== Package info ==
Package Name..... rtl
Package Version.. 2.0.0

== Configuration info ==

FPC.......... /usr/local/bin/ppc386
FPC Version.. 1.0.10
Source CPU... i386
Target CPU... i386
Source OS.... netbsd
Target OS.... netbsd
Full Source.. i386-netbsd
Full Target.. i386-netbsd

== Directory info ==

Required pkgs... rtl

Basedir......... /data/fpc/2.0.0/release_2_0_0/rtl FPCDir.......... ..
CrossBinDir.....
UnitsDir........
PackagesDir..... .. ../packages/base ../packages/extra

GCC library.....
Other library...

== Tools info ==

As........ as
Ld........ ld
Ar........ ar
Rc........ rc

Mv........ /bin/mv
Cp........ /bin/cp
Rm........ /bin/rm
GInstall.. /usr/bin/install
Echo...... /bin/echo
Shell..... /bin/sh
Date...... /bin/date
FPCMake... /usr/local/bin/fpcmake
PPUMove... /usr/local/bin/ppumove
Upx.......
Zip....... /usr/pkg/bin/zip

== Object info ==

Target Loaders........
Target Units..........
Target Implicit Units.
Target Programs.......
Target Dirs........... netbsd
Target Examples.......
Target ExampleDirs....

Clean Units.........
Clean Files.........

Install Units.......
Install Files.......

== Install info ==

DateStr.............. 20060423
ZipPrefix............
ZipSuffix............ netbsd
Install FPC Package.. y

Install base dir..... /usr/local/lib/fpc/1.0.10
Install binary dir... /usr/local/bin
Install library dir.. /usr/local/lib
Install units dir.... /usr/local/lib/fpc/1.0.10/units/netbsd/rtl Install source dir... /usr/local/src/fpc-1.0.10/rtl Install doc dir...... /usr/local/doc/fpc-1.0.10/rtl Install example dir.. /usr/local/doc/fpc-1.0.10/examples/rtl Install data dir..... /usr/local/lib/fpc/1.0.10

Dist destination dir. /data/fpc/2.0.0/release_2_0_0/rtl Dist zip name........

Jonas Maebe
to Adrian Maier
Adrian Maier wrote 8 lines
>> Yes. the compiler is 1.0.10 > > Does "make info" also show this? Yes, it does. I've included the full output of 'gmake info' at the end of the email. Why do you suspect that the compiler version is not well detected? (the only compiler i have is 1.0.10 anyway ... )

I did because the makefile checks for FPC version 1.0.x, and if it is 1.0.x is uses the old sysbsd.pp name instead of system.pp. But apparently that's solved now.

Show quoted text 19 lines
>> and not the system unit that came with fpc 1.0.10 ? ) > > If you just run gmake in the netbsd directory, the compiler should > automatically use the newly compiled system unit. But there seems to > be something fishy with your gmake, given that it's omitting command > line parameters and not detecting the compiler version number > correctly. Which version of gmake is it? Maybe using the -d or -p > options of gmake may shed some light on what it's detecting and > doing. $ gmake --version GNU Make 3.80 One more thing: when compiling rtl/inc/ctypes.pp , it was unable to find the unit UNIXTYPE. And i had to add to fpc.conf: -Fu/data/fpc/2.0.0/release_2_0_0/rtl/unix So, it seems to me that it is not finding automagically all the newly compiled units.

That is not good. Can you post the output of a "make clean all"? (without this -Fu/data/fpc/2.0.0/release_2_0_0/rtl/unix added to your config file)

gmake -d and -p generate a lot of output. I'm not sure what to look for.

It was mainly for debugging the version number problem. Now that's solved it's no longer needed.

Jonas

Adrian Maier
to Jonas Maebe
Jonas Maebe wrote 12 lines
> $ gmake --version > GNU Make 3.80 > > One more thing: when compiling rtl/inc/ctypes.pp , it was unable to > find the unit UNIXTYPE. And i had to add to fpc.conf: > -Fu/data/fpc/2.0.0/release_2_0_0/rtl/unix > So, it seems to me that it is not finding automagically all the newly > compiled units. That is not good. Can you post the output of a "make clean all"? (without this -Fu/data/fpc/2.0.0/release_2_0_0/rtl/unix added to your config file)

Sure:
http://www.newsoftcontrol.ro/~am/gmake_clean_all.txt

Adrian Maier

Adrian Maier
to Jonas Maebe
Jonas Maebe wrote 16 lines
On 25 apr 2006, at 10:17, Adrian Maier wrote: >> That is not good. Can you post the output of a "make clean all"? >> (without this -Fu/data/fpc/2.0.0/release_2_0_0/rtl/unix added to your >> config file) > > Sure: > http://www.newsoftcontrol.ro/~am/gmake_clean_all.txt Please try make clean all OPT="-vtu" That should make it clear why it doesn't want to use the new unixtype (or why it wants to recompile it).

It is searching for UNIXTYPE only in rtl/inc , while in fact unixtype is in rtl/unix :

http://www.newsoftcontrol.ro/~am/gmake_clean_all_vtu.txt

Where could i add that directory so that the build system becomes aware of it ?

Adrian Maier

Jonas Maebe
to Adrian Maier
Adrian Maier wrote 14 lines
> Please try > > make clean all OPT="-vtu" > > That should make it clear why it doesn't want to use the new unixtype > (or why it wants to recompile it). It is searching for UNIXTYPE only in rtl/inc , while in fact unixtype is in rtl/unix : http://www.newsoftcontrol.ro/~am/gmake_clean_all_vtu.txt Where could i add that directory so that the build system becomes aware of it ?

The Makefile compiled unixtype in the step before, and the result should be in the current directory. However, for some reason "-FE." is missing from the command line passed to the compiler. If you look at 2.0.0's Makefile in rtl/freebsd (and rtl/netbsd), it contains:

ifndef COMPILER_TARGETDIR COMPILER_TARGETDIR=. endif

...

ifdef COMPILER_TARGETDIR override FPCOPT+=-FE$(COMPILER_TARGETDIR)

ifeq ($(COMPILER_TARGETDIR),.)
override TARGETDIRPREFIX=
else
override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
endif
endif

The quoted code above adds "-FE." to the compiler command line. For some reason this doesn't seem to work in your Makefile, which results in the compiled units being put in the directory where their source is located. Consequently, they cannot be found later on.

Jonas

Adrian Maier
to Jonas Maebe
Jonas Maebe wrote 6 lines
The quoted code above adds "-FE." to the compiler command line. For some reason this doesn't seem to work in your Makefile, which results in the compiled units being put in the directory where their source is located. Consequently, they cannot be found later on.

I added in Makefile.fpc (section [compiler] ):
targetdir=.

And now the "-FE." option is properly added .

Thanks for the explanations Jonas !

Adrian