Recent

Author Topic: how to tweek fpmake to compile RTL?  (Read 1233 times)

Key-Real

  • Sr. Member
  • ****
  • Posts: 372
how to tweek fpmake to compile RTL?
« on: April 23, 2024, 02:33:27 pm »
Code: Pascal  [Select][+][-]
  1. TOS=(
  2.         o_none,linux,go32v2,win32,os2,freebsd,beos,haiku,netbsd,
  3.         amiga,atari, solaris, qnx, netware, openbsd,wdosx,
  4.         palmos,macosclassic,darwin,emx,watcom,morphos,netwlibc,
  5.         win64,wince,gba,nds,embedded,symbian,nativent,iphonesim,
  6.         wii,aix,java,android,msdos,aros,dragonfly,win16,freertos,
  7.         zxspectrum,msxdos,ios,amstradcpc,sinclairql,wasi,human68k,ps1    <- this is my new Target
  8.       );
  9.  
  10.  
  11. OSStr : array[TOS] of string=(
  12.         'none','linux','go32v2','win32','os2','freebsd','beos','haiku','netbsd',
  13.         'amiga','atari','solaris', 'qnx', 'netware','openbsd','wdosx',
  14.         'palmos','macosclassic','darwin','emx','watcom','morphos','netwlibc',
  15.         'win64','wince','gba','nds','embedded','symbian','nativent',
  16.         'iphonesim', 'wii', 'aix', 'java', 'android', 'msdos', 'aros',
  17.         'dragonfly', 'win16', 'freertos', 'zxspectrum', 'msxdos',
  18.         'ios','amstradcpc','sinclairql','wasi','human68k','ps1'   <- also here
  19.       );
  20.    
  21.    OSSuffix : array[TOS] of string=(
  22.         '_none','_linux','_go32v2','_win32','_os2','_freebsd','_beos','_haiku','_netbsd',
  23.         '_amiga','_atari','_solaris', '_qnx', '_netware','_openbsd','_wdosx',
  24.         '_palmos','_macosclassic','_darwin','_emx','_watcom','_morphos','_netwlibc',
  25.         '_win64','_wince','_gba','_nds','_embedded','_symbian','_nativent',
  26.         '_iphonesim','_wii','_aix','_java','_android','_msdos','_aros',
  27.         '_dragonfly','_win16','_freertos','_zxspectrum','_msxdos',
  28.         '_ios','_amstradcpc','_sinclairql','_wasi','_human68k','_ps1'   <- also here
  29.       );
  30.  
  31.  
  32.  
  33.  
  34. OSCpuPossible : array[TOS,TCpu] of boolean =
  35.       (
  36.         { os          none   i386    m68k  ppc    sparc  x86_64 arm    ppc64  avr    armeb  armel  mips   mipsel mips64 misp64el jvm    i8086  aarch64 wasm32 sparc64 riscv32 riscv64 xtensa z80   loongarch64 }
  37.         { none  }   ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  38.         { linux }   ( false, true,  true,  true,  true,  true,  true,  true,  false, true,  false, true,  true,  true,  true,    false, false, true,   false, true,  true,   true,   true,  false, true),
  39.         { go32v2 }  ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  40.         { win32 }   ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  41.         { os2 }     ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  42.         { freebsd } ( false, true,  false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, true,   false, false, false,  false,  false, false, false),
  43.         { beos }    ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  44.         { haiku }   ( false, true,  false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  45.         { netbsd }  ( false, true,  true,  true,  true,  true,  true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  46.         { amiga }   ( false, false, true,  true,  false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  47.         { atari }   ( false, false, true,  false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  48.         { solaris } ( false, true,  false, false, true,  true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  49.         { qnx }     ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  50.         { netware } ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  51.         { openbsd } ( false, true,  false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  52.         { wdosx }   ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  53.         { palmos }  ( false, false, true,  false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  54.    { macosclassic } ( false, false, true,  true,  false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  55.         { darwin }  ( false, true,  false, true,  false, true,  false, true,  false, false, false, false, false, false, false,   false, false, true,   false, false, false,  false,  false, false, false),
  56.         { emx }     ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  57.         { watcom }  ( false, true,  false, false, false ,false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  58.         { morphos } ( false, false, false, true,  false ,false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  59.         { netwlibc }( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  60.         { win64   } ( false, false, false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, true,   false, false, false,  false,  false, false, false),
  61.         { wince    }( false, true,  false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  62.         { gba    }  ( false, false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  63.         { nds    }  ( false, false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  64.         { embedded }( false, true,  true,  true,  true,  true,  true,  true,  true,  true , false, false, true , false, false,   false, true , true ,  true,  false, true,   true,   true,  true,  false),
  65.         { symbian } ( false, true,  false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  66.         { nativent }( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  67.         { iphonesim }( false, true, false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, true ,  false, false, false,  false,  false, false, false),
  68.         { wii }     ( false, false, false, true,  false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  69.         { aix }     ( false, false, false, true,  false, false, false, true,  false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  70.         { java }    ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   true,  false, false,  false, false, false,  false,  false, false, false),
  71.         { android } ( false, true,  false, false, false, true,  true,  false, false, false, false, false, true,  false, false,   true,  false, true,   false, false, false,  false,  false, false, false),
  72.         { msdos }   ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, true , false,  false, false, false,  false,  false, false, false),
  73.         { aros }    ( false, true,  false, false, false, true,  true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  74.         {dragonfly} ( false, false, false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  75.         { win16 }   ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, true , false,  false, false, false,  false,  false, false, false),
  76.         { freertos }( false, false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, true,   false,   true, false, false),
  77.         {zxspectrum}( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, true,  false),
  78.         { msxdos}   ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, true,  false),
  79.         { ios }     ( false, false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, true ,  false, false, false,  false,  false, false, false),
  80.         {amstradcpc}( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, true,  false),
  81.         {sinclairql}( false, false, true,  false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  82.         { wasi }    ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  true,  false, false,  false,  false, false, false),
  83.         { human68k }( false, false, true,  false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
  84.         { ps1 }     ( false, false, false, false, false, false, false, false, false, false, false, false, true,  false, false,   false, false, false,  false, false, false,  false,  false, false, false)
  85.       );
  86.                and in this table
  87.  


with this setup it compiles me the compiler! :)
how to set up for the RTL?

paule32

  • Sr. Member
  • ****
  • Posts: 280
Re: how to tweek fpmake to compile RTL?
« Reply #1 on: April 23, 2024, 07:10:34 pm »
Hello key-real, my friend - long not seeing ...
How are you ?
You already on the 4K Intro Road ?

If so, take a look to my github.com project:
https://github.com/paule32/Qt_FPC

It is optimized for the Microsoft Windows 11 Command Console.

Key-Real

  • Sr. Member
  • ****
  • Posts: 372
Re: how to tweek fpmake to compile RTL?
« Reply #2 on: April 23, 2024, 07:45:37 pm »
@paule32:
Hello my Friend :)
no 4k but Play Station 1 Demo.
atm. I'm porting the compiler....

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11931
  • FPC developer.
Re: how to tweek fpmake to compile RTL?
« Reply #3 on: April 23, 2024, 08:29:16 pm »
Expanding fpmake to the RTL has been held off for practical reasons (RTL makefiles are more diverse) and fundamental reasons (fpmake, like any FPC program depends on RTL).


paule32

  • Sr. Member
  • ****
  • Posts: 280
Re: how to tweek fpmake to compile RTL?
« Reply #4 on: April 24, 2024, 08:23:49 am »
the little creditable "copyright notice"  ;D
yahyah...  I know why.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11931
  • FPC developer.
Re: how to tweek fpmake to compile RTL?
« Reply #5 on: April 24, 2024, 10:35:11 am »
So to be clear: the rtl, toplevel and compiler makefiles use an older build system; makefiles generated from a template by FPCMAKE and fpmake

Before say 2015, nearly everything was like that.

PascalDragon

  • Hero Member
  • *****
  • Posts: 5750
  • Compiler Developer
Re: how to tweek fpmake to compile RTL?
« Reply #6 on: April 25, 2024, 09:35:33 pm »
how to set up for the RTL?

You need to adjust utils/fpcm/fpcmmain.pp, recompile it (for example by doing a normal build for your host target) and then run fpcmake.exe -r -Tall in the top level directory and the rtl/regenmakefiles.sh or rtl\regenmakefiles.bat (depending on your platform) from inside the rtl directory.

 

TinyPortal © 2005-2018