summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile31
-rw-r--r--Makefile.fpc3
-rw-r--r--compiler/Makefile77
-rw-r--r--compiler/Makefile.fpc23
-rw-r--r--compiler/aarch64/agcpugas.pas3
-rw-r--r--compiler/aasmbase.pas18
-rw-r--r--compiler/aggas.pas58
-rw-r--r--compiler/arm/agarmgas.pas3
-rw-r--r--compiler/arm/cpuelf.pas1
-rw-r--r--compiler/avr/agavrgas.pas5
-rw-r--r--compiler/cgbase.pas4
-rw-r--r--compiler/cgobj.pas12
-rw-r--r--compiler/dbgstabs.pas12
-rw-r--r--compiler/dbgstabx.pas8
-rw-r--r--compiler/entfile.pas6
-rw-r--r--compiler/fpcdefs.inc17
-rw-r--r--compiler/globals.pas10
-rw-r--r--compiler/i386/cpuelf.pas1
-rw-r--r--compiler/jvm/agjasmin.pas1
-rw-r--r--compiler/link.pas28
-rw-r--r--compiler/llvm/agllvm.pas4
-rw-r--r--compiler/m68k/ag68kgas.pas2
-rw-r--r--compiler/m68k/ag68kvasm.pas1
-rw-r--r--compiler/mips/cpugas.pas2
-rw-r--r--compiler/msg/errore.msg6
-rw-r--r--compiler/nadd.pas30
-rw-r--r--compiler/ncal.pas4
-rw-r--r--compiler/ngenutil.pas14
-rw-r--r--compiler/ninl.pas143
-rw-r--r--compiler/ogcoff.pas6
-rw-r--r--compiler/ogmacho.pas1
-rw-r--r--compiler/ognlm.pas1
-rw-r--r--compiler/ogomf.pas1
-rw-r--r--compiler/options.pas19
-rw-r--r--compiler/pass_1.pas16
-rw-r--r--compiler/powerpc/agppcmpw.pas1
-rw-r--r--compiler/powerpc/agppcvasm.pas1
-rw-r--r--compiler/pp.pas9
-rw-r--r--compiler/ppcgen/agppcgas.pas16
-rw-r--r--compiler/ppcgen/cgppc.pas4
-rw-r--r--compiler/ppcz80.lpi81
-rw-r--r--compiler/psystem.pas7
-rw-r--r--compiler/rautils.pas2
-rw-r--r--compiler/riscv/agrvgas.pas7
-rw-r--r--compiler/sparc/cpuelf.pas1
-rw-r--r--compiler/sparc64/cpugas.pas2
-rw-r--r--compiler/sparcgen/cpugas.pas4
-rw-r--r--compiler/systems.inc14
-rw-r--r--compiler/systems.pas16
-rw-r--r--compiler/systems/i_embed.pas73
-rw-r--r--compiler/systems/i_zxspectrum.pas108
-rw-r--r--compiler/systems/t_embed.pas267
-rw-r--r--compiler/systems/t_zxspectrum.pas305
-rw-r--r--compiler/utils/Makefile38
-rw-r--r--compiler/utils/mkz80ins.pp232
-rw-r--r--compiler/utils/mkz80reg.pp270
-rw-r--r--compiler/utils/ppuutils/ppudump.pp10
-rw-r--r--compiler/x86/agx86att.pas13
-rw-r--r--compiler/x86/agx86int.pas4
-rw-r--r--compiler/x86/agx86nsm.pas15
-rw-r--r--compiler/x86_64/cpuelf.pas1
-rw-r--r--compiler/xtensa/agcpugas.pas1
-rw-r--r--compiler/z80/aasmcpu.pas490
-rw-r--r--compiler/z80/agsdasz80.pas902
-rw-r--r--compiler/z80/agz80asm.pas447
-rw-r--r--compiler/z80/aoptcpu.pas242
-rw-r--r--compiler/z80/aoptcpub.pas132
-rw-r--r--compiler/z80/aoptcpud.pas40
-rw-r--r--compiler/z80/cgcpu.pas2486
-rw-r--r--compiler/z80/cpubase.pas506
-rw-r--r--compiler/z80/cpuinfo.pas130
-rw-r--r--compiler/z80/cpunode.pas51
-rw-r--r--compiler/z80/cpupara.pas533
-rw-r--r--compiler/z80/cpupi.pas70
-rw-r--r--compiler/z80/cputarg.pas76
-rw-r--r--compiler/z80/hlcgcpu.pas88
-rw-r--r--compiler/z80/nz80add.pas667
-rw-r--r--compiler/z80/nz80cal.pas71
-rw-r--r--compiler/z80/nz80mat.pas156
-rw-r--r--compiler/z80/nz80mem.pas71
-rw-r--r--compiler/z80/raz80.pas52
-rw-r--r--compiler/z80/raz80asm.pas2390
-rw-r--r--compiler/z80/rgcpu.pas260
-rw-r--r--compiler/z80/rz80con.inc28
-rw-r--r--compiler/z80/rz80dwa.inc28
-rw-r--r--compiler/z80/rz80nor.inc2
-rw-r--r--compiler/z80/rz80num.inc28
-rw-r--r--compiler/z80/rz80rni.inc28
-rw-r--r--compiler/z80/rz80sri.inc28
-rw-r--r--compiler/z80/rz80sta.inc28
-rw-r--r--compiler/z80/rz80std.inc28
-rw-r--r--compiler/z80/rz80sup.inc28
-rw-r--r--compiler/z80/symcpu.pas216
-rw-r--r--compiler/z80/tgcpu.pas67
-rw-r--r--compiler/z80/z80ins.dat381
-rw-r--r--compiler/z80/z80nop.inc2
-rw-r--r--compiler/z80/z80op.inc70
-rw-r--r--compiler/z80/z80reg.dat50
-rw-r--r--compiler/z80/z80stdopnames.inc70
-rw-r--r--compiler/z80/z80tab.inc1424
-rw-r--r--installer/Makefile44
-rw-r--r--packages/Makefile14
-rw-r--r--packages/a52/Makefile24
-rw-r--r--packages/ami-extra/Makefile24
-rw-r--r--packages/amunits/Makefile24
-rw-r--r--packages/arosunits/Makefile24
-rw-r--r--packages/aspell/Makefile24
-rw-r--r--packages/bfd/Makefile24
-rw-r--r--packages/bzip2/Makefile24
-rw-r--r--packages/bzip2/fpmake.pp2
-rw-r--r--packages/cairo/Makefile24
-rw-r--r--packages/cdrom/Makefile24
-rw-r--r--packages/cdrom/examples/Makefile32
-rw-r--r--packages/chm/Makefile24
-rw-r--r--packages/chm/fpmake.pp2
-rw-r--r--packages/cocoaint/Makefile24
-rw-r--r--packages/dblib/Makefile24
-rw-r--r--packages/dbus/Makefile24
-rw-r--r--packages/dbus/examples/Makefile32
-rw-r--r--packages/dts/Makefile24
-rw-r--r--packages/fastcgi/Makefile24
-rw-r--r--packages/fcl-async/Makefile24
-rw-r--r--packages/fcl-base/Makefile24
-rw-r--r--packages/fcl-base/examples/Makefile48
-rw-r--r--packages/fcl-base/fpmake.pp2
-rw-r--r--packages/fcl-db/Makefile24
-rw-r--r--packages/fcl-db/fpmake.pp2
-rw-r--r--packages/fcl-db/src/base/Makefile52
-rw-r--r--packages/fcl-db/src/codegen/Makefile44
-rw-r--r--packages/fcl-db/src/datadict/Makefile46
-rw-r--r--packages/fcl-db/src/dbase/Makefile56
-rw-r--r--packages/fcl-db/src/export/Makefile46
-rw-r--r--packages/fcl-db/src/json/Makefile34
-rw-r--r--packages/fcl-db/src/memds/Makefile44
-rw-r--r--packages/fcl-db/src/paradox/Makefile40
-rw-r--r--packages/fcl-db/src/sdf/Makefile38
-rw-r--r--packages/fcl-db/src/sql/Makefile50
-rw-r--r--packages/fcl-db/src/sqldb/Makefile44
-rw-r--r--packages/fcl-db/src/sqldb/interbase/Makefile40
-rw-r--r--packages/fcl-db/src/sqldb/mssql/Makefile38
-rw-r--r--packages/fcl-db/src/sqldb/mysql/Makefile46
-rw-r--r--packages/fcl-db/src/sqldb/odbc/Makefile40
-rw-r--r--packages/fcl-db/src/sqldb/oracle/Makefile46
-rw-r--r--packages/fcl-db/src/sqldb/postgres/Makefile46
-rw-r--r--packages/fcl-db/src/sqldb/sqlite/Makefile40
-rw-r--r--packages/fcl-db/src/sqlite/Makefile34
-rw-r--r--packages/fcl-db/tests/Makefile40
-rw-r--r--packages/fcl-extra/Makefile24
-rw-r--r--packages/fcl-extra/examples/Makefile28
-rw-r--r--packages/fcl-fpcunit/Makefile24
-rw-r--r--packages/fcl-fpcunit/fpmake.pp2
-rw-r--r--packages/fcl-fpcunit/src/exampletests/Makefile42
-rw-r--r--packages/fcl-fpcunit/src/tests/Makefile42
-rw-r--r--packages/fcl-image/Makefile24
-rw-r--r--packages/fcl-image/examples/Makefile32
-rw-r--r--packages/fcl-image/fpmake.pp2
-rw-r--r--packages/fcl-js/Makefile24
-rw-r--r--packages/fcl-js/fpmake.pp2
-rw-r--r--packages/fcl-json/Makefile24
-rw-r--r--packages/fcl-json/fpmake.pp2
-rw-r--r--packages/fcl-net/Makefile24
-rw-r--r--packages/fcl-net/examples/Makefile48
-rw-r--r--packages/fcl-net/fpmake.pp2
-rw-r--r--packages/fcl-passrc/Makefile24
-rw-r--r--packages/fcl-passrc/fpmake.pp2
-rw-r--r--packages/fcl-pdf/Makefile26
-rw-r--r--packages/fcl-pdf/fpmake.pp2
-rw-r--r--packages/fcl-process/Makefile14
-rw-r--r--packages/fcl-process/fpmake.pp2
-rw-r--r--packages/fcl-registry/Makefile24
-rw-r--r--packages/fcl-registry/fpmake.pp2
-rw-r--r--packages/fcl-registry/tests/Makefile20
-rw-r--r--packages/fcl-report/Makefile30
-rw-r--r--packages/fcl-res/Makefile24
-rw-r--r--packages/fcl-res/fpmake.pp2
-rw-r--r--packages/fcl-sdo/Makefile24
-rw-r--r--packages/fcl-sdo/fpmake.pp2
-rw-r--r--packages/fcl-sound/Makefile24
-rw-r--r--packages/fcl-sound/fpmake.pp2
-rw-r--r--packages/fcl-stl/Makefile24
-rw-r--r--packages/fcl-stl/fpmake.pp2
-rw-r--r--packages/fcl-web/Makefile24
-rw-r--r--packages/fcl-web/src/base/Makefile56
-rw-r--r--packages/fcl-web/src/jsonrpc/Makefile42
-rw-r--r--packages/fcl-web/src/webdata/Makefile44
-rw-r--r--packages/fcl-xml/Makefile24
-rw-r--r--packages/fcl-xml/fpmake.pp2
-rw-r--r--packages/fftw/Makefile24
-rw-r--r--packages/fpgtk/Makefile24
-rw-r--r--packages/fpgtk/examples/Makefile38
-rw-r--r--packages/fpindexer/Makefile24
-rw-r--r--packages/fpmkunit/Makefile22
-rw-r--r--packages/fpmkunit/fpmake.pp2
-rw-r--r--packages/fpmkunit/src/fpmkunit.pp89
-rw-r--r--packages/fppkg/Makefile24
-rw-r--r--packages/fppkg/fpmake.pp2
-rw-r--r--packages/fuse/Makefile24
-rw-r--r--packages/fv/Makefile24
-rw-r--r--packages/fv/examples/Makefile38
-rw-r--r--packages/gdbint/Makefile24
-rw-r--r--packages/gdbm/Makefile24
-rw-r--r--packages/gdbm/examples/Makefile32
-rw-r--r--packages/ggi/Makefile24
-rw-r--r--packages/ggi/examples/Makefile32
-rw-r--r--packages/gmp/Makefile24
-rw-r--r--packages/gmp/examples/Makefile32
-rw-r--r--packages/gnome1/Makefile24
-rw-r--r--packages/gnutls/Makefile26
-rw-r--r--packages/googleapi/Makefile24
-rw-r--r--packages/graph/Makefile24
-rw-r--r--packages/gtk1/Makefile24
-rw-r--r--packages/gtk1/examples/Makefile50
-rw-r--r--packages/gtk1/examples/tutorial/Makefile26
-rw-r--r--packages/gtk1/src/gtkgl/Makefile38
-rw-r--r--packages/gtk2/Makefile24
-rw-r--r--packages/gtk2/examples/Makefile52
-rw-r--r--packages/gtk2/examples/filechooser/Makefile32
-rw-r--r--packages/gtk2/examples/gettingstarted/Makefile32
-rw-r--r--packages/gtk2/examples/gtk_demo/Makefile32
-rw-r--r--packages/gtk2/examples/gtkglext/Makefile34
-rw-r--r--packages/gtk2/examples/helloworld/Makefile32
-rw-r--r--packages/gtk2/examples/helloworld2/Makefile32
-rw-r--r--packages/gtk2/examples/plugins/Makefile32
-rw-r--r--packages/gtk2/examples/scribble_simple/Makefile32
-rw-r--r--packages/hash/Makefile14
-rw-r--r--packages/hash/examples/Makefile34
-rw-r--r--packages/hash/fpmake.pp2
-rw-r--r--packages/hermes/Makefile24
-rw-r--r--packages/hermes/fpmake.pp2
-rw-r--r--packages/httpd13/Makefile24
-rw-r--r--packages/httpd20/Makefile24
-rw-r--r--packages/httpd20/examples/Makefile38
-rw-r--r--packages/httpd22/Makefile24
-rw-r--r--packages/httpd22/examples/Makefile38
-rw-r--r--packages/httpd24/Makefile24
-rw-r--r--packages/httpd24/examples/Makefile38
-rw-r--r--packages/ibase/Makefile24
-rw-r--r--packages/ibase/examples/Makefile32
-rw-r--r--packages/iconvenc/Makefile24
-rw-r--r--packages/iconvenc/examples/Makefile32
-rw-r--r--packages/ide/Makefile32
-rw-r--r--packages/ide/compiler/Makefile50
-rw-r--r--packages/ide/fakegdb/Makefile20
-rw-r--r--packages/imagemagick/Makefile24
-rw-r--r--packages/imlib/Makefile24
-rw-r--r--packages/iosxlocale/Makefile24
-rw-r--r--packages/jni/Makefile24
-rw-r--r--packages/ldap/Makefile24
-rw-r--r--packages/libc/Makefile24
-rw-r--r--packages/libcups/Makefile24
-rw-r--r--packages/libcurl/Makefile24
-rw-r--r--packages/libcurl/examples/Makefile32
-rw-r--r--packages/libenet/Makefile24
-rw-r--r--packages/libffi/Makefile24
-rw-r--r--packages/libfontconfig/Makefile24
-rw-r--r--packages/libgbafpc/Makefile24
-rw-r--r--packages/libgbafpc/examples/Makefile42
-rw-r--r--packages/libgbafpc/examples/audio/Makefile38
-rw-r--r--packages/libgbafpc/examples/audio/PlayBoyScout/Makefile44
-rw-r--r--packages/libgbafpc/examples/graphics/Makefile42
-rw-r--r--packages/libgbafpc/examples/graphics/PCXView/Makefile44
-rw-r--r--packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile44
-rw-r--r--packages/libgbafpc/examples/graphics/ansi_console/Makefile44
-rw-r--r--packages/libgbafpc/examples/template/Makefile44
-rw-r--r--packages/libgc/Makefile24
-rw-r--r--packages/libgd/Makefile24
-rw-r--r--packages/libgd/examples/Makefile32
-rw-r--r--packages/libgd/fpmake.pp2
-rw-r--r--packages/libmagic/Makefile24
-rw-r--r--packages/libmicrohttpd/Makefile24
-rw-r--r--packages/libndsfpc/Makefile24
-rw-r--r--packages/libndsfpc/examples/Makefile58
-rw-r--r--packages/libndsfpc/examples/audio/Makefile40
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/Makefile46
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile68
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile68
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/reverb/Makefile68
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile68
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile68
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/streaming/Makefile62
-rw-r--r--packages/libndsfpc/examples/audio/micrecord/Makefile62
-rw-r--r--packages/libndsfpc/examples/card/Makefile38
-rw-r--r--packages/libndsfpc/examples/card/eeprom/Makefile62
-rw-r--r--packages/libndsfpc/examples/debugging/Makefile38
-rw-r--r--packages/libndsfpc/examples/debugging/exceptionTest/Makefile62
-rw-r--r--packages/libndsfpc/examples/ds_motion/Makefile62
-rw-r--r--packages/libndsfpc/examples/dswifi/Makefile42
-rw-r--r--packages/libndsfpc/examples/dswifi/ap_search/Makefile62
-rw-r--r--packages/libndsfpc/examples/dswifi/autoconnect/Makefile62
-rw-r--r--packages/libndsfpc/examples/dswifi/httpget/Makefile62
-rw-r--r--packages/libndsfpc/examples/filesystem/Makefile40
-rw-r--r--packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile68
-rw-r--r--packages/libndsfpc/examples/filesystem/libfat/Makefile38
-rw-r--r--packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile62
-rw-r--r--packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile62
-rw-r--r--packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile62
-rw-r--r--packages/libndsfpc/examples/filesystem/nitrofs/Makefile38
-rw-r--r--packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile62
-rw-r--r--packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile62
-rw-r--r--packages/libndsfpc/examples/gl2d/Makefile48
-rw-r--r--packages/libndsfpc/examples/gl2d/dual_screen/Makefile62
-rw-r--r--packages/libndsfpc/examples/gl2d/fonts/Makefile62
-rw-r--r--packages/libndsfpc/examples/gl2d/primitives/Makefile62
-rw-r--r--packages/libndsfpc/examples/gl2d/scrolling/Makefile62
-rw-r--r--packages/libndsfpc/examples/gl2d/sprites/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Display_List/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Makefile66
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Ortho/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Picking/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/Makefile60
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/Makefile46
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Effects/Makefile38
-rw-r--r--packages/libndsfpc/examples/graphics/Effects/windows/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile38
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Makefile50
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/Makefile46
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/Makefile50
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/simple/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile62
-rw-r--r--packages/libndsfpc/examples/graphics/grit/Makefile38
-rw-r--r--packages/libndsfpc/examples/hello_world/Makefile62
-rw-r--r--packages/libndsfpc/examples/input/Makefile40
-rw-r--r--packages/libndsfpc/examples/input/Touch_Pad/Makefile42
-rw-r--r--packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile62
-rw-r--r--packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile62
-rw-r--r--packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile62
-rw-r--r--packages/libndsfpc/examples/input/keyboard/Makefile40
-rw-r--r--packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile62
-rw-r--r--packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile62
-rw-r--r--packages/libndsfpc/examples/time/Makefile42
-rw-r--r--packages/libndsfpc/examples/time/RealTimeClock/Makefile62
-rw-r--r--packages/libndsfpc/examples/time/stopwatch/Makefile62
-rw-r--r--packages/libndsfpc/examples/time/timercallback/Makefile62
-rw-r--r--packages/libogcfpc/Makefile24
-rw-r--r--packages/libogcfpc/examples/Makefile48
-rw-r--r--packages/libogcfpc/examples/audio/Makefile42
-rw-r--r--packages/libogcfpc/examples/audio/modplay/Makefile50
-rw-r--r--packages/libogcfpc/examples/audio/mp3player/Makefile52
-rw-r--r--packages/libogcfpc/examples/devices/Makefile42
-rw-r--r--packages/libogcfpc/examples/devices/network/Makefile38
-rw-r--r--packages/libogcfpc/examples/devices/network/sockettest/Makefile50
-rw-r--r--packages/libogcfpc/examples/devices/usbgecko/Makefile38
-rw-r--r--packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile50
-rw-r--r--packages/libogcfpc/examples/devices/usbkeyboard/Makefile38
-rw-r--r--packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile50
-rw-r--r--packages/libogcfpc/examples/filesystem/Makefile38
-rw-r--r--packages/libogcfpc/examples/filesystem/directory/Makefile50
-rw-r--r--packages/libogcfpc/examples/graphics/Makefile38
-rw-r--r--packages/libogcfpc/examples/graphics/gx/Makefile42
-rw-r--r--packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile50
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/Makefile54
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile50
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile50
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile50
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile50
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile50
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile50
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile50
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile50
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile50
-rw-r--r--packages/libogcfpc/examples/graphics/gx/triangle/Makefile50
-rw-r--r--packages/libogcfpc/examples/template/Makefile50
-rw-r--r--packages/libpng/Makefile24
-rw-r--r--packages/librsvg/Makefile24
-rw-r--r--packages/libsee/Makefile24
-rw-r--r--packages/libsee/examples/Makefile38
-rw-r--r--packages/libtar/Makefile14
-rw-r--r--packages/libtar/fpmake.pp2
-rw-r--r--packages/libusb/Makefile24
-rw-r--r--packages/libvlc/Makefile24
-rw-r--r--packages/libxml/Makefile24
-rw-r--r--packages/libxml/examples/Makefile20
-rw-r--r--packages/lua/Makefile24
-rw-r--r--packages/mad/Makefile24
-rw-r--r--packages/matroska/Makefile24
-rw-r--r--packages/modplug/Makefile24
-rw-r--r--packages/morphunits/Makefile24
-rw-r--r--packages/mysql/Makefile24
-rw-r--r--packages/mysql/examples/Makefile32
-rw-r--r--packages/ncurses/Makefile24
-rw-r--r--packages/ncurses/examples/Makefile32
-rw-r--r--packages/newt/Makefile24
-rw-r--r--packages/newt/examples/Makefile32
-rw-r--r--packages/numlib/Makefile24
-rw-r--r--packages/numlib/examples/Makefile50
-rw-r--r--packages/nvapi/Makefile24
-rw-r--r--packages/objcrtl/Makefile24
-rw-r--r--packages/odata/Makefile28
-rw-r--r--packages/odbc/Makefile24
-rw-r--r--packages/odbc/examples/Makefile32
-rw-r--r--packages/oggvorbis/Makefile24
-rw-r--r--packages/openal/Makefile24
-rw-r--r--packages/openal/examples/Makefile42
-rw-r--r--packages/opencl/Makefile24
-rw-r--r--packages/opengl/Makefile24
-rw-r--r--packages/opengl/examples/Makefile38
-rw-r--r--packages/opengles/Makefile24
-rw-r--r--packages/opengles/examples/Makefile38
-rw-r--r--packages/openssl/Makefile24
-rw-r--r--packages/oracle/Makefile24
-rw-r--r--packages/oracle/examples/Makefile44
-rw-r--r--packages/os2units/Makefile24
-rw-r--r--packages/os2units/examples/Makefile32
-rw-r--r--packages/os4units/Makefile24
-rw-r--r--packages/palmunits/Makefile24
-rw-r--r--packages/pasjpeg/Makefile24
-rw-r--r--packages/pasjpeg/fpmake.pp2
-rw-r--r--packages/pastojs/Makefile24
-rw-r--r--packages/paszlib/Makefile14
-rw-r--r--packages/paszlib/examples/Makefile22
-rw-r--r--packages/paszlib/fpmake.pp2
-rw-r--r--packages/pcap/Makefile24
-rw-r--r--packages/postgres/Makefile24
-rw-r--r--packages/postgres/examples/Makefile32
-rw-r--r--packages/proj4/Makefile24
-rw-r--r--packages/ptc/Makefile24
-rw-r--r--packages/ptc/examples/Makefile40
-rw-r--r--packages/pthreads/Makefile24
-rw-r--r--packages/pxlib/Makefile24
-rw-r--r--packages/pxlib/examples/Makefile26
-rw-r--r--packages/regexpr/Makefile24
-rw-r--r--packages/regexpr/examples/Makefile32
-rw-r--r--packages/regexpr/fpmake.pp2
-rw-r--r--packages/rexx/Makefile24
-rw-r--r--packages/rexx/examples/Makefile32
-rw-r--r--packages/rtl-console/Makefile24
-rw-r--r--packages/rtl-extra/Makefile24
-rw-r--r--packages/rtl-generics/Makefile24
-rw-r--r--packages/rtl-generics/fpmake.pp2
-rw-r--r--packages/rtl-objpas/Makefile24
-rw-r--r--packages/rtl-unicode/Makefile24
-rw-r--r--packages/sdl/Makefile24
-rw-r--r--packages/sdl/fpmake.pp2
-rw-r--r--packages/sndfile/Makefile24
-rw-r--r--packages/sqlite/Makefile24
-rw-r--r--packages/svgalib/Makefile24
-rw-r--r--packages/svgalib/examples/Makefile32
-rw-r--r--packages/symbolic/Makefile24
-rw-r--r--packages/symbolic/examples/Makefile32
-rw-r--r--packages/symbolic/fpmake.pp2
-rw-r--r--packages/syslog/Makefile24
-rw-r--r--packages/syslog/examples/Makefile32
-rw-r--r--packages/tcl/Makefile24
-rw-r--r--packages/tosunits/Makefile24
-rw-r--r--packages/univint/Makefile24
-rw-r--r--packages/univint/examples/Makefile38
-rw-r--r--packages/unixutil/Makefile24
-rw-r--r--packages/unzip/Makefile24
-rw-r--r--packages/unzip/fpmake.pp2
-rw-r--r--packages/users/Makefile24
-rw-r--r--packages/users/examples/Makefile32
-rw-r--r--packages/utmp/Makefile24
-rw-r--r--packages/utmp/examples/Makefile32
-rw-r--r--packages/uuid/Makefile24
-rw-r--r--packages/uuid/examples/Makefile32
-rw-r--r--packages/vcl-compat/Makefile30
-rw-r--r--packages/webidl/Makefile28
-rw-r--r--packages/webidl/fpmake.pp2
-rw-r--r--packages/winceunits/Makefile24
-rw-r--r--packages/winunits-base/Makefile24
-rw-r--r--packages/winunits-jedi/Makefile24
-rw-r--r--packages/x11/Makefile24
-rw-r--r--packages/xforms/Makefile24
-rw-r--r--packages/xforms/examples/Makefile32
-rw-r--r--packages/zlib/Makefile24
-rw-r--r--packages/zorba/Makefile24
-rw-r--r--rtl/Makefile65
-rw-r--r--rtl/Makefile.fpc1
-rw-r--r--rtl/aix/Makefile38
-rw-r--r--rtl/amiga/Makefile44
-rw-r--r--rtl/android/Makefile56
-rw-r--r--rtl/android/jvm/Makefile26
-rw-r--r--rtl/aros/Makefile44
-rw-r--r--rtl/atari/Makefile44
-rw-r--r--rtl/beos/Makefile50
-rw-r--r--rtl/darwin/Makefile38
-rw-r--r--rtl/dragonfly/Makefile44
-rw-r--r--rtl/embedded/Makefile32
-rw-r--r--rtl/embedded/rtl.cfg9
-rw-r--r--rtl/emx/Makefile44
-rw-r--r--rtl/freebsd/Makefile44
-rw-r--r--rtl/freertos/Makefile38
-rw-r--r--rtl/gba/Makefile38
-rw-r--r--rtl/go32v2/Makefile44
-rw-r--r--rtl/haiku/Makefile50
-rw-r--r--rtl/inc/system.inc8
-rw-r--r--rtl/inc/systemh.inc20
-rw-r--r--rtl/java/Makefile26
-rw-r--r--rtl/linux/Makefile56
-rw-r--r--rtl/macos/Makefile38
-rw-r--r--rtl/morphos/Makefile38
-rw-r--r--rtl/msdos/Makefile38
-rw-r--r--rtl/nativent/Makefile38
-rw-r--r--rtl/nds/Makefile38
-rw-r--r--rtl/netbsd/Makefile44
-rw-r--r--rtl/netware/Makefile44
-rw-r--r--rtl/netwlibc/Makefile44
-rw-r--r--rtl/openbsd/Makefile44
-rw-r--r--rtl/os2/Makefile44
-rw-r--r--rtl/palmos/Makefile38
-rw-r--r--rtl/qnx/Makefile44
-rw-r--r--rtl/solaris/Makefile38
-rw-r--r--rtl/symbian/Makefile32
-rw-r--r--rtl/watcom/Makefile44
-rw-r--r--rtl/wii/Makefile32
-rw-r--r--rtl/win16/Makefile32
-rw-r--r--rtl/win32/Makefile44
-rw-r--r--rtl/win64/Makefile44
-rw-r--r--rtl/wince/Makefile32
-rw-r--r--rtl/z80/cpuh.inc15
-rw-r--r--rtl/z80/int64p.inc14
-rw-r--r--rtl/z80/makefile.cpu6
-rw-r--r--rtl/z80/math.inc16
-rw-r--r--rtl/z80/set.inc15
-rw-r--r--rtl/z80/setjump.inc98
-rw-r--r--rtl/z80/setjumph.inc27
-rw-r--r--rtl/z80/z80.inc298
-rw-r--r--rtl/zxspectrum/Makefile2847
-rw-r--r--rtl/zxspectrum/Makefile.fpc64
-rw-r--r--rtl/zxspectrum/prt0.asm10
-rw-r--r--rtl/zxspectrum/rtldefs.inc24
-rw-r--r--rtl/zxspectrum/sysdir.inc35
-rw-r--r--rtl/zxspectrum/sysfile.inc108
-rw-r--r--rtl/zxspectrum/sysheap.inc26
-rw-r--r--rtl/zxspectrum/sysos.inc34
-rw-r--r--rtl/zxspectrum/sysosh.inc27
-rw-r--r--rtl/zxspectrum/system.pp303
-rw-r--r--tests/Makefile20
-rw-r--r--tests/tstunits/Makefile20
-rw-r--r--tests/utils/Makefile20
-rw-r--r--tests/utils/testsuite/Makefile40
-rw-r--r--utils/Makefile26
-rw-r--r--utils/debugsvr/Makefile24
-rw-r--r--utils/debugsvr/console/Makefile32
-rw-r--r--utils/debugsvr/gtk/Makefile38
-rw-r--r--utils/dxegen/Makefile24
-rw-r--r--utils/fpcm/Makefile24
-rw-r--r--utils/fpcm/fpcmake.inc691
-rw-r--r--utils/fpcm/fpcmake.ini8
-rw-r--r--utils/fpcm/fpcmmain.pp98
-rw-r--r--utils/fpcmkcfg/Makefile24
-rw-r--r--utils/fpcres/Makefile24
-rw-r--r--utils/fpcreslipo/Makefile24
-rw-r--r--utils/fpdoc/Makefile24
-rw-r--r--utils/fpdoc/fpde/Makefile50
-rw-r--r--utils/fpmake_add.inc1
-rw-r--r--utils/fpmake_proc.inc2
-rw-r--r--utils/fpmc/Makefile24
-rw-r--r--utils/fppkg/Makefile24
-rw-r--r--utils/fprcp/Makefile24
-rw-r--r--utils/h2pas/Makefile24
-rw-r--r--utils/ihx2tzx/Makefile2688
-rw-r--r--utils/ihx2tzx/Makefile.fpc102
-rw-r--r--utils/ihx2tzx/fpmake.pp54
-rw-r--r--utils/ihx2tzx/ihx2tzx.lpi69
-rw-r--r--utils/ihx2tzx/ihx2tzx.lpr163
-rw-r--r--utils/ihx2tzx/ihxreader.pas130
-rw-r--r--utils/ihx2tzx/tzxwriter.pas132
-rw-r--r--utils/ihx2tzx/zxbasic.pas158
-rw-r--r--utils/importtl/Makefile24
-rw-r--r--utils/instantfpc/Makefile24
-rw-r--r--utils/json2pas/Makefile26
-rw-r--r--utils/mksymbian/Makefile24
-rw-r--r--utils/pas2fpm/Makefile24
-rw-r--r--utils/pas2jni/Makefile24
-rw-r--r--utils/pas2js/Makefile24
-rw-r--r--utils/pas2ut/Makefile24
-rw-r--r--utils/rmwait/Makefile24
-rw-r--r--utils/tply/Makefile24
-rw-r--r--utils/unicode/Makefile24
610 files changed, 38605 insertions, 1041 deletions
diff --git a/Makefile b/Makefile
index 7640cac155..e37ae10433 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: help
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -416,6 +416,9 @@ endif
ifeq ($(CPU_TARGET),xtensa)
PPSUF=xtensa
endif
+ifeq ($(CPU_TARGET),z80)
+PPSUF=z80
+endif
ifdef CROSSCOMPILE
ifneq ($(CPU_TARGET),jvm)
PPPRE=ppcross
@@ -799,6 +802,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=compiler rtl utils packages installer
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=compiler rtl utils packages installer
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=compiler rtl utils packages installer
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1245,6 +1254,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1253,6 +1265,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2705,6 +2720,20 @@ TARGET_DIRS_UTILS=1
TARGET_DIRS_PACKAGES=1
TARGET_DIRS_INSTALLER=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_COMPILER=1
+TARGET_DIRS_RTL=1
+TARGET_DIRS_UTILS=1
+TARGET_DIRS_PACKAGES=1
+TARGET_DIRS_INSTALLER=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_COMPILER=1
+TARGET_DIRS_RTL=1
+TARGET_DIRS_UTILS=1
+TARGET_DIRS_PACKAGES=1
+TARGET_DIRS_INSTALLER=1
+endif
ifdef TARGET_DIRS_COMPILER
compiler_all:
$(MAKE) -C compiler all
diff --git a/Makefile.fpc b/Makefile.fpc
index 3734c81cf5..8341137039 100644
--- a/Makefile.fpc
+++ b/Makefile.fpc
@@ -94,6 +94,9 @@ endif
ifeq ($(CPU_TARGET),xtensa)
PPSUF=xtensa
endif
+ifeq ($(CPU_TARGET),z80)
+PPSUF=z80
+endif
# cross compilers uses full cpu_target, not just ppc-suffix
# (except if the target cannot run a native compiler)
diff --git a/compiler/Makefile b/compiler/Makefile
index 3c689340d6..aa9a080d0b 100644
--- a/compiler/Makefile
+++ b/compiler/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -350,7 +350,7 @@ endif
override PACKAGE_NAME=compiler
override PACKAGE_VERSION=3.3.1
unexport FPC_VERSION FPC_COMPILERINFO
-CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64 m68k armeb mipsel mips avr jvm i8086 aarch64 sparc64 riscv32 riscv64 xtensa
+CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64 m68k armeb mipsel mips avr jvm i8086 aarch64 sparc64 riscv32 riscv64 xtensa z80
ALLTARGETS=$(CYCLETARGETS)
ifdef POWERPC
PPC_TARGET=powerpc
@@ -406,6 +406,9 @@ endif
ifdef XTENSA
PPC_TARGET=xtensa
endif
+ifdef Z80
+PPC_TARGET=z80
+endif
ifndef PPC_TARGET
PPC_TARGET=$(CPU_TARGET)
endif
@@ -516,6 +519,9 @@ endif
ifeq ($(CPC_TARGET),xtensa)
CPUSUF=xtensa
endif
+ifeq ($(CPC_TARGET),z80)
+CPUSUF=z80
+endif
NOCPUDEF=1
MSGFILE=msg/error$(FPCLANG).msg
SVNVERSION:=$(firstword $(wildcard $(addsuffix /svnversion$(SRCEXEEXT),$(SEARCHPATH))))
@@ -631,6 +637,9 @@ endif
ifeq ($(OS_TARGET),freertos)
NoNativeBinaries=1
endif
+ifeq ($(OS_TARGET),zxspectrum)
+NoNativeBinaries=1
+endif
ifeq ($(NoNativeBinaries),1)
override EXEEXT=$(SRCEXEEXT)
CROSSINSTALL=1
@@ -926,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=utils
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=utils
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=utils
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_PROGRAMS+=pp
endif
@@ -1217,6 +1232,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=pp
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=pp
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=pp
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
@@ -1509,6 +1530,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
endif
@@ -1800,6 +1827,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(CPU_UNITDIR)/bin/$(FULL_TARGET)
endif
@@ -2091,6 +2124,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(CPU_UNITDIR)/bin/$(FULL_TARGET)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(CPU_UNITDIR)/bin/$(FULL_TARGET)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(CPU_UNITDIR)/bin/$(FULL_TARGET)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
endif
@@ -2382,6 +2421,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2827,6 +2872,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2835,6 +2883,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3381,6 +3432,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -4323,6 +4380,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_UTILS=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_UTILS=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_UTILS=1
+endif
ifdef TARGET_DIRS_UTILS
utils_all:
$(MAKE) -C utils all
@@ -4603,7 +4666,10 @@ insdatarm : arm/armins.dat
insdataarch64 : aarch64/a64ins.dat
$(COMPILER) -FE$(COMPILERUTILSDIR) $(COMPILERUTILSDIR)/mka64ins.pp
cd aarch64 && ..$(PATHSEP)utils$(PATHSEP)mka64ins$(SRCEXEEXT)
-insdat: insdatx86 insdatarm insdataarch64
+insdatz80 : z80/z80ins.dat
+ $(COMPILER) -FE$(COMPILERUTILSDIR) $(COMPILERUTILSDIR)/mkz80ins.pp
+ cd z80 && ..$(PATHSEP)utils$(PATHSEP)mkz80ins$(SRCEXEEXT)
+insdat: insdatx86 insdatarm insdataarch64 insdatz80
regdatx86 : x86/x86reg.dat
$(COMPILER) -FE$(COMPILERUTILSDIR) $(COMPILERUTILSDIR)/mkx86reg.pp
cd x86 && ..$(PATHSEP)utils$(PATHSEP)mkx86reg$(SRCEXEEXT) i8086
@@ -4632,7 +4698,10 @@ regdataarch64 : aarch64/a64reg.dat
regdatmips : mips/mipsreg.dat
$(COMPILER) -FE$(COMPILERUTILSDIR) $(COMPILERUTILSDIR)/mkmpsreg.pp
cd mips && ..$(PATHSEP)utils$(PATHSEP)mkmpsreg$(SRCEXEEXT)
-regdat : regdatx86 regdatarm regdatsp regdatavr regdataarch64 regdatmips regdatsp64
+regdatz80 : z80/z80reg.dat
+ $(COMPILER) -FE$(COMPILERUTILSDIR) $(COMPILERUTILSDIR)/mkz80reg.pp
+ cd z80 && ..$(PATHSEP)utils$(PATHSEP)mkz80reg$(SRCEXEEXT)
+regdat : regdatx86 regdatarm regdatsp regdatavr regdataarch64 regdatmips regdatsp64 regdatz80
revision.inc :
ifneq ($(REVSTR),)
ifdef USEZIPWRAPPER
diff --git a/compiler/Makefile.fpc b/compiler/Makefile.fpc
index ec4c4ab9d6..4256a953c6 100644
--- a/compiler/Makefile.fpc
+++ b/compiler/Makefile.fpc
@@ -32,7 +32,7 @@ fpcdir=..
unexport FPC_VERSION FPC_COMPILERINFO
# Which platforms are ready for inclusion in the cycle
-CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64 m68k armeb mipsel mips avr jvm i8086 aarch64 sparc64 riscv32 riscv64 xtensa
+CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64 m68k armeb mipsel mips avr jvm i8086 aarch64 sparc64 riscv32 riscv64 xtensa z80
# All supported targets used for clean
ALLTARGETS=$(CYCLETARGETS)
@@ -92,6 +92,9 @@ endif
ifdef XTENSA
PPC_TARGET=xtensa
endif
+ifdef Z80
+PPC_TARGET=z80
+endif
# Default is to generate a compiler for the same
# platform as CPU_TARGET (a native compiler)
@@ -230,6 +233,9 @@ endif
ifeq ($(CPC_TARGET),xtensa)
CPUSUF=xtensa
endif
+ifeq ($(CPC_TARGET),z80)
+CPUSUF=z80
+endif
# Do not define the default -d$(CPU_TARGET) because that
# will conflict with our -d$(CPC_TARGET)
@@ -400,6 +406,9 @@ endif
ifeq ($(OS_TARGET),freertos)
NoNativeBinaries=1
endif
+ifeq ($(OS_TARGET),zxspectrum)
+NoNativeBinaries=1
+endif
# Allow install for jvm
ifeq ($(NoNativeBinaries),1)
@@ -702,7 +711,11 @@ insdataarch64 : aarch64/a64ins.dat
$(COMPILER) -FE$(COMPILERUTILSDIR) $(COMPILERUTILSDIR)/mka64ins.pp
cd aarch64 && ..$(PATHSEP)utils$(PATHSEP)mka64ins$(SRCEXEEXT)
-insdat: insdatx86 insdatarm insdataarch64
+insdatz80 : z80/z80ins.dat
+ $(COMPILER) -FE$(COMPILERUTILSDIR) $(COMPILERUTILSDIR)/mkz80ins.pp
+ cd z80 && ..$(PATHSEP)utils$(PATHSEP)mkz80ins$(SRCEXEEXT)
+
+insdat: insdatx86 insdatarm insdataarch64 insdatz80
regdatx86 : x86/x86reg.dat
$(COMPILER) -FE$(COMPILERUTILSDIR) $(COMPILERUTILSDIR)/mkx86reg.pp
@@ -739,7 +752,11 @@ regdatmips : mips/mipsreg.dat
$(COMPILER) -FE$(COMPILERUTILSDIR) $(COMPILERUTILSDIR)/mkmpsreg.pp
cd mips && ..$(PATHSEP)utils$(PATHSEP)mkmpsreg$(SRCEXEEXT)
-regdat : regdatx86 regdatarm regdatsp regdatavr regdataarch64 regdatmips regdatsp64
+regdatz80 : z80/z80reg.dat
+ $(COMPILER) -FE$(COMPILERUTILSDIR) $(COMPILERUTILSDIR)/mkz80reg.pp
+ cd z80 && ..$(PATHSEP)utils$(PATHSEP)mkz80reg$(SRCEXEEXT)
+
+regdat : regdatx86 regdatarm regdatsp regdatavr regdataarch64 regdatmips regdatsp64 regdatz80
# revision.inc rule
revision.inc :
diff --git a/compiler/aarch64/agcpugas.pas b/compiler/aarch64/agcpugas.pas
index 131793c709..2702e2a26e 100644
--- a/compiler/aarch64/agcpugas.pas
+++ b/compiler/aarch64/agcpugas.pas
@@ -789,6 +789,7 @@ unit agcpugas;
supported_targets : [system_aarch64_linux,system_aarch64_android];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '// ';
dollarsign: '$';
);
@@ -802,6 +803,7 @@ unit agcpugas;
supported_targets : [system_aarch64_darwin];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -815,6 +817,7 @@ unit agcpugas;
supported_targets : [system_aarch64_win64];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '// ';
dollarsign: '$';
);
diff --git a/compiler/aasmbase.pas b/compiler/aasmbase.pas
index 39f5c1542a..55aeac01b9 100644
--- a/compiler/aasmbase.pas
+++ b/compiler/aasmbase.pas
@@ -240,7 +240,7 @@ interface
function create_smartlink_library:boolean;inline;
function create_smartlink:boolean;inline;
- function ReplaceForbiddenAsmSymbolChars(const s: ansistring): ansistring;
+ function ApplyAsmSymbolRestrictions(const s: ansistring): ansistring;
{ dummy default noop callback }
procedure default_global_used;
@@ -257,7 +257,7 @@ interface
implementation
uses
- verbose;
+ verbose,fpccrc;
function create_smartlink_sections:boolean;inline;
@@ -288,16 +288,28 @@ implementation
end;
- function ReplaceForbiddenAsmSymbolChars(const s: ansistring): ansistring;
+ function ApplyAsmSymbolRestrictions(const s: ansistring): ansistring;
var
i : longint;
rchar: char;
+ crc: Cardinal;
+ charstoremove: integer;
begin
Result:=s;
rchar:=target_asm.dollarsign;
for i:=1 to Length(Result) do
if Result[i]='$' then
Result[i]:=rchar;
+ if (target_asm.labelmaxlen<>-1) and (Length(Result)>target_asm.labelmaxlen) then
+ begin
+ crc:=0;
+ crc:=UpdateCrc32(crc,Result[1],Length(Result));
+ charstoremove:=Length(Result)-target_asm.labelmaxlen+13;
+ Delete(Result,(Length(Result)-charstoremove) div 2,charstoremove);
+ Result:='_'+target_asm.dollarsign+'CRC'+hexstr(crc,8)+Result;
+ if Length(Result)>target_asm.labelmaxlen then
+ Internalerror(2020042501);
+ end;
end;
diff --git a/compiler/aggas.pas b/compiler/aggas.pas
index b09ae37803..4d5b072f09 100644
--- a/compiler/aggas.pas
+++ b/compiler/aggas.pas
@@ -873,7 +873,7 @@ implementation
begin
if tai_section(hp).sectype<>sec_none then
if replaceforbidden then
- WriteSection(tai_section(hp).sectype,ReplaceForbiddenAsmSymbolChars(tai_section(hp).name^),tai_section(hp).secorder,
+ WriteSection(tai_section(hp).sectype,ApplyAsmSymbolRestrictions(tai_section(hp).name^),tai_section(hp).secorder,
tai_section(hp).secalign,tai_section(hp).secflags,tai_section(hp).secprogbits)
else
WriteSection(tai_section(hp).sectype,tai_section(hp).name^,tai_section(hp).secorder,
@@ -925,8 +925,8 @@ implementation
if tai_datablock(hp).is_global then
begin
writer.AsmWrite(#9'.globl ');
- writer.AsmWriteln(ReplaceForbiddenAsmSymbolChars(tai_datablock(hp).sym.name));
- writer.AsmWrite(ReplaceForbiddenAsmSymbolChars(tai_datablock(hp).sym.name));
+ writer.AsmWriteln(ApplyAsmSymbolRestrictions(tai_datablock(hp).sym.name));
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_datablock(hp).sym.name));
writer.AsmWriteln(':');
writer.AsmWrite(#9'.space ');
writer.AsmWriteln(tostr(tai_datablock(hp).size));
@@ -936,7 +936,7 @@ implementation
else
begin
writer.AsmWrite(#9'.lcomm ');
- writer.AsmWrite(ReplaceForbiddenAsmSymbolChars(tai_datablock(hp).sym.name));
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_datablock(hp).sym.name));
writer.AsmWrite(',');
writer.AsmWrite(tostr(tai_datablock(hp).size)+',');
writer.AsmWrite('_data.bss_,');
@@ -956,7 +956,7 @@ implementation
begin
writer.AsmWrite(#9'.comm'#9);
if replaceforbidden then
- writer.AsmWrite(ReplaceForbiddenAsmSymbolChars(tai_datablock(hp).sym.name))
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_datablock(hp).sym.name))
else
writer.AsmWrite(tai_datablock(hp).sym.name);
writer.AsmWrite(','+tostr(tai_datablock(hp).size));
@@ -967,7 +967,7 @@ implementation
begin
writer.AsmWrite(#9'.lcomm'#9);
if replaceforbidden then
- writer.AsmWrite(ReplaceForbiddenAsmSymbolChars(tai_datablock(hp).sym.name));
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_datablock(hp).sym.name));
else
writer.AsmWrite(tai_datablock(hp).sym.name);
writer.AsmWrite(','+tostr(tai_datablock(hp).size));
@@ -984,7 +984,7 @@ implementation
WriteHiddenSymbol(tai_datablock(hp).sym);
writer.AsmWrite(#9'.globl ');
if replaceforbidden then
- writer.AsmWriteln(ReplaceForbiddenAsmSymbolChars(Tai_datablock(hp).sym.name))
+ writer.AsmWriteln(ApplyAsmSymbolRestrictions(Tai_datablock(hp).sym.name))
else
writer.AsmWriteln(Tai_datablock(hp).sym.name);
end;
@@ -995,10 +995,10 @@ implementation
if replaceforbidden then
begin
if (tf_needs_symbol_type in target_info.flags) then
- writer.AsmWriteln(#9'.type '+ReplaceForbiddenAsmSymbolChars(Tai_datablock(hp).sym.name)+','+sepChar+'object');
+ writer.AsmWriteln(#9'.type '+ApplyAsmSymbolRestrictions(Tai_datablock(hp).sym.name)+','+sepChar+'object');
if (tf_needs_symbol_size in target_info.flags) and (tai_datablock(hp).size > 0) then
- writer.AsmWriteln(#9'.size '+ReplaceForbiddenAsmSymbolChars(Tai_datablock(hp).sym.name)+','+tostr(Tai_datablock(hp).size));
- writer.AsmWrite(ReplaceForbiddenAsmSymbolChars(Tai_datablock(hp).sym.name))
+ writer.AsmWriteln(#9'.size '+ApplyAsmSymbolRestrictions(Tai_datablock(hp).sym.name)+','+tostr(Tai_datablock(hp).size));
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(Tai_datablock(hp).sym.name))
end
else
begin
@@ -1198,7 +1198,7 @@ implementation
else
s:=tai_const(hp).sym.name;
if replaceforbidden then
- s:=ReplaceForbiddenAsmSymbolChars(s);
+ s:=ApplyAsmSymbolRestrictions(s);
if tai_const(hp).value<>0 then
s:=s+tostr_with_plus(tai_const(hp).value);
end
@@ -1300,12 +1300,12 @@ implementation
{$endif arm}
writer.AsmWrite('.globl'#9);
if replaceforbidden then
- writer.AsmWriteLn(ReplaceForbiddenAsmSymbolChars(tai_label(hp).labsym.name))
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(tai_label(hp).labsym.name))
else
writer.AsmWriteLn(tai_label(hp).labsym.name);
end;
if replaceforbidden then
- writer.AsmWrite(ReplaceForbiddenAsmSymbolChars(tai_label(hp).labsym.name))
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_label(hp).labsym.name))
else
writer.AsmWrite(tai_label(hp).labsym.name);
writer.AsmWriteLn(':');
@@ -1323,7 +1323,7 @@ implementation
begin
writer.AsmWrite('.globl'#9);
if replaceforbidden then
- writer.AsmWriteln(ReplaceForbiddenAsmSymbolChars(tai_symbol(hp).sym.name))
+ writer.AsmWriteln(ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name))
else
writer.AsmWriteln(tai_symbol(hp).sym.name);
if (tai_symbol(hp).sym.bind=AB_PRIVATE_EXTERN) then
@@ -1358,14 +1358,14 @@ implementation
s:=#9'.llong .';
ch:='3';
end;
- writer.AsmWriteLn(#9'.csect '+ReplaceForbiddenAsmSymbolChars(tai_symbol(hp).sym.name)+'[DS],'+ch);
- writer.AsmWriteLn(ReplaceForbiddenAsmSymbolChars(tai_symbol(hp).sym.name)+':');
- writer.AsmWriteln(s+ReplaceForbiddenAsmSymbolChars(tai_symbol(hp).sym.name)+', TOC[tc0], 0');
+ writer.AsmWriteLn(#9'.csect '+ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name)+'[DS],'+ch);
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name)+':');
+ writer.AsmWriteln(s+ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name)+', TOC[tc0], 0');
writer.AsmWriteln(#9'.csect .text[PR]');
if (tai_symbol(hp).is_global) then
- writer.AsmWriteLn('.globl .'+ReplaceForbiddenAsmSymbolChars(tai_symbol(hp).sym.name))
+ writer.AsmWriteLn('.globl .'+ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name))
else
- writer.AsmWriteLn('.lglobl .'+ReplaceForbiddenAsmSymbolChars(tai_symbol(hp).sym.name));
+ writer.AsmWriteLn('.lglobl .'+ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name));
{ the dotted name is the name of the actual function entry }
writer.AsmWrite('.');
end
@@ -1386,9 +1386,9 @@ implementation
end;
if replaceforbidden then
if not(tai_symbol(hp).has_value) then
- writer.AsmWriteLn(ReplaceForbiddenAsmSymbolChars(tai_symbol(hp).sym.name + ':'))
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name + ':'))
else
- writer.AsmWriteLn(ReplaceForbiddenAsmSymbolChars(tai_symbol(hp).sym.name + '=' + tostr(tai_symbol(hp).value)))
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name + '=' + tostr(tai_symbol(hp).value)))
else if not(tai_symbol(hp).has_value) then
writer.AsmWriteLn(tai_symbol(hp).sym.name + ':')
else
@@ -1408,13 +1408,13 @@ implementation
if replaceforbidden then
begin
{ avoid string truncation }
- writer.AsmWrite(ReplaceForbiddenAsmSymbolChars(tai_symbolpair(hp).sym^));
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_symbolpair(hp).sym^));
writer.AsmWrite(s);
- writer.AsmWriteLn(ReplaceForbiddenAsmSymbolChars(tai_symbolpair(hp).value^));
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(tai_symbolpair(hp).value^));
if tai_symbolpair(hp).kind=spk_set_global then
begin
writer.AsmWrite(#9'.globl ');
- writer.AsmWriteLn(ReplaceForbiddenAsmSymbolChars(tai_symbolpair(hp).sym^));
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(tai_symbolpair(hp).sym^));
end;
end
else
@@ -1443,7 +1443,7 @@ implementation
(tai_symbol_end(hp).sym.typ=AT_FUNCTION) then
writer.AsmWrite('.');
if replaceforbidden then
- writer.AsmWrite(ReplaceForbiddenAsmSymbolChars(tai_symbol_end(hp).sym.name))
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_symbol_end(hp).sym.name))
else
writer.AsmWrite(tai_symbol_end(hp).sym.name);
writer.AsmWrite(', '+s+' - ');
@@ -1452,7 +1452,7 @@ implementation
(tai_symbol_end(hp).sym.typ=AT_FUNCTION) then
writer.AsmWrite('.');
if replaceforbidden then
- writer.AsmWriteLn(ReplaceForbiddenAsmSymbolChars(tai_symbol_end(hp).sym.name))
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(tai_symbol_end(hp).sym.name))
else
writer.AsmWriteLn(tai_symbol_end(hp).sym.name);
end;
@@ -1527,7 +1527,7 @@ implementation
if tai_directive(hp).name <>'' then
begin
if replaceforbidden then
- writer.AsmWrite(ReplaceForbiddenAsmSymbolChars(tai_directive(hp).name))
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_directive(hp).name))
else
writer.AsmWrite(tai_directive(hp).name);
end;
@@ -1617,7 +1617,7 @@ implementation
if asminfo^.dollarsign='$' then
writer.AsmWriteLn(s.name)
else
- writer.AsmWriteLn(ReplaceForbiddenAsmSymbolChars(s.name))
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(s.name))
end;
@@ -1635,7 +1635,7 @@ implementation
if asminfo^.dollarsign='$' then
writer.AsmWriteLn(sym.name)
else
- writer.AsmWriteLn(ReplaceForbiddenAsmSymbolChars(sym.name))
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(sym.name))
end;
diff --git a/compiler/arm/agarmgas.pas b/compiler/arm/agarmgas.pas
index e51b715f41..175d1ef5e5 100644
--- a/compiler/arm/agarmgas.pas
+++ b/compiler/arm/agarmgas.pas
@@ -445,6 +445,7 @@ unit agarmgas;
system_arm_embedded,system_arm_symbian,system_arm_android,system_arm_aros,system_arm_freertos];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -458,6 +459,7 @@ unit agarmgas;
supported_targets : [system_arm_darwin];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_stabs_use_function_absolute_addresses];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -472,6 +474,7 @@ unit agarmgas;
supported_targets : [system_arm_darwin];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
diff --git a/compiler/arm/cpuelf.pas b/compiler/arm/cpuelf.pas
index 311b5144f0..13519888b2 100644
--- a/compiler/arm/cpuelf.pas
+++ b/compiler/arm/cpuelf.pas
@@ -977,6 +977,7 @@ implementation
system_arm_aros,system_arm_freertos];
flags : [af_outputbinary,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '';
dollarsign: '$';
);
diff --git a/compiler/avr/agavrgas.pas b/compiler/avr/agavrgas.pas
index 89d807cbbc..42514d05bb 100644
--- a/compiler/avr/agavrgas.pas
+++ b/compiler/avr/agavrgas.pas
@@ -122,7 +122,7 @@ unit agavrgas;
else if assigned(symbol) or (offset<>0) then
begin
if assigned(symbol) then
- s:=ReplaceForbiddenAsmSymbolChars(symbol.name);
+ s:=ApplyAsmSymbolRestrictions(symbol.name);
if s='' then
s:=tostr(offset)
@@ -165,7 +165,7 @@ unit agavrgas;
top_ref:
if o.ref^.refaddr=addr_full then
begin
- hs:=ReplaceForbiddenAsmSymbolChars(o.ref^.symbol.name);
+ hs:=ApplyAsmSymbolRestrictions(o.ref^.symbol.name);
if o.ref^.offset>0 then
hs:=hs+'+'+tostr(o.ref^.offset)
else if o.ref^.offset<0 then
@@ -216,6 +216,7 @@ unit agavrgas;
supported_targets : [system_avr_embedded];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: 's';
);
diff --git a/compiler/cgbase.pas b/compiler/cgbase.pas
index 40c94f753f..a77b57465a 100644
--- a/compiler/cgbase.pas
+++ b/compiler/cgbase.pas
@@ -107,6 +107,10 @@ interface
,addr_hi8
,addr_hi8_gs
{$ENDIF}
+ {$IFDEF Z80}
+ ,addr_lo8
+ ,addr_hi8
+ {$ENDIF}
{$IFDEF i8086}
,addr_dgroup // the data segment group
,addr_fardataseg // the far data segment of the current pascal module (unit or program)
diff --git a/compiler/cgobj.pas b/compiler/cgobj.pas
index edcce1ea6f..72a4a28acf 100644
--- a/compiler/cgobj.pas
+++ b/compiler/cgobj.pas
@@ -742,15 +742,15 @@ implementation
{$if defined(cpu8bitalu) or defined(cpu16bitalu)}
function tcg.GetNextReg(const r: TRegister): TRegister;
begin
-{$ifndef AVR}
+{$ifdef AVR}
{ the AVR code generator depends on the fact that it can do GetNextReg also on physical registers }
+ if (getsupreg(r)>=first_int_imreg) and not(has_next_reg[getsupreg(r)]) then
+ internalerror(2017091103);
+{$else AVR}
if getsupreg(r)<first_int_imreg then
internalerror(2013051401);
if not has_next_reg[getsupreg(r)] then
internalerror(2017091103);
-{$else AVR}
- if (getsupreg(r)>=first_int_imreg) and not(has_next_reg[getsupreg(r)]) then
- internalerror(2017091103);
{$endif AVR}
if getregtype(r)<>R_INTREGISTER then
internalerror(2017091101);
@@ -2103,6 +2103,8 @@ implementation
a_load_const_reg(list,OS_8,0,dst);
exit;
end;
+ else
+ ;
end;
end;
OP_SHR:
@@ -2115,6 +2117,8 @@ implementation
a_load_const_reg(list,OS_8,0,GetNextReg(dst));
exit;
end;
+ else
+ ;
end;
end;
{$endif cpu8bitalu}
diff --git a/compiler/dbgstabs.pas b/compiler/dbgstabs.pas
index 0aa61d54a4..448cc3f7b4 100644
--- a/compiler/dbgstabs.pas
+++ b/compiler/dbgstabs.pas
@@ -197,7 +197,7 @@ implementation
if (Sym.typ=typesym) and (ttypesym(Sym).Fprettyname<>'') then
result:=ttypesym(Sym).FPrettyName;
if target_asm.dollarsign<>'$' then
- result:=ReplaceForbiddenAsmSymbolChars(result);
+ result:=ApplyAsmSymbolRestrictions(result);
end;
function GetSymTableName(SymTable : TSymTable) : string;
@@ -207,7 +207,7 @@ implementation
else
result := SymTable.RealName^;
if target_asm.dollarsign<>'$' then
- result:=ReplaceForbiddenAsmSymbolChars(result);
+ result:=ApplyAsmSymbolRestrictions(result);
end;
const
@@ -1190,7 +1190,7 @@ implementation
if s='name' then
result:=GetSymName(sym)
else if s='mangledname' then
- result:=ReplaceForbiddenAsmSymbolChars(sym.mangledname)
+ result:=ApplyAsmSymbolRestrictions(sym.mangledname)
else if s='ownername' then
result:=GetSymTableName(sym.owner)
else if s='line' then
@@ -1217,7 +1217,7 @@ implementation
function TDebugInfoStabs.staticvarsym_mangled_name(sym: tstaticvarsym): string;
begin
- result:=ReplaceForbiddenAsmSymbolChars(sym.mangledname);
+ result:=ApplyAsmSymbolRestrictions(sym.mangledname);
end;
@@ -1228,7 +1228,7 @@ implementation
assigned(def.owner.name) then
list.concat(Tai_stab.create_ansistr(stabsdir,ansistring('"vmt_')+GetSymTableName(def.owner)+tobjectdef(def).objname^+':S'+
def_stab_number(vmttype)+'",'+
- base_stabs_str(globalvarsym_inited_stab,'0','0',ReplaceForbiddenAsmSymbolChars(tobjectdef(def).vmt_mangledname))));
+ base_stabs_str(globalvarsym_inited_stab,'0','0',ApplyAsmSymbolRestrictions(tobjectdef(def).vmt_mangledname))));
end;
@@ -1401,7 +1401,7 @@ implementation
assigned(tprocdef(def.owner.defowner).procsym) then
info := ','+GetSymName(def.procsym)+','+GetSymName(tprocdef(def.owner.defowner).procsym);
end;
- mangledname:=ReplaceForbiddenAsmSymbolChars(def.mangledname);
+ mangledname:=ApplyAsmSymbolRestrictions(def.mangledname);
if target_info.system in systems_dotted_function_names then
mangledname:='.'+mangledname;
result.concat(Tai_stab.Create_ansistr(stabsdir,'"'+obj+':'+RType+def_stab_number(def.returndef)+info+'",'+
diff --git a/compiler/dbgstabx.pas b/compiler/dbgstabx.pas
index c4862f57bc..1554c29a98 100644
--- a/compiler/dbgstabx.pas
+++ b/compiler/dbgstabx.pas
@@ -95,7 +95,7 @@ implementation
begin
{ create reference to the local symbol at the same address as the global
symbol (with same name as unmangled symbol, so GDB can find it) }
- Result:=ReplaceForbiddenAsmSymbolChars(sym.name);
+ Result:=ApplyAsmSymbolRestrictions(sym.name);
end;
@@ -109,7 +109,7 @@ implementation
assigned(def.owner.name) then
list.concat(Tai_stab.create_ansistr(stabsdir,ansistring('"vmt_')+GetSymTableName(def.owner)+tobjectdef(def).objname^+':S'+
def_stab_number(vmttype)+'",'+
- base_stabs_str(globalvarsym_inited_stab,'0','0',ReplaceForbiddenAsmSymbolChars(tobjectdef(def).vmt_mangledname)+'.')));
+ base_stabs_str(globalvarsym_inited_stab,'0','0',ApplyAsmSymbolRestrictions(tobjectdef(def).vmt_mangledname)+'.')));
end;
*)
{ do nothing, because creating debug information for a global symbol
@@ -193,7 +193,7 @@ implementation
the place where it is defined }
if not assigned(def.procstarttai) then
exit;
- mangledname:=ReplaceForbiddenAsmSymbolChars(def.mangledname);
+ mangledname:=ApplyAsmSymbolRestrictions(def.mangledname);
if target_info.system in systems_dotted_function_names then
mangledname:='.'+mangledname;
result.concat(tai_stab.create(stabx_function,
@@ -254,7 +254,7 @@ implementation
result:=inherited gen_procdef_endsym_stabs(def);
if not assigned(def.procstarttai) then
exit;
- procendsymbol:=current_asmdata.DefineAsmSymbol('LT..'+ReplaceForbiddenAsmSymbolChars(def.mangledname),AB_LOCAL,AT_ADDR,voidpointertype);
+ procendsymbol:=current_asmdata.DefineAsmSymbol('LT..'+ApplyAsmSymbolRestrictions(def.mangledname),AB_LOCAL,AT_ADDR,voidpointertype);
current_asmdata.asmlists[al_procedures].insertbefore(tai_symbol.create(procendsymbol,0),def.procendtai);
end;
diff --git a/compiler/entfile.pas b/compiler/entfile.pas
index 7fae4f7a2f..b95f91fee4 100644
--- a/compiler/entfile.pas
+++ b/compiler/entfile.pas
@@ -160,7 +160,8 @@ const
{ 18 } 64 {'sparc64'},
{ 19 } 32 {'riscv32'},
{ 20 } 64 {'riscv64'},
- { 21 } 32 {'xtensa'}
+ { 21 } 32 {'xtensa'},
+ { 22 } 16 {'z80'}
);
CpuAluBitSize : array[tsystemcpu] of longint =
(
@@ -185,7 +186,8 @@ const
{ 18 } 64 {'sparc64'},
{ 19 } 32 {'riscv32'},
{ 20 } 64 {'riscv64'},
- { 21 } 32 {'xtensa'}
+ { 21 } 32 {'xtensa'},
+ { 22 } 8 {'z80'}
);
{$endif generic_cpu}
diff --git a/compiler/fpcdefs.inc b/compiler/fpcdefs.inc
index b5cc2371cc..9ce3faa8ab 100644
--- a/compiler/fpcdefs.inc
+++ b/compiler/fpcdefs.inc
@@ -295,6 +295,23 @@
{$define cpurequiresproperalignment}
{$endif riscv32}
+{$ifdef z80}
+ {$define cpu8bit}
+ {$define cpu16bitaddr}
+ {$define cpu8bitalu}
+ {$define cpufpemu}
+ {$define cpuflags}
+ {$define cpunofpu}
+ {$define cpunodefaultint}
+ {$define cpuneedsdivhelper}
+ {$define cpuneedsmulhelper}
+ {$define cpucapabilities}
+{$endif z80}
+
+{$IFDEF MACOS}
+{$DEFINE USE_FAKE_SYSUTILS}
+{$ENDIF MACOS}
+
{$ifdef riscv64}
{$define riscv}
{$define cpu64bit}
diff --git a/compiler/globals.pas b/compiler/globals.pas
index 2f2d4edea2..064e3a009c 100644
--- a/compiler/globals.pas
+++ b/compiler/globals.pas
@@ -561,6 +561,16 @@ interface
asmcputype : cpu_none;
fputype : fpu_none;
{$endif xtensa}
+ {$ifdef z80}
+ cputype : cpu_z80;
+ optimizecputype : cpu_z80;
+ { Use cpu_none by default,
+ because using cpu_8086 by default means
+ that we reject any instruction above bare 8086 instruction set
+ for all assembler code PM }
+ asmcputype : cpu_none;
+ fputype : fpu_soft;
+ {$endif z80}
{$endif not GENERIC_CPU}
asmmode : asmmode_standard;
{$ifndef jvm}
diff --git a/compiler/i386/cpuelf.pas b/compiler/i386/cpuelf.pas
index ab5a60124d..4b68296956 100644
--- a/compiler/i386/cpuelf.pas
+++ b/compiler/i386/cpuelf.pas
@@ -524,6 +524,7 @@ implementation
system_i386_android,system_i386_aros];
flags : [af_outputbinary,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '';
dollarsign: '$';
);
diff --git a/compiler/jvm/agjasmin.pas b/compiler/jvm/agjasmin.pas
index 12b51ad688..ca039256bc 100644
--- a/compiler/jvm/agjasmin.pas
+++ b/compiler/jvm/agjasmin.pas
@@ -1237,6 +1237,7 @@ implementation
supported_targets : [system_jvm_java32,system_jvm_android32];
flags : [];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : ' ; ';
dollarsign : '$';
);
diff --git a/compiler/link.pas b/compiler/link.pas
index fce0d44030..6643b2a060 100644
--- a/compiler/link.pas
+++ b/compiler/link.pas
@@ -867,7 +867,8 @@ Implementation
scripted_ar:=(target_ar.id=ar_gnu_ar_scripted) or
- (target_ar.id=ar_watcom_wlib_omf_scripted);
+ (target_ar.id=ar_watcom_wlib_omf_scripted) or
+ (target_ar.id=ar_sdcc_sdar_scripted);
if scripted_ar then
begin
@@ -876,7 +877,7 @@ Implementation
Assign(script, scriptfile);
Rewrite(script);
try
- if (target_ar.id=ar_gnu_ar_scripted) then
+ if (target_ar.id in [ar_gnu_ar_scripted,ar_sdcc_sdar_scripted]) then
writeln(script, 'CREATE ' + current_module.staticlibfilename)
else { wlib case }
writeln(script,'-q -fo -c -b '+
@@ -884,13 +885,13 @@ Implementation
current := TCmdStrListItem(SmartLinkOFiles.First);
while current <> nil do
begin
- if (target_ar.id=ar_gnu_ar_scripted) then
+ if (target_ar.id in [ar_gnu_ar_scripted,ar_sdcc_sdar_scripted]) then
writeln(script, 'ADDMOD ' + current.str)
else
writeln(script,'+' + current.str);
current := TCmdStrListItem(current.next);
end;
- if (target_ar.id=ar_gnu_ar_scripted) then
+ if (target_ar.id in [ar_gnu_ar_scripted,ar_sdcc_sdar_scripted]) then
begin
writeln(script, 'SAVE');
writeln(script, 'END');
@@ -1742,6 +1743,23 @@ Implementation
arfinishcmd : ''
);
+ ar_sdcc_sdar_info : tarinfo =
+ ( id : ar_sdcc_sdar;
+ addfilecmd : '';
+ arfirstcmd : '';
+ arcmd : 'sdar qS $LIB $FILES';
+ arfinishcmd : 'sdar s $LIB'
+ );
+
+ ar_sdcc_sdar_scripted_info : tarinfo =
+ (
+ id : ar_sdcc_sdar_scripted;
+ addfilecmd : '';
+ arfirstcmd : '';
+ arcmd : 'sdar -M < $SCRIPT';
+ arfinishcmd : ''
+ );
+
initialization
RegisterAr(ar_gnu_ar_info);
@@ -1749,4 +1767,6 @@ initialization
RegisterAr(ar_gnu_gar_info);
RegisterAr(ar_watcom_wlib_omf_info);
RegisterAr(ar_watcom_wlib_omf_scripted_info);
+ RegisterAr(ar_sdcc_sdar_info);
+ RegisterAr(ar_sdcc_sdar_scripted_info);
end.
diff --git a/compiler/llvm/agllvm.pas b/compiler/llvm/agllvm.pas
index 82ed6d9919..17c533459e 100644
--- a/compiler/llvm/agllvm.pas
+++ b/compiler/llvm/agllvm.pas
@@ -1271,7 +1271,7 @@ implementation
writer.AsmWriteln(asminfo^.comment+'global/privateextern label: '+tai_label(hp).labsym.name);
end;
if replaceforbidden then
- writer.AsmWrite(ReplaceForbiddenAsmSymbolChars(tai_label(hp).labsym.name))
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_label(hp).labsym.name))
else
writer.AsmWrite(tai_label(hp).labsym.name);
writer.AsmWriteLn(':');
@@ -1737,6 +1737,7 @@ implementation
supported_targets : [system_x86_64_linux,system_x86_64_darwin,system_aarch64_linux,system_arm_linux];
flags : [af_smartlink_sections,af_llvm];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1751,6 +1752,7 @@ implementation
supported_targets : [system_x86_64_linux,system_x86_64_darwin,system_aarch64_linux,system_arm_linux];
flags : [af_smartlink_sections,af_llvm];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
diff --git a/compiler/m68k/ag68kgas.pas b/compiler/m68k/ag68kgas.pas
index e5d783e99d..845e8833cf 100644
--- a/compiler/m68k/ag68kgas.pas
+++ b/compiler/m68k/ag68kgas.pas
@@ -355,6 +355,7 @@ interface
supported_targets : [system_m68k_macos,system_m68k_linux,system_m68k_PalmOS,system_m68k_netbsd,system_m68k_embedded];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -368,6 +369,7 @@ interface
supported_targets : [system_m68k_Amiga,system_m68k_Atari];
flags : [af_needar];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
diff --git a/compiler/m68k/ag68kvasm.pas b/compiler/m68k/ag68kvasm.pas
index 8b4c6b8c7c..50421262d0 100644
--- a/compiler/m68k/ag68kvasm.pas
+++ b/compiler/m68k/ag68kvasm.pas
@@ -136,6 +136,7 @@ unit ag68kvasm;
supported_targets : [system_m68k_amiga,system_m68k_atari];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
diff --git a/compiler/mips/cpugas.pas b/compiler/mips/cpugas.pas
index 9798f814ea..cb5bf22930 100644
--- a/compiler/mips/cpugas.pas
+++ b/compiler/mips/cpugas.pas
@@ -263,6 +263,7 @@ unit cpugas;
supported_targets: [system_mipsel_linux,system_mipsel_android,system_mipsel_embedded];
flags: [ af_needar, af_smartlink_sections];
labelprefix: '.L';
+ labelmaxlen : -1;
comment: '# ';
dollarsign: '$';
);
@@ -276,6 +277,7 @@ unit cpugas;
supported_targets: [system_mipseb_linux];
flags: [ af_needar, af_smartlink_sections];
labelprefix: '.L';
+ labelmaxlen : -1;
comment: '# ';
dollarsign: '$';
);
diff --git a/compiler/msg/errore.msg b/compiler/msg/errore.msg
index 5c9f4a3fbd..aa2b23ca06 100644
--- a/compiler/msg/errore.msg
+++ b/compiler/msg/errore.msg
@@ -3818,6 +3818,7 @@ new features, etc.):
# s = Sparc64 targets
# V = AVR
# x = xtensa targets
+# Z = Z80
# The second character also indicates who will display this line,
# (if the above character was TRUE) the current possibilities are :
# * = everyone
@@ -3880,6 +3881,8 @@ F*0*_Only options valid for the default or selected platform are listed.
A*2Aas_Assemble using GNU AS
P*2Aas_Assemble using GNU AS
S*2Aas_Assemble using GNU AS
+Z*2Asdcc-sdasz80_Assemble using SDCC-SDASZ80
+Z*2Az80asm_Assemble using z80asm
# Used only internally by IDE
**1b_Generate browser info
**2bl_Generate local symbol info
@@ -4191,6 +4194,9 @@ V*2Tembedded_Embedded
x*2Tembedded_Embedded
x*2Tfreertos_FreeRTOS
x*2Tlinux_Linux
+# z80 targets
+Z*2Tembedded_Embedded
+Z*2Tzxspectrum_ZX Spectrum
# end of targets section
**1u<x>_Undefines the symbol <x>
**1U_Unit options:
diff --git a/compiler/nadd.pas b/compiler/nadd.pas
index b2b188a74d..bb91cc2029 100644
--- a/compiler/nadd.pas
+++ b/compiler/nadd.pas
@@ -4003,6 +4003,10 @@ implementation
result := nil;
case torddef(resultdef).ordtype of
+ s8bit:
+ procname := 'fpc_mul_shortint';
+ u8bit:
+ procname := 'fpc_mul_byte';
s16bit:
procname := 'fpc_mul_integer';
u16bit:
@@ -4158,19 +4162,29 @@ implementation
else if is_implicit_pointer_object_type(ld) then
begin
- expectloc:=LOC_FLAGS;
+ if ld.size>sizeof(aint) then
+ expectloc:=LOC_JUMP
+ else
+ expectloc:=LOC_FLAGS;
end
else if (ld.typ=classrefdef) then
begin
- expectloc:=LOC_FLAGS;
+ if ld.size>sizeof(aint) then
+ expectloc:=LOC_JUMP
+ else
+ expectloc:=LOC_FLAGS;
end
{ support procvar=nil,procvar<>nil }
else if ((ld.typ=procvardef) and (rt=niln)) or
((rd.typ=procvardef) and (lt=niln)) then
begin
- expectloc:=LOC_FLAGS;
+ if (ld.typ=procvardef) and (tprocvardef(ld).size>sizeof(aint)) or
+ (rd.typ=procvardef) and (tprocvardef(rd).size>sizeof(aint)) then
+ expectloc:=LOC_JUMP
+ else
+ expectloc:=LOC_FLAGS;
end
{$ifdef SUPPORT_MMX}
@@ -4192,12 +4206,18 @@ implementation
(ld.typ=procvardef) and
equal_defs(rd,ld) then
begin
- expectloc:=LOC_FLAGS;
+ if tprocvardef(ld).size>sizeof(aint) then
+ expectloc:=LOC_JUMP
+ else
+ expectloc:=LOC_FLAGS;
end
else if (ld.typ=enumdef) then
begin
- expectloc:=LOC_FLAGS;
+ if tenumdef(ld).size>sizeof(aint) then
+ expectloc:=LOC_JUMP
+ else
+ expectloc:=LOC_FLAGS;
end
{$ifdef SUPPORT_MMX}
diff --git a/compiler/ncal.pas b/compiler/ncal.pas
index f1464801f1..2125f588d3 100644
--- a/compiler/ncal.pas
+++ b/compiler/ncal.pas
@@ -4144,8 +4144,8 @@ implementation
That means the for pushes the para with the
highest offset (see para3) needs to be pushed first
}
-{$if defined(i386) or defined(i8086) or defined(m68k)}
- { the i386, i8086, m68k and jvm code generators expect all reference }
+{$if defined(i386) or defined(i8086) or defined(m68k) or defined(z80)}
+ { the i386, i8086, m68k, z80 and jvm code generators expect all reference }
{ parameters to be in this order so they can use }
{ pushes in case of no fixed stack }
if (not paramanager.use_fixed_stack and
diff --git a/compiler/ngenutil.pas b/compiler/ngenutil.pas
index 9d49b106f8..7f56daec44 100644
--- a/compiler/ngenutil.pas
+++ b/compiler/ngenutil.pas
@@ -1516,6 +1516,18 @@ implementation
);
tcb.free;
end;
+
+ { allocate the stack on the ZX Spectrum system }
+ if target_info.system in [system_z80_zxspectrum] then
+ begin
+ { tai_datablock cannot yet be handled via the high level typed const
+ builder, because it implies the generation of a symbol, while this
+ is separate in the builder }
+ maybe_new_object_file(current_asmdata.asmlists[al_globals]);
+ new_section(current_asmdata.asmlists[al_globals],sec_stack,'__fpc_stackarea_start',current_settings.alignment.varalignmax);
+ current_asmdata.asmlists[al_globals].concat(tai_datablock.Create_global('__fpc_stackarea_start',stacksize-1,carraydef.getreusable(u8inttype,stacksize-1),AT_DATA));
+ current_asmdata.asmlists[al_globals].concat(tai_datablock.Create_global('__fpc_stackarea_end',1,carraydef.getreusable(u8inttype,1),AT_DATA));
+ end;
{$IFDEF POWERPC}
{ AmigaOS4 "stack cookie" support }
if ( target_info.system = system_powerpc_amiga ) then
@@ -1547,7 +1559,7 @@ implementation
tcb.free;
{ allocate an initial heap on embedded systems }
- if target_info.system in (systems_embedded+systems_freertos) then
+ if target_info.system in (systems_embedded+systems_freertos+[system_z80_zxspectrum]) then
begin
{ tai_datablock cannot yet be handled via the high level typed const
builder, because it implies the generation of a symbol, while this
diff --git a/compiler/ninl.pas b/compiler/ninl.pas
index d8f1cc9f36..12714874cb 100644
--- a/compiler/ninl.pas
+++ b/compiler/ninl.pas
@@ -3528,11 +3528,18 @@ implementation
in_arctan_real,
in_ln_real :
begin
- set_varstate(left,vs_read,[vsf_must_be_valid]);
+ { on the Z80, the double result is returned in a var param, because
+ it's too big to fit in registers. In that case we have 2 parameters
+ and left.nodetype is a callparan. }
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
+ set_varstate(temp_pnode^,vs_read,[vsf_must_be_valid]);
{ converting an int64 to double on platforms without }
{ extended can cause precision loss }
- if not(left.nodetype in [ordconstn,realconstn]) then
- inserttypeconv(left,pbestrealtype^);
+ if not(temp_pnode^.nodetype in [ordconstn,realconstn]) then
+ inserttypeconv(temp_pnode^,pbestrealtype^);
resultdef:=pbestrealtype^;
end;
@@ -3572,7 +3579,14 @@ implementation
in_sqr_real,
in_sqrt_real :
begin
- set_varstate(left,vs_read,[vsf_must_be_valid]);
+ { on the Z80, the double result is returned in a var param, because
+ it's too big to fit in registers. In that case we have 2 parameters
+ and left.nodetype is a callparan. }
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
+ set_varstate(temp_pnode^,vs_read,[vsf_must_be_valid]);
setfloatresultdef;
end;
@@ -4154,30 +4168,42 @@ implementation
function tinlinenode.first_arctan_real : tnode;
+ var
+ temp_pnode: pnode;
begin
{ create the call to the helper }
{ on entry left node contains the parameter }
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
result := ccallnode.createintern('fpc_arctan_real',
- ccallparanode.create(left,nil));
- left := nil;
+ ccallparanode.create(temp_pnode^,nil));
+ temp_pnode^ := nil;
end;
function tinlinenode.first_abs_real : tnode;
var
callnode : tcallnode;
+ temp_pnode: pnode;
begin
{ create the call to the helper }
{ on entry left node contains the parameter }
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
callnode:=ccallnode.createintern('fpc_abs_real',
- ccallparanode.create(left,nil));
+ ccallparanode.create(temp_pnode^,nil));
result := ctypeconvnode.create(callnode,resultdef);
include(callnode.callnodeflags,cnf_check_fpu_exceptions);
- left := nil;
+ temp_pnode^ := nil;
end;
function tinlinenode.first_sqr_real : tnode;
var
callnode : tcallnode;
+ temp_pnode: pnode;
begin
{$ifndef cpufpemu}
{ this procedure might be only used for cpus definining cpufpemu else
@@ -4186,11 +4212,15 @@ implementation
{$endif cpufpemu}
{ create the call to the helper }
{ on entry left node contains the parameter }
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
callnode:=ccallnode.createintern('fpc_sqr_real',
- ccallparanode.create(left,nil));
+ ccallparanode.create(temp_pnode^,nil));
result := ctypeconvnode.create(callnode,resultdef);
include(callnode.callnodeflags,cnf_check_fpu_exceptions);
- left := nil;
+ temp_pnode^ := nil;
end;
function tinlinenode.first_sqrt_real : tnode;
@@ -4198,14 +4228,19 @@ implementation
fdef: tdef;
procname: string[31];
callnode: tcallnode;
+ temp_pnode: pnode;
begin
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
if ((cs_fp_emulation in current_settings.moduleswitches)
{$ifdef cpufpemu}
or (current_settings.fputype=fpu_soft)
{$endif cpufpemu}
) and not (target_info.system in systems_wince) then
begin
- case tfloatdef(left.resultdef).floattype of
+ case tfloatdef(temp_pnode^.resultdef).floattype of
s32real:
begin
fdef:=search_system_type('FLOAT32REC').typedef;
@@ -4223,93 +4258,141 @@ implementation
internalerror(2014052101);
end;
result:=ctypeconvnode.create_internal(ccallnode.createintern(procname,ccallparanode.create(
- ctypeconvnode.create_internal(left,fdef),nil)),resultdef);
+ ctypeconvnode.create_internal(temp_pnode^,fdef),nil)),resultdef);
end
else
begin
{ create the call to the helper }
{ on entry left node contains the parameter }
callnode := ccallnode.createintern('fpc_sqrt_real',
- ccallparanode.create(left,nil));
+ ccallparanode.create(temp_pnode^,nil));
result := ctypeconvnode.create(callnode,resultdef);
include(callnode.callnodeflags,cnf_check_fpu_exceptions);
end;
- left := nil;
+ temp_pnode^ := nil;
end;
function tinlinenode.first_ln_real : tnode;
+ var
+ temp_pnode: pnode;
begin
{ create the call to the helper }
{ on entry left node contains the parameter }
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
result := ccallnode.createintern('fpc_ln_real',
- ccallparanode.create(left,nil));
+ ccallparanode.create(temp_pnode^,nil));
include(tcallnode(result).callnodeflags,cnf_check_fpu_exceptions);
- left := nil;
+ temp_pnode^ := nil;
end;
function tinlinenode.first_cos_real : tnode;
+ var
+ temp_pnode: pnode;
begin
{ create the call to the helper }
{ on entry left node contains the parameter }
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
result := ccallnode.createintern('fpc_cos_real',
- ccallparanode.create(left,nil));
+ ccallparanode.create(temp_pnode^,nil));
include(tcallnode(result).callnodeflags,cnf_check_fpu_exceptions);
- left := nil;
+ temp_pnode^ := nil;
end;
function tinlinenode.first_sin_real : tnode;
+ var
+ temp_pnode: pnode;
begin
{ create the call to the helper }
{ on entry left node contains the parameter }
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
result := ccallnode.createintern('fpc_sin_real',
- ccallparanode.create(left,nil));
+ ccallparanode.create(temp_pnode^,nil));
include(tcallnode(result).callnodeflags,cnf_check_fpu_exceptions);
- left := nil;
+ temp_pnode^ := nil;
end;
function tinlinenode.first_exp_real : tnode;
+ var
+ temp_pnode: pnode;
begin
{ create the call to the helper }
{ on entry left node contains the parameter }
- result := ccallnode.createintern('fpc_exp_real',ccallparanode.create(left,nil));
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
+ result := ccallnode.createintern('fpc_exp_real',ccallparanode.create(temp_pnode^,nil));
include(tcallnode(result).callnodeflags,cnf_check_fpu_exceptions);
- left := nil;
+ temp_pnode^ := nil;
end;
function tinlinenode.first_int_real : tnode;
+ var
+ temp_pnode: pnode;
begin
{ create the call to the helper }
{ on entry left node contains the parameter }
- result := ccallnode.createintern('fpc_int_real',ccallparanode.create(left,nil));
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
+ result := ccallnode.createintern('fpc_int_real',ccallparanode.create(temp_pnode^,nil));
include(tcallnode(result).callnodeflags,cnf_check_fpu_exceptions);
- left := nil;
+ temp_pnode^ := nil;
end;
function tinlinenode.first_frac_real : tnode;
+ var
+ temp_pnode: pnode;
begin
{ create the call to the helper }
{ on entry left node contains the parameter }
- result := ccallnode.createintern('fpc_frac_real',ccallparanode.create(left,nil));
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
+ result := ccallnode.createintern('fpc_frac_real',ccallparanode.create(temp_pnode^,nil));
include(tcallnode(result).callnodeflags,cnf_check_fpu_exceptions);
- left := nil;
+ temp_pnode^ := nil;
end;
function tinlinenode.first_round_real : tnode;
+ var
+ temp_pnode: pnode;
begin
{ create the call to the helper }
{ on entry left node contains the parameter }
- result := ccallnode.createintern('fpc_round_real',ccallparanode.create(left,nil));
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
+ result := ccallnode.createintern('fpc_round_real',ccallparanode.create(temp_pnode^,nil));
include(tcallnode(result).callnodeflags,cnf_check_fpu_exceptions);
- left := nil;
+ temp_pnode^ := nil;
end;
function tinlinenode.first_trunc_real : tnode;
+ var
+ temp_pnode: pnode;
begin
{ create the call to the helper }
{ on entry left node contains the parameter }
- result := ccallnode.createintern('fpc_trunc_real',ccallparanode.create(left,nil));
+ if left.nodetype = callparan then
+ temp_pnode := @tcallparanode(left).left
+ else
+ temp_pnode := @left;
+ result := ccallnode.createintern('fpc_trunc_real',ccallparanode.create(temp_pnode^,nil));
include(tcallnode(result).callnodeflags,cnf_check_fpu_exceptions);
- left := nil;
+ temp_pnode^ := nil;
end;
function tinlinenode.first_abs_long : tnode;
diff --git a/compiler/ogcoff.pas b/compiler/ogcoff.pas
index ec2f73c391..8c05b3792a 100644
--- a/compiler/ogcoff.pas
+++ b/compiler/ogcoff.pas
@@ -3472,6 +3472,7 @@ const pemagic : array[0..3] of byte = (
supported_targets : [system_i386_go32v2];
flags : [af_outputbinary,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '';
dollarsign: '$';
);
@@ -3485,6 +3486,7 @@ const pemagic : array[0..3] of byte = (
supported_targets : [system_i386_win32,system_i386_nativent];
flags : [af_outputbinary,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '';
dollarsign: '$';
);
@@ -3498,6 +3500,7 @@ const pemagic : array[0..3] of byte = (
supported_targets : [system_i386_wdosx];
flags : [af_outputbinary];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '';
dollarsign: '$';
);
@@ -3511,6 +3514,7 @@ const pemagic : array[0..3] of byte = (
supported_targets : [system_i386_wince];
flags : [af_outputbinary,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '';
dollarsign: '$';
);
@@ -3526,6 +3530,7 @@ const pemagic : array[0..3] of byte = (
supported_targets : [system_x86_64_win64];
flags : [af_outputbinary,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '';
dollarsign: '$';
);
@@ -3541,6 +3546,7 @@ const pemagic : array[0..3] of byte = (
supported_targets : [system_arm_wince];
flags : [af_outputbinary,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '';
dollarsign: '$';
);
diff --git a/compiler/ogmacho.pas b/compiler/ogmacho.pas
index 3f504bb336..2ba006a04b 100644
--- a/compiler/ogmacho.pas
+++ b/compiler/ogmacho.pas
@@ -1229,6 +1229,7 @@ uses
supported_targets : [system_i386_darwin,system_i386_iphonesim];
flags : [af_outputbinary,af_smartlink_sections,af_supports_dwarf{, af_stabs_use_function_absolute_addresses}];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '#';
dollarsign: '$';
);
diff --git a/compiler/ognlm.pas b/compiler/ognlm.pas
index 99b57a5451..9c48c3d2c1 100644
--- a/compiler/ognlm.pas
+++ b/compiler/ognlm.pas
@@ -1497,6 +1497,7 @@ const
supported_targets : [system_i386_Netware,system_i386_netwlibc];
flags : [af_outputbinary,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '';
dollarsign: '$';
);
diff --git a/compiler/ogomf.pas b/compiler/ogomf.pas
index 1ab8ab0d4d..05b02acadf 100644
--- a/compiler/ogomf.pas
+++ b/compiler/ogomf.pas
@@ -4920,6 +4920,7 @@ cleanup:
supported_targets : [system_i8086_msdos,system_i8086_embedded,system_i8086_win16];
flags : [af_outputbinary,af_smartlink_sections];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
diff --git a/compiler/options.pas b/compiler/options.pas
index 71089fe860..a8b85539cc 100644
--- a/compiler/options.pas
+++ b/compiler/options.pas
@@ -758,6 +758,9 @@ begin
{$ifdef llvm}
'L',
{$endif}
+{$ifdef z80}
+ 'Z',
+{$endif}
'*' : show:=true;
end;
if show then
@@ -3360,6 +3363,8 @@ begin
lets disable the feature. }
system_m68k_amiga:
target_unsup_features:=[f_dynlibs];
+ system_z80_zxspectrum:
+ target_unsup_features:=[f_threading,f_dynlibs{,f_fileio,f_textio},f_commandargs,f_exitcode];
else
target_unsup_features:=[];
end;
@@ -3783,6 +3788,13 @@ procedure read_arguments(cmd:TCmdStr);
def_system_macro('FPC_REQUIRES_PROPER_ALIGNMENT');
{$endif xtensa}
+ {$ifdef z80}
+ def_system_macro('CPUZ80');
+ def_system_macro('CPU16');
+ def_system_macro('FPC_CURRENCY_IS_INT64');
+ def_system_macro('FPC_COMP_IS_INT64');
+ {$endif z80}
+
{$if defined(cpu8bitalu)}
def_system_macro('CPUINT8');
{$elseif defined(cpu16bitalu)}
@@ -3940,7 +3952,7 @@ begin
end;
{ Set up default value for the heap }
- if target_info.system in (systems_embedded+systems_freertos) then
+ if target_info.system in (systems_embedded+systems_freertos+[system_z80_zxspectrum]) then
begin
case target_info.system of
{$ifdef AVR}
@@ -4241,7 +4253,8 @@ begin
((target_info.system in [system_arm_wince,system_arm_gba,
system_m68k_amiga,system_m68k_atari,
system_arm_nds,system_arm_embedded,
- system_riscv32_embedded,system_riscv64_embedded,system_xtensa_embedded])
+ system_riscv32_embedded,system_riscv64_embedded,system_xtensa_embedded,
+ system_z80_embedded,system_z80_zxspectrum])
{$ifdef arm}
or (target_info.abi=abi_eabi)
{$endif arm}
@@ -4680,7 +4693,7 @@ begin
option.free;
Option:=nil;
- clearstack_pocalls := [pocall_cdecl,pocall_cppdecl,pocall_syscall,pocall_mwpascal,pocall_sysv_abi_cdecl,pocall_ms_abi_cdecl];
+ clearstack_pocalls := [pocall_cdecl,pocall_cppdecl,pocall_syscall,pocall_mwpascal,pocall_sysv_abi_cdecl,pocall_ms_abi_cdecl{$ifdef z80},pocall_stdcall{$endif}];
cdecl_pocalls := [pocall_cdecl, pocall_cppdecl, pocall_mwpascal, pocall_sysv_abi_cdecl, pocall_ms_abi_cdecl];
if (tf_safecall_clearstack in target_info.flags) then
begin
diff --git a/compiler/pass_1.pas b/compiler/pass_1.pas
index 0e80d10f22..2ac00dbc43 100644
--- a/compiler/pass_1.pas
+++ b/compiler/pass_1.pas
@@ -194,18 +194,18 @@ implementation
p:=hp;
end;
if codegenerror then
- include(p.flags,nf_error)
- else
- begin
-{$ifdef EXTDEBUG}
- if (p.expectloc=LOC_INVALID) then
- Comment(V_Warning,'Expectloc is not set in firstpass: '+nodetype2str[p.nodetype]);
-{$endif EXTDEBUG}
- end;
+ include(p.flags,nf_error);
end;
until not assigned(hp) or
(nf_pass1_done in hp.flags);
include(p.flags,nf_pass1_done);
+{$ifdef EXTDEBUG}
+ if not(nf_error in p.flags) then
+ begin
+ if (p.expectloc=LOC_INVALID) then
+ Comment(V_Warning,'Expectloc is not set in firstpass: '+nodetype2str[p.nodetype]);
+ end;
+{$endif EXTDEBUG}
codegenerror:=codegenerror or oldcodegenerror;
current_settings.localswitches:=oldlocalswitches;
current_filepos:=oldpos;
diff --git a/compiler/powerpc/agppcmpw.pas b/compiler/powerpc/agppcmpw.pas
index 80d75bfc87..9c3c8fe0ba 100644
--- a/compiler/powerpc/agppcmpw.pas
+++ b/compiler/powerpc/agppcmpw.pas
@@ -1243,6 +1243,7 @@ interface
supported_targets : [system_powerpc_macos];
flags : [af_needar,af_smartlink_sections,af_labelprefix_only_inside_procedure];
labelprefix : '@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: 's';
);
diff --git a/compiler/powerpc/agppcvasm.pas b/compiler/powerpc/agppcvasm.pas
index e51c3cc451..e502a16448 100644
--- a/compiler/powerpc/agppcvasm.pas
+++ b/compiler/powerpc/agppcvasm.pas
@@ -125,6 +125,7 @@ unit agppcvasm;
supported_targets : [system_powerpc_amiga,system_powerpc_morphos,system_powerpc_linux];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
diff --git a/compiler/pp.pas b/compiler/pp.pas
index a4dbd9b118..e1eddc2c8e 100644
--- a/compiler/pp.pas
+++ b/compiler/pp.pas
@@ -37,6 +37,7 @@ program pp;
MIPSEL generate a compiler for the MIPSEL (Littel Endian)
POWERPC generate a compiler for the PowerPC
POWERPC64 generate a compiler for the PowerPC64 architecture
+ Z80 generate a compiler for Z80
RISCV64 generate a compiler for the RiscV64 architecture
SPARC generate a compiler for SPARC
SPARC64 generate a compiler for SPARC64
@@ -46,6 +47,7 @@ program pp;
Other compiler switches
-----------------------------------------------------------------
CMEM use cmem unit for better memory debugging
+=======
DEBUG version with debug code is generated
EXTDEBUG some extra debug code is executed
EXTERN_MSG Don't compile the msgfiles in the compiler, always
@@ -184,7 +186,12 @@ program pp;
{$endif CPUDEFINED}
{$define CPUDEFINED}
{$endif XTENSA}
-
+{$ifdef Z80}
+ {$ifdef CPUDEFINED}
+ {$fatal ONLY one of the switches for the CPU type must be defined}
+ {$endif CPUDEFINED}
+ {$define CPUDEFINED}
+{$endif Z80}
{$ifndef CPUDEFINED}
{$fatal A CPU type switch must be defined}
{$endif CPUDEFINED}
diff --git a/compiler/ppcgen/agppcgas.pas b/compiler/ppcgen/agppcgas.pas
index 71c3ed540b..e094eea378 100644
--- a/compiler/ppcgen/agppcgas.pas
+++ b/compiler/ppcgen/agppcgas.pas
@@ -112,7 +112,7 @@ unit agppcgas;
not assigned(symbol) then
internalerror(2011122701);
if asminfo^.dollarsign<>'$' then
- getreferencestring:=ReplaceForbiddenAsmSymbolChars(symbol.name)+'('+gas_regname(NR_RTOC)+')'
+ getreferencestring:=ApplyAsmSymbolRestrictions(symbol.name)+'('+gas_regname(NR_RTOC)+')'
else
getreferencestring:=symbol.name+'('+gas_regname(NR_RTOC)+')';
exit;
@@ -128,9 +128,9 @@ unit agppcgas;
begin
if asminfo^.dollarsign<>'$' then
begin
- s:=s+ReplaceForbiddenAsmSymbolChars(symbol.name);
+ s:=s+ApplyAsmSymbolRestrictions(symbol.name);
if assigned(relsymbol) then
- s:=s+'-'+ReplaceForbiddenAsmSymbolChars(relsymbol.name)
+ s:=s+'-'+ApplyAsmSymbolRestrictions(relsymbol.name)
end
else
begin
@@ -206,7 +206,7 @@ unit agppcgas;
internalerror(200402267);
hs:=o.ref^.symbol.name;
if asminfo^.dollarsign<>'$' then
- hs:=ReplaceForbiddenAsmSymbolChars(hs);
+ hs:=ApplyAsmSymbolRestrictions(hs);
if o.ref^.offset>0 then
hs:=hs+'+'+tostr(o.ref^.offset)
else
@@ -236,7 +236,7 @@ unit agppcgas;
begin
hs:=o.ref^.symbol.name;
if asminfo^.dollarsign<>'$' then
- hs:=ReplaceForbiddenAsmSymbolChars(hs);
+ hs:=ApplyAsmSymbolRestrictions(hs);
if o.ref^.offset>0 then
hs:=hs+'+'+tostr(o.ref^.offset)
else
@@ -646,6 +646,7 @@ unit agppcgas;
supported_targets : [system_powerpc_linux,system_powerpc_netbsd,system_powerpc_openbsd,system_powerpc_MorphOS,system_powerpc_Amiga,system_powerpc64_linux,system_powerpc_embedded,system_powerpc64_embedded];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -664,6 +665,7 @@ unit agppcgas;
supported_targets : [system_powerpc_morphos];
flags : [af_needar];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -678,6 +680,7 @@ unit agppcgas;
supported_targets : [system_powerpc_darwin,system_powerpc64_darwin];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_stabs_use_function_absolute_addresses];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign : '$';
);
@@ -701,6 +704,7 @@ unit agppcgas;
supported_targets : [system_powerpc_aix,system_powerpc64_aix];
flags : [af_needar,af_smartlink_sections,af_stabs_use_function_absolute_addresses];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign : '.'
);
@@ -723,6 +727,7 @@ unit agppcgas;
supported_targets : [system_powerpc_aix,system_powerpc64_aix];
flags : [af_needar,af_smartlink_sections,af_stabs_use_function_absolute_addresses];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign : '.'
);
@@ -736,6 +741,7 @@ unit agppcgas;
supported_targets : [system_powerpc_macos, system_powerpc_darwin, system_powerpc64_darwin];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
diff --git a/compiler/ppcgen/cgppc.pas b/compiler/ppcgen/cgppc.pas
index a3b15edb10..486a3ae290 100644
--- a/compiler/ppcgen/cgppc.pas
+++ b/compiler/ppcgen/cgppc.pas
@@ -846,7 +846,7 @@ unit cgppc;
current_asmdata.WeakRefAsmSymbol(symname,AT_DATA)
else
current_asmdata.WeakRefAsmSymbol('.'+symname,AT_DATA);
- newsymname:=ReplaceForbiddenAsmSymbolChars(symname);
+ newsymname:=ApplyAsmSymbolRestrictions(symname);
current_asmdata.asmlists[al_picdata].concat(tai_directive.Create(asd_toc_entry,newsymname+'[TC],'+newsymname));
end;
end
@@ -879,7 +879,7 @@ unit cgppc;
ref.symbol:=tocsym;
tocsym.ftocsecnr:=tocnr;
current_asmdata.asmlists[al_indirectpicdata].concat(tai_symbol.create(tocsym,0));
- newsymname:=ReplaceForbiddenAsmSymbolChars(symname);
+ newsymname:=ApplyAsmSymbolRestrictions(symname);
sym:=current_asmdata.RefAsmSymbol(newsymname,AT_DATA);
current_asmdata.asmlists[al_indirectpicdata].concat(tai_const.Create_sym(sym));
end;
diff --git a/compiler/ppcz80.lpi b/compiler/ppcz80.lpi
new file mode 100644
index 0000000000..86b46d19c3
--- /dev/null
+++ b/compiler/ppcz80.lpi
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CONFIG>
+ <ProjectOptions>
+ <Version Value="12"/>
+ <PathDelim Value="\"/>
+ <General>
+ <Flags>
+ <MainUnitHasUsesSectionForAllUnits Value="False"/>
+ <MainUnitHasCreateFormStatements Value="False"/>
+ <MainUnitHasTitleStatement Value="False"/>
+ <LRSInOutputDirectory Value="False"/>
+ <CompatibilityMode Value="True"/>
+ </Flags>
+ <SessionStorage Value="InProjectDir"/>
+ <Title Value="ppcz80"/>
+ </General>
+ <BuildModes Count="1">
+ <Item1 Name="default" Default="True"/>
+ </BuildModes>
+ <PublishOptions>
+ <Version Value="2"/>
+ </PublishOptions>
+ <RunParams>
+ <FormatVersion Value="2"/>
+ <Modes Count="1">
+ <Mode0 Name="default">
+ <local>
+ <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T &apos;Lazarus Run Output&apos; -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
+ </local>
+ </Mode0>
+ </Modes>
+ </RunParams>
+ <Units Count="2">
+ <Unit0>
+ <Filename Value="pp.pas"/>
+ <IsPartOfProject Value="True"/>
+ </Unit0>
+ <Unit1>
+ <Filename Value="z80\aasmcpu.pas"/>
+ <IsPartOfProject Value="True"/>
+ </Unit1>
+ </Units>
+ </ProjectOptions>
+ <CompilerOptions>
+ <Version Value="11"/>
+ <PathDelim Value="\"/>
+ <Target>
+ <Filename Value="z80\pp"/>
+ </Target>
+ <SearchPaths>
+ <IncludeFiles Value="z80"/>
+ <OtherUnitFiles Value="z80;systems"/>
+ <UnitOutputDirectory Value="z80\lazbuild"/>
+ </SearchPaths>
+ <Parsing>
+ <SyntaxOptions>
+ <CStyleOperator Value="False"/>
+ <AllowLabel Value="False"/>
+ <CPPInline Value="False"/>
+ <UseAnsiStrings Value="False"/>
+ </SyntaxOptions>
+ </Parsing>
+ <Other>
+ <Verbosity>
+ <ShowWarn Value="False"/>
+ <ShowNotes Value="False"/>
+ <ShowHints Value="False"/>
+ </Verbosity>
+ <ConfigFile>
+ <StopAfterErrCount Value="50"/>
+ </ConfigFile>
+ <CustomOptions Value="-dz80
+-dEXTDEBUG"/>
+ <OtherDefines Count="3">
+ <Define0 Value="z80"/>
+ <Define1 Value="DEBUG_REGALLOC"/>
+ <Define2 Value="EXTDEBUG"/>
+ </OtherDefines>
+ </Other>
+ </CompilerOptions>
+</CONFIG>
diff --git a/compiler/psystem.pas b/compiler/psystem.pas
index 245ca423b2..b05cccdea0 100644
--- a/compiler/psystem.pas
+++ b/compiler/psystem.pas
@@ -356,6 +356,13 @@ implementation
sc80floattype:=cfloatdef.create(sc80real,true);
s64currencytype:=corddef.create(scurrency,low(int64),high(int64),true);
{$endif avr}
+{$ifdef z80}
+ s32floattype:=cfloatdef.create(s32real,true);
+ s64floattype:=cfloatdef.create(s64real,true);
+ s80floattype:=cfloatdef.create(s80real,true);
+ sc80floattype:=cfloatdef.create(sc80real,true);
+ s64currencytype:=corddef.create(scurrency,low(int64),high(int64),true);
+{$endif z80}
{$ifdef mips}
create_fpu_types;
s64currencytype:=corddef.create(scurrency,low(int64),high(int64),true);
diff --git a/compiler/rautils.pas b/compiler/rautils.pas
index d87c7fd830..a862c83868 100644
--- a/compiler/rautils.pas
+++ b/compiler/rautils.pas
@@ -54,6 +54,8 @@ type
OPR_CONSTANT : (val:longint);
{$elseif defined(i8086)}
OPR_CONSTANT : (val:longint);
+{$elseif defined(Z80)}
+ OPR_CONSTANT : (val:longint);
{$else}
OPR_CONSTANT : (val:aint);
{$endif}
diff --git a/compiler/riscv/agrvgas.pas b/compiler/riscv/agrvgas.pas
index f0426a27f2..21db484522 100644
--- a/compiler/riscv/agrvgas.pas
+++ b/compiler/riscv/agrvgas.pas
@@ -79,9 +79,9 @@ unit agrvgas;
begin
if asminfo^.dollarsign<>'$' then
begin
- s:=s+ReplaceForbiddenAsmSymbolChars(symbol.name);
+ s:=s+ApplyAsmSymbolRestrictions(symbol.name);
if assigned(relsymbol) then
- s:=s+'-'+ReplaceForbiddenAsmSymbolChars(relsymbol.name)
+ s:=s+'-'+ApplyAsmSymbolRestrictions(relsymbol.name)
end
else
begin
@@ -159,7 +159,7 @@ unit agrvgas;
begin
hs:=o.ref^.symbol.name;
if asminfo^.dollarsign<>'$' then
- hs:=ReplaceForbiddenAsmSymbolChars(hs);
+ hs:=ApplyAsmSymbolRestrictions(hs);
if o.ref^.offset>0 then
hs:=hs+'+'+tostr(o.ref^.offset)
else
@@ -263,6 +263,7 @@ unit agrvgas;
supported_targets : [system_riscv32_linux,system_riscv64_linux];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
diff --git a/compiler/sparc/cpuelf.pas b/compiler/sparc/cpuelf.pas
index 1123ffb266..d9331a7638 100644
--- a/compiler/sparc/cpuelf.pas
+++ b/compiler/sparc/cpuelf.pas
@@ -128,6 +128,7 @@ implementation
// flags : [af_outputbinary,af_smartlink_sections];
flags : [af_outputbinary,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '';
dollarsign: '$';
);
diff --git a/compiler/sparc64/cpugas.pas b/compiler/sparc64/cpugas.pas
index 9ea138b793..76d752164f 100644
--- a/compiler/sparc64/cpugas.pas
+++ b/compiler/sparc64/cpugas.pas
@@ -240,6 +240,7 @@ implementation
supported_targets : [system_sparc64_linux];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -253,6 +254,7 @@ implementation
supported_targets : [system_sparc64_linux];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
diff --git a/compiler/sparcgen/cpugas.pas b/compiler/sparcgen/cpugas.pas
index ca41275117..a34fdcfaa6 100644
--- a/compiler/sparcgen/cpugas.pas
+++ b/compiler/sparcgen/cpugas.pas
@@ -236,6 +236,7 @@ implementation
supported_targets : [system_sparc_solaris,system_sparc_linux,system_sparc_embedded];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -249,6 +250,7 @@ implementation
supported_targets : [system_sparc_solaris,system_sparc_linux,system_sparc_embedded];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -266,6 +268,7 @@ implementation
supported_targets : [system_sparc64_linux];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -279,6 +282,7 @@ implementation
supported_targets : [system_sparc64_linux];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
diff --git a/compiler/systems.inc b/compiler/systems.inc
index 7c9c96cdcf..e7e112b424 100644
--- a/compiler/systems.inc
+++ b/compiler/systems.inc
@@ -55,7 +55,8 @@
cpu_sparc64, { 18 }
cpu_riscv32, { 19 }
cpu_riscv64, { 20 }
- cpu_xtensa { 21 }
+ cpu_xtensa, { 21 }
+ cpu_sys_z80 { 22 }
);
tasmmode= (asmmode_none
@@ -195,7 +196,9 @@
system_xtensa_freertos, { 104 }
system_xtensa_linux, { 105 }
system_arm_freertos, { 106 }
- system_aarch64_win64 { 107 }
+ system_aarch64_win64, { 107 }
+ system_z80_embedded, { 108 }
+ system_z80_zxspectrum { 109 }
);
type
@@ -252,6 +255,8 @@
,as_powerpc_gas_legacy { for systems with very old GAS versions only, which don't support eg. named sections }
,as_llvm_clang
,as_clang_gas
+ ,as_z80asm
+ ,as_sdcc_sdasz80
);
tlink = (ld_none,
@@ -291,7 +296,8 @@
ld_int_windows,
ld_int_msdos,
ld_int_win16,
- ld_freertos
+ ld_freertos,
+ ld_zxspectrum
);
tar = (ar_none
@@ -301,6 +307,8 @@
,ar_gnu_gar
,ar_watcom_wlib_omf
,ar_watcom_wlib_omf_scripted
+ ,ar_sdcc_sdar
+ ,ar_sdcc_sdar_scripted
);
tres = (res_none
diff --git a/compiler/systems.pas b/compiler/systems.pas
index 2e2a739db3..d4430804fd 100644
--- a/compiler/systems.pas
+++ b/compiler/systems.pas
@@ -88,6 +88,7 @@ interface
supported_targets : set of tsystem;
flags : set of tasmflags;
labelprefix : string[3];
+ labelmaxlen : integer;
comment : string[3];
{ set to '$' if that character is allowed in symbol names, otherwise
to alternate character by which '$' should be replaced }
@@ -100,7 +101,7 @@ interface
addfilecmd : string[10];
arfirstcmd : string[50];
arcmd : string[50];
- arfinishcmd : string[10];
+ arfinishcmd : string[11];
end;
presinfo = ^tresinfo;
@@ -186,7 +187,7 @@ interface
tsysteminfo = record
system : tsystem;
name : string[34];
- shortname : string[9];
+ shortname : string[10];
flags : set of tsystemflags;
cpu : tsystemcpu;
unit_env : string[16];
@@ -302,7 +303,7 @@ interface
system_powerpc64_embedded,system_avr_embedded,
system_jvm_java32,system_mipseb_embedded,system_mipsel_embedded,
system_i8086_embedded,system_riscv32_embedded,system_riscv64_embedded,
- system_xtensa_embedded];
+ system_xtensa_embedded,system_z80_embedded];
{ all FreeRTOS systems }
systems_freertos = [system_xtensa_freertos,system_arm_freertos];
@@ -441,7 +442,8 @@ interface
cpu2str : array[TSystemCpu] of string[10] =
('','i386','m68k','alpha','powerpc','sparc','vm','ia64','x86_64',
'mips','arm', 'powerpc64', 'avr', 'mipsel','jvm', 'i8086',
- 'aarch64', 'wasm', 'sparc64', 'riscv32', 'riscv64', 'xtensa');
+ 'aarch64', 'wasm', 'sparc64', 'riscv32', 'riscv64', 'xtensa',
+ 'z80');
abiinfo : array[tabi] of tabiinfo = (
(name: 'DEFAULT'; supported: true),
@@ -1130,7 +1132,11 @@ begin
{$ifdef wasm}
default_target(system_wasm_wasm32);
-{$endif}
+{$endif wasm}
+
+{$ifdef z80}
+ default_target(system_z80_embedded);
+{$endif z80}
{$ifdef riscv32}
default_target(system_riscv32_linux);
diff --git a/compiler/systems/i_embed.pas b/compiler/systems/i_embed.pas
index 14088fb803..c3d643e262 100644
--- a/compiler/systems/i_embed.pas
+++ b/compiler/systems/i_embed.pas
@@ -716,6 +716,74 @@ unit i_embed;
llvmdatalayout : 'e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:64-n32-S32';
);
+ system_z80_embedded_info : tsysteminfo =
+ (
+ system : system_z80_embedded;
+ name : 'Embedded';
+ shortname : 'embedded';
+ flags : [tf_needs_symbol_size,tf_files_case_sensitive,
+ tf_smartlink_library,
+ tf_no_objectfiles_when_smartlinking];
+ cpu : cpu_sys_z80;
+ unit_env : '';
+ extradefines : '';
+ exeext : '';
+ defext : '.def';
+ scriptext : '.sh';
+ smartext : '.sl';
+ unitext : '.ppu';
+ unitlibext : '.ppl';
+ asmext : '.s';
+ objext : '.rel';
+ resext : '.res';
+ resobjext : '.or';
+ sharedlibext : '.so';
+ staticlibext : '.a';
+ staticlibprefix : 'libp';
+ sharedlibprefix : 'lib';
+ sharedClibext : '.so';
+ staticClibext : '.a';
+ staticClibprefix : 'lib';
+ sharedClibprefix : 'lib';
+ importlibprefix : 'libimp';
+ importlibext : '.a';
+ Cprefix : '';
+ newline : #10;
+ dirsep : '/';
+ assem : as_sdcc_sdasz80;
+ assemextern : as_sdcc_sdasz80;
+ link : ld_none;
+ linkextern : ld_embedded;
+ ar : ar_sdcc_sdar;
+ res : res_none;
+ dbg : dbg_dwarf2;
+ script : script_unix;
+ endian : endian_little;
+ alignment :
+ (
+ procalign : 1;
+ loopalign : 1;
+ jumpalign : 0;
+ jumpalignskipmax : 0;
+ coalescealign : 0;
+ coalescealignskipmax : 0;
+ constalignmin : 0;
+ constalignmax : 1;
+ varalignmin : 0;
+ varalignmax : 1;
+ localalignmin : 0;
+ localalignmax : 1;
+ recordalignmin : 0;
+ recordalignmax : 1;
+ maxCrecordalign : 1
+ );
+ first_parm_offset : 4;
+ stacksize : 1024;
+ stackalign : 1;
+ abi : abi_default;
+ llvmdatalayout : 'todo';
+ );
+
implementation
initialization
@@ -769,5 +837,10 @@ initialization
set_source_info(system_xtensa_embedded_info);
{$endif embedded}
{$endif cpuxtensa}
+{$ifdef CPUZ80}
+ {$ifdef embedded}
+ set_source_info(system_z80_embedded_info);
+ {$endif embedded}
+{$endif CPUZ80}
end.
diff --git a/compiler/systems/i_zxspectrum.pas b/compiler/systems/i_zxspectrum.pas
new file mode 100644
index 0000000000..8409541ba6
--- /dev/null
+++ b/compiler/systems/i_zxspectrum.pas
@@ -0,0 +1,108 @@
+{
+ This unit implements support information structures for the FPC ZX Spectrum target
+
+ Copyright (c) 1998-2006 by Peter Vreman
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ ****************************************************************************
+}
+unit i_zxspectrum;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ uses
+ systems;
+
+ const
+ system_z80_zxspectrum_info : tsysteminfo =
+ (
+ system : system_z80_zxspectrum;
+ name : 'ZX Spectrum';
+ shortname : 'zxspectrum';
+ flags : [tf_needs_symbol_size,tf_files_case_sensitive,
+ tf_smartlink_library,
+ tf_no_objectfiles_when_smartlinking];
+ cpu : cpu_sys_z80;
+ unit_env : '';
+ extradefines : '';
+ exeext : '';
+ defext : '.def';
+ scriptext : '.sh';
+ smartext : '.sl';
+ unitext : '.ppu';
+ unitlibext : '.ppl';
+ asmext : '.s';
+ objext : '.rel';
+ resext : '.res';
+ resobjext : '.or';
+ sharedlibext : '.so';
+ staticlibext : '.a';
+ staticlibprefix : 'libp';
+ sharedlibprefix : 'lib';
+ sharedClibext : '.so';
+ staticClibext : '.a';
+ staticClibprefix : 'lib';
+ sharedClibprefix : 'lib';
+ importlibprefix : 'libimp';
+ importlibext : '.a';
+ Cprefix : '';
+ newline : #10;
+ dirsep : '/';
+ assem : as_sdcc_sdasz80;
+ assemextern : as_sdcc_sdasz80;
+ link : ld_none;
+ linkextern : ld_zxspectrum;
+ ar : ar_sdcc_sdar;
+ res : res_none;
+ dbg : dbg_dwarf2;
+ script : script_unix;
+ endian : endian_little;
+ alignment :
+ (
+ procalign : 1;
+ loopalign : 1;
+ jumpalign : 0;
+ jumpalignskipmax : 0;
+ coalescealign : 0;
+ coalescealignskipmax : 0;
+ constalignmin : 0;
+ constalignmax : 1;
+ varalignmin : 0;
+ varalignmax : 1;
+ localalignmin : 0;
+ localalignmax : 1;
+ recordalignmin : 0;
+ recordalignmax : 1;
+ maxCrecordalign : 1
+ );
+ first_parm_offset : 4;
+ stacksize : 1024;
+ stackalign : 1;
+ abi : abi_default;
+ llvmdatalayout : 'todo';
+ );
+
+ implementation
+
+initialization
+{$ifdef CPUZ80}
+ {$ifdef zxspectrum}
+ set_source_info(system_z80_zxspectrum_info);
+ {$endif zxspectrum}
+{$endif CPUZ80}
+end.
+
diff --git a/compiler/systems/t_embed.pas b/compiler/systems/t_embed.pas
index cdc2cc7167..45d50b3162 100644
--- a/compiler/systems/t_embed.pas
+++ b/compiler/systems/t_embed.pas
@@ -46,6 +46,18 @@ implementation
function postprocessexecutable(const fn : string;isdll:boolean):boolean;
end;
+ { TlinkerEmbedded_SdccSdld - the sdld linker from the SDCC project ( http://sdcc.sourceforge.net/ ) }
+
+ TlinkerEmbedded_SdccSdld=class(texternallinker)
+ private
+ Function WriteResponseFile: Boolean;
+ public
+{ constructor Create; override;}
+ procedure SetDefaultInfo; override;
+ function MakeExecutable:boolean; override;
+{ function postprocessexecutable(const fn : string;isdll:boolean):boolean;}
+ end;
+
{*****************************************************************************
@@ -1805,6 +1817,256 @@ function TLinkerEmbedded.postprocessexecutable(const fn : string;isdll:boolean):
{*****************************************************************************
+ TlinkerEmbedded_SdccSdld
+*****************************************************************************}
+
+function TlinkerEmbedded_SdccSdld.WriteResponseFile: Boolean;
+ Var
+ linkres : TLinkRes;
+ i : longint;
+ HPath : TCmdStrListItem;
+ s,s1,s2 : TCmdStr;
+ prtobj,
+ cprtobj : string[80];
+ linklibc : boolean;
+ found1,
+ found2 : boolean;
+ {$if defined(ARM)}
+ LinkStr : string;
+ {$endif}
+ begin
+ WriteResponseFile:=False;
+ linklibc:=(SharedLibFiles.Find('c')<>nil);
+ prtobj:='prt0';
+ cprtobj:='cprt0';
+ if linklibc then
+ prtobj:=cprtobj;
+
+ { Open link.res file }
+ LinkRes:=TLinkRes.Create(outputexedir+Info.ResName,true);
+
+ { Write path to search libraries }
+(* HPath:=TCmdStrListItem(current_module.locallibrarysearchpath.First);
+ while assigned(HPath) do
+ begin
+ s:=HPath.Str;
+ if (cs_link_on_target in current_settings.globalswitches) then
+ s:=ScriptFixFileName(s);
+ LinkRes.Add('-L'+s);
+ HPath:=TCmdStrListItem(HPath.Next);
+ end;
+ HPath:=TCmdStrListItem(LibrarySearchPath.First);
+ while assigned(HPath) do
+ begin
+ s:=HPath.Str;
+ if s<>'' then
+ LinkRes.Add('SEARCH_DIR("'+s+'")');
+ HPath:=TCmdStrListItem(HPath.Next);
+ end;
+
+ LinkRes.Add('INPUT (');
+ { add objectfiles, start with prt0 always }*)
+ //s:=FindObjectFile('prt0','',false);
+ if prtobj<>'' then
+ begin
+ s:=FindObjectFile(prtobj,'',false);
+ LinkRes.AddFileName(s);
+ end;
+
+ { try to add crti and crtbegin if linking to C }
+ if linklibc then
+ begin
+ if librarysearchpath.FindFile('crtbegin.o',false,s) then
+ LinkRes.AddFileName(s);
+ if librarysearchpath.FindFile('crti.o',false,s) then
+ LinkRes.AddFileName(s);
+ end;
+
+ while not ObjectFiles.Empty do
+ begin
+ s:=ObjectFiles.GetFirst;
+ if s<>'' then
+ begin
+ { vlink doesn't use SEARCH_DIR for object files }
+ if not(cs_link_on_target in current_settings.globalswitches) then
+ s:=FindObjectFile(s,'',false);
+ LinkRes.AddFileName((maybequoted(s)));
+ end;
+ end;
+
+ { Write staticlibraries }
+ if not StaticLibFiles.Empty then
+ begin
+ { vlink doesn't need, and doesn't support GROUP }
+{ if (cs_link_on_target in current_settings.globalswitches) then
+ begin
+ LinkRes.Add(')');
+ LinkRes.Add('GROUP(');
+ end;}
+ while not StaticLibFiles.Empty do
+ begin
+ S:=StaticLibFiles.GetFirst;
+ LinkRes.Add('-l'+maybequoted(s));
+ end;
+ end;
+
+(* if (cs_link_on_target in current_settings.globalswitches) then
+ begin
+ LinkRes.Add(')');
+
+ { Write sharedlibraries like -l<lib>, also add the needed dynamic linker
+ here to be sure that it gets linked this is needed for glibc2 systems (PFV) }
+ linklibc:=false;
+ while not SharedLibFiles.Empty do
+ begin
+ S:=SharedLibFiles.GetFirst;
+ if s<>'c' then
+ begin
+ i:=Pos(target_info.sharedlibext,S);
+ if i>0 then
+ Delete(S,i,255);
+ LinkRes.Add('-l'+s);
+ end
+ else
+ begin
+ LinkRes.Add('-l'+s);
+ linklibc:=true;
+ end;
+ end;
+ { be sure that libc&libgcc is the last lib }
+ if linklibc then
+ begin
+ LinkRes.Add('-lc');
+ LinkRes.Add('-lgcc');
+ end;
+ end
+ else
+ begin
+ while not SharedLibFiles.Empty do
+ begin
+ S:=SharedLibFiles.GetFirst;
+ LinkRes.Add('lib'+s+target_info.staticlibext);
+ end;
+ LinkRes.Add(')');
+ end;*)
+
+ { objects which must be at the end }
+ (*if linklibc then
+ begin
+ found1:=librarysearchpath.FindFile('crtend.o',false,s1);
+ found2:=librarysearchpath.FindFile('crtn.o',false,s2);
+ if found1 or found2 then
+ begin
+ LinkRes.Add('INPUT(');
+ if found1 then
+ LinkRes.AddFileName(s1);
+ if found2 then
+ LinkRes.AddFileName(s2);
+ LinkRes.Add(')');
+ end;
+ end;*)
+
+ { Write and Close response }
+ linkres.writetodisk;
+ linkres.free;
+
+ WriteResponseFile:=True;
+ end;
+
+procedure TlinkerEmbedded_SdccSdld.SetDefaultInfo;
+ const
+{$if defined(Z80)}
+ ExeName='sdldz80';
+{$else}
+ ExeName='sdld';
+{$endif}
+ begin
+ with Info do
+ begin
+ ExeCmd[1]:=ExeName+' -n $OPT -i $MAP $EXE -f $RES'
+ //-g '+platform_select+' $OPT $DYNLINK $STATIC $GCSECTIONS $STRIP $MAP -L. -o $EXE -T $RES';
+ end;
+ end;
+
+function TlinkerEmbedded_SdccSdld.MakeExecutable: boolean;
+ var
+ binstr,
+ cmdstr,
+ mapstr: TCmdStr;
+ success : boolean;
+ StaticStr,
+// GCSectionsStr,
+ DynLinkStr,
+ StripStr,
+ FixedExeFileName: string;
+ begin
+ { for future use }
+ StaticStr:='';
+ StripStr:='';
+ mapstr:='';
+ DynLinkStr:='';
+ FixedExeFileName:=maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.ihx')));
+
+(* GCSectionsStr:='--gc-sections';
+ //if not(cs_link_extern in current_settings.globalswitches) then
+ if not(cs_link_nolink in current_settings.globalswitches) then
+ Message1(exec_i_linking,current_module.exefilename);*)
+
+ if (cs_link_map in current_settings.globalswitches) then
+ mapstr:='-mw';
+
+ { Write used files and libraries }
+ WriteResponseFile();
+
+ { Call linker }
+ SplitBinCmd(Info.ExeCmd[1],binstr,cmdstr);
+ Replace(cmdstr,'$OPT',Info.ExtraOptions);
+ if not(cs_link_on_target in current_settings.globalswitches) then
+ begin
+ Replace(cmdstr,'$EXE',FixedExeFileName);
+ Replace(cmdstr,'$RES',(maybequoted(ScriptFixFileName(outputexedir+Info.ResName))));
+ Replace(cmdstr,'$STATIC',StaticStr);
+ Replace(cmdstr,'$STRIP',StripStr);
+ Replace(cmdstr,'$MAP',mapstr);
+// Replace(cmdstr,'$GCSECTIONS',GCSectionsStr);
+ Replace(cmdstr,'$DYNLINK',DynLinkStr);
+ end
+ else
+ begin
+ Replace(cmdstr,'$EXE',FixedExeFileName);
+ Replace(cmdstr,'$RES',maybequoted(ScriptFixFileName(outputexedir+Info.ResName)));
+ Replace(cmdstr,'$STATIC',StaticStr);
+ Replace(cmdstr,'$STRIP',StripStr);
+ Replace(cmdstr,'$MAP',mapstr);
+// Replace(cmdstr,'$GCSECTIONS',GCSectionsStr);
+ Replace(cmdstr,'$DYNLINK',DynLinkStr);
+ end;
+ success:=DoExec(FindUtil(utilsprefix+BinStr),cmdstr,true,false);
+
+ { Remove ReponseFile }
+ if success and not(cs_link_nolink in current_settings.globalswitches) then
+ DeleteFile(outputexedir+Info.ResName);
+
+(* { Post process }
+ if success and not(cs_link_nolink in current_settings.globalswitches) then
+ success:=PostProcessExecutable(FixedExeFileName,false);
+
+ if success and (target_info.system in [system_arm_embedded,system_avr_embedded,system_mipsel_embedded,system_xtensa_embedded]) then
+ begin
+ success:=DoExec(FindUtil(utilsprefix+'objcopy'),'-O ihex '+
+ FixedExeFileName+' '+
+ maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.hex'))),true,false);
+ if success then
+ success:=DoExec(FindUtil(utilsprefix+'objcopy'),'-O binary '+
+ FixedExeFileName+' '+
+ maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.bin'))),true,false);
+ end;*)
+
+ MakeExecutable:=success; { otherwise a recursive call to link method }
+ end;
+
+
+{*****************************************************************************
Initialize
*****************************************************************************}
@@ -1861,4 +2123,9 @@ initialization
RegisterLinker(ld_embedded,TLinkerEmbedded);
RegisterTarget(system_xtensa_embedded_info);
{$endif xtensa}
+
+{$ifdef z80}
+ RegisterLinker(ld_embedded,TlinkerEmbedded_SdccSdld);
+ RegisterTarget(system_z80_embedded_info);
+{$endif z80}
end.
diff --git a/compiler/systems/t_zxspectrum.pas b/compiler/systems/t_zxspectrum.pas
new file mode 100644
index 0000000000..c94f8ac6b3
--- /dev/null
+++ b/compiler/systems/t_zxspectrum.pas
@@ -0,0 +1,305 @@
+{
+ Copyright (c) 2005-2020 by Free Pascal Compiler team
+
+ This unit implements support import, export, link routines
+ for the ZX Spectrum Target
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit t_zxspectrum;
+
+{$i fpcdefs.inc}
+
+interface
+
+
+implementation
+
+ uses
+ SysUtils,
+ cutils,cfileutl,cclasses,
+ globtype,globals,systems,verbose,comphook,cscript,fmodule,i_zxspectrum,link,
+ cpuinfo;
+
+ type
+
+ { TLinkerZXSpectrum_SdccSdld - the sdld linker from the SDCC project ( http://sdcc.sourceforge.net/ ) }
+
+ TLinkerZXSpectrum_SdccSdld=class(texternallinker)
+ private
+ FOrigin: Word;
+ Function WriteResponseFile: Boolean;
+ public
+ procedure SetDefaultInfo; override;
+ function MakeExecutable:boolean; override;
+ function postprocessexecutable(const fn : string;isdll:boolean):boolean;
+ end;
+
+
+{*****************************************************************************
+ TLinkerZXSpectrum_SdccSdld
+*****************************************************************************}
+
+function TLinkerZXSpectrum_SdccSdld.WriteResponseFile: Boolean;
+ Var
+ linkres : TLinkRes;
+ i : longint;
+ HPath : TCmdStrListItem;
+ s,s1,s2 : TCmdStr;
+ prtobj,
+ cprtobj : string[80];
+ linklibc : boolean;
+ found1,
+ found2 : boolean;
+ {$if defined(ARM)}
+ LinkStr : string;
+ {$endif}
+ begin
+ WriteResponseFile:=False;
+ linklibc:=(SharedLibFiles.Find('c')<>nil);
+ prtobj:='prt0';
+ cprtobj:='cprt0';
+ if linklibc then
+ prtobj:=cprtobj;
+
+ { Open link.res file }
+ LinkRes:=TLinkRes.Create(outputexedir+Info.ResName,true);
+
+ { Write the origin (i.e. the program load address) }
+ LinkRes.Add('-b _CODE='+tostr(FOrigin));
+
+ { Write path to search libraries }
+(* HPath:=TCmdStrListItem(current_module.locallibrarysearchpath.First);
+ while assigned(HPath) do
+ begin
+ s:=HPath.Str;
+ if (cs_link_on_target in current_settings.globalswitches) then
+ s:=ScriptFixFileName(s);
+ LinkRes.Add('-L'+s);
+ HPath:=TCmdStrListItem(HPath.Next);
+ end;
+ HPath:=TCmdStrListItem(LibrarySearchPath.First);
+ while assigned(HPath) do
+ begin
+ s:=HPath.Str;
+ if s<>'' then
+ LinkRes.Add('SEARCH_DIR("'+s+'")');
+ HPath:=TCmdStrListItem(HPath.Next);
+ end;
+
+ LinkRes.Add('INPUT (');
+ { add objectfiles, start with prt0 always }*)
+ //s:=FindObjectFile('prt0','',false);
+ if prtobj<>'' then
+ begin
+ s:=FindObjectFile(prtobj,'',false);
+ LinkRes.AddFileName(s);
+ end;
+
+ { try to add crti and crtbegin if linking to C }
+ if linklibc then
+ begin
+ if librarysearchpath.FindFile('crtbegin.o',false,s) then
+ LinkRes.AddFileName(s);
+ if librarysearchpath.FindFile('crti.o',false,s) then
+ LinkRes.AddFileName(s);
+ end;
+
+ while not ObjectFiles.Empty do
+ begin
+ s:=ObjectFiles.GetFirst;
+ if s<>'' then
+ begin
+ { vlink doesn't use SEARCH_DIR for object files }
+ if not(cs_link_on_target in current_settings.globalswitches) then
+ s:=FindObjectFile(s,'',false);
+ LinkRes.AddFileName((maybequoted(s)));
+ end;
+ end;
+
+ { Write staticlibraries }
+ if not StaticLibFiles.Empty then
+ begin
+ { vlink doesn't need, and doesn't support GROUP }
+{ if (cs_link_on_target in current_settings.globalswitches) then
+ begin
+ LinkRes.Add(')');
+ LinkRes.Add('GROUP(');
+ end;}
+ while not StaticLibFiles.Empty do
+ begin
+ S:=StaticLibFiles.GetFirst;
+ LinkRes.Add('-l'+maybequoted(s));
+ end;
+ end;
+
+(* if (cs_link_on_target in current_settings.globalswitches) then
+ begin
+ LinkRes.Add(')');
+
+ { Write sharedlibraries like -l<lib>, also add the needed dynamic linker
+ here to be sure that it gets linked this is needed for glibc2 systems (PFV) }
+ linklibc:=false;
+ while not SharedLibFiles.Empty do
+ begin
+ S:=SharedLibFiles.GetFirst;
+ if s<>'c' then
+ begin
+ i:=Pos(target_info.sharedlibext,S);
+ if i>0 then
+ Delete(S,i,255);
+ LinkRes.Add('-l'+s);
+ end
+ else
+ begin
+ LinkRes.Add('-l'+s);
+ linklibc:=true;
+ end;
+ end;
+ { be sure that libc&libgcc is the last lib }
+ if linklibc then
+ begin
+ LinkRes.Add('-lc');
+ LinkRes.Add('-lgcc');
+ end;
+ end
+ else
+ begin
+ while not SharedLibFiles.Empty do
+ begin
+ S:=SharedLibFiles.GetFirst;
+ LinkRes.Add('lib'+s+target_info.staticlibext);
+ end;
+ LinkRes.Add(')');
+ end;*)
+
+ { objects which must be at the end }
+ (*if linklibc then
+ begin
+ found1:=librarysearchpath.FindFile('crtend.o',false,s1);
+ found2:=librarysearchpath.FindFile('crtn.o',false,s2);
+ if found1 or found2 then
+ begin
+ LinkRes.Add('INPUT(');
+ if found1 then
+ LinkRes.AddFileName(s1);
+ if found2 then
+ LinkRes.AddFileName(s2);
+ LinkRes.Add(')');
+ end;
+ end;*)
+
+ { Write and Close response }
+ linkres.writetodisk;
+ linkres.free;
+
+ WriteResponseFile:=True;
+ end;
+
+procedure TLinkerZXSpectrum_SdccSdld.SetDefaultInfo;
+ const
+ ExeName='sdldz80';
+ begin
+ FOrigin:={32768}23800;
+ with Info do
+ begin
+ ExeCmd[1]:=ExeName+' -n $OPT -i $MAP $EXE -f $RES'
+ end;
+ end;
+
+function TLinkerZXSpectrum_SdccSdld.MakeExecutable: boolean;
+ var
+ binstr,
+ cmdstr,
+ mapstr: TCmdStr;
+ success : boolean;
+ StaticStr,
+ //GCSectionsStr,
+ DynLinkStr,
+ StripStr,
+ FixedExeFileName: string;
+ begin
+ { for future use }
+ StaticStr:='';
+ StripStr:='';
+ mapstr:='';
+ DynLinkStr:='';
+ FixedExeFileName:=maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.ihx')));
+
+(* GCSectionsStr:='--gc-sections';
+ //if not(cs_link_extern in current_settings.globalswitches) then
+ if not(cs_link_nolink in current_settings.globalswitches) then
+ Message1(exec_i_linking,current_module.exefilename);*)
+
+ if (cs_link_map in current_settings.globalswitches) then
+ mapstr:='-mw';
+
+ { Write used files and libraries }
+ WriteResponseFile();
+
+ { Call linker }
+ SplitBinCmd(Info.ExeCmd[1],binstr,cmdstr);
+ Replace(cmdstr,'$OPT',Info.ExtraOptions);
+ if not(cs_link_on_target in current_settings.globalswitches) then
+ begin
+ Replace(cmdstr,'$EXE',FixedExeFileName);
+ Replace(cmdstr,'$RES',(maybequoted(ScriptFixFileName(outputexedir+Info.ResName))));
+ Replace(cmdstr,'$STATIC',StaticStr);
+ Replace(cmdstr,'$STRIP',StripStr);
+ Replace(cmdstr,'$MAP',mapstr);
+ //Replace(cmdstr,'$GCSECTIONS',GCSectionsStr);
+ Replace(cmdstr,'$DYNLINK',DynLinkStr);
+ end
+ else
+ begin
+ Replace(cmdstr,'$EXE',FixedExeFileName);
+ Replace(cmdstr,'$RES',maybequoted(ScriptFixFileName(outputexedir+Info.ResName)));
+ Replace(cmdstr,'$STATIC',StaticStr);
+ Replace(cmdstr,'$STRIP',StripStr);
+ Replace(cmdstr,'$MAP',mapstr);
+ //Replace(cmdstr,'$GCSECTIONS',GCSectionsStr);
+ Replace(cmdstr,'$DYNLINK',DynLinkStr);
+ end;
+ success:=DoExec(FindUtil(utilsprefix+BinStr),cmdstr,true,false);
+
+ { Remove ReponseFile }
+ if success and not(cs_link_nolink in current_settings.globalswitches) then
+ DeleteFile(outputexedir+Info.ResName);
+
+ { Post process }
+ if success and not(cs_link_nolink in current_settings.globalswitches) then
+ success:=PostProcessExecutable(FixedExeFileName,false);
+
+ MakeExecutable:=success; { otherwise a recursive call to link method }
+ end;
+
+function TLinkerZXSpectrum_SdccSdld.postprocessexecutable(const fn: string; isdll: boolean): boolean;
+ begin
+ result:=DoExec(FindUtil(utilsprefix+'ihx2tzx'),' '+fn,true,false);
+ end;
+
+
+{*****************************************************************************
+ Initialize
+*****************************************************************************}
+
+initialization
+{$ifdef z80}
+ RegisterLinker(ld_zxspectrum,TLinkerZXSpectrum_SdccSdld);
+ RegisterTarget(system_z80_zxspectrum_info);
+{$endif z80}
+end.
diff --git a/compiler/utils/Makefile b/compiler/utils/Makefile
index 1d9ae46368..5381ffd113 100644
--- a/compiler/utils/Makefile
+++ b/compiler/utils/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -641,6 +641,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=ppu crc
endif
@@ -932,6 +938,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=ppu crc
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=ppu crc
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=ppu crc
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITDIR+=..
@@ -1224,6 +1236,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITDIR+=..
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=..
endif
@@ -1515,6 +1533,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=..
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=..
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=..
+endif
override SHARED_BUILD=n
override SHARED_BUILD=n
ifdef REQUIRE_UNITSDIR
@@ -1962,6 +1986,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1970,6 +1997,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2516,6 +2546,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/compiler/utils/mkz80ins.pp b/compiler/utils/mkz80ins.pp
new file mode 100644
index 0000000000..3c12563fa1
--- /dev/null
+++ b/compiler/utils/mkz80ins.pp
@@ -0,0 +1,232 @@
+{
+ Copyright (c) 2020 by Nikolay Nikolov
+
+ Convert z80ins.dat to a set of .inc files for usage with
+ the Free pascal compiler
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+program mkz80ins;
+
+{$mode objfpc}{$H+}
+
+uses
+ SysUtils,StrUtils;
+
+const
+ Version = '1.0.0';
+ HeaderStr = '{ don''t edit, this file is generated from z80ins.dat; to regenerate, run ''make insdat'' in the compiler directory }';
+ max_operands = 2;
+
+ ParamTypes: array [0..40,0..1] of string = (
+ ('void', 'OT_NONE'),
+ ('r', 'OT_REG8'),
+ ('r''', 'OT_REG8'),
+ ('b', 'OT_IMM3'),
+ ('n', 'OT_IMM8'),
+ ('p', 'OT_IMM_RST'),
+ ('e', 'OT_RELJMP8'),
+ ('nn', 'OT_IMM16'),
+ ('0', 'OT_IMM_VAL0'),
+ ('1', 'OT_IMM_VAL1'),
+ ('2', 'OT_IMM_VAL2'),
+ ('cc', 'OT_COND'),
+ ('C', 'OT_COND_C'),
+ ('NC', 'OT_COND_NC'),
+ ('Z', 'OT_COND_Z'),
+ ('NZ', 'OT_COND_NZ'),
+ ('dd', 'OT_REG16_BC_DE_HL_SP'),
+ ('qq', 'OT_REG16_BC_DE_HL_AF'),
+ ('pp', 'OT_REG16_BC_DE_IX_SP'),
+ ('rr', 'OT_REG16_BC_DE_IY_SP'),
+ ('A', 'OT_REG8_A'),
+ ('I', 'OT_REG8_I'),
+ ('R', 'OT_REG8_R'),
+ ('IX', 'OT_REG16_IX'),
+ ('IY', 'OT_REG16_IY'),
+ ('SP', 'OT_REG16_SP'),
+ ('DE', 'OT_REG16_DE'),
+ ('HL', 'OT_REG16_HL'),
+ ('AF', 'OT_REG16_AF'),
+ ('AF''', 'OT_REG16_AF_'),
+ ('(C)', 'OT_REG8_C_PORT'),
+ ('(n)', 'OT_IMM_PORT'),
+ ('(nn)', 'OT_REF_ADDR16'),
+ ('(BC)', 'OT_REF_BC'),
+ ('(DE)', 'OT_REF_DE'),
+ ('(HL)', 'OT_REF_HL'),
+ ('(SP)', 'OT_REF_SP'),
+ ('(IX)', 'OT_REF_IX'),
+ ('(IY)', 'OT_REF_IY'),
+ ('(IX+d)','OT_REF_IX_d'),
+ ('(IY+d)','OT_REF_IY_d')
+ );
+
+type
+
+ { TZ80InsDatOutputFiles }
+
+ TZ80InsDatOutputFiles = class
+ public
+ OpFile: TextFile;
+ NOpFile: TextFile;
+ StdOpNames: TextFile;
+ InsTabFile: TextFile;
+
+ constructor Create;
+ destructor Destroy;override;
+ end;
+
+function PasEncode(const S: string): string;
+ var
+ Ch: Char;
+ InQuotes: Boolean;
+ begin
+ Result:='';
+ InQuotes:=False;
+ for Ch in S do
+ if (Ch>=#32) and (Ch<=#126) then
+ begin
+ if not InQuotes then
+ begin
+ Result:=Result+'''';
+ InQuotes:=True;
+ end;
+ if Ch='''' then
+ Result:=Result+''''''
+ else
+ Result:=Result+Ch;
+ end
+ else
+ begin
+ if InQuotes then
+ begin
+ Result:=Result+'''';
+ InQuotes:=False;
+ end;
+ Result:=Result+'#'+IntToStr(Ord(Ch));
+ end;
+ if InQuotes then
+ Result:=Result+'''';
+ if Result='' then
+ Result:='''''';
+ end;
+
+constructor TZ80InsDatOutputFiles.Create;
+ begin
+ AssignFile(OpFile,'z80op.inc');
+ Rewrite(OpFile);
+ Writeln(OpFile,HeaderStr);
+ Writeln(OpFile,'(');
+ AssignFile(NOpFile,'z80nop.inc');
+ Rewrite(NOpFile);
+ Writeln(NOpFile,HeaderStr);
+ AssignFile(StdOpNames,'z80stdopnames.inc');
+ Rewrite(StdOpNames);
+ Writeln(StdOpNames,HeaderStr);
+ Writeln(StdOpNames,'(');
+ AssignFile(InsTabFile,'z80tab.inc');
+ Rewrite(InsTabFile);
+ Writeln(InsTabFile,HeaderStr);
+ Writeln(InsTabFile,'(');
+ end;
+
+destructor TZ80InsDatOutputFiles.Destroy;
+ begin
+ CloseFile(OpFile);
+ CloseFile(NOpFile);
+ CloseFile(StdOpNames);
+ CloseFile(InsTabFile);
+ inherited Destroy;
+ end;
+
+function FindParamType(const ParamTypeStr: string): Integer;
+var
+ I: Integer;
+begin
+ for I:=Low(ParamTypes) to High(ParamTypes) do
+ if ParamTypes[I,0]=ParamTypeStr then
+ exit(I);
+ raise Exception.Create('Invalid param type: '''+ParamTypeStr+'''');
+end;
+
+var
+ InsDatFile: TextFile;
+ OutputFiles: TZ80InsDatOutputFiles=nil;
+ S, op, ParamsStr: string;
+ FirstIns: Boolean=true;
+ OpCount: Integer=0;
+ S_Split, S_Params: TStringArray;
+ ParamIdx: Integer;
+begin
+ writeln('FPC Z80 Instruction Table Converter Version ',Version);
+ AssignFile(InsDatFile,'../z80/z80ins.dat');
+ Reset(InsDatFile);
+ try
+ OutputFiles:=TZ80InsDatOutputFiles.Create;
+ while not EoF(InsDatFile) do
+ begin
+ Readln(InsDatFile,S);
+ S:=Trim(S);
+ if AnsiStartsStr(';',S) then
+ continue
+ else if AnsiStartsStr('[',S) then
+ begin
+ op:=Copy(S,2,Length(S)-2);
+ if not FirstIns then
+ begin
+ Writeln(OutputFiles.OpFile,',');
+ Writeln(OutputFiles.StdOpNames,',');
+ end;
+ FirstIns:=False;
+ Write(OutputFiles.OpFile,'A_'+op);
+ Write(OutputFiles.StdOpNames,''''+LowerCase(op)+'''');
+ end
+ else if S<>'' then
+ begin
+ Inc(OpCount);
+ if OpCount<>1 then
+ Writeln(OutputFiles.InsTabFile,',');
+ S_Split:=S.Split(' ',TStringSplitOptions.ExcludeEmpty);
+ S_Params:=S_Split[0].Split(',',TStringSplitOptions.ExcludeEmpty);
+ if (Length(S_Params)=1) and (S_Params[0]='void') then
+ SetLength(S_Params,0);
+ Writeln(OutputFiles.InsTabFile,' (');
+ Writeln(OutputFiles.InsTabFile,' opcode : A_',op,';');
+ Writeln(OutputFiles.InsTabFile,' ops : ',Length(S_Params),';');
+ Write(OutputFiles.InsTabFile, ' optypes : (');
+ if Length(S_Params)>max_operands then
+ raise Exception.Create('Too many operands');
+ for ParamIdx:=0 to max_operands-1 do
+ begin
+ if ParamIdx<>0 then
+ Write(OutputFiles.InsTabFile,',');
+ if ParamIdx<=High(S_Params) then
+ Write(OutputFiles.InsTabFile,ParamTypes[FindParamType(S_Params[ParamIdx]),1])
+ else
+ Write(OutputFiles.InsTabFile,'OT_NONE');
+ end;
+ Writeln(OutputFiles.InsTabFile, ');');
+ Writeln(OutputFiles.InsTabFile, ' code : ',PasEncode(S_Split[1]),';');
+ Writeln(OutputFiles.InsTabFile, ' flags : 0');
+ Write(OutputFiles.InsTabFile, ' )');
+ end;
+ end;
+ Writeln(OutputFiles.OpFile,');');
+ Writeln(OutputFiles.StdOpNames,');');
+ Writeln(OutputFiles.NOpFile,OpCount,';');
+ Writeln(OutputFiles.InsTabFile);
+ Writeln(OutputFiles.InsTabFile,');');
+ finally
+ FreeAndNil(OutputFiles);
+ CloseFile(InsDatFile);
+ end;
+end.
+
diff --git a/compiler/utils/mkz80reg.pp b/compiler/utils/mkz80reg.pp
new file mode 100644
index 0000000000..723d3b83be
--- /dev/null
+++ b/compiler/utils/mkz80reg.pp
@@ -0,0 +1,270 @@
+{
+ Copyright (c) 1998-2002 by Peter Vreman and Florian Klaempfl
+
+ Convert z80reg.dat to several .inc files for usage with
+ the Free pascal compiler
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+{$mode objfpc}
+program mkz80reg;
+
+uses
+ sysutils;
+
+const Version = '1.00';
+ max_regcount = 200;
+
+var s : string;
+ i : longint;
+ line : longint;
+ regcount:byte;
+ regcount_bsstart:byte;
+ names,
+ numbers,
+ stdnames,
+ stabs,dwarf : array[0..max_regcount-1] of string[63];
+ regnumber_index,
+ std_regname_index : array[0..max_regcount-1] of byte;
+
+function tostr(l : longint) : string;
+
+begin
+ str(l,tostr);
+end;
+
+function readstr : string;
+
+ begin
+ result:='';
+ while (s[i]<>',') and (i<=length(s)) do
+ begin
+ result:=result+s[i];
+ inc(i);
+ end;
+ end;
+
+
+procedure readcomma;
+ begin
+ if s[i]<>',' then
+ begin
+ writeln('Missing "," at line ',line);
+ writeln('Line: "',s,'"');
+ halt(1);
+ end;
+ inc(i);
+ end;
+
+
+procedure skipspace;
+
+ begin
+ while (s[i] in [' ',#9]) do
+ inc(i);
+ end;
+
+procedure openinc(out f:text;const fn:string);
+begin
+ writeln('creating ',fn);
+ assign(f,fn);
+ rewrite(f);
+ writeln(f,'{ don''t edit, this file is generated from z80reg.dat }');
+end;
+
+
+procedure closeinc(var f:text);
+begin
+ writeln(f);
+ close(f);
+end;
+
+procedure build_regnum_index;
+
+var h,i,j,p,t:byte;
+
+begin
+ {Build the registernumber2regindex index.
+ Step 1: Fill.}
+ for i:=0 to regcount-1 do
+ regnumber_index[i]:=i;
+ {Step 2: Sort. We use a Shell-Metzner sort.}
+ p:=regcount_bsstart;
+ repeat
+ for h:=0 to regcount-p-1 do
+ begin
+ i:=h;
+ repeat
+ j:=i+p;
+ if numbers[regnumber_index[j]]>=numbers[regnumber_index[i]] then
+ break;
+ t:=regnumber_index[i];
+ regnumber_index[i]:=regnumber_index[j];
+ regnumber_index[j]:=t;
+ if i<p then
+ break;
+ dec(i,p);
+ until false;
+ end;
+ p:=p shr 1;
+ until p=0;
+end;
+
+procedure build_std_regname_index;
+
+var h,i,j,p,t:byte;
+
+begin
+ {Build the registernumber2regindex index.
+ Step 1: Fill.}
+ for i:=0 to regcount-1 do
+ std_regname_index[i]:=i;
+ {Step 2: Sort. We use a Shell-Metzner sort.}
+ p:=regcount_bsstart;
+ repeat
+ for h:=0 to regcount-p-1 do
+ begin
+ i:=h;
+ repeat
+ j:=i+p;
+ if stdnames[std_regname_index[j]]>=stdnames[std_regname_index[i]] then
+ break;
+ t:=std_regname_index[i];
+ std_regname_index[i]:=std_regname_index[j];
+ std_regname_index[j]:=t;
+ if i<p then
+ break;
+ dec(i,p);
+ until false;
+ end;
+ p:=p shr 1;
+ until p=0;
+end;
+
+
+procedure read_spreg_file;
+
+var infile:text;
+
+begin
+ { open dat file }
+ assign(infile,'z80reg.dat');
+ reset(infile);
+ while not(eof(infile)) do
+ begin
+ { handle comment }
+ readln(infile,s);
+ inc(line);
+ while (s[1]=' ') do
+ delete(s,1,1);
+ if (s='') or (s[1]=';') then
+ continue;
+
+ i:=1;
+ names[regcount]:=readstr;
+ readcomma;
+ numbers[regcount]:=readstr;
+ readcomma;
+ stdnames[regcount]:=readstr;
+ readcomma;
+ stabs[regcount]:=readstr;
+ readcomma;
+ dwarf[regcount]:=readstr;
+ { Create register number }
+ if numbers[regcount][1]<>'$' then
+ begin
+ writeln('Missing $ before number, at line ',line);
+ writeln('Line: "',s,'"');
+ halt(1);
+ end;
+ if i<length(s) then
+ begin
+ writeln('Extra chars at end of line, at line ',line);
+ writeln('Line: "',s,'"');
+ halt(1);
+ end;
+ inc(regcount);
+ if regcount>max_regcount then
+ begin
+ writeln('Error: Too much registers, please increase maxregcount in source');
+ halt(2);
+ end;
+ end;
+ close(infile);
+end;
+
+procedure write_inc_files;
+
+var
+ norfile,stdfile,supfile,
+ numfile,stabfile,dwarffile,confile,
+ rnifile,srifile:text;
+ first:boolean;
+
+begin
+ { create inc files }
+ openinc(confile,'rz80con.inc');
+ openinc(supfile,'rz80sup.inc');
+ openinc(numfile,'rz80num.inc');
+ openinc(stdfile,'rz80std.inc');
+ openinc(stabfile,'rz80sta.inc');
+ openinc(dwarffile,'rz80dwa.inc');
+ openinc(norfile,'rz80nor.inc');
+ openinc(rnifile,'rz80rni.inc');
+ openinc(srifile,'rz80sri.inc');
+ first:=true;
+ for i:=0 to regcount-1 do
+ begin
+ if not first then
+ begin
+ writeln(numfile,',');
+ writeln(stdfile,',');
+ writeln(stabfile,',');
+ writeln(dwarffile,',');
+ writeln(rnifile,',');
+ writeln(srifile,',');
+ end
+ else
+ first:=false;
+ writeln(supfile,'RS_',names[i],' = ',StrToInt(numbers[i]) and $ff,';');
+ writeln(confile,'NR_'+names[i],' = ','tregister(',numbers[i],')',';');
+ write(numfile,'tregister(',numbers[i],')');
+ write(stdfile,'''',stdnames[i],'''');
+ write(stabfile,stabs[i]);
+ write(dwarffile,dwarf[i]);
+ write(rnifile,regnumber_index[i]);
+ write(srifile,std_regname_index[i]);
+ end;
+ write(norfile,regcount);
+ close(confile);
+ close(supfile);
+ closeinc(numfile);
+ closeinc(stdfile);
+ closeinc(stabfile);
+ closeinc(dwarffile);
+ closeinc(norfile);
+ closeinc(rnifile);
+ closeinc(srifile);
+ writeln('Done!');
+ writeln(regcount,' registers processed');
+end;
+
+
+begin
+ writeln('Register Table Converter Version ',Version);
+ line:=0;
+ regcount:=0;
+ read_spreg_file;
+ regcount_bsstart:=1;
+ while 2*regcount_bsstart<regcount do
+ regcount_bsstart:=regcount_bsstart*2;
+ build_regnum_index;
+ build_std_regname_index;
+ write_inc_files;
+end.
diff --git a/compiler/utils/ppuutils/ppudump.pp b/compiler/utils/ppuutils/ppudump.pp
index 3c424725f3..08a7e8b7cb 100644
--- a/compiler/utils/ppuutils/ppudump.pp
+++ b/compiler/utils/ppuutils/ppudump.pp
@@ -86,7 +86,8 @@ const
{ 18 } 'sparc64',
{ 19 } 'riscv32',
{ 20 } 'riscv64',
- { 21 } 'xtensa'
+ { 21 } 'xtensa',
+ { 22 } 'z80'
);
CpuHasController : array[tsystemcpu] of boolean =
@@ -112,7 +113,8 @@ const
{ 18 } false {'sparc64'},
{ 19 } false {'riscv32'},
{ 20 } false {'riscv64'},
- { 21 } true {'xtensa'}
+ { 21 } true {'xtensa'},
+ { 22 } true {'z80'}
);
{ List of all supported system-cpu couples }
@@ -225,7 +227,9 @@ const
{ 104 } 'FreeRTos-Xtensa',
{ 105 } 'Linux-Xtensa',
{ 106 } 'FreeRTos-arm',
- { 107 } 'Win64-AArch64'
+ { 107 } 'Win64-AArch64',
+ { 108 } 'Embedded-Z80',
+ { 109 } 'ZXSpectrum-Z80'
);
const
diff --git a/compiler/x86/agx86att.pas b/compiler/x86/agx86att.pas
index 29b321a076..d2bc40bad9 100644
--- a/compiler/x86/agx86att.pas
+++ b/compiler/x86/agx86att.pas
@@ -441,6 +441,7 @@ interface
system_x86_64_android,system_x86_64_haiku];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -454,6 +455,7 @@ interface
supported_targets : [system_x86_64_linux,system_x86_64_freebsd,system_x86_64_win64,system_x86_64_embedded];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -467,6 +469,7 @@ interface
supported_targets : [system_x86_64_solaris];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -481,6 +484,7 @@ interface
supported_targets : [system_x86_64_solaris];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -496,6 +500,7 @@ interface
supported_targets : [system_x86_64_darwin,system_x86_64_iphonesim];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -509,6 +514,7 @@ interface
supported_targets : [system_x86_64_darwin,system_x86_64_iphonesim];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_no_stabs];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -526,6 +532,7 @@ interface
system_i386_nativent,system_i386_android,system_i386_aros];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -542,6 +549,7 @@ interface
system_i386_nativent];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -556,6 +564,7 @@ interface
supported_targets : [system_i386_linux,system_i386_OS2,system_i386_freebsd,system_i386_netbsd,system_i386_openbsd,system_i386_EMX,system_i386_embedded];
flags : [af_needar,af_stabs_use_function_absolute_addresses];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -570,6 +579,7 @@ interface
supported_targets : [system_i386_darwin,system_i386_iphonesim];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_stabs_use_function_absolute_addresses];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -583,6 +593,7 @@ interface
supported_targets : [system_i386_darwin,system_i386_iphonesim];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_no_stabs];
labelprefix : 'L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -599,6 +610,7 @@ interface
system_x86_6432_linux,system_i386_android];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
@@ -612,6 +624,7 @@ interface
supported_targets : [system_i386_solaris];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
diff --git a/compiler/x86/agx86int.pas b/compiler/x86/agx86int.pas
index 1ca1a78534..2a4dae7f48 100644
--- a/compiler/x86/agx86int.pas
+++ b/compiler/x86/agx86int.pas
@@ -1159,6 +1159,7 @@ implementation
supported_targets : [system_i386_GO32V2,system_i386_Win32,system_i386_wdosx,system_i386_watcom,system_i386_wince];
flags : [af_needar,af_labelprefix_only_inside_procedure];
labelprefix : '@@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1172,6 +1173,7 @@ implementation
supported_targets : [system_i386_GO32V2,system_i386_Win32,system_i386_wdosx,system_i386_watcom,system_i386_wince];
flags : [af_needar];
labelprefix : '@@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1185,6 +1187,7 @@ implementation
supported_targets : [system_i386_watcom];
flags : [af_needar];
labelprefix : '@@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1199,6 +1202,7 @@ implementation
supported_targets : [system_x86_64_win64];
flags : [af_needar];
labelprefix : '@@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
diff --git a/compiler/x86/agx86nsm.pas b/compiler/x86/agx86nsm.pas
index f67dab0d3c..09214fe250 100644
--- a/compiler/x86/agx86nsm.pas
+++ b/compiler/x86/agx86nsm.pas
@@ -1483,6 +1483,7 @@ interface
supported_targets : [system_i8086_msdos,system_i8086_win16,system_i8086_embedded];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1495,6 +1496,7 @@ interface
supported_targets : [system_i8086_msdos,system_i8086_win16,system_i8086_embedded];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1510,6 +1512,7 @@ interface
supported_targets : [system_i386_go32v2];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1523,6 +1526,7 @@ interface
supported_targets : [system_i386_win32];
flags : [af_needar,af_no_debug,af_smartlink_sections];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1536,6 +1540,7 @@ interface
supported_targets : [system_i386_embedded, system_i8086_msdos];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1549,6 +1554,7 @@ interface
supported_targets : [system_i386_wdosx];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1563,6 +1569,7 @@ interface
supported_targets : [system_i386_linux];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1576,6 +1583,7 @@ interface
supported_targets : [system_i386_darwin];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1589,6 +1597,7 @@ interface
supported_targets : [system_i386_beos];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1602,6 +1611,7 @@ interface
supported_targets : [system_i386_haiku];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1614,6 +1624,7 @@ interface
supported_targets : [system_any];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1630,6 +1641,7 @@ interface
supported_targets : [system_any];
flags : [af_needar{,af_no_debug}];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1643,6 +1655,7 @@ interface
supported_targets : [system_x86_64_win64];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1656,6 +1669,7 @@ interface
supported_targets : [system_x86_64_linux];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
@@ -1670,6 +1684,7 @@ interface
supported_targets : [system_x86_64_darwin];
flags : [af_needar,af_no_debug];
labelprefix : '..@';
+ labelmaxlen : -1;
comment : '; ';
dollarsign: '$';
);
diff --git a/compiler/x86_64/cpuelf.pas b/compiler/x86_64/cpuelf.pas
index 3d426286e5..b0c52b7581 100644
--- a/compiler/x86_64/cpuelf.pas
+++ b/compiler/x86_64/cpuelf.pas
@@ -699,6 +699,7 @@ implementation
system_x86_64_haiku];
flags : [af_outputbinary,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '';
dollarsign: '$';
);
diff --git a/compiler/xtensa/agcpugas.pas b/compiler/xtensa/agcpugas.pas
index 44d2e5b6de..ad54b48abf 100644
--- a/compiler/xtensa/agcpugas.pas
+++ b/compiler/xtensa/agcpugas.pas
@@ -176,6 +176,7 @@ unit agcpugas;
supported_targets : [system_xtensa_embedded,system_xtensa_linux,system_xtensa_freertos];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_stabs_use_function_absolute_addresses];
labelprefix : '.L';
+ labelmaxlen : -1;
comment : '# ';
dollarsign: '$';
);
diff --git a/compiler/z80/aasmcpu.pas b/compiler/z80/aasmcpu.pas
new file mode 100644
index 0000000000..cd0718dee0
--- /dev/null
+++ b/compiler/z80/aasmcpu.pas
@@ -0,0 +1,490 @@
+{
+ Copyright (c) 1999-2008 by Mazen Neifer and Florian Klaempfl
+
+ Contains the assembler object for the Z80
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit aasmcpu;
+
+{$i fpcdefs.inc}
+
+interface
+
+uses
+ cclasses,
+ globtype,globals,verbose,
+ aasmbase,aasmtai,aasmdata,aasmsym,
+ cgbase,cgutils,cpubase,cpuinfo,
+ ogbase;
+
+ const
+ { "mov reg,reg" source operand number }
+ O_MOV_SOURCE = 1;
+ { "mov reg,reg" source operand number }
+ O_MOV_DEST = 0;
+
+ instabentries = {$i z80nop.inc}
+ maxinfolen = 18;
+
+ type
+ { Operand types }
+ toperandtype=(
+ OT_NONE,
+ OT_IMM3, { 3-bit immediate value (bit number: [0..7]) }
+ OT_IMM8, { 8-bit immediate value }
+ OT_IMM16, { 16-bit immediate value }
+ OT_IMM_VAL0, { the immediate value 0 }
+ OT_IMM_VAL1, { the immediate value 1 }
+ OT_IMM_VAL2, { the immediate value 2 }
+ OT_IMM_RST, { immediate value in [$00,$08,$10,$18,$20,$28,$30,$38] }
+ OT_IMM_PORT, { 8-bit immediate port number for the IN and OUT instructions }
+ OT_REG8, { 8-bit register: A/B/C/D/E/H/L }
+ OT_REG8_A, { register A }
+ OT_REG8_I, { register I }
+ OT_REG8_R, { register R }
+ OT_REG8_C_PORT, { implied parameter of the IN and OUT instructions }
+ OT_REG16_IX, { register IX }
+ OT_REG16_IY, { register IY }
+ OT_REG16_SP, { register SP }
+ OT_REG16_BC_DE_HL_SP, { 16-bit register pair: BC/DE/HL/SP }
+ OT_REG16_BC_DE_HL_AF, { 16-bit register pair: BC/DE/HL/AF }
+ OT_REG16_BC_DE_IX_SP, { 16-bit register pair: BC/DE/IX/SP }
+ OT_REG16_BC_DE_IY_SP, { 16-bit register pair: BC/DE/IY/SP }
+ OT_REG16_DE, { 16-bit register pair DE }
+ OT_REG16_HL, { 16-bit register pair HL }
+ OT_REG16_AF, { 16-bit register pair AF }
+ OT_REG16_AF_, { alternate register set, 16-bit register pair AF' }
+ OT_RELJMP8, { 8-bit relative jump offset }
+ OT_COND, { condition: NZ/Z/NC/C/PO/PE/P/M }
+ OT_COND_C, { condition C }
+ OT_COND_NC, { condition NC }
+ OT_COND_Z, { condition Z }
+ OT_COND_NZ, { condition NZ }
+ OT_REF_ADDR16, { memory contents at address (nn = 16-bit immediate address) }
+ OT_REF_BC, { memory contents at address in register BC }
+ OT_REF_DE, { memory contents at address in register DE }
+ OT_REF_HL, { memory contents at address in register HL }
+ OT_REF_SP, { memory contents at address in register SP }
+ OT_REF_IX, { memory contents at address in register IX }
+ OT_REF_IY, { memory contents at address in register IY }
+ OT_REF_IX_d, { memory contents at address in register IX+d, d is in [-128..127] }
+ OT_REF_IY_d); { memory contents at address in register IY+d, d is in [-128..127] }
+ timmoperandtype = OT_IMM3..OT_IMM_PORT;
+ tregoperandtype = OT_REG8..OT_REG16_AF_;
+ treg8operandtype = OT_REG8..OT_REG8_C_PORT;
+ treg16operandtype = OT_REG16_IX..OT_REG16_AF_;
+ tcondoperandtype = OT_COND..OT_COND_NZ;
+ trefoperandtype = OT_REF_ADDR16..OT_REF_IY_d;
+ trefoperandtypes = set of trefoperandtype;
+
+ tinsentry = record
+ opcode : tasmop;
+ ops : byte;
+ optypes : array[0..max_operands-1] of toperandtype;
+ code : array[0..maxinfolen] of char;
+ flags : longint;
+ end;
+
+ pinsentry=^tinsentry;
+
+ { taicpu }
+
+ taicpu = class(tai_cpu_abstract_sym)
+ constructor op_none(op : tasmop);
+
+ constructor op_reg(op : tasmop;_op1 : tregister);
+ constructor op_const(op : tasmop;_op1 : LongInt);
+ constructor op_ref(op : tasmop;const _op1 : treference);
+
+ constructor op_reg_reg(op : tasmop;_op1,_op2 : tregister);
+ constructor op_reg_ref(op : tasmop;_op1 : tregister;const _op2 : treference);
+ constructor op_reg_const(op:tasmop; _op1: tregister; _op2: LongInt);
+ constructor op_const_reg(op:tasmop; _op1: LongInt; _op2: tregister);
+ constructor op_ref_reg(op : tasmop;const _op1 : treference;_op2 : tregister);
+ constructor op_ref_const(op:tasmop; _op1: treference; _op2: LongInt);
+
+ { this is for Jmp instructions }
+ constructor op_cond_sym(op : tasmop;cond:TAsmCond;_op1 : tasmsymbol);
+ constructor op_sym(op : tasmop;_op1 : tasmsymbol);
+ constructor op_sym_ofs(op : tasmop;_op1 : tasmsymbol;_op1ofs:longint);
+ procedure loadbool(opidx:longint;_b:boolean);
+ { register allocation }
+ function is_same_reg_move(regtype: Tregistertype):boolean; override;
+
+ { register spilling code }
+ function spilling_get_operation_type(opnr: longint): topertype;override;
+ end;
+
+ tai_align = class(tai_align_abstract)
+ { nothing to add }
+ end;
+
+ procedure InitAsm;
+ procedure DoneAsm;
+
+ function spilling_create_load(const ref:treference;r:tregister):Taicpu;
+ function spilling_create_store(r:tregister; const ref:treference):Taicpu;
+
+ function is_ref_addr16(const ref:treference): Boolean;
+ function is_ref_bc(const ref:treference): Boolean;
+ function is_ref_de(const ref:treference): Boolean;
+ function is_ref_hl(const ref:treference): Boolean;
+ function is_ref_sp(const ref:treference): Boolean;
+ function is_ref_ix(const ref:treference): Boolean;
+ function is_ref_iy(const ref:treference): Boolean;
+ function is_ref_ix_d(const ref:treference): Boolean;
+ function is_ref_iy_d(const ref:treference): Boolean;
+ function is_ref_opertype(const ref:treference;opertype:toperandtype): Boolean;
+ function is_ref_in_opertypes(const ref:treference;const refopertypes:trefoperandtypes): Boolean;
+
+implementation
+
+{****************************************************************************
+ Instruction table
+*****************************************************************************}
+
+ const
+ InsTab:array[0..instabentries-1] of TInsEntry={$i z80tab.inc}
+
+{*****************************************************************************
+ taicpu Constructors
+*****************************************************************************}
+
+ procedure taicpu.loadbool(opidx:longint;_b:boolean);
+ begin
+ if opidx>=ops then
+ ops:=opidx+1;
+ with oper[opidx]^ do
+ begin
+ if typ=top_ref then
+ dispose(ref);
+ b:=_b;
+ typ:=top_bool;
+ end;
+ end;
+
+
+ constructor taicpu.op_none(op : tasmop);
+ begin
+ inherited create(op);
+ end;
+
+
+ constructor taicpu.op_reg(op : tasmop;_op1 : tregister);
+ begin
+ inherited create(op);
+ ops:=1;
+ loadreg(0,_op1);
+ end;
+
+
+ constructor taicpu.op_ref(op : tasmop;const _op1 : treference);
+ begin
+ inherited create(op);
+ ops:=1;
+ loadref(0,_op1);
+ end;
+
+
+ constructor taicpu.op_const(op : tasmop;_op1 : LongInt);
+ begin
+ inherited create(op);
+ ops:=1;
+ loadconst(0,_op1);
+ end;
+
+
+ constructor taicpu.op_reg_reg(op : tasmop;_op1,_op2 : tregister);
+ begin
+ inherited create(op);
+ ops:=2;
+ loadreg(0,_op1);
+ loadreg(1,_op2);
+ end;
+
+ constructor taicpu.op_reg_const(op:tasmop; _op1: tregister; _op2: LongInt);
+ begin
+ inherited create(op);
+ ops:=2;
+ loadreg(0,_op1);
+ loadconst(1,_op2);
+ end;
+
+ constructor taicpu.op_const_reg(op:tasmop; _op1: LongInt; _op2: tregister);
+ begin
+ inherited create(op);
+ ops:=2;
+ loadconst(0,_op1);
+ loadreg(1,_op2);
+ end;
+
+
+ constructor taicpu.op_reg_ref(op : tasmop;_op1 : tregister;const _op2 : treference);
+ begin
+ inherited create(op);
+ ops:=2;
+ loadreg(0,_op1);
+ loadref(1,_op2);
+ end;
+
+
+ constructor taicpu.op_ref_reg(op : tasmop;const _op1 : treference;_op2 : tregister);
+ begin
+ inherited create(op);
+ ops:=2;
+ loadref(0,_op1);
+ loadreg(1,_op2);
+ end;
+
+
+ constructor taicpu.op_ref_const(op: tasmop; _op1: treference; _op2: LongInt);
+ begin
+ inherited create(op);
+ ops:=2;
+ loadref(0,_op1);
+ loadconst(1,_op2);
+ end;
+
+
+ constructor taicpu.op_cond_sym(op : tasmop;cond:TAsmCond;_op1 : tasmsymbol);
+ begin
+ inherited create(op);
+ is_jmp:=op in jmp_instructions;
+ condition:=cond;
+ ops:=1;
+ loadsymbol(0,_op1,0);
+ end;
+
+
+ constructor taicpu.op_sym(op : tasmop;_op1 : tasmsymbol);
+ begin
+ inherited create(op);
+ is_jmp:=op in jmp_instructions;
+ ops:=1;
+ loadsymbol(0,_op1,0);
+ end;
+
+
+ constructor taicpu.op_sym_ofs(op : tasmop;_op1 : tasmsymbol;_op1ofs:longint);
+ begin
+ inherited create(op);
+ ops:=1;
+ loadsymbol(0,_op1,_op1ofs);
+ end;
+
+
+ function taicpu.is_same_reg_move(regtype: Tregistertype):boolean;
+ begin
+ result:=(
+ ((opcode in [A_LD]) and (regtype = R_INTREGISTER))
+ ) and
+ (ops=2) and
+ (oper[0]^.typ=top_reg) and
+ (oper[1]^.typ=top_reg) and
+ (oper[0]^.reg=oper[1]^.reg);
+ end;
+
+
+ function taicpu.spilling_get_operation_type(opnr: longint): topertype;
+ begin
+ result:=operand_read;
+ case opcode of
+ A_LD,
+ A_POP:
+ if opnr=0 then
+ result:=operand_write;
+ A_PUSH,
+ A_BIT,
+ A_CP,
+ A_DJNZ,
+ A_JR,
+ A_JP,
+ A_CALL,
+ A_RET,
+ A_RETI,
+ A_RETN,
+ A_RST,
+ A_IM:
+ ;
+ A_SET,
+ A_RES:
+ if opnr=1 then
+ result:=operand_readwrite;
+ A_EX:
+ result:=operand_readwrite;
+ else
+ begin
+ if opnr=0 then
+ result:=operand_readwrite;
+ end;
+ end;
+ end;
+
+
+ function spilling_create_load(const ref:treference;r:tregister):Taicpu;
+ begin
+ case getregtype(r) of
+ R_INTREGISTER :
+ result:=taicpu.op_reg_ref(A_LD,r,ref)
+ else
+ internalerror(200401041);
+ end;
+ end;
+
+
+ function spilling_create_store(r:tregister; const ref:treference):Taicpu;
+ begin
+ case getregtype(r) of
+ R_INTREGISTER :
+ result:=taicpu.op_ref_reg(A_LD,ref,r);
+ else
+ internalerror(200401041);
+ end;
+ end;
+
+
+ function is_ref_addr16(const ref: treference): Boolean;
+ begin
+ result:=(ref.base=NR_NO) and (ref.index=NR_NO);
+ end;
+
+
+ function is_ref_bc(const ref: treference): Boolean;
+ begin
+ result:=(((ref.base=NR_BC) and (ref.index=NR_NO)) or
+ ((ref.base=NR_NO) and (ref.index=NR_BC))) and
+ (ref.offset=0) and (ref.scalefactor<=1) and
+ (ref.symbol=nil) and (ref.relsymbol=nil);
+ end;
+
+
+ function is_ref_de(const ref: treference): Boolean;
+ begin
+ result:=(((ref.base=NR_DE) and (ref.index=NR_NO)) or
+ ((ref.base=NR_NO) and (ref.index=NR_DE))) and
+ (ref.offset=0) and (ref.scalefactor<=1) and
+ (ref.symbol=nil) and (ref.relsymbol=nil);
+ end;
+
+
+ function is_ref_hl(const ref: treference): Boolean;
+ begin
+ result:=(((ref.base=NR_HL) and (ref.index=NR_NO)) or
+ ((ref.base=NR_NO) and (ref.index=NR_HL))) and
+ (ref.offset=0) and (ref.scalefactor<=1) and
+ (ref.symbol=nil) and (ref.relsymbol=nil);
+ end;
+
+
+ function is_ref_sp(const ref: treference): Boolean;
+ begin
+ result:=(((ref.base=NR_SP) and (ref.index=NR_NO)) or
+ ((ref.base=NR_NO) and (ref.index=NR_SP))) and
+ (ref.offset=0) and (ref.scalefactor<=1) and
+ (ref.symbol=nil) and (ref.relsymbol=nil);
+ end;
+
+
+ function is_ref_ix(const ref: treference): Boolean;
+ begin
+ result:=(((ref.base=NR_IX) and (ref.index=NR_NO)) or
+ ((ref.base=NR_NO) and (ref.index=NR_IX))) and
+ (ref.offset=0) and (ref.scalefactor<=1) and
+ (ref.symbol=nil) and (ref.relsymbol=nil);
+ end;
+
+
+ function is_ref_iy(const ref: treference): Boolean;
+ begin
+ result:=(((ref.base=NR_IY) and (ref.index=NR_NO)) or
+ ((ref.base=NR_NO) and (ref.index=NR_IY))) and
+ (ref.offset=0) and (ref.scalefactor<=1) and
+ (ref.symbol=nil) and (ref.relsymbol=nil);
+ end;
+
+
+ function is_ref_ix_d(const ref: treference): Boolean;
+ begin
+ result:=(((ref.base=NR_IX) and (ref.index=NR_NO)) or
+ ((ref.base=NR_NO) and (ref.index=NR_IX))) and
+ (ref.offset>=-128) and (ref.offset<=127) and (ref.scalefactor<=1) and
+ (ref.symbol=nil) and (ref.relsymbol=nil);
+ end;
+
+
+ function is_ref_iy_d(const ref: treference): Boolean;
+ begin
+ result:=(((ref.base=NR_IY) and (ref.index=NR_NO)) or
+ ((ref.base=NR_NO) and (ref.index=NR_IY))) and
+ (ref.offset>=-128) and (ref.offset<=127) and (ref.scalefactor<=1) and
+ (ref.symbol=nil) and (ref.relsymbol=nil);
+ end;
+
+
+ function is_ref_opertype(const ref: treference; opertype: toperandtype): Boolean;
+ begin
+ case opertype of
+ OT_REF_ADDR16:
+ result:=is_ref_addr16(ref);
+ OT_REF_BC:
+ result:=is_ref_bc(ref);
+ OT_REF_DE:
+ result:=is_ref_de(ref);
+ OT_REF_HL:
+ result:=is_ref_hl(ref);
+ OT_REF_SP:
+ result:=is_ref_sp(ref);
+ OT_REF_IX:
+ result:=is_ref_ix(ref);
+ OT_REF_IY:
+ result:=is_ref_iy(ref);
+ OT_REF_IX_d:
+ result:=is_ref_ix_d(ref);
+ OT_REF_IY_d:
+ result:=is_ref_iy_d(ref);
+ else
+ internalerror(2020041801);
+ end;
+ end;
+
+
+ function is_ref_in_opertypes(const ref: treference; const refopertypes: trefoperandtypes): Boolean;
+ var
+ ot: trefoperandtype;
+ begin
+ result:=true;
+ for ot:=low(trefoperandtypes) to high(trefoperandtypes) do
+ if (ot in refopertypes) and is_ref_opertype(ref,ot) then
+ exit;
+ result:=false;
+ end;
+
+
+ procedure InitAsm;
+ begin
+ end;
+
+
+ procedure DoneAsm;
+ begin
+ end;
+
+begin
+ cai_cpu:=taicpu;
+ cai_align:=tai_align;
+end.
diff --git a/compiler/z80/agsdasz80.pas b/compiler/z80/agsdasz80.pas
new file mode 100644
index 0000000000..e161aa1c0b
--- /dev/null
+++ b/compiler/z80/agsdasz80.pas
@@ -0,0 +1,902 @@
+{
+ Copyright (c) 2003 by Florian Klaempfl
+
+ This unit implements an asm for the Z80
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+{ This unit implements the assembler writer for the sdcc-sdasz80 assembler:
+ http://sdcc.sourceforge.net/
+}
+
+unit agsdasz80;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ uses
+ globtype,systems,
+ aasmbase,aasmtai,aasmdata,aasmcpu,
+ assemble,
+ cpubase;
+
+ type
+
+ { TSdccSdasZ80Assembler }
+
+ TSdccSdasZ80Assembler=class(TExternalAssembler)
+ private
+ procedure WriteDecodedSleb128(a: int64);
+ procedure WriteDecodedUleb128(a: qword);
+ procedure WriteRealConstAsBytes(hp: tai_realconst; const dbdir: string; do_line: boolean);
+ function sectionname(atype:TAsmSectiontype;const aname:string;aorder:TAsmSectionOrder):string;
+ procedure WriteSection(atype:TAsmSectiontype;const aname:string;aorder:TAsmSectionOrder;secalign:longint;
+ secflags:TSectionFlags=[];secprogbits:TSectionProgbits=SPB_None);
+ procedure WriteInstruction(hp: taicpu);
+ procedure WriteOper(const o:toper; opcode: tasmop;ops:longint;dest : boolean);
+ procedure WriteOper_jmp(const o:toper; ai : taicpu);
+ procedure WriteExternals;
+ public
+ procedure WriteTree(p : TAsmList); override;
+ procedure WriteAsmList;override;
+ function MakeCmdLine: TCmdStr; override;
+ end;
+
+ implementation
+
+ uses
+ cutils,globals,verbose,
+ cpuinfo,
+ cgbase,cgutils,
+ finput;
+
+ const
+ line_length = 70;
+ max_tokens : longint = 25;
+ ait_const2str : array[aitconst_128bit..aitconst_64bit_unaligned] of string[20]=(
+ #9''#9,#9'FIXMEDQ'#9,#9'FIXMEDD'#9,#9'.dw'#9,#9'.db'#9,
+ #9'FIXMESLEB',#9'FIXEMEULEB',
+ #9'FIXMEDD RVA'#9,#9'FIXMEDD SECREL32'#9,
+ #9'FIXME',#9'FIXME',#9'FIXME',#9'FIXME',
+ #9'.dw'#9,#9'FIXMEDD'#9,#9'FIXMEDQ'#9
+ );
+
+ procedure TSdccSdasZ80Assembler.WriteDecodedSleb128(a: int64);
+ var
+ i,len : longint;
+ buf : array[0..255] of byte;
+ begin
+ writer.AsmWrite(#9'.db'#9);
+ len:=EncodeSleb128(a,buf,0);
+ for i:=0 to len-1 do
+ begin
+ if (i > 0) then
+ writer.AsmWrite(',');
+ writer.AsmWrite(tostr(buf[i]));
+ end;
+ writer.AsmWriteLn(#9'; sleb '+tostr(a));
+ end;
+
+ procedure TSdccSdasZ80Assembler.WriteDecodedUleb128(a: qword);
+ var
+ i,len : longint;
+ buf : array[0..63] of byte;
+ begin
+ writer.AsmWrite(#9'.db'#9);
+ len:=EncodeUleb128(a,buf,0);
+ for i:=0 to len-1 do
+ begin
+ if (i > 0) then
+ writer.AsmWrite(',');
+ writer.AsmWrite(tostr(buf[i]));
+ end;
+ writer.AsmWriteLn(#9'; uleb '+tostr(a));
+ end;
+
+ procedure TSdccSdasZ80Assembler.WriteRealConstAsBytes(hp: tai_realconst; const dbdir: string; do_line: boolean);
+ var
+ pdata: pbyte;
+ index, step, swapmask, count: longint;
+ ssingle: single;
+ ddouble: double;
+ ccomp: comp;
+{$if defined(cpuextended) and defined(FPC_HAS_TYPE_EXTENDED)}
+ eextended: extended;
+{$else}
+{$ifdef FPC_SOFT_FPUX80}
+ eextended: floatx80;
+{$endif}
+{$endif cpuextended}
+ begin
+ if do_line then
+ begin
+ case tai_realconst(hp).realtyp of
+ aitrealconst_s32bit:
+ writer.AsmWriteLn(asminfo^.comment+'value: '+single2str(tai_realconst(hp).value.s32val));
+ aitrealconst_s64bit:
+ writer.AsmWriteLn(asminfo^.comment+'value: '+double2str(tai_realconst(hp).value.s64val));
+{$if defined(cpuextended) and defined(FPC_HAS_TYPE_EXTENDED)}
+ { can't write full 80 bit floating point constants yet on non-x86 }
+ aitrealconst_s80bit:
+ writer.AsmWriteLn(asminfo^.comment+'value: '+extended2str(tai_realconst(hp).value.s80val));
+{$else}
+{$ifdef FPC_SOFT_FPUX80}
+{$push}{$warn 6018 off} { Unreachable code due to compile time evaluation }
+ aitrealconst_s80bit:
+ begin
+ if sizeof(tai_realconst(hp).value.s80val) = sizeof(double) then
+ writer.AsmWriteLn(asminfo^.comment+'value: '+double2str(tai_realconst(hp).value.s80val))
+ else if sizeof(tai_realconst(hp).value.s80val) = sizeof(single) then
+ writer.AsmWriteLn(asminfo^.comment+'value: '+single2str(tai_realconst(hp).value.s80val))
+ else
+ internalerror(2017091901);
+ end;
+{$pop}
+{$endif}
+{$endif cpuextended}
+ aitrealconst_s64comp:
+ writer.AsmWriteLn(asminfo^.comment+'value: '+extended2str(tai_realconst(hp).value.s64compval));
+ else
+ internalerror(2014050604);
+ end;
+ end;
+ writer.AsmWrite(dbdir);
+ { generic float writing code: get start address of value, then write
+ byte by byte. Can't use fields directly, because e.g ts64comp is
+ defined as extended on x86 }
+ case tai_realconst(hp).realtyp of
+ aitrealconst_s32bit:
+ begin
+ ssingle:=single(tai_realconst(hp).value.s32val);
+ pdata:=@ssingle;
+ end;
+ aitrealconst_s64bit:
+ begin
+ ddouble:=double(tai_realconst(hp).value.s64val);
+ pdata:=@ddouble;
+ end;
+{$if defined(cpuextended) and defined(FPC_HAS_TYPE_EXTENDED)}
+ { can't write full 80 bit floating point constants yet on non-x86 }
+ aitrealconst_s80bit:
+ begin
+ eextended:=extended(tai_realconst(hp).value.s80val);
+ pdata:=@eextended;
+ end;
+{$else}
+{$ifdef FPC_SOFT_FPUX80}
+{$push}{$warn 6018 off} { Unreachable code due to compile time evaluation }
+ aitrealconst_s80bit:
+ begin
+ if sizeof(tai_realconst(hp).value.s80val) = sizeof(double) then
+ eextended:=float64_to_floatx80(float64(double(tai_realconst(hp).value.s80val)))
+ else if sizeof(tai_realconst(hp).value.s80val) = sizeof(single) then
+ eextended:=float32_to_floatx80(float32(single(tai_realconst(hp).value.s80val)))
+ else
+ internalerror(2017091901);
+ pdata:=@eextended;
+ end;
+{$pop}
+{$endif}
+{$endif cpuextended}
+ aitrealconst_s64comp:
+ begin
+ ccomp:=comp(tai_realconst(hp).value.s64compval);
+ pdata:=@ccomp;
+ end;
+ else
+ internalerror(2014051001);
+ end;
+ count:=tai_realconst(hp).datasize;
+ { write bytes in inverse order if source and target endianess don't
+ match }
+ if source_info.endian<>target_info.endian then
+ begin
+ { go from back to front }
+ index:=count-1;
+ step:=-1;
+ end
+ else
+ begin
+ index:=0;
+ step:=1;
+ end;
+{$ifdef ARM}
+ { ARM-specific: low and high dwords of a double may be swapped }
+ if tai_realconst(hp).formatoptions=fo_hiloswapped then
+ begin
+ { only supported for double }
+ if tai_realconst(hp).datasize<>8 then
+ internalerror(2014050605);
+ { switch bit of the index so that the words are written in
+ the opposite order }
+ swapmask:=4;
+ end
+ else
+{$endif ARM}
+ swapmask:=0;
+ repeat
+ writer.AsmWrite(tostr(pdata[index xor swapmask]));
+ inc(index,step);
+ dec(count);
+ if count<>0 then
+ writer.AsmWrite(',');
+ until count=0;
+ { padding }
+ for count:=tai_realconst(hp).datasize+1 to tai_realconst(hp).savesize do
+ writer.AsmWrite(',0');
+ writer.AsmLn;
+ end;
+
+ function TSdccSdasZ80Assembler.sectionname(atype: TAsmSectiontype;
+ const aname: string; aorder: TAsmSectionOrder): string;
+ const
+ secnames : array[TAsmSectiontype] of string[length('__DATA, __datacoal_nt,coalesced')] = ('','',
+ '_CODE',
+ '_DATA',
+ '_DATA',
+ '.rodata',
+ '.bss',
+ '.threadvar',
+ '.pdata',
+ '', { stubs }
+ '__DATA,__nl_symbol_ptr',
+ '__DATA,__la_symbol_ptr',
+ '__DATA,__mod_init_func',
+ '__DATA,__mod_term_func',
+ '.stab',
+ '.stabstr',
+ '.idata$2','.idata$4','.idata$5','.idata$6','.idata$7','.edata',
+ '.eh_frame',
+ '.debug_frame','.debug_info','.debug_line','.debug_abbrev','.debug_aranges','.debug_ranges',
+ '.fpc',
+ '.toc',
+ '.init',
+ '.fini',
+ '.objc_class',
+ '.objc_meta_class',
+ '.objc_cat_cls_meth',
+ '.objc_cat_inst_meth',
+ '.objc_protocol',
+ '.objc_string_object',
+ '.objc_cls_meth',
+ '.objc_inst_meth',
+ '.objc_cls_refs',
+ '.objc_message_refs',
+ '.objc_symbols',
+ '.objc_category',
+ '.objc_class_vars',
+ '.objc_instance_vars',
+ '.objc_module_info',
+ '.objc_class_names',
+ '.objc_meth_var_types',
+ '.objc_meth_var_names',
+ '.objc_selector_strs',
+ '.objc_protocol_ext',
+ '.objc_class_ext',
+ '.objc_property',
+ '.objc_image_info',
+ '.objc_cstring_object',
+ '.objc_sel_fixup',
+ '__DATA,__objc_data',
+ '__DATA,__objc_const',
+ '.objc_superrefs',
+ '__DATA, __datacoal_nt,coalesced',
+ '.objc_classlist',
+ '.objc_nlclasslist',
+ '.objc_catlist',
+ '.obcj_nlcatlist',
+ '.objc_protolist',
+ '.stack',
+ '.heap',
+ '.gcc_except_table',
+ '.ARM.attributes'
+ );
+ begin
+ result:=secnames[atype];
+ end;
+
+ procedure TSdccSdasZ80Assembler.WriteSection(atype: TAsmSectiontype;
+ const aname: string; aorder: TAsmSectionOrder; secalign: longint;
+ secflags: TSectionFlags; secprogbits: TSectionProgbits);
+ var
+ s : string;
+ secflag: TSectionFlag;
+ sectionprogbits,
+ sectionflags: boolean;
+ begin
+ writer.AsmLn;
+ sectionflags:=false;
+ sectionprogbits:=false;
+ writer.AsmWrite(#9'.area ');
+ { sectionname may rename those sections, so we do not write flags/progbits for them,
+ the assembler will ignore them/spite out a warning anyways }
+ if not(atype in [sec_data,sec_rodata,sec_rodata_norel]) then
+ begin
+ sectionflags:=true;
+ sectionprogbits:=true;
+ end;
+ s:=sectionname(atype,aname,aorder);
+ writer.AsmWrite(s);
+ writer.AsmLn;
+ LastSecType:=atype;
+ end;
+
+ procedure TSdccSdasZ80Assembler.WriteInstruction(hp: taicpu);
+ var
+ i: Integer;
+ begin
+ writer.AsmWrite(#9#9+std_op2str[hp.opcode]);
+ if (taicpu(hp).ops<>0) or (hp.condition<>C_None) then
+ begin
+ writer.AsmWrite(#9);
+ if hp.condition<>C_None then
+ begin
+ writer.AsmWrite(uppercond2str[hp.condition]);
+ if taicpu(hp).ops<>0 then
+ writer.AsmWrite(',');
+ end;
+ for i:=0 to taicpu(hp).ops-1 do
+ begin
+ if i<>0 then
+ writer.AsmWrite(',');
+ if is_calljmp(hp.opcode) then
+ WriteOper_jmp(taicpu(hp).oper[i]^,hp)
+ else
+ WriteOper(taicpu(hp).oper[i]^,hp.opcode,taicpu(hp).ops,(i=2));
+ end;
+ end;
+ writer.AsmLn;
+ end;
+
+ procedure TSdccSdasZ80Assembler.WriteOper(const o: toper; opcode: tasmop; ops: longint; dest: boolean);
+ var
+ need_plus: Boolean;
+ begin
+ case o.typ of
+ top_reg :
+ writer.AsmWrite(std_regname(o.reg));
+ top_const :
+ begin
+ writer.AsmWrite('#'+tostr(longint(o.val)));
+ end;
+ top_ref:
+ begin
+ if assigned(o.ref^.symbol) and (o.ref^.refaddr in [addr_lo8,addr_hi8,addr_full]) then
+ begin
+ {if SmartAsm then
+ AddSymbol(o.ref^.symbol.name,false);}
+ if (o.ref^.base<>NR_NO) or (o.ref^.index<>NR_NO) then
+ internalerror(2020041101);
+ writer.AsmWrite('#');
+ case o.ref^.refaddr of
+ addr_lo8:
+ writer.AsmWrite('<');
+ addr_hi8:
+ writer.AsmWrite('>');
+ addr_full:
+ {nothing};
+ else
+ ;
+ end;
+ if o.ref^.offset<>0 then
+ writer.AsmWrite('('+ApplyAsmSymbolRestrictions(o.ref^.symbol.name)+'+'+tostr(o.ref^.offset)+')')
+ else
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(o.ref^.symbol.name));
+ end
+ else if not assigned(o.ref^.symbol) and
+ ((o.ref^.base<>NR_NO) or (o.ref^.index<>NR_NO)) and
+ (o.ref^.offset<>0) then
+ begin
+ writer.AsmWrite(tostr(o.ref^.offset));
+ writer.AsmWrite(' (');
+ if o.ref^.base<>NR_NO then
+ begin
+ if o.ref^.index<>NR_NO then
+ internalerror(2020040201);
+ writer.AsmWrite(std_regname(o.ref^.base));
+ end
+ else if o.ref^.index<>NR_NO then
+ begin
+ if o.ref^.scalefactor>1 then
+ internalerror(2020040202);
+ writer.AsmWrite(std_regname(o.ref^.index));
+ end;
+ writer.AsmWrite(')');
+ end
+ else
+ begin
+ writer.AsmWrite('(');
+ need_plus:=false;
+ if o.ref^.base<>NR_NO then
+ begin
+ if o.ref^.index<>NR_NO then
+ internalerror(2020040201);
+ writer.AsmWrite(std_regname(o.ref^.base));
+ need_plus:=true;
+ end
+ else if o.ref^.index<>NR_NO then
+ begin
+ if o.ref^.scalefactor>1 then
+ internalerror(2020040202);
+ writer.AsmWrite(std_regname(o.ref^.index));
+ need_plus:=true;
+ end;
+ if assigned(o.ref^.symbol) then
+ begin
+ {if SmartAsm then
+ AddSymbol(o.ref^.symbol.name,false);}
+ if need_plus then
+ writer.AsmWrite('+');
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(o.ref^.symbol.name));
+ need_plus:=true;
+ end;
+ if o.ref^.offset<>0 then
+ begin
+ if need_plus and (o.ref^.offset>0) then
+ writer.AsmWrite('+');
+ writer.AsmWrite(tostr(o.ref^.offset));
+ need_plus:=true;
+ end;
+ if not need_plus then
+ writer.AsmWrite('0');
+ writer.AsmWrite(')');
+ end;
+ end;
+ else
+ internalerror(10001);
+ end;
+ end;
+
+ procedure TSdccSdasZ80Assembler.WriteOper_jmp(const o: toper; ai: taicpu);
+ begin
+ case o.typ of
+ top_reg :
+ writer.AsmWrite(std_regname(o.reg));
+ top_const :
+ begin
+ writer.AsmWrite('#'+tostr(longint(o.val)));
+ end;
+ top_ref:
+ begin
+ if o.ref^.refaddr=addr_no then
+ begin
+ writer.AsmWrite('TODO:indirect jump ref');
+ //WriteReference(o.ref^);
+ end
+ else
+ begin
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(o.ref^.symbol.name));
+ //if SmartAsm then
+ // AddSymbol(o.ref^.symbol.name,false);
+ if o.ref^.offset>0 then
+ writer.AsmWrite('+'+tostr(o.ref^.offset))
+ else
+ if o.ref^.offset<0 then
+ writer.AsmWrite(tostr(o.ref^.offset));
+ end;
+ end;
+ else
+ internalerror(10001);
+ end;
+ end;
+
+ procedure TSdccSdasZ80Assembler.WriteExternals;
+ var
+ sym : TAsmSymbol;
+ i : longint;
+ begin
+ writer.AsmWriteln('; Begin externals');
+ for i:=0 to current_asmdata.AsmSymbolDict.Count-1 do
+ begin
+ sym:=TAsmSymbol(current_asmdata.AsmSymbolDict[i]);
+ if sym.bind in [AB_EXTERNAL,AB_EXTERNAL_INDIRECT] then
+ writer.AsmWriteln(#9'.globl'#9+ApplyAsmSymbolRestrictions(sym.name));
+ end;
+ writer.AsmWriteln('; End externals');
+ end;
+
+ procedure TSdccSdasZ80Assembler.WriteTree(p: TAsmList);
+
+ procedure doalign(alignment: byte; use_op: boolean; fillop: byte; maxbytes: byte; out last_align: longint;lasthp:tai);
+ var
+ i: longint;
+ alignment64 : int64;
+ begin
+ last_align:=alignment;
+ if alignment>1 then
+ writer.AsmWriteLn(#9'.bndry '+tostr(alignment));
+ end;
+
+ var
+ lasthp,
+ hp: tai;
+ s, LastSecName: string;
+ counter,lines,i,j,l,tokens,pos,last_align: longint;
+ quoted, do_line: Boolean;
+ consttype: taiconst_type;
+ ch: Char;
+ InlineLevel : longint;
+ prevfileinfo : tfileposinfo;
+ previnfile : tinputfile;
+ LastAlign: Integer;
+ LastSecOrder: TAsmSectionOrder;
+ begin
+ if not assigned(p) then
+ exit;
+ InlineLevel:=0;
+ last_align:=1;
+ lasthp:=nil;
+ { lineinfo is only needed for al_procedures (PFV) }
+ do_line:=(cs_asm_source in current_settings.globalswitches) or
+ ((cs_lineinfo in current_settings.moduleswitches)
+ and (p=current_asmdata.asmlists[al_procedures]));
+ hp:=tai(p.first);
+ while assigned(hp) do
+ begin
+ prefetch(pointer(hp.next)^);
+ if not(hp.typ in SkipLineInfo) then
+ begin
+ previnfile:=lastinfile;
+ prevfileinfo:=lastfileinfo;
+ current_filepos:=tailineinfo(hp).fileinfo;
+
+ { no line info for inlined code }
+ if do_line and (inlinelevel=0) then
+ WriteSourceLine(hp as tailineinfo);
+ (*if (lastfileinfo.line<>prevfileinfo.line) or
+ (previnfile<>lastinfile) then
+ begin
+ { +0 postfix means no line increment per assembler instruction }
+ writer.AsmWrite('%LINE '+tostr(current_filepos.line)+'+0');
+ if assigned(lastinfile) and ((previnfile<>lastinfile) or NewObject) then
+ writer.AsmWriteLn(' '+lastinfile.name)
+ else
+ writer.AsmLn;
+ NewObject:=false;
+ end;*)
+ end;
+ case hp.typ of
+ ait_comment :
+ begin
+ writer.AsmWrite(asminfo^.comment);
+ writer.AsmWritePChar(tai_comment(hp).str);
+ writer.AsmLn;
+ end;
+ ait_regalloc :
+ begin
+ if (cs_asm_regalloc in current_settings.globalswitches) then
+ writer.AsmWriteLn(#9#9+asminfo^.comment+'Register '+std_regname(tai_regalloc(hp).reg)+' '+
+ regallocstr[tai_regalloc(hp).ratype]);
+ end;
+ ait_tempalloc :
+ begin
+ if (cs_asm_tempalloc in current_settings.globalswitches) then
+ WriteTempalloc(tai_tempalloc(hp));
+ end;
+ ait_section :
+ begin
+ if tai_section(hp).sectype<>sec_none then
+ WriteSection(tai_section(hp).sectype,tai_section(hp).name^,tai_section(hp).secorder,
+ tai_section(hp).secalign,tai_section(hp).secflags,tai_section(hp).secprogbits)
+ else
+ begin
+{$ifdef EXTDEBUG}
+ writer.AsmWrite(asminfo^.comment);
+ writer.AsmWriteln(' sec_none');
+{$endif EXTDEBUG}
+ end;
+ end;
+ ait_align :
+ begin
+ doalign(tai_align_abstract(hp).aligntype,tai_align_abstract(hp).use_op,tai_align_abstract(hp).fillop,tai_align_abstract(hp).maxbytes,last_align,lasthp);
+ end;
+ ait_label :
+ begin
+ if tai_label(hp).labsym.is_used then
+ begin
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_label(hp).labsym.name));
+ if tai_label(hp).labsym.bind in [AB_GLOBAL,AB_PRIVATE_EXTERN] then
+ writer.AsmWriteLn('::')
+ else
+ writer.AsmWriteLn(':');
+ end;
+ end;
+ ait_symbol :
+ begin
+ if not(tai_symbol(hp).has_value) then
+ begin
+ if tai_symbol(hp).is_global then
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name) + '::')
+ else
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name) + ':');
+ end
+ else
+ begin
+ if tai_symbol(hp).is_global then
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name) + '==' + tostr(tai_symbol(hp).value))
+ else
+ writer.AsmWriteLn(ApplyAsmSymbolRestrictions(tai_symbol(hp).sym.name) + '=' + tostr(tai_symbol(hp).value));
+ end;
+ end;
+ ait_symbol_end :
+ begin
+ end;
+ ait_datablock :
+ begin
+ if tai_datablock(hp).is_global or SmartAsm then
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_datablock(hp).sym.name) + '::')
+ else
+ writer.AsmWrite(ApplyAsmSymbolRestrictions(tai_datablock(hp).sym.name) + ':');
+ {if SmartAsm then
+ AddSymbol(tai_datablock(hp).sym.name,true);}
+ writer.AsmWriteLn(#9'.rs'#9+tostr(tai_datablock(hp).size));
+ end;
+ ait_realconst:
+ WriteRealConstAsBytes(tai_realconst(hp),#9'.db'#9,do_line);
+ ait_const:
+ begin
+ consttype:=tai_const(hp).consttype;
+ case consttype of
+ aitconst_uleb128bit:
+ WriteDecodedUleb128(qword(tai_const(hp).value));
+ aitconst_sleb128bit:
+ WriteDecodedSleb128(int64(tai_const(hp).value));
+ aitconst_64bit,
+ aitconst_64bit_unaligned,
+ aitconst_32bit,
+ aitconst_32bit_unaligned:
+ begin
+ writer.AsmWrite(#9'.dw'#9);
+ l:=0;
+ tokens:=1;
+ repeat
+ if assigned(tai_const(hp).sym) then
+ begin
+ if assigned(tai_const(hp).endsym) then
+ s:=ApplyAsmSymbolRestrictions(tai_const(hp).endsym.name)+'-'+ApplyAsmSymbolRestrictions(tai_const(hp).sym.name)
+ else
+ s:=ApplyAsmSymbolRestrictions(tai_const(hp).sym.name);
+ if tai_const(hp).value<>0 then
+ s:=s+tostr_with_plus(tai_const(hp).value);
+ if consttype in [aitconst_64bit,aitconst_64bit_unaligned] then
+ s:=s+',0,0,0'
+ else
+ s:=s+',0';
+ end
+ else
+ if consttype in [aitconst_64bit,aitconst_64bit_unaligned] then
+ s:=tostr(Word(tai_const(hp).value)) +','+tostr(Word(tai_const(hp).value shr 16))+','+
+ tostr(Word(tai_const(hp).value shr 32))+','+tostr(Word(tai_const(hp).value shr 48))
+ else
+ s:=tostr(Word(tai_const(hp).value))+','+tostr(Word(tai_const(hp).value shr 16));
+ writer.AsmWrite(s);
+ inc(l,length(s));
+ inc(tokens);
+ if (l>line_length) or
+ (tokens>max_tokens) or
+ (hp.next=nil) or
+ (tai(hp.next).typ<>ait_const) or
+ (tai_const(hp.next).consttype<>consttype) then
+ break;
+ hp:=tai(hp.next);
+ writer.AsmWrite(',');
+ until false;
+ { Substract section start for secrel32 type }
+ {if consttype=aitconst_secrel32_symbol then
+ writer.AsmWrite(' - $$');}
+ writer.AsmLn;
+ end;
+ {aitconst_128bit,}
+ aitconst_16bit,
+ aitconst_8bit,
+ aitconst_16bit_unaligned{,
+ aitconst_rva_symbol,
+ aitconst_secrel32_symbol} :
+ begin
+ writer.AsmWrite(ait_const2str[consttype]);
+ l:=0;
+ tokens:=1;
+ repeat
+ if assigned(tai_const(hp).sym) then
+ begin
+ if assigned(tai_const(hp).endsym) then
+ s:=ApplyAsmSymbolRestrictions(tai_const(hp).endsym.name)+'-'+ApplyAsmSymbolRestrictions(tai_const(hp).sym.name)
+ else
+ s:=ApplyAsmSymbolRestrictions(tai_const(hp).sym.name);
+ if tai_const(hp).value<>0 then
+ s:=s+tostr_with_plus(tai_const(hp).value);
+ end
+ else
+ s:=tostr(tai_const(hp).value);
+ writer.AsmWrite(s);
+ inc(l,length(s));
+ inc(tokens);
+ if (l>line_length) or
+ (tokens>max_tokens) or
+ (hp.next=nil) or
+ (tai(hp.next).typ<>ait_const) or
+ (tai_const(hp.next).consttype<>consttype) then
+ break;
+ hp:=tai(hp.next);
+ writer.AsmWrite(',');
+ until false;
+ { Substract section start for secrel32 type }
+ if consttype=aitconst_secrel32_symbol then
+ writer.AsmWrite(' - $$');
+ writer.AsmLn;
+ end;
+ else
+ begin
+ writer.AsmWrite(asminfo^.comment);
+ writer.AsmWrite('WARNING: not yet implemented in assembler output: ');
+ Str(consttype,s);
+ writer.AsmWriteLn(s);
+ end;
+ end;
+ end;
+ ait_string :
+ begin
+ pos:=0;
+ for i:=1 to tai_string(hp).len do
+ begin
+ if pos=0 then
+ begin
+ writer.AsmWrite(#9'.ascii'#9'"');
+ pos:=20;
+ end;
+ ch:=tai_string(hp).str[i-1];
+ case ch of
+ #0, {This can't be done by range, because a bug in FPC}
+ #1..#31,
+ #128..#255 : s:='\'+tostr(ord(ch) shr 6)+tostr((ord(ch) and 63) shr 3)+tostr(ord(ch) and 7);
+ '"' : s:='\"';
+ '\' : s:='\\';
+ else
+ s:=ch;
+ end;
+ writer.AsmWrite(s);
+ inc(pos,length(s));
+ if (pos>line_length) or (i=tai_string(hp).len) then
+ begin
+ writer.AsmWriteLn('"');
+ pos:=0;
+ end;
+ end;
+ end;
+ ait_instruction :
+ begin
+ WriteInstruction(taicpu(hp));
+ end;
+ ait_directive :
+ begin
+ case tai_directive(hp).directive of
+ asd_cpu :
+ writer.AsmWriteLn('; CPU '+tai_directive(hp).name);
+ else
+ begin
+ writer.AsmWrite(asminfo^.comment);
+ writer.AsmWrite('WARNING: not yet implemented in assembler output: ait_directive.');
+ Str(tai_directive(hp).directive,s);
+ writer.AsmWriteLn(s);
+ end;
+ end;
+ end;
+ ait_cutobject :
+ begin
+ if SmartAsm then
+ begin
+ { only reset buffer if nothing has changed }
+ if not writer.ClearIfEmpty then
+ begin
+ {if SmartAsm then
+ begin
+ WriteSmartExternals;
+ FreeExternChainList;
+ end;
+ WriteGroups;}
+ writer.AsmClose;
+ DoAssemble;
+ writer.AsmCreate(tai_cutobject(hp).place);
+ {ResetSectionsList;
+ WriteHeader;}
+ end;
+ { avoid empty files }
+ LastSecType:=sec_none;
+ LastSecName:='';
+ LastSecOrder:=secorder_default;
+ LastAlign:=1;
+ while assigned(hp.next) and (tai(hp.next).typ in [ait_cutobject,ait_section,ait_comment]) do
+ begin
+ if tai(hp.next).typ=ait_section then
+ begin
+ LastSecType:=tai_section(hp.next).sectype;
+ LastSecName:=tai_section(hp.next).name^;
+ LastSecOrder:=tai_section(hp.next).secorder;
+ LastAlign:=tai_section(hp.next).secalign;
+ end;
+ hp:=tai(hp.next);
+ end;
+ if LastSecType<>sec_none then
+ WriteSection(LastSecType,LastSecName,LastSecOrder,LastAlign);
+ writer.MarkEmpty;
+ //NewObject:=true;
+ end;
+ end;
+ ait_marker :
+ if tai_marker(hp).kind=mark_NoLineInfoStart then
+ inc(InlineLevel)
+ else if tai_marker(hp).kind=mark_NoLineInfoEnd then
+ dec(InlineLevel);
+ ait_stab,
+ ait_force_line,
+ ait_function_name : ;
+ else
+ begin
+ writer.AsmWrite(asminfo^.comment);
+ writer.AsmWrite('WARNING: not yet implemented in assembler output: ');
+ Str(hp.typ,s);
+ writer.AsmWriteLn(s);
+ end;
+ end;
+ lasthp:=hp;
+ hp:=tai(hp.next);
+ end;
+ end;
+
+
+ procedure TSdccSdasZ80Assembler.WriteAsmList;
+ var
+ hal: TAsmListType;
+ begin
+ WriteExternals;
+
+ for hal:=low(TasmlistType) to high(TasmlistType) do
+ begin
+ writer.AsmWriteLn(asminfo^.comment+'Begin asmlist '+AsmListTypeStr[hal]);
+ writetree(current_asmdata.asmlists[hal]);
+ writer.AsmWriteLn(asminfo^.comment+'End asmlist '+AsmListTypeStr[hal]);
+ end;
+ end;
+
+
+ function TSdccSdasZ80Assembler.MakeCmdLine: TCmdStr;
+ begin
+ result := {'-mmcu='+lower(cputypestr[current_settings.cputype])+' '+}inherited MakeCmdLine;
+ end;
+
+
+ const
+ as_sdcc_sdasZ80_asm_info : tasminfo =
+ (
+ id : as_sdcc_sdasz80;
+
+ idtxt : 'SDCC-SDASZ80';
+ asmbin : 'sdasz80';
+ asmcmd : '-g -o $EXTRAOPT $OBJ $ASM';
+ supported_targets : [system_Z80_embedded];
+ flags : [af_needar,af_smartlink_sections];
+ labelprefix : '.L';
+ labelmaxlen : 79;
+ comment : '; ';
+ dollarsign: '$';
+ );
+
+
+begin
+ RegisterAssembler(as_sdcc_sdasZ80_asm_info,TSdccSdasZ80Assembler);
+end.
diff --git a/compiler/z80/agz80asm.pas b/compiler/z80/agz80asm.pas
new file mode 100644
index 0000000000..46776c9d9b
--- /dev/null
+++ b/compiler/z80/agz80asm.pas
@@ -0,0 +1,447 @@
+{
+ Copyright (c) 2003 by Florian Klaempfl
+
+ This unit implements an asm for the Z80
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+{ This unit implements the assembler writer for the z80asm assembler:
+ http://savannah.nongnu.org/projects/z80asm
+}
+
+unit agz80asm;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ uses
+ globtype,systems,
+ aasmtai,aasmdata,
+ assemble,
+ cpubase;
+
+ type
+
+ { TZ80AsmAssembler }
+
+ TZ80AsmAssembler=class(TExternalAssembler)
+ private
+ function EscapeLabel(s: ansistring): ansistring;
+ public
+ procedure WriteTree(p : TAsmList); override;
+ procedure WriteAsmList;override;
+ function MakeCmdLine: TCmdStr; override;
+ end;
+
+ implementation
+
+ uses
+ cutils,globals,verbose,
+ aasmbase,aasmcpu,
+ cpuinfo,
+ cgbase,cgutils;
+
+ const
+ line_length = 70;
+ max_tokens : longint = 25;
+ ait_const2str : array[aitconst_128bit..aitconst_64bit_unaligned] of string[20]=(
+ #9''#9,#9'DQ'#9,#9'DD'#9,#9'DW'#9,#9'DB'#9,
+ #9'FIXMESLEB',#9'FIXEMEULEB',
+ #9'DD RVA'#9,#9'DD SECREL32'#9,
+ #9'FIXME',#9'FIXME',#9'FIXME',#9'FIXME',
+ #9'DW'#9,#9'DD'#9,#9'DQ'#9
+ );
+
+ function TZ80AsmAssembler.EscapeLabel(s: ansistring): ansistring;
+ var
+ i: Integer;
+ begin
+ result:='';
+ for i:=1 to length(s) do
+ if ((s[i]>='a') and (s[i]<='z')) or
+ ((s[i]>='A') and (s[i]<='Z')) or
+ ((s[i]>='0') and (s[i]<='9')) or
+ (s[i]='.') then
+ result:=result+s[i]
+ else if s[i]='_' then
+ result:=result+'__'
+ else
+ result:=result+('_'+HexStr(Ord(s[i]),2));
+ end;
+
+ procedure TZ80AsmAssembler.WriteTree(p: TAsmList);
+
+ function getreferencestring(var ref : treference) : string;
+ var
+ s : string;
+ begin
+ s:='';
+ with ref do
+ begin
+ {$ifdef extdebug}
+ // if base=NR_NO then
+ // internalerror(200308292);
+
+ // if ((index<>NR_NO) or (shiftmode<>SM_None)) and ((offset<>0) or (symbol<>nil)) then
+ // internalerror(200308293);
+ {$endif extdebug}
+ if index<>NR_NO then
+ internalerror(2011021701)
+ else if base<>NR_NO then
+ begin
+// if addressmode=AM_PREDRECEMENT then
+// s:='-';
+
+ //case base of
+ // NR_R26:
+ // s:=s+'X';
+ // NR_R28:
+ // s:=s+'Y';
+ // NR_R30:
+ // s:=s+'Z';
+ // else
+ // s:=gas_regname(base);
+ //end;
+ //if addressmode=AM_POSTINCREMENT then
+ // s:=s+'+';
+ //
+ //if offset>0 then
+ // s:=s+'+'+tostr(offset)
+ //else if offset<0 then
+ // s:=s+tostr(offset)
+ end
+ else if assigned(symbol) or (offset<>0) then
+ begin
+ //if assigned(symbol) then
+ // s:=ApplyAsmSymbolRestrictions(symbol.name);
+ //
+ //if offset<0 then
+ // s:=s+tostr(offset)
+ //else if offset>0 then
+ // s:=s+'+'+tostr(offset);
+ //case refaddr of
+ // addr_hi8:
+ // s:='hi8('+s+')';
+ // addr_hi8_gs:
+ // s:='hi8(gs('+s+'))';
+ // addr_lo8:
+ // s:='lo8('+s+')';
+ // addr_lo8_gs:
+ // s:='lo8(gs('+s+'))';
+ // else
+ // s:='('+s+')';
+ //end;
+ end;
+ end;
+ getreferencestring:=s;
+ end;
+
+
+ function getopstr(const o:toper) : string;
+ var
+ hs : string;
+ first : boolean;
+ r : tsuperregister;
+ begin
+ result:='';
+ //case o.typ of
+ // top_reg:
+ // getopstr:=gas_regname(o.reg);
+ // top_const:
+ // getopstr:=tostr(longint(o.val));
+ // top_ref:
+ // if o.ref^.refaddr=addr_full then
+ // begin
+ // hs:=ApplyAsmSymbolRestrictions(o.ref^.symbol.name);
+ // if o.ref^.offset>0 then
+ // hs:=hs+'+'+tostr(o.ref^.offset)
+ // else
+ // if o.ref^.offset<0 then
+ // hs:=hs+tostr(o.ref^.offset);
+ // getopstr:=hs;
+ // end
+ // else
+ // getopstr:=getreferencestring(o.ref^);
+ // else
+ // internalerror(2002070604);
+ //end;
+ end;
+
+ //var op: TAsmOp;
+ // s: string;
+ // i: byte;
+ // sep: string[3];
+ var
+ hp: tai;
+ s: string;
+ counter,lines,i,j,l,tokens: longint;
+ quoted: Boolean;
+ consttype: taiconst_type;
+ begin
+ if not assigned(p) then
+ exit;
+ hp:=tai(p.first);
+ while assigned(hp) do
+ begin
+ prefetch(pointer(hp.next)^);
+ case hp.typ of
+ ait_comment :
+ begin
+ writer.AsmWrite(asminfo^.comment);
+ writer.AsmWritePChar(tai_comment(hp).str);
+ writer.AsmLn;
+ end;
+ ait_align :
+ begin
+ if tai_align_abstract(hp).aligntype>1 then
+ writer.AsmWriteLn(asminfo^.comment+'Unsupported ALIGN '+tostr(tai_align_abstract(hp).aligntype));
+ end;
+ ait_label :
+ begin
+ if tai_label(hp).labsym.is_used then
+ begin
+ writer.AsmWrite(EscapeLabel(tai_label(hp).labsym.name));
+ writer.AsmWriteLn(':');
+ end;
+ end;
+ ait_symbol :
+ begin
+ if tai_symbol(hp).has_value then
+ internalerror(2009090802);
+ { wasm is case insensitive, we nned to use only uppercase version
+ if both a lowercase and an uppercase version are provided }
+ {if (asminfo^.id = as_i386_wasm) then
+ begin
+ nhp:=tai(hp.next);
+ while assigned(nhp) and (nhp.typ in [ait_function_name,ait_force_line]) do
+ nhp:=tai(nhp.next);
+ if assigned(nhp) and (tai(nhp).typ=ait_symbol) and
+ (lower(tai_symbol(nhp).sym.name)=tai_symbol(hp).sym.name) then
+ begin
+ writer.AsmWriteln(asminfo^.comment+' '+tai_symbol(hp).sym.name+' removed');
+ hp:=tai(nhp);
+ end;
+ end;}
+ {if tai_symbol(hp).is_global then
+ writer.AsmWriteLn(#9'PUBLIC'#9+tai_symbol(hp).sym.name);}
+ writer.AsmWrite(EscapeLabel(tai_symbol(hp).sym.name));
+ {if assigned(hp.next) and not(tai(hp.next).typ in
+ [ait_const,ait_realconst,ait_string]) then}
+ writer.AsmWriteLn(':');
+ end;
+ ait_symbol_end :
+ begin
+ end;
+ ait_const:
+ begin
+ consttype:=tai_const(hp).consttype;
+ case consttype of
+ {aitconst_uleb128bit,
+ aitconst_sleb128bit,
+ aitconst_128bit,
+ aitconst_64bit,
+ aitconst_32bit,}
+ aitconst_16bit,
+ aitconst_8bit,
+ aitconst_16bit_unaligned{,
+ aitconst_32bit_unaligned,
+ aitconst_64bit_unaligned,
+ aitconst_rva_symbol,
+ aitconst_secrel32_symbol} :
+ begin
+ writer.AsmWrite(ait_const2str[consttype]);
+ l:=0;
+ tokens:=1;
+ repeat
+ if assigned(tai_const(hp).sym) then
+ begin
+ if assigned(tai_const(hp).endsym) then
+ s:=EscapeLabel(tai_const(hp).endsym.name)+'-'+EscapeLabel(tai_const(hp).sym.name)
+ else
+ s:=EscapeLabel(tai_const(hp).sym.name);
+ if tai_const(hp).value<>0 then
+ s:=s+tostr_with_plus(tai_const(hp).value);
+ end
+ else
+ s:=tostr(tai_const(hp).value);
+ writer.AsmWrite(s);
+ inc(l,length(s));
+ inc(tokens);
+ if (l>line_length) or
+ (tokens>max_tokens) or
+ (hp.next=nil) or
+ (tai(hp.next).typ<>ait_const) or
+ (tai_const(hp.next).consttype<>consttype) then
+ break;
+ hp:=tai(hp.next);
+ writer.AsmWrite(',');
+ until false;
+ { Substract section start for secrel32 type }
+ if consttype=aitconst_secrel32_symbol then
+ writer.AsmWrite(' - $$');
+ writer.AsmLn;
+ end;
+ else
+ begin
+ writer.AsmWrite(asminfo^.comment);
+ writer.AsmWrite('WARNING: not yet implemented in assembler output: ');
+ Str(consttype,s);
+ writer.AsmWriteLn(s);
+ end;
+ end;
+ end;
+ ait_string :
+ begin
+ counter := 0;
+ lines := tai_string(hp).len div line_length;
+ { separate lines in different parts }
+ if tai_string(hp).len > 0 then
+ Begin
+ for j := 0 to lines-1 do
+ begin
+ writer.AsmWrite(#9#9'DB'#9);
+ quoted:=false;
+ for i:=counter to counter+line_length-1 do
+ begin
+ { it is an ascii character. }
+ if (ord(tai_string(hp).str[i])>31) and
+ (ord(tai_string(hp).str[i])<127) and
+ (tai_string(hp).str[i]<>'"') then
+ begin
+ if not(quoted) then
+ begin
+ if i>counter then
+ writer.AsmWrite(',');
+ writer.AsmWrite('"');
+ end;
+ writer.AsmWrite(tai_string(hp).str[i]);
+ quoted:=true;
+ end { if > 31 and < 127 and ord('"') }
+ else
+ begin
+ if quoted then
+ writer.AsmWrite('"');
+ if i>counter then
+ writer.AsmWrite(',');
+ quoted:=false;
+ writer.AsmWrite(tostr(ord(tai_string(hp).str[i])));
+ end;
+ end; { end for i:=0 to... }
+ if quoted then writer.AsmWrite('"');
+ writer.AsmWrite(target_info.newline);
+ counter := counter+line_length;
+ end; { end for j:=0 ... }
+ { do last line of lines }
+ if counter<tai_string(hp).len then
+ writer.AsmWrite(#9#9'DB'#9);
+ quoted:=false;
+ for i:=counter to tai_string(hp).len-1 do
+ begin
+ { it is an ascii character. }
+ if (ord(tai_string(hp).str[i])>31) and
+ (ord(tai_string(hp).str[i])<128) and
+ (tai_string(hp).str[i]<>'"') then
+ begin
+ if not(quoted) then
+ begin
+ if i>counter then
+ writer.AsmWrite(',');
+ writer.AsmWrite('"');
+ end;
+ writer.AsmWrite(tai_string(hp).str[i]);
+ quoted:=true;
+ end { if > 31 and < 128 and " }
+ else
+ begin
+ if quoted then
+ writer.AsmWrite('"');
+ if i>counter then
+ writer.AsmWrite(',');
+ quoted:=false;
+ writer.AsmWrite(tostr(ord(tai_string(hp).str[i])));
+ end;
+ end; { end for i:=0 to... }
+ if quoted then
+ writer.AsmWrite('"');
+ end;
+ writer.AsmLn;
+ end;
+ else
+ begin
+ writer.AsmWrite(asminfo^.comment);
+ writer.AsmWrite('WARNING: not yet implemented in assembler output: ');
+ Str(hp.typ,s);
+ writer.AsmWriteLn(s);
+ end;
+ end;
+ hp:=tai(hp.next);
+ end;
+ //op:=taicpu(hp).opcode;
+ //s:=#9+gas_op2str[op]+cond2str[taicpu(hp).condition];
+ //if taicpu(hp).ops<>0 then
+ // begin
+ // sep:=#9;
+ // for i:=0 to taicpu(hp).ops-1 do
+ // begin
+ // s:=s+sep+getopstr(taicpu(hp).oper[i]^);
+ // sep:=',';
+ // end;
+ // end;
+ //owner.writer.AsmWriteLn(s);
+ end;
+
+
+ procedure TZ80AsmAssembler.WriteAsmList;
+ var
+ hal: TAsmListType;
+ begin
+ for hal:=low(TasmlistType) to high(TasmlistType) do
+ begin
+ writer.AsmWriteLn(asminfo^.comment+'Begin asmlist '+AsmListTypeStr[hal]);
+ writetree(current_asmdata.asmlists[hal]);
+ writer.AsmWriteLn(asminfo^.comment+'End asmlist '+AsmListTypeStr[hal]);
+ end;
+ end;
+
+
+ function TZ80AsmAssembler.MakeCmdLine: TCmdStr;
+ begin
+ result := {'-mmcu='+lower(cputypestr[current_settings.cputype])+' '+}inherited MakeCmdLine;
+ end;
+
+
+ const
+ as_Z80_asm_info : tasminfo =
+ (
+ id : as_z80asm;
+
+ idtxt : 'Z80ASM';
+ asmbin : 'z80asm';
+ asmcmd : '-o $OBJ $EXTRAOPT $ASM';
+ supported_targets : [system_Z80_embedded];
+ flags : [af_needar,af_smartlink_sections];
+ labelprefix : '.L';
+ labelmaxlen : -1;
+ comment : '; ';
+ dollarsign: 's';
+ );
+
+
+begin
+ RegisterAssembler(as_Z80_asm_info,TZ80AsmAssembler);
+end.
diff --git a/compiler/z80/aoptcpu.pas b/compiler/z80/aoptcpu.pas
new file mode 100644
index 0000000000..39fa614c73
--- /dev/null
+++ b/compiler/z80/aoptcpu.pas
@@ -0,0 +1,242 @@
+{
+ Copyright (c) 1998-2002 by Jonas Maebe, member of the Free Pascal
+ Development Team
+
+ This unit implements the Z80 optimizer object
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+
+
+Unit aoptcpu;
+
+{$i fpcdefs.inc}
+
+{$define DEBUG_AOPTCPU}
+
+Interface
+
+uses cpubase, cgbase, aasmtai, aopt,AoptObj, aoptcpub;
+
+Type
+ TCpuAsmOptimizer = class(TAsmOptimizer)
+ { outputs a debug message into the assembler file }
+ procedure DebugMsg(const s: string; p: tai);
+
+ Function GetNextInstructionUsingReg(Current: tai; Var Next: tai;reg : TRegister): Boolean;
+ function RegLoadedWithNewValue(reg : tregister; hp : tai) : boolean; override;
+ function InstructionLoadsFromReg(const reg : TRegister; const hp : tai) : boolean; override;
+
+ { uses the same constructor as TAopObj }
+ function PeepHoleOptPass1Cpu(var p: tai): boolean; override;
+ procedure PeepHoleOptPass2;override;
+ End;
+
+Implementation
+
+ uses
+ cutils,
+ verbose,
+ cpuinfo,
+ aasmbase,aasmcpu,aasmdata,
+ globals,globtype,
+ cgutils;
+
+ type
+ TAsmOpSet = set of TAsmOp;
+
+ function CanBeCond(p : tai) : boolean;
+ begin
+ result:=(p.typ=ait_instruction) and (taicpu(p).condition=C_None);
+ end;
+
+
+ function RefsEqual(const r1, r2: treference): boolean;
+ begin
+ refsequal :=
+ (r1.offset = r2.offset) and
+ (r1.base = r2.base) and
+ (r1.index = r2.index) and (r1.scalefactor = r2.scalefactor) and
+ (r1.symbol=r2.symbol) and (r1.refaddr = r2.refaddr) and
+ (r1.relsymbol = r2.relsymbol);
+ end;
+
+
+ function MatchOperand(const oper1: TOper; const oper2: TOper): boolean; inline;
+ begin
+ result:=oper1.typ=oper2.typ;
+
+ if result then
+ case oper1.typ of
+ top_const:
+ Result:=oper1.val = oper2.val;
+ top_reg:
+ Result:=oper1.reg = oper2.reg;
+ top_ref:
+ Result:=RefsEqual(oper1.ref^, oper2.ref^);
+ else Result:=false;
+ end
+ end;
+
+
+ function MatchOperand(const oper: TOper; const reg: TRegister): boolean; inline;
+ begin
+ result := (oper.typ = top_reg) and (oper.reg = reg);
+ end;
+
+
+ function MatchInstruction(const instr: tai; const op: TAsmOp): boolean;
+ begin
+ result :=
+ (instr.typ = ait_instruction) and
+ (taicpu(instr).opcode = op);
+ end;
+
+
+ function MatchInstruction(const instr: tai; const ops: TAsmOpSet): boolean;
+ begin
+ result :=
+ (instr.typ = ait_instruction) and
+ (taicpu(instr).opcode in ops);
+ end;
+
+
+ function MatchInstruction(const instr: tai; const ops: TAsmOpSet;opcount : byte): boolean;
+ begin
+ result :=
+ (instr.typ = ait_instruction) and
+ (taicpu(instr).opcode in ops) and
+ (taicpu(instr).ops=opcount);
+ end;
+
+
+ function MatchOpType(const instr : tai;ot0,ot1 : toptype) : Boolean;
+ begin
+ Result:=(taicpu(instr).ops=2) and
+ (taicpu(instr).oper[0]^.typ=ot0) and
+ (taicpu(instr).oper[1]^.typ=ot1);
+ end;
+
+{$ifdef DEBUG_AOPTCPU}
+ procedure TCpuAsmOptimizer.DebugMsg(const s: string;p : tai);
+ begin
+ asml.insertbefore(tai_comment.Create(strpnew(s)), p);
+ end;
+{$else DEBUG_AOPTCPU}
+ procedure TCpuAsmOptimizer.DebugMsg(const s: string;p : tai);inline;
+ begin
+ end;
+{$endif DEBUG_AOPTCPU}
+
+
+ function TCpuAsmOptimizer.GetNextInstructionUsingReg(Current: tai;
+ var Next: tai; reg: TRegister): Boolean;
+ begin
+ Next:=Current;
+ repeat
+ Result:=GetNextInstruction(Next,Next);
+ until not(cs_opt_level3 in current_settings.optimizerswitches) or not(Result) or (Next.typ<>ait_instruction) or (RegInInstruction(reg,Next)) or
+ (is_calljmp(taicpu(Next).opcode));
+ end;
+
+
+ function TCpuAsmOptimizer.RegLoadedWithNewValue(reg: tregister; hp: tai): boolean;
+ var
+ p: taicpu;
+ begin
+ if not assigned(hp) or
+ (hp.typ <> ait_instruction) then
+ begin
+ Result := false;
+ exit;
+ end;
+ internalerror(2017032606);
+ //p := taicpu(hp);
+ //Result := ((p.opcode in [A_LDI,A_MOV,A_LDS]) and (reg=p.oper[0]^.reg) and ((p.oper[1]^.typ<>top_reg) or (reg<>p.oper[0]^.reg))) or
+ // ((p.opcode in [A_LD,A_LDD,A_LPM]) and (reg=p.oper[0]^.reg) and not(RegInRef(reg,p.oper[1]^.ref^))) or
+ // ((p.opcode in [A_MOVW]) and ((reg=p.oper[0]^.reg) or (TRegister(ord(reg)+1)=p.oper[0]^.reg)) and not(reg=p.oper[1]^.reg) and not(TRegister(ord(reg)+1)=p.oper[1]^.reg)) or
+ // ((p.opcode in [A_POP]) and (reg=p.oper[0]^.reg));
+ end;
+
+
+ function TCpuAsmOptimizer.InstructionLoadsFromReg(const reg: TRegister; const hp: tai): boolean;
+ var
+ p: taicpu;
+ i: longint;
+ begin
+ Result := false;
+
+ internalerror(2017032607);
+
+ //if not (assigned(hp) and (hp.typ = ait_instruction)) then
+ // exit;
+ //p:=taicpu(hp);
+ //
+ //i:=0;
+ //
+ //{ we do not care about the stack pointer }
+ //if p.opcode in [A_POP] then
+ // exit;
+ //
+ //{ first operand only written?
+ // then skip it }
+ //if p.opcode in [A_MOV,A_LD,A_LDD,A_LDS,A_LPM,A_LDI,A_MOVW] then
+ // i:=1;
+ //
+ //while(i<p.ops) do
+ // begin
+ // case p.oper[I]^.typ of
+ // top_reg:
+ // Result := (p.oper[I]^.reg = reg) or
+ // { MOVW }
+ // ((i=1) and (p.opcode=A_MOVW) and (getsupreg(p.oper[0]^.reg)+1=getsupreg(reg)));
+ // top_ref:
+ // Result :=
+ // (p.oper[I]^.ref^.base = reg) or
+ // (p.oper[I]^.ref^.index = reg);
+ // end;
+ // { Bailout if we found something }
+ // if Result then
+ // exit;
+ // Inc(I);
+ // end;
+ end;
+
+ function TCpuAsmOptimizer.PeepHoleOptPass1Cpu(var p: tai): boolean;
+ var
+ hp1,hp2,hp3,hp4,hp5: tai;
+ alloc, dealloc: tai_regalloc;
+ i: integer;
+ l: TAsmLabel;
+ //TmpUsedRegs : TAllUsedRegs;
+ begin
+ result := false;
+ //case p.typ of
+ // ait_instruction:
+ // begin
+ // end;
+ //end;
+ end;
+
+
+ procedure TCpuAsmOptimizer.PeepHoleOptPass2;
+ begin
+ end;
+
+begin
+ casmoptimizer:=TCpuAsmOptimizer;
+End.
diff --git a/compiler/z80/aoptcpub.pas b/compiler/z80/aoptcpub.pas
new file mode 100644
index 0000000000..edafbe66cd
--- /dev/null
+++ b/compiler/z80/aoptcpub.pas
@@ -0,0 +1,132 @@
+ {
+ Copyright (c) 1998-2002 by Jonas Maebe, member of the Free Pascal
+ Development Team
+
+ This unit contains several types and constants necessary for the
+ optimizer to work on the Z80 architecture
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+Unit aoptcpub; { Assembler OPTimizer CPU specific Base }
+
+{$i fpcdefs.inc}
+
+{ enable the following define if memory references can have a scaled index }
+{ define RefsHaveScale}
+
+{ enable the following define if memory references can have a segment }
+{ override }
+
+{ define RefsHaveSegment}
+
+Interface
+
+Uses
+ cpubase,
+ cgbase,
+ aasmcpu,aasmtai,
+ AOptBase;
+
+Type
+
+{ type of a normal instruction }
+ TInstr = Taicpu;
+ PInstr = ^TInstr;
+
+{ ************************************************************************* }
+{ **************************** TCondRegs ********************************** }
+{ ************************************************************************* }
+{ Info about the conditional registers }
+ TCondRegs = Object
+ Constructor Init;
+ Destructor Done;
+ End;
+
+{ ************************************************************************* }
+{ **************************** TAoptBaseCpu ******************************* }
+{ ************************************************************************* }
+
+ TAoptBaseCpu = class(TAoptBase)
+ function RegModifiedByInstruction(Reg: TRegister; p1: tai): boolean; override;
+ End;
+
+
+{ ************************************************************************* }
+{ ******************************* Constants ******************************* }
+{ ************************************************************************* }
+Const
+
+{ the maximum number of things (registers, memory, ...) a single instruction }
+{ changes }
+
+ MaxCh = 2;
+
+{ the maximum number of operands an instruction has }
+
+ MaxOps = 2;
+
+{Oper index of operand that contains the source (reference) with a load }
+{instruction }
+
+ LoadSrc = 1;
+
+{Oper index of operand that contains the destination (register) with a load }
+{instruction }
+
+ LoadDst = 0;
+
+{Oper index of operand that contains the source (register) with a store }
+{instruction }
+
+ StoreSrc = 1;
+
+{Oper index of operand that contains the destination (reference) with a load }
+{instruction }
+
+ StoreDst = 0;
+
+ aopt_uncondjmp = A_JP;
+ aopt_condjmp = A_JP;
+
+Implementation
+
+{ ************************************************************************* }
+{ **************************** TCondRegs ********************************** }
+{ ************************************************************************* }
+ Constructor TCondRegs.init;
+ Begin
+ End;
+
+ Destructor TCondRegs.Done; {$ifdef inl} inline; {$endif inl}
+ Begin
+ End;
+
+
+ function TAoptBaseCpu.RegModifiedByInstruction(Reg: TRegister; p1: tai): boolean;
+ var
+ i : Longint;
+ begin
+ result:=false;
+ for i:=0 to taicpu(p1).ops-1 do
+ if (taicpu(p1).oper[i]^.typ=top_reg) and (taicpu(p1).oper[i]^.reg=Reg) and (taicpu(p1).spilling_get_operation_type(i) in [operand_write,operand_readwrite]) then
+ begin
+ result:=true;
+ exit;
+ end;
+ end;
+
+End.
diff --git a/compiler/z80/aoptcpud.pas b/compiler/z80/aoptcpud.pas
new file mode 100644
index 0000000000..2df7e2e49e
--- /dev/null
+++ b/compiler/z80/aoptcpud.pas
@@ -0,0 +1,40 @@
+{
+ Copyright (c) 1998-2002 by Jonas Maebe, member of the Free Pascal
+ Development Team
+
+ This unit contains the processor specific implementation of the
+ assembler optimizer data flow analyzer.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+Unit aoptcpud;
+
+{$i fpcdefs.inc}
+
+Interface
+
+uses
+ AOptDA;
+
+Type
+ TAOptDFACpu = class(TAOptDFA)
+ End;
+
+Implementation
+
+
+End.
diff --git a/compiler/z80/cgcpu.pas b/compiler/z80/cgcpu.pas
new file mode 100644
index 0000000000..2230fb7d57
--- /dev/null
+++ b/compiler/z80/cgcpu.pas
@@ -0,0 +1,2486 @@
+{
+
+ Copyright (c) 2008 by Florian Klaempfl
+ Member of the Free Pascal development team
+
+ This unit implements the code generator for the Z80
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit cgcpu;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ uses
+ globtype,symtype,symdef,
+ cgbase,cgutils,cgobj,
+ aasmbase,aasmcpu,aasmtai,aasmdata,
+ parabase,
+ cpubase,cpuinfo,node,cg64f32,rgcpu;
+
+ type
+ tregisterlist = array of tregister;
+
+ { tcgz80 }
+
+ tcgz80 = class(tcg)
+ { true, if the next arithmetic operation should modify the flags }
+ cgsetflags : boolean;
+ procedure init_register_allocators;override;
+ procedure done_register_allocators;override;
+
+ procedure getcpuregisters(list:TAsmList;regs:tregisterlist);
+ procedure ungetcpuregisters(list:TAsmList;regs:tregisterlist);
+
+ function getaddressregister(list:TAsmList):TRegister;override;
+
+ function GetOffsetReg(const r: TRegister;ofs : shortint): TRegister;override;
+ function GetOffsetReg64(const r,rhi: TRegister;ofs : shortint): TRegister;override;
+
+ procedure a_load_const_cgpara(list : TAsmList;size : tcgsize;a : tcgint;const paraloc : TCGPara);override;
+ procedure a_load_ref_cgpara(list : TAsmList;size : tcgsize;const r : treference;const cgpara : TCGPara);override;
+ procedure a_loadaddr_ref_cgpara(list : TAsmList;const r : treference;const paraloc : TCGPara);override;
+ procedure a_load_reg_cgpara(list : TAsmList; size : tcgsize;r : tregister; const cgpara : tcgpara);override;
+
+ procedure a_loadfpu_ref_cgpara(list : TAsmList;size : tcgsize;const ref : treference;const cgpara : TCGPara);override;
+
+ procedure a_call_name(list : TAsmList;const s : string; weak: boolean);override;
+ procedure a_call_reg(list : TAsmList;reg: tregister);override;
+
+ procedure a_op_const_reg(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg: TRegister); override;
+ procedure a_op_reg_reg(list: TAsmList; Op: TOpCG; size: TCGSize; src, dst : TRegister); override;
+
+ { move instructions }
+ procedure a_load_const_reg(list : TAsmList; size: tcgsize; a : tcgint;reg : tregister);override;
+ procedure a_load_const_ref(list : TAsmList;size : tcgsize;a : tcgint;const ref : treference);override;
+ procedure a_load_reg_ref(list : TAsmList; fromsize, tosize: tcgsize; reg : tregister;const ref : treference);override;
+ procedure a_load_ref_reg(list : TAsmList; fromsize, tosize : tcgsize;const Ref : treference;reg : tregister);override;
+ procedure a_load_reg_reg(list : TAsmList; fromsize, tosize : tcgsize;reg1,reg2 : tregister);override;
+
+ { fpu move instructions }
+ procedure a_loadfpu_reg_reg(list: TAsmList; fromsize, tosize: tcgsize; reg1, reg2: tregister); override;
+ procedure a_loadfpu_ref_reg(list: TAsmList; fromsize, tosize: tcgsize; const ref: treference; reg: tregister); override;
+ procedure a_loadfpu_reg_ref(list: TAsmList; fromsize, tosize: tcgsize; reg: tregister; const ref: treference); override;
+
+ { comparison operations }
+ procedure a_cmp_const_reg_label(list : TAsmList;size : tcgsize;cmp_op : topcmp;a : tcgint;reg : tregister;
+ l : tasmlabel);override;
+ procedure a_cmp_reg_reg_label(list : TAsmList;size : tcgsize;cmp_op : topcmp;reg1,reg2 : tregister;l : tasmlabel); override;
+
+ procedure a_jmp_name(list : TAsmList;const s : string); override;
+ procedure a_jmp_always(list : TAsmList;l: tasmlabel); override;
+ procedure a_jmp_flags(list : TAsmList;const f : TResFlags;l: tasmlabel); override;
+
+ { Z80-specific unsigned comparison code generation jmp helper }
+ procedure a_jmp_unsigned_cmp_3way(list : TAsmList;onbelow,onequal,onabove: tasmlabel);
+ { Z80-specific signed comparison code generation jmp helper. Should follow a SUB instruction,
+ and the A register must still contain the result. }
+ procedure a_jmp_signed_cmp_3way(list : TAsmList;onless,onequal,ongreater: tasmlabel);
+
+ procedure g_flags2reg(list: TAsmList; size: TCgSize; const f: TResFlags; reg: TRegister); override;
+
+ procedure g_stackpointer_alloc(list : TAsmList;localsize : longint);override;
+ procedure g_proc_entry(list : TAsmList;localsize : longint;nostackframe:boolean);override;
+ procedure g_proc_exit(list : TAsmList;parasize : longint;nostackframe:boolean); override;
+
+ procedure a_loadaddr_ref_reg(list : TAsmList;const ref : treference;r : tregister);override;
+
+ procedure g_concatcopy(list : TAsmList;const source,dest : treference;len : tcgint);override;
+
+ procedure g_overflowcheck(list: TAsmList; const l: tlocation; def: tdef); override;
+
+ procedure g_save_registers(list : TAsmList);override;
+ procedure g_restore_registers(list : TAsmList);override;
+
+ procedure a_jmp_cond(list : TAsmList;cond : TOpCmp;l: tasmlabel);
+ function normalize_ref(list : TAsmList;ref : treference; const refopertypes:trefoperandtypes; out allocatedregs:tregisterlist) : treference;
+ procedure adjust_normalized_ref(list: TAsmList;var ref: treference; value: longint);
+
+ procedure emit_mov(list: TAsmList;reg2: tregister; reg1: tregister);
+
+ procedure a_adjust_sp(list: TAsmList; value: longint);
+
+ protected
+ procedure a_op_reg_reg_internal(list: TAsmList; Op: TOpCG; size: TCGSize; src, srchi, dst, dsthi: TRegister);
+ procedure a_op_const_reg_internal(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg, reghi: TRegister);
+ procedure gen_multiply(list: TAsmList; op: topcg; size: TCgSize; src2, src1, dst: tregister; check_overflow: boolean);
+ end;
+
+ tcg64fz80 = class(tcg64f32)
+ procedure a_op64_reg_reg(list : TAsmList;op:TOpCG;size : tcgsize;regsrc,regdst : tregister64);override;
+ procedure a_op64_const_reg(list : TAsmList;op:TOpCG;size : tcgsize;value : int64;reg : tregister64);override;
+ end;
+
+ procedure create_codegen;
+
+ const
+ TOpCG2AsmOp: Array[topcg] of TAsmOp = (A_NONE,A_LD,A_ADD,A_AND,A_NONE,
+ A_NONE,A_NONE,A_NONE,A_NEG,A_CPL,A_OR,
+ A_SRA,A_SLA,A_SRL,A_SUB,A_XOR,A_RLCA,A_RRCA);
+ implementation
+
+ uses
+ globals,verbose,systems,cutils,
+ fmodule,
+ symconst,symsym,symtable,
+ tgobj,rgobj,
+ procinfo,cpupi,
+ paramgr;
+
+
+ function use_push(const cgpara:tcgpara):boolean;
+ begin
+ result:=(not paramanager.use_fixed_stack) and
+ assigned(cgpara.location) and
+ (cgpara.location^.loc=LOC_REFERENCE) and
+ (cgpara.location^.reference.index=NR_STACK_POINTER_REG);
+ end;
+
+
+ procedure tcgz80.init_register_allocators;
+ begin
+ inherited init_register_allocators;
+ rg[R_INTREGISTER]:=trgintcpu.create(R_INTREGISTER,R_SUBWHOLE,
+ [RS_A,RS_B,RS_C,RS_D,RS_E,RS_H,RS_L],first_int_imreg,[]);
+ end;
+
+
+ procedure tcgz80.done_register_allocators;
+ begin
+ rg[R_INTREGISTER].free;
+ inherited done_register_allocators;
+ end;
+
+
+ procedure tcgz80.getcpuregisters(list: TAsmList; regs: tregisterlist);
+ var
+ r: tregister;
+ begin
+ for r in regs do
+ getcpuregister(list,r);
+ end;
+
+ procedure tcgz80.ungetcpuregisters(list: TAsmList; regs: tregisterlist);
+ var
+ r: tregister;
+ begin
+ for r in regs do
+ ungetcpuregister(list,r);
+ end;
+
+
+ function tcgz80.getaddressregister(list: TAsmList): TRegister;
+ begin
+ Result:=getintregister(list,OS_ADDR);
+ end;
+
+
+ function tcgz80.GetOffsetReg(const r: TRegister; ofs: shortint): TRegister;
+ var
+ i: Integer;
+ begin
+ result:=r;
+ for i:=1 to ofs do
+ result:=GetNextReg(result);
+ end;
+
+
+ function tcgz80.GetOffsetReg64(const r, rhi: TRegister; ofs: shortint): TRegister;
+ var
+ i: Integer;
+ begin
+ if ofs>=4 then
+ begin
+ result:=rhi;
+ dec(ofs,4);
+ end
+ else
+ result:=r;
+ for i:=1 to ofs do
+ result:=GetNextReg(result);
+ end;
+
+
+ procedure tcgz80.a_load_reg_cgpara(list : TAsmList;size : tcgsize;r : tregister;const cgpara : tcgpara);
+
+ procedure load_para_loc(r : TRegister;paraloc : PCGParaLocation);
+ var
+ ref : treference;
+ begin
+ paramanager.allocparaloc(list,paraloc);
+ case paraloc^.loc of
+ LOC_REGISTER,LOC_CREGISTER:
+ a_load_reg_reg(list,paraloc^.size,paraloc^.size,r,paraloc^.register);
+ LOC_REFERENCE,LOC_CREFERENCE:
+ begin
+ reference_reset_base(ref,paraloc^.reference.index,paraloc^.reference.offset,ctempposinvalid,2,[]);
+ a_load_reg_ref(list,paraloc^.size,paraloc^.size,r,ref);
+ end;
+ else
+ internalerror(2002071004);
+ end;
+ end;
+
+ var
+ i, i2 : longint;
+ hp : PCGParaLocation;
+
+ begin
+ if use_push(cgpara) then
+ begin
+ case tcgsize2size[cgpara.Size] of
+ 1:
+ begin
+ cgpara.check_simple_location;
+ getcpuregister(list,NR_A);
+ a_load_reg_reg(list,OS_8,OS_8,r,NR_A);
+ list.concat(taicpu.op_reg(A_PUSH,NR_AF));
+ list.concat(taicpu.op_reg(A_INC,NR_SP));
+ ungetcpuregister(list,NR_A);
+ end;
+ 2:
+ begin
+ cgpara.check_simple_location;
+ getcpuregister(list,NR_L);
+ a_load_reg_reg(list,OS_8,OS_8,r,NR_L);
+ getcpuregister(list,NR_H);
+ a_load_reg_reg(list,OS_8,OS_8,GetNextReg(r),NR_H);
+ list.concat(taicpu.op_reg(A_PUSH,NR_HL));
+ getcpuregister(list,NR_H);
+ getcpuregister(list,NR_L);
+ end;
+ 4:
+ begin
+ cgpara.check_simple_location;
+
+ getcpuregister(list,NR_L);
+ a_load_reg_reg(list,OS_8,OS_8,GetNextReg(GetNextReg(r)),NR_L);
+ getcpuregister(list,NR_H);
+ a_load_reg_reg(list,OS_8,OS_8,GetNextReg(GetNextReg(GetNextReg(r))),NR_H);
+ list.concat(taicpu.op_reg(A_PUSH,NR_HL));
+ getcpuregister(list,NR_H);
+ getcpuregister(list,NR_L);
+
+ getcpuregister(list,NR_L);
+ a_load_reg_reg(list,OS_8,OS_8,r,NR_L);
+ getcpuregister(list,NR_H);
+ a_load_reg_reg(list,OS_8,OS_8,GetNextReg(r),NR_H);
+ list.concat(taicpu.op_reg(A_PUSH,NR_HL));
+ getcpuregister(list,NR_H);
+ getcpuregister(list,NR_L);
+ end;
+ else
+ internalerror(2020040801);
+ end;
+ end
+ else
+ begin
+ if not(tcgsize2size[cgpara.Size] in [1..4]) then
+ internalerror(2014011101);
+
+ hp:=cgpara.location;
+
+ i:=0;
+ while i<tcgsize2size[cgpara.Size] do
+ begin
+ if not(assigned(hp)) then
+ internalerror(2014011102);
+
+ inc(i, tcgsize2size[hp^.Size]);
+
+ if hp^.Loc=LOC_REGISTER then
+ begin
+ load_para_loc(r,hp);
+ hp:=hp^.Next;
+ r:=GetNextReg(r);
+ end
+ else
+ begin
+ load_para_loc(r,hp);
+
+ for i2:=1 to tcgsize2size[hp^.Size] do
+ r:=GetNextReg(r);
+
+ hp:=hp^.Next;
+ end;
+ end;
+ if assigned(hp) then
+ internalerror(2014011103);
+ end;
+ end;
+
+
+ procedure tcgz80.a_loadfpu_ref_cgpara(list: TAsmList; size: tcgsize; const ref: treference; const cgpara: TCGPara);
+ var
+ href: treference;
+ curloc: PCGParaLocation;
+ i: Integer;
+ begin
+ case cgpara.location^.loc of
+ LOC_REGISTER,LOC_CREGISTER:
+ begin
+ case size of
+ OS_F32:
+ begin
+ curloc:=cgpara.location;
+ href:=ref;
+ for i:=1 to 4 do
+ begin
+ if not assigned(curloc) then
+ internalerror(2020042303);
+ if not (curloc^.Loc in [LOC_REGISTER,LOC_CREGISTER]) then
+ internalerror(2020042304);
+ a_load_ref_reg(list,OS_8,OS_8,href,curloc^.register);
+ curloc:=curloc^.Next;
+ end;
+ if assigned(curloc) then
+ internalerror(2020042305);
+ end;
+ else
+ internalerror(2020042302);
+ end;
+ end;
+ else
+ inherited;
+ end;
+ end;
+
+
+ procedure tcgz80.a_load_const_cgpara(list : TAsmList;size : tcgsize;a : tcgint;const paraloc : TCGPara);
+ var
+ i : longint;
+ hp : PCGParaLocation;
+ ref: treference;
+ begin
+ if not(tcgsize2size[paraloc.Size] in [1..4]) then
+ internalerror(2014011101);
+
+ if use_push(paraloc) then
+ begin
+ case tcgsize2size[paraloc.Size] of
+ 1:
+ begin
+ getcpuregister(list,NR_A);
+ a_load_const_reg(list,OS_8,a,NR_A);
+ list.Concat(taicpu.op_reg(A_PUSH,NR_AF));
+ list.Concat(taicpu.op_reg(A_INC,NR_SP));
+ ungetcpuregister(list,NR_A);
+ end;
+ 2:
+ begin
+ getcpuregister(list,NR_IY);
+ list.Concat(taicpu.op_reg_const(A_LD,NR_IY,a));
+ list.Concat(taicpu.op_reg(A_PUSH,NR_IY));
+ ungetcpuregister(list,NR_IY);
+ end;
+ 4:
+ begin
+ getcpuregister(list,NR_IY);
+ list.Concat(taicpu.op_reg_const(A_LD,NR_IY,Word(a shr 16)));
+ list.Concat(taicpu.op_reg(A_PUSH,NR_IY));
+ if Word(a)<>Word(a shr 16) then
+ list.Concat(taicpu.op_reg_const(A_LD,NR_IY,Word(a)));
+ list.Concat(taicpu.op_reg(A_PUSH,NR_IY));
+ ungetcpuregister(list,NR_IY);
+ end;
+ else
+ internalerror(2020040701);
+ end;
+ end
+ else
+ begin
+ hp:=paraloc.location;
+
+ i:=1;
+ while i<=tcgsize2size[paraloc.Size] do
+ begin
+ if not(assigned(hp)) then
+ internalerror(2014011105);
+ //paramanager.allocparaloc(list,hp);
+ case hp^.loc of
+ LOC_REGISTER,LOC_CREGISTER:
+ begin
+ if (tcgsize2size[hp^.size]<>1) or
+ (hp^.shiftval<>0) then
+ internalerror(2015041101);
+ a_load_const_reg(list,hp^.size,(a shr (8*(i-1))) and $ff,hp^.register);
+
+ inc(i,tcgsize2size[hp^.size]);
+ hp:=hp^.Next;
+ end;
+ LOC_REFERENCE,LOC_CREFERENCE:
+ begin
+ reference_reset(ref,paraloc.alignment,[]);
+ ref.base:=hp^.reference.index;
+ ref.offset:=hp^.reference.offset;
+ a_load_const_ref(list,hp^.size,a shr (8*(i-1)),ref);
+
+ inc(i,tcgsize2size[hp^.size]);
+ hp:=hp^.Next;
+ end;
+ else
+ internalerror(2002071004);
+ end;
+ end;
+ end;
+ end;
+
+
+ procedure tcgz80.a_load_ref_cgpara(list : TAsmList;size : tcgsize;const r : treference;const cgpara : TCGPara);
+
+ procedure pushdata(paraloc:pcgparalocation;ofs:tcgint);
+ var
+ pushsize : tcgsize;
+ opsize : topsize;
+ tmpreg : tregister;
+ href,tmpref: treference;
+ begin
+ if not assigned(paraloc) then
+ exit;
+ if (paraloc^.loc<>LOC_REFERENCE) or
+ (paraloc^.reference.index<>NR_STACK_POINTER_REG) or
+ (tcgsize2size[paraloc^.size]>4) then
+ internalerror(200501162);
+ { Pushes are needed in reverse order, add the size of the
+ current location to the offset where to load from. This
+ prevents wrong calculations for the last location when
+ the size is not a power of 2 }
+ if assigned(paraloc^.next) then
+ pushdata(paraloc^.next,ofs+tcgsize2size[paraloc^.size]);
+ { Push the data starting at ofs }
+ href:=r;
+ inc(href.offset,ofs);
+ {if tcgsize2size[paraloc^.size]>cgpara.alignment then}
+ pushsize:=paraloc^.size
+ {else
+ pushsize:=int_cgsize(cgpara.alignment)};
+ {Writeln(pushsize);}
+ case tcgsize2size[pushsize] of
+ 1:
+ begin
+ tmpreg:=getintregister(list,OS_8);
+ a_load_ref_reg(list,paraloc^.size,pushsize,href,tmpreg);
+ getcpuregister(list,NR_A);
+ a_load_reg_reg(list,OS_8,OS_8,tmpreg,NR_A);
+ list.concat(taicpu.op_reg(A_PUSH,NR_AF));
+ list.concat(taicpu.op_reg(A_INC,NR_SP));
+ ungetcpuregister(list,NR_A);
+ end;
+ 2:
+ begin
+ tmpreg:=getintregister(list,OS_16);
+ a_load_ref_reg(list,paraloc^.size,pushsize,href,tmpreg);
+ getcpuregister(list,NR_L);
+ a_load_reg_reg(list,OS_8,OS_8,tmpreg,NR_L);
+ getcpuregister(list,NR_H);
+ a_load_reg_reg(list,OS_8,OS_8,GetNextReg(tmpreg),NR_H);
+ list.concat(taicpu.op_reg(A_PUSH,NR_HL));
+ ungetcpuregister(list,NR_H);
+ ungetcpuregister(list,NR_L);
+ end;
+ 4:
+ begin
+ tmpreg:=getintregister(list,OS_16);
+ inc(href.offset,2);
+ a_load_ref_reg(list,OS_16,OS_16,href,tmpreg);
+ getcpuregister(list,NR_L);
+ a_load_reg_reg(list,OS_8,OS_8,tmpreg,NR_L);
+ getcpuregister(list,NR_H);
+ a_load_reg_reg(list,OS_8,OS_8,GetNextReg(tmpreg),NR_H);
+ list.concat(taicpu.op_reg(A_PUSH,NR_HL));
+ ungetcpuregister(list,NR_H);
+ ungetcpuregister(list,NR_L);
+ dec(href.offset,2);
+ a_load_ref_reg(list,OS_16,OS_16,href,tmpreg);
+ getcpuregister(list,NR_L);
+ a_load_reg_reg(list,OS_8,OS_8,tmpreg,NR_L);
+ getcpuregister(list,NR_H);
+ a_load_reg_reg(list,OS_8,OS_8,GetNextReg(tmpreg),NR_H);
+ list.concat(taicpu.op_reg(A_PUSH,NR_HL));
+ ungetcpuregister(list,NR_H);
+ ungetcpuregister(list,NR_L);
+ end;
+ else
+ internalerror(2020040803);
+ end;
+ end;
+
+ var
+ tmpref, ref, href: treference;
+ location: pcgparalocation;
+ sizeleft: tcgint;
+ len: tcgint;
+ begin
+ { cgpara.size=OS_NO requires a copy on the stack }
+ if use_push(cgpara) then
+ begin
+ { Record copy? }
+ if (cgpara.size in [OS_NO,OS_F64]) or (size=OS_NO) then
+ begin
+ cgpara.check_simple_location;
+ len:=align(cgpara.intsize,cgpara.alignment);
+ g_stackpointer_alloc(list,len);
+ reference_reset_base(href,NR_STACK_POINTER_REG,0,ctempposinvalid,4,[]);
+ g_concatcopy(list,r,href,len);
+ end
+ else
+ begin
+ if tcgsize2size[cgpara.size]<>tcgsize2size[size] then
+ internalerror(200501161);
+ { We need to push the data in reverse order,
+ therefor we use a recursive algorithm }
+ pushdata(cgpara.location,0);
+ end
+ end
+ else
+ begin
+ location := cgpara.location;
+ tmpref := r;
+ sizeleft := cgpara.intsize;
+ while assigned(location) do
+ begin
+ paramanager.allocparaloc(list,location);
+ case location^.loc of
+ LOC_REGISTER,LOC_CREGISTER:
+ a_load_ref_reg(list,location^.size,location^.size,tmpref,location^.register);
+ LOC_REFERENCE:
+ begin
+ reference_reset_base(ref,location^.reference.index,location^.reference.offset,ctempposinvalid,cgpara.alignment,[]);
+ { doubles in softemu mode have a strange order of registers and references }
+ if location^.size=OS_32 then
+ g_concatcopy(list,tmpref,ref,4)
+ else
+ begin
+ g_concatcopy(list,tmpref,ref,sizeleft);
+ if assigned(location^.next) then
+ internalerror(2005010710);
+ end;
+ end;
+ LOC_VOID:
+ begin
+ // nothing to do
+ end;
+ else
+ internalerror(2002081103);
+ end;
+ inc(tmpref.offset,tcgsize2size[location^.size]);
+ dec(sizeleft,tcgsize2size[location^.size]);
+ location := location^.next;
+ end;
+ end;
+ end;
+
+
+ procedure tcgz80.a_loadaddr_ref_cgpara(list : TAsmList;const r : treference;const paraloc : TCGPara);
+ var
+ tmpreg: tregister;
+ begin
+ tmpreg:=getaddressregister(list);
+ a_loadaddr_ref_reg(list,r,tmpreg);
+ a_load_reg_cgpara(list,OS_ADDR,tmpreg,paraloc);
+ end;
+
+
+ procedure tcgz80.a_call_name(list : TAsmList;const s : string; weak: boolean);
+ var
+ sym: TAsmSymbol;
+ begin
+ if weak then
+ sym:=current_asmdata.WeakRefAsmSymbol(s,AT_FUNCTION)
+ else
+ sym:=current_asmdata.RefAsmSymbol(s,AT_FUNCTION);
+
+ list.concat(taicpu.op_sym(A_CALL,sym));
+
+ include(current_procinfo.flags,pi_do_call);
+ end;
+
+
+ procedure tcgz80.a_call_reg(list : TAsmList;reg: tregister);
+ var
+ l : TAsmLabel;
+ ref : treference;
+ begin
+ { HACK: at this point all registers are allocated, due to the way the
+ calling convention works, but we need to free some registers, in order
+ for the following code to work, so we do it here }
+ dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+
+ getcpuregister(list,NR_L);
+ a_load_reg_reg(list,OS_8,OS_8,reg,NR_L);
+ getcpuregister(list,NR_H);
+ a_load_reg_reg(list,OS_8,OS_8,GetNextReg(reg),NR_H);
+ current_asmdata.getjumplabel(l);
+ reference_reset(ref,0,[]);
+ ref.symbol:=l;
+ list.concat(taicpu.op_ref_reg(A_LD,ref,NR_HL));
+ ungetcpuregister(list,NR_H);
+ ungetcpuregister(list,NR_L);
+
+ { allocate them again, right before the actual call instruction }
+ alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+
+ list.concat(tai_const.Create_8bit($CD)); { $CD is the opcode of the call instruction }
+ list.concat(tai_label.Create(l));
+ list.concat(tai_const.Create_16bit(0));
+ include(current_procinfo.flags,pi_do_call);
+ end;
+
+
+ procedure tcgz80.a_op_const_reg(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg: TRegister);
+ begin
+ if not(size in [OS_S8,OS_8,OS_S16,OS_16,OS_S32,OS_32]) then
+ internalerror(2012102403);
+ a_op_const_reg_internal(list,Op,size,a,reg,NR_NO);
+ end;
+
+
+ procedure tcgz80.a_op_reg_reg(list: TAsmList; Op: TOpCG; size: TCGSize; src, dst : TRegister);
+ begin
+ if not(size in [OS_S8,OS_8,OS_S16,OS_16,OS_S32,OS_32]) then
+ internalerror(2012102401);
+ a_op_reg_reg_internal(list,Op,size,src,NR_NO,dst,NR_NO);
+ end;
+
+
+ procedure tcgz80.a_op_reg_reg_internal(list : TAsmList; Op: TOpCG; size: TCGSize; src, srchi, dst, dsthi: TRegister);
+ var
+ i : integer;
+
+ procedure NextSrcDst;
+ begin
+ if i=5 then
+ begin
+ dst:=dsthi;
+ src:=srchi;
+ end
+ else
+ begin
+ dst:=GetNextReg(dst);
+ src:=GetNextReg(src);
+ end;
+ end;
+
+ var
+ tmpreg,tmpreg2: tregister;
+ instr : taicpu;
+ l1,l2 : tasmlabel;
+
+ begin
+ case op of
+ OP_ADD:
+ begin
+ getcpuregister(list,NR_A);
+ a_load_reg_reg(list,OS_8,OS_8,dst,NR_A);
+ list.concat(taicpu.op_reg_reg(A_ADD,NR_A,src));
+ a_load_reg_reg(list,OS_8,OS_8,NR_A,dst);
+ if size in [OS_S16,OS_16,OS_S32,OS_32,OS_S64,OS_64] then
+ begin
+ for i:=2 to tcgsize2size[size] do
+ begin
+ NextSrcDst;
+ a_load_reg_reg(list,OS_8,OS_8,dst,NR_A);
+ list.concat(taicpu.op_reg_reg(A_ADC,NR_A,src));
+ a_load_reg_reg(list,OS_8,OS_8,NR_A,dst);
+ end;
+ end;
+ ungetcpuregister(list,NR_A);
+ end;
+
+ OP_SUB:
+ begin
+ getcpuregister(list,NR_A);
+ a_load_reg_reg(list,OS_8,OS_8,dst,NR_A);
+ list.concat(taicpu.op_reg_reg(A_SUB,NR_A,src));
+ a_load_reg_reg(list,OS_8,OS_8,NR_A,dst);
+ if size in [OS_S16,OS_16,OS_S32,OS_32,OS_S64,OS_64] then
+ begin
+ for i:=2 to tcgsize2size[size] do
+ begin
+ NextSrcDst;
+ a_load_reg_reg(list,OS_8,OS_8,dst,NR_A);
+ list.concat(taicpu.op_reg_reg(A_SBC,NR_A,src));
+ a_load_reg_reg(list,OS_8,OS_8,NR_A,dst);
+ end;
+ end;
+ ungetcpuregister(list,NR_A);
+ end;
+
+ OP_NEG:
+ begin
+ getcpuregister(list,NR_A);
+ if tcgsize2size[size]>=2 then
+ begin
+ tmpreg:=GetNextReg(src);
+ tmpreg2:=GetNextReg(dst);
+ for i:=2 to tcgsize2size[size] do
+ begin
+ a_load_reg_reg(list,OS_8,OS_8,tmpreg,NR_A);
+ list.concat(taicpu.op_none(A_CPL));
+ a_load_reg_reg(list,OS_8,OS_8,NR_A,tmpreg2);
+ if i<>tcgsize2size[size] then
+ begin
+ if i=4 then
+ begin
+ tmpreg:=srchi;
+ tmpreg2:=dsthi;
+ end
+ else
+ begin
+ tmpreg:=GetNextReg(tmpreg);
+ tmpreg2:=GetNextReg(tmpreg2);
+ end;
+ end;
+ end;
+ end;
+ a_load_reg_reg(list,OS_8,OS_8,src,NR_A);
+ list.concat(taicpu.op_none(A_NEG));
+ a_load_reg_reg(list,OS_8,OS_8,NR_A,dst);
+ if tcgsize2size[size]>=2 then
+ begin
+ tmpreg2:=GetNextReg(dst);
+ for i:=2 to tcgsize2size[size] do
+ begin
+ a_load_reg_reg(list,OS_8,OS_8,tmpreg2,NR_A);
+ list.concat(taicpu.op_reg_const(A_SBC,NR_A,-1));
+ a_load_reg_reg(list,OS_8,OS_8,NR_A,tmpreg2);
+ if i<>tcgsize2size[size] then
+ begin
+ if i=4 then
+ begin
+ tmpreg2:=dsthi;
+ end
+ else
+ begin
+ tmpreg2:=GetNextReg(tmpreg2);
+ end;
+ end;
+ end;
+ end;
+ ungetcpuregister(list,NR_A);
+ end;
+
+ OP_NOT:
+ begin
+ getcpuregister(list,NR_A);
+ for i:=1 to tcgsize2size[size] do
+ begin
+ if i<>1 then
+ NextSrcDst;
+ a_load_reg_reg(list,OS_8,OS_8,src,NR_A);
+ list.concat(taicpu.op_none(A_CPL));
+ a_load_reg_reg(list,OS_8,OS_8,NR_A,dst);
+ end;
+ ungetcpuregister(list,NR_A);
+ end;
+
+ OP_MUL,OP_IMUL:
+ begin
+ tmpreg:=dst;
+ if size in [OS_16,OS_S16] then
+ begin
+ tmpreg:=getintregister(list,size);
+ a_load_reg_reg(list,size,size,dst,tmpreg);
+ end;
+ gen_multiply(list,op,size,src,tmpreg,dst,false);
+ end;
+
+ OP_DIV,OP_IDIV:
+ { special stuff, needs separate handling inside code
+ generator }
+ internalerror(2017032604);
+
+ OP_SHR,OP_SHL,OP_SAR,OP_ROL,OP_ROR:
+ begin
+ current_asmdata.getjumplabel(l1);
+ current_asmdata.getjumplabel(l2);
+ getcpuregister(list,NR_B);
+ emit_mov(list,NR_B,src);
+ list.concat(taicpu.op_reg(A_INC,NR_B));
+ list.concat(taicpu.op_reg(A_DEC,NR_B));
+ a_jmp_flags(list,F_E,l2);
+ if size in [OS_S16,OS_16,OS_S32,OS_32,OS_S64,OS_64] then
+ case op of
+ OP_ROL:
+ begin
+ list.concat(taicpu.op_reg(A_RRC,GetOffsetReg64(dst,dsthi,tcgsize2size[size]-1)));
+ list.concat(taicpu.op_reg(A_RLC,GetOffsetReg64(dst,dsthi,tcgsize2size[size]-1)));
+ end;
+ OP_ROR:
+ begin
+ list.concat(taicpu.op_reg(A_RLC,dst));
+ list.concat(taicpu.op_reg(A_RRC,dst));
+ end;
+ else
+ ;
+ end;
+ cg.a_label(list,l1);
+ case op of
+ OP_SHL:
+ list.concat(taicpu.op_reg(A_SLA,dst));
+ OP_SHR:
+ list.concat(taicpu.op_reg(A_SRL,GetOffsetReg64(dst,dsthi,tcgsize2size[size]-1)));
+ OP_SAR:
+ list.concat(taicpu.op_reg(A_SRA,GetOffsetReg64(dst,dsthi,tcgsize2size[size]-1)));
+ OP_ROL:
+ if size in [OS_8,OS_S8] then
+ list.concat(taicpu.op_reg(A_RLC,dst))
+ else
+ list.concat(taicpu.op_reg(A_RL,dst));
+ OP_ROR:
+ if size in [OS_8,OS_S8] then
+ list.concat(taicpu.op_reg(A_RRC,GetOffsetReg64(dst,dsthi,tcgsize2size[size]-1)))
+ else
+ list.concat(taicpu.op_reg(A_RR,GetOffsetReg64(dst,dsthi,tcgsize2size[size]-1)));
+ else
+ internalerror(2020040903);
+ end;
+ if size in [OS_S16,OS_16,OS_S32,OS_32,OS_S64,OS_64] then
+ begin
+ for i:=2 to tcgsize2size[size] do
+ begin
+ case op of
+ OP_ROR,
+ OP_SHR,
+ OP_SAR:
+ list.concat(taicpu.op_reg(A_RR,GetOffsetReg64(dst,dsthi,tcgsize2size[size]-i)));
+ OP_ROL,
+ OP_SHL:
+ list.concat(taicpu.op_reg(A_RL,GetOffsetReg64(dst,dsthi,i-1)));
+ else
+ internalerror(2020040904);
+ end;
+ end;
+ end;
+ instr:=taicpu.op_sym(A_DJNZ,l1);
+ instr.is_jmp:=true;
+ list.concat(instr);
+ ungetcpuregister(list,NR_B);
+ cg.a_label(list,l2);
+ end;
+
+ OP_AND,OP_OR,OP_XOR:
+ begin
+ getcpuregister(list,NR_A);
+ for i:=1 to tcgsize2size[size] do
+ begin
+ if i<>1 then
+ NextSrcDst;
+ a_load_reg_reg(list,OS_8,OS_8,dst,NR_A);
+ list.concat(taicpu.op_reg_reg(topcg2asmop[op],NR_A,src));
+ a_load_reg_reg(list,OS_8,OS_8,NR_A,dst);
+ end;
+ ungetcpuregister(list,NR_A);
+ end;
+ else
+ internalerror(2011022004);
+ end;
+ end;
+
+ procedure tcgz80.a_op_const_reg_internal(list: TAsmList; Op: TOpCG;
+ size: TCGSize; a: tcgint; reg, reghi: TRegister);
+
+ var
+ i : byte;
+
+ procedure NextReg;
+ begin
+ if i=4 then
+ reg:=reghi
+ else
+ reg:=GetNextReg(reg);
+ end;
+
+ var
+ mask : qword;
+ shift : byte;
+ curvalue : byte;
+ tmpop: TAsmOp;
+ l1: TAsmLabel;
+ instr: taicpu;
+ tmpreg : tregister;
+ tmpreg64 : tregister64;
+
+ begin
+ optimize_op_const(size,op,a);
+ mask:=$ff;
+ shift:=0;
+ case op of
+ OP_NONE:
+ begin
+ { Opcode is optimized away }
+ end;
+ OP_MOVE:
+ begin
+ { Optimized, replaced with a simple load }
+ a_load_const_reg(list,size,a,reg);
+ end;
+ OP_AND:
+ begin
+ curvalue:=a and mask;
+ for i:=1 to tcgsize2size[size] do
+ begin
+ case curvalue of
+ 0:
+ list.concat(taicpu.op_reg_const(A_LD,reg,0));
+ $ff:
+ {nothing};
+ else
+ begin
+ getcpuregister(list,NR_A);
+ emit_mov(list,NR_A,reg);
+ list.concat(taicpu.op_reg_const(A_AND,NR_A,curvalue));
+ emit_mov(list,reg,NR_A);
+ ungetcpuregister(list,NR_A);
+ end;
+ end;
+ if i<>tcgsize2size[size] then
+ begin
+ NextReg;
+ mask:=mask shl 8;
+ inc(shift,8);
+ curvalue:=(qword(a) and mask) shr shift;
+ end;
+ end;
+ end;
+ OP_OR:
+ begin
+ curvalue:=a and mask;
+ for i:=1 to tcgsize2size[size] do
+ begin
+ case curvalue of
+ 0:
+ {nothing};
+ $ff:
+ list.concat(taicpu.op_reg_const(A_LD,reg,$ff));
+ else
+ begin
+ getcpuregister(list,NR_A);
+ emit_mov(list,NR_A,reg);
+ list.concat(taicpu.op_reg_const(A_OR,NR_A,curvalue));
+ emit_mov(list,reg,NR_A);
+ ungetcpuregister(list,NR_A);
+ end;
+ end;
+ if i<>tcgsize2size[size] then
+ begin
+ NextReg;
+ mask:=mask shl 8;
+ inc(shift,8);
+ curvalue:=(qword(a) and mask) shr shift;
+ end;
+ end;
+ end;
+ OP_XOR:
+ begin
+ curvalue:=a and mask;
+ for i:=1 to tcgsize2size[size] do
+ begin
+ case curvalue of
+ 0:
+ {nothing};
+ $ff:
+ begin
+ getcpuregister(list,NR_A);
+ emit_mov(list,NR_A,reg);
+ list.concat(taicpu.op_none(A_CPL));
+ emit_mov(list,reg,NR_A);
+ ungetcpuregister(list,NR_A);
+ end;
+ else
+ begin
+ getcpuregister(list,NR_A);
+ emit_mov(list,NR_A,reg);
+ list.concat(taicpu.op_reg_const(A_XOR,NR_A,curvalue));
+ emit_mov(list,reg,NR_A);
+ ungetcpuregister(list,NR_A);
+ end;
+ end;
+ if i<>tcgsize2size[size] then
+ begin
+ NextReg;
+ mask:=mask shl 8;
+ inc(shift,8);
+ curvalue:=(qword(a) and mask) shr shift;
+ end;
+ end;
+ end;
+ OP_SHR,OP_SHL,OP_SAR,OP_ROL,OP_ROR:
+ begin
+ if size in [OS_64,OS_S64] then
+ a:=a and 63
+ else
+ a:=a and 31;
+ if a<>0 then
+ begin
+ if a>1 then
+ begin
+ current_asmdata.getjumplabel(l1);
+ getcpuregister(list,NR_B);
+ list.concat(taicpu.op_reg_const(A_LD,NR_B,a));
+ end;
+ if size in [OS_S16,OS_16,OS_S32,OS_32,OS_S64,OS_64] then
+ case op of
+ OP_ROL:
+ begin
+ list.concat(taicpu.op_reg(A_RRC,GetOffsetReg64(reg,reghi,tcgsize2size[size]-1)));
+ list.concat(taicpu.op_reg(A_RLC,GetOffsetReg64(reg,reghi,tcgsize2size[size]-1)));
+ end;
+ OP_ROR:
+ begin
+ list.concat(taicpu.op_reg(A_RLC,reg));
+ list.concat(taicpu.op_reg(A_RRC,reg));
+ end;
+ else
+ ;
+ end;
+ if a>1 then
+ cg.a_label(list,l1);
+ case op of
+ OP_SHL:
+ list.concat(taicpu.op_reg(A_SLA,reg));
+ OP_SHR:
+ list.concat(taicpu.op_reg(A_SRL,GetOffsetReg64(reg,reghi,tcgsize2size[size]-1)));
+ OP_SAR:
+ list.concat(taicpu.op_reg(A_SRA,GetOffsetReg64(reg,reghi,tcgsize2size[size]-1)));
+ OP_ROL:
+ if size in [OS_8,OS_S8] then
+ list.concat(taicpu.op_reg(A_RLC,reg))
+ else
+ list.concat(taicpu.op_reg(A_RL,reg));
+ OP_ROR:
+ if size in [OS_8,OS_S8] then
+ list.concat(taicpu.op_reg(A_RRC,GetOffsetReg64(reg,reghi,tcgsize2size[size]-1)))
+ else
+ list.concat(taicpu.op_reg(A_RR,GetOffsetReg64(reg,reghi,tcgsize2size[size]-1)));
+ else
+ internalerror(2020040903);
+ end;
+ if size in [OS_S16,OS_16,OS_S32,OS_32,OS_S64,OS_64] then
+ begin
+ for i:=2 to tcgsize2size[size] do
+ begin
+ case op of
+ OP_ROR,
+ OP_SHR,
+ OP_SAR:
+ list.concat(taicpu.op_reg(A_RR,GetOffsetReg64(reg,reghi,tcgsize2size[size]-i)));
+ OP_ROL,
+ OP_SHL:
+ list.concat(taicpu.op_reg(A_RL,GetOffsetReg64(reg,reghi,i-1)));
+ else
+ internalerror(2020040904);
+ end;
+ end;
+ end;
+ if a>1 then
+ begin
+ instr:=taicpu.op_sym(A_DJNZ,l1);
+ instr.is_jmp:=true;
+ list.concat(instr);
+ ungetcpuregister(list,NR_B);
+ end;
+ end;
+ end;
+ OP_ADD:
+ begin
+ curvalue:=a and mask;
+ tmpop:=A_NONE;
+ for i:=1 to tcgsize2size[size] do
+ begin
+ if (tmpop=A_NONE) and (curvalue=1) and (i=tcgsize2size[size]) then
+ tmpop:=A_INC
+ else if (tmpop=A_NONE) and (curvalue=255) and (i=tcgsize2size[size]) then
+ tmpop:=A_DEC
+ else if (tmpop=A_NONE) and (curvalue<>0) then
+ tmpop:=A_ADD
+ else if tmpop=A_ADD then
+ tmpop:=A_ADC;
+ case tmpop of
+ A_NONE:
+ {nothing};
+ A_INC,A_DEC:
+ list.concat(taicpu.op_reg(tmpop,reg));
+ A_ADD,A_ADC:
+ begin
+ getcpuregister(list,NR_A);
+ emit_mov(list,NR_A,reg);
+ list.concat(taicpu.op_reg_const(tmpop,NR_A,curvalue));
+ emit_mov(list,reg,NR_A);
+ ungetcpuregister(list,NR_A);
+ end;
+ else
+ internalerror(2020040901);
+ end;
+ if i<>tcgsize2size[size] then
+ begin
+ NextReg;
+ mask:=mask shl 8;
+ inc(shift,8);
+ curvalue:=(qword(a) and mask) shr shift;
+ end;
+ end;
+ end;
+ OP_SUB:
+ begin
+ curvalue:=a and mask;
+ tmpop:=A_NONE;
+ for i:=1 to tcgsize2size[size] do
+ begin
+ if (tmpop=A_NONE) and (curvalue=1) and (i=tcgsize2size[size]) then
+ tmpop:=A_DEC
+ else if (tmpop=A_NONE) and (curvalue=255) and (i=tcgsize2size[size]) then
+ tmpop:=A_INC
+ else if (tmpop=A_NONE) and (curvalue<>0) then
+ tmpop:=A_SUB
+ else if tmpop=A_SUB then
+ tmpop:=A_SBC;
+ case tmpop of
+ A_NONE:
+ {nothing};
+ A_DEC,A_INC:
+ list.concat(taicpu.op_reg(tmpop,reg));
+ A_SUB,A_SBC:
+ begin
+ getcpuregister(list,NR_A);
+ emit_mov(list,NR_A,reg);
+ list.concat(taicpu.op_reg_const(tmpop,NR_A,curvalue));
+ emit_mov(list,reg,NR_A);
+ ungetcpuregister(list,NR_A);
+ end;
+ else
+ internalerror(2020040902);
+ end;
+ if i<>tcgsize2size[size] then
+ begin
+ NextReg;
+ mask:=mask shl 8;
+ inc(shift,8);
+ curvalue:=(qword(a) and mask) shr shift;
+ end;
+ end;
+ end;
+ else
+ begin
+ if size in [OS_64,OS_S64] then
+ begin
+ tmpreg64.reglo:=getintregister(list,OS_32);
+ tmpreg64.reghi:=getintregister(list,OS_32);
+ cg64.a_load64_const_reg(list,a,tmpreg64);
+ cg64.a_op64_reg_reg(list,op,size,tmpreg64,joinreg64(reg,reghi));
+ end
+ else
+ begin
+{$if 0}
+ { code not working yet }
+ if (op=OP_SAR) and (a=31) and (size in [OS_32,OS_S32]) then
+ begin
+ tmpreg:=reg;
+ for i:=1 to 4 do
+ begin
+ list.concat(taicpu.op_reg_reg(A_MOV,tmpreg,NR_R1));
+ tmpreg:=GetNextReg(tmpreg);
+ end;
+ end
+ else
+{$endif}
+ begin
+ tmpreg:=getintregister(list,size);
+ a_load_const_reg(list,size,a,tmpreg);
+ a_op_reg_reg(list,op,size,tmpreg,reg);
+ end;
+ end;
+ end;
+ end;
+ end;
+
+
+ procedure tcgz80.gen_multiply(list: TAsmList; op: topcg; size: TCgSize; src2, src1, dst: tregister; check_overflow: boolean);
+ var
+ pd: tprocdef;
+ paraloc1, paraloc2: tcgpara;
+ ai: taicpu;
+ hl, no_overflow: TAsmLabel;
+ name: String;
+ begin
+ if size in [OS_8,OS_S8] then
+ begin
+ if size=OS_8 then
+ name:='fpc_mul_byte'
+ else
+ name:='fpc_mul_shortint';
+
+ if check_overflow then
+ name:=name+'_checkoverflow';
+
+ pd:=search_system_proc(name);
+ paraloc1.init;
+ paraloc2.init;
+ paramanager.getcgtempparaloc(list,pd,1,paraloc1);
+ paramanager.getcgtempparaloc(list,pd,2,paraloc2);
+ a_load_reg_cgpara(list,OS_8,src1,paraloc2);
+ a_load_reg_cgpara(list,OS_8,src2,paraloc1);
+ paramanager.freecgpara(list,paraloc2);
+ paramanager.freecgpara(list,paraloc1);
+ alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+ a_call_name(list,upper(name),false);
+ dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+ cg.a_reg_alloc(list,NR_L);
+ cg.a_load_reg_reg(list,OS_8,OS_8,NR_L,dst);
+ cg.a_reg_dealloc(list,NR_L);
+ paraloc2.done;
+ paraloc1.done;
+ end
+ else if size in [OS_16,OS_S16] then
+ begin
+ if size=OS_16 then
+ name:='fpc_mul_word'
+ else
+ name:='fpc_mul_integer';
+
+ if check_overflow then
+ name:=name+'_checkoverflow';
+
+ pd:=search_system_proc(name);
+ paraloc1.init;
+ paraloc2.init;
+ paramanager.getcgtempparaloc(list,pd,1,paraloc1);
+ paramanager.getcgtempparaloc(list,pd,2,paraloc2);
+ a_load_reg_cgpara(list,OS_16,src1,paraloc2);
+ a_load_reg_cgpara(list,OS_16,src2,paraloc1);
+ paramanager.freecgpara(list,paraloc2);
+ paramanager.freecgpara(list,paraloc1);
+ alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+ a_call_name(list,upper(name),false);
+ dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+ cg.a_reg_alloc(list,NR_L);
+ cg.a_reg_alloc(list,NR_H);
+ cg.a_load_reg_reg(list,OS_8,OS_8,NR_L,dst);
+ cg.a_reg_dealloc(list,NR_L);
+ cg.a_load_reg_reg(list,OS_8,OS_8,NR_H,GetNextReg(dst));
+ cg.a_reg_dealloc(list,NR_H);
+ paraloc2.done;
+ paraloc1.done;
+ end
+ else
+ internalerror(2011022002);
+ end;
+
+
+ procedure tcgz80.a_load_const_reg(list : TAsmList; size: tcgsize; a : tcgint;reg : tregister);
+ var
+ mask : qword;
+ shift : byte;
+ i : byte;
+ begin
+ mask:=$ff;
+ shift:=0;
+ for i:=tcgsize2size[size] downto 1 do
+ begin
+ list.Concat(taicpu.op_reg_const(A_LD,reg,(qword(a) and mask) shr shift));
+ if i<>1 then
+ begin
+ mask:=mask shl 8;
+ inc(shift,8);
+ reg:=GetNextReg(reg);
+ end;
+ end;
+ end;
+
+
+ procedure tcgz80.a_load_const_ref(list: TAsmList; size: tcgsize; a: tcgint; const ref: treference);
+ var
+ mask : qword;
+ shift : byte;
+ href: treference;
+ i: Integer;
+ begin
+ mask:=$ff;
+ shift:=0;
+ href:=ref;
+ if (href.base=NR_NO) and (href.index<>NR_NO) then
+ begin
+ href.base:=href.index;
+ href.index:=NR_NO;
+ end;
+ if is_ref_in_opertypes(href,[OT_REF_IX_d,OT_REF_IY_d]) or
+ (is_ref_hl(href) and (size in [OS_8,OS_S8])) then
+ begin
+ for i:=tcgsize2size[size] downto 1 do
+ begin
+ list.Concat(taicpu.op_ref_const(A_LD,href,(qword(a) and mask) shr shift));
+ if i<>1 then
+ begin
+ mask:=mask shl 8;
+ inc(shift,8);
+ inc(href.offset);
+ end;
+ end;
+ end
+ else
+ inherited;
+ end;
+
+
+ function tcgz80.normalize_ref(list: TAsmList; ref: treference;
+ const refopertypes: trefoperandtypes; out allocatedregs: tregisterlist): treference;
+ var
+ tmpref : treference;
+ l : tasmlabel;
+ begin
+ SetLength(allocatedregs,0);
+
+ if (ref.base=NR_NO) and (ref.index<>NR_NO) and (ref.scalefactor<=1) then
+ begin
+ ref.base:=ref.index;
+ ref.index:=NR_NO;
+ end;
+
+ if is_ref_in_opertypes(ref,refopertypes) then
+ begin
+ Result:=ref;
+ exit;
+ end;
+
+ { can we use the HL register? }
+ if OT_REF_HL in refopertypes then
+ begin
+ SetLength(allocatedregs,2);
+ allocatedregs[0]:=NR_H;
+ allocatedregs[1]:=NR_L;
+ getcpuregisters(list,allocatedregs);
+ if assigned(ref.symbol) or (ref.offset<>0) then
+ begin
+ if assigned(ref.symbol) then
+ begin
+ reference_reset(tmpref,0,[]);
+ tmpref.symbol:=ref.symbol;
+ tmpref.offset:=ref.offset;
+
+ tmpref.refaddr:=addr_full;
+ list.concat(taicpu.op_reg_ref(A_LD,NR_HL,tmpref));
+ end
+ else
+ list.concat(taicpu.op_reg_const(A_LD,NR_HL,ref.offset));
+ if (ref.base=NR_IX) or (ref.base=NR_IY) then
+ begin
+ getcpuregister(list,NR_D);
+ getcpuregister(list,NR_E);
+ list.concat(taicpu.op_reg(A_PUSH,ref.base));
+ list.concat(taicpu.op_reg(A_POP,NR_DE));
+ list.concat(taicpu.op_reg_reg(A_ADD,NR_HL,NR_DE));
+ ungetcpuregister(list,NR_E);
+ ungetcpuregister(list,NR_D);
+ end
+ else if ref.base<>NR_NO then
+ begin
+ getcpuregister(list,NR_A);
+ emit_mov(list,NR_A,NR_L);
+ list.concat(taicpu.op_reg_reg(A_ADD,NR_A,ref.base));
+ emit_mov(list,NR_L,NR_A);
+ emit_mov(list,NR_A,NR_H);
+ list.concat(taicpu.op_reg_reg(A_ADC,NR_A,GetNextReg(ref.base)));
+ emit_mov(list,NR_H,NR_A);
+ ungetcpuregister(list,NR_A);
+ end;
+ if ref.index<>NR_NO then
+ begin
+ if ref.scalefactor>1 then
+ internalerror(2020042002);
+ getcpuregister(list,NR_A);
+ emit_mov(list,NR_A,NR_L);
+ list.concat(taicpu.op_reg_reg(A_ADD,NR_A,ref.index));
+ emit_mov(list,NR_L,NR_A);
+ emit_mov(list,NR_A,NR_H);
+ list.concat(taicpu.op_reg_reg(A_ADC,NR_A,GetNextReg(ref.index)));
+ emit_mov(list,NR_H,NR_A);
+ ungetcpuregister(list,NR_A);
+ end;
+ end
+ else
+ begin
+ { not assigned(ref.symbol) and (ref.offset=0) }
+ if (ref.base=NR_IX) or (ref.base=NR_IY) then
+ begin
+ list.concat(taicpu.op_reg(A_PUSH,ref.base));
+ list.concat(taicpu.op_reg(A_POP,NR_HL));
+ end
+ else if ref.base<>NR_NO then
+ begin
+ emit_mov(list,NR_L,ref.base);
+ emit_mov(list,NR_H,GetNextReg(ref.base));
+ end;
+ if ref.index<>NR_NO then
+ begin
+ if ref.scalefactor>1 then
+ internalerror(2020042002);
+ getcpuregister(list,NR_A);
+ emit_mov(list,NR_A,NR_L);
+ list.concat(taicpu.op_reg_reg(A_ADD,NR_A,ref.index));
+ emit_mov(list,NR_L,NR_A);
+ emit_mov(list,NR_A,NR_H);
+ list.concat(taicpu.op_reg_reg(A_ADC,NR_A,GetNextReg(ref.index)));
+ emit_mov(list,NR_H,NR_A);
+ ungetcpuregister(list,NR_A);
+ end;
+ end;
+ reference_reset_base(result,NR_HL,0,ctempposinvalid,0,[]);
+ end
+ else
+ internalerror(2020042001);
+ end;
+
+
+ procedure tcgz80.adjust_normalized_ref(list: TAsmList; var ref: treference; value: longint);
+ var
+ i: Integer;
+ begin
+ if is_ref_addr16(ref) then
+ Inc(ref.offset,value)
+ else if is_ref_hl(ref) then
+ begin
+ if value>0 then
+ for i:=1 to value do
+ list.concat(taicpu.op_reg(A_INC,NR_HL))
+ else
+ for i:=-1 downto value do
+ list.concat(taicpu.op_reg(A_DEC,NR_HL));
+ end
+ else if is_ref_ix_d(ref) then
+ begin
+ if ((ref.offset+value)<=127) and ((ref.offset+value)>=-128) then
+ inc(ref.offset,value)
+ else
+ begin
+ { todo: IX is the frame pointer, we cannot change it, so we }
+ { think of another mechanism to deal with this situation }
+ internalerror(2020042101);
+ //if value>0 then
+ // for i:=1 to value do
+ // list.concat(taicpu.op_reg(A_INC,NR_IX))
+ //else
+ // for i:=-1 downto value do
+ // list.concat(taicpu.op_reg(A_DEC,NR_IX));
+ end;
+ end
+ else if is_ref_iy_d(ref) then
+ begin
+ if ((ref.offset+value)<=127) and ((ref.offset+value)>=-128) then
+ inc(ref.offset,value)
+ else
+ if value>0 then
+ for i:=1 to value do
+ list.concat(taicpu.op_reg(A_INC,NR_IY))
+ else
+ for i:=-1 downto value do
+ list.concat(taicpu.op_reg(A_DEC,NR_IY));
+ end;
+ end;
+
+
+ procedure tcgz80.a_load_reg_ref(list : TAsmList; fromsize, tosize: tcgsize; reg : tregister;const ref : treference);
+ var
+ href : treference;
+ i : integer;
+ regsused: tregisterlist;
+ begin
+ if (tcgsize2size[fromsize]>32) or (tcgsize2size[tosize]>32) or (fromsize=OS_NO) or (tosize=OS_NO) then
+ internalerror(2011021307);
+ if tcgsize2size[fromsize]>tcgsize2size[tosize] then
+ internalerror(2020040802);
+
+ href:=normalize_ref(list,Ref,[OT_REF_ADDR16,OT_REF_HL,OT_REF_IX_d,OT_REF_IY_d],regsused);
+ if (tcgsize2size[fromsize]=tcgsize2size[tosize]) or (fromsize in [OS_8,OS_16,OS_32]) then
+ begin
+ getcpuregister(list,NR_A);
+ for i:=1 to tcgsize2size[fromsize] do
+ begin
+ a_load_reg_reg(list,OS_8,OS_8,reg,NR_A);
+ list.concat(taicpu.op_ref_reg(A_LD,href,NR_A));
+ if i<>tcgsize2size[fromsize] then
+ reg:=GetNextReg(reg);
+ if i<>tcgsize2size[tosize] then
+ adjust_normalized_ref(list,href,1);
+ end;
+ for i:=tcgsize2size[fromsize]+1 to tcgsize2size[tosize] do
+ begin
+ if i=(tcgsize2size[fromsize]+1) then
+ list.concat(taicpu.op_reg_const(A_LD,NR_A,0));
+ list.concat(taicpu.op_ref_reg(A_LD,href,NR_A));
+ if i<>tcgsize2size[tosize] then
+ begin
+ adjust_normalized_ref(list,href,1);
+ reg:=GetNextReg(reg);
+ end;
+ end;
+ ungetcpuregister(list,NR_A);
+ end
+ else
+ begin
+ getcpuregister(list,NR_A);
+ for i:=1 to tcgsize2size[fromsize] do
+ begin
+ a_load_reg_reg(list,OS_8,OS_8,reg,NR_A);
+ list.concat(taicpu.op_ref_reg(A_LD,href,NR_A));
+ if i<>tcgsize2size[fromsize] then
+ reg:=GetNextReg(reg);
+ if i<>tcgsize2size[tosize] then
+ adjust_normalized_ref(list,href,1);
+ end;
+ list.concat(taicpu.op_none(A_RLA));
+ list.concat(taicpu.op_reg_reg(A_SBC,NR_A,NR_A));
+ for i:=tcgsize2size[fromsize]+1 to tcgsize2size[tosize] do
+ begin
+ list.concat(taicpu.op_ref_reg(A_LD,href,NR_A));
+ if i<>tcgsize2size[tosize] then
+ begin
+ adjust_normalized_ref(list,href,1);
+ reg:=GetNextReg(reg);
+ end;
+ end;
+ ungetcpuregister(list,NR_A);
+ end;
+ ungetcpuregisters(list,regsused);
+ end;
+
+
+ procedure tcgz80.a_load_ref_reg(list : TAsmList; fromsize, tosize : tcgsize;
+ const Ref : treference;reg : tregister);
+ var
+ href : treference;
+ i : integer;
+ regsused: tregisterlist;
+ begin
+ if (tcgsize2size[fromsize]>32) or (tcgsize2size[tosize]>32) or (fromsize=OS_NO) or (tosize=OS_NO) then
+ internalerror(2011021307);
+ if tcgsize2size[fromsize]>=tcgsize2size[tosize] then
+ fromsize:=tosize;
+
+ href:=normalize_ref(list,Ref,[OT_REF_ADDR16,OT_REF_HL,OT_REF_IX_d,OT_REF_IY_d],regsused);
+ if (tcgsize2size[tosize]=tcgsize2size[fromsize]) or (fromsize in [OS_8,OS_16,OS_32]) then
+ begin
+ getcpuregister(list,NR_A);
+ for i:=1 to tcgsize2size[fromsize] do
+ begin
+ list.concat(taicpu.op_reg_ref(A_LD,NR_A,href));
+ a_load_reg_reg(list,OS_8,OS_8,NR_A,reg);
+
+ if i<>tcgsize2size[fromsize] then
+ adjust_normalized_ref(list,href,1);
+ if i<>tcgsize2size[tosize] then
+ reg:=GetNextReg(reg);
+ end;
+ ungetcpuregisters(list,regsused);
+ ungetcpuregister(list,NR_A);
+ for i:=tcgsize2size[fromsize]+1 to tcgsize2size[tosize] do
+ begin
+ list.concat(taicpu.op_reg_const(A_LD,reg,0));
+ if i<>tcgsize2size[tosize] then
+ reg:=GetNextReg(reg);
+ end;
+ end
+ else
+ begin
+ getcpuregister(list,NR_A);
+ for i:=1 to tcgsize2size[fromsize] do
+ begin
+ list.concat(taicpu.op_reg_ref(A_LD,NR_A,href));
+ a_load_reg_reg(list,OS_8,OS_8,NR_A,reg);
+
+ if i<>tcgsize2size[fromsize] then
+ adjust_normalized_ref(list,href,1);
+ if i<>tcgsize2size[tosize] then
+ reg:=GetNextReg(reg);
+ end;
+ ungetcpuregisters(list,regsused);
+ list.concat(taicpu.op_none(A_RLA));
+ list.concat(taicpu.op_reg_reg(A_SBC,NR_A,NR_A));
+ for i:=tcgsize2size[fromsize]+1 to tcgsize2size[tosize] do
+ begin
+ emit_mov(list,reg,NR_A);
+ if i<>tcgsize2size[tosize] then
+ reg:=GetNextReg(reg);
+ end;
+ ungetcpuregister(list,NR_A);
+ end;
+ end;
+
+
+ procedure tcgz80.a_load_reg_reg(list : TAsmList; fromsize, tosize : tcgsize;reg1,reg2 : tregister);
+ var
+ conv_done: boolean;
+ tmpreg : tregister;
+ i : integer;
+ begin
+ if (tcgsize2size[fromsize]>32) or (tcgsize2size[tosize]>32) or (fromsize=OS_NO) or (tosize=OS_NO) then
+ internalerror(2011021310);
+ if tcgsize2size[fromsize]>tcgsize2size[tosize] then
+ fromsize:=tosize;
+
+ if (tcgsize2size[tosize]=tcgsize2size[fromsize]) or (fromsize in [OS_8,OS_16,OS_32]) then
+ begin
+ if reg1<>reg2 then
+ for i:=1 to tcgsize2size[fromsize] do
+ begin
+ emit_mov(list,reg2,reg1);
+ if i<>tcgsize2size[fromsize] then
+ reg1:=GetNextReg(reg1);
+ if i<>tcgsize2size[tosize] then
+ reg2:=GetNextReg(reg2);
+ end
+ else
+ for i:=1 to tcgsize2size[fromsize] do
+ if i<>tcgsize2size[tosize] then
+ reg2:=GetNextReg(reg2);
+ for i:=tcgsize2size[fromsize]+1 to tcgsize2size[tosize] do
+ begin
+ list.Concat(taicpu.op_reg_const(A_LD,reg2,0));
+ if i<>tcgsize2size[tosize] then
+ reg2:=GetNextReg(reg2);
+ end
+ end
+ else
+ begin
+ if reg1<>reg2 then
+ for i:=1 to tcgsize2size[fromsize]-1 do
+ begin
+ emit_mov(list,reg2,reg1);
+ reg1:=GetNextReg(reg1);
+ reg2:=GetNextReg(reg2);
+ end
+ else
+ for i:=1 to tcgsize2size[fromsize]-1 do
+ reg2:=GetNextReg(reg2);
+ emit_mov(list,reg2,reg1);
+ getcpuregister(list,NR_A);
+ emit_mov(list,NR_A,reg2);
+ reg2:=GetNextReg(reg2);
+ list.concat(taicpu.op_none(A_RLA));
+ list.concat(taicpu.op_reg_reg(A_SBC,NR_A,NR_A));
+ for i:=tcgsize2size[fromsize]+1 to tcgsize2size[tosize] do
+ begin
+ emit_mov(list,reg2,NR_A);
+ if i<>tcgsize2size[tosize] then
+ reg2:=GetNextReg(reg2);
+ end;
+ ungetcpuregister(list,NR_A);
+ end;
+ end;
+
+
+ procedure tcgz80.a_loadfpu_reg_reg(list: TAsmList; fromsize,tosize: tcgsize; reg1, reg2: tregister);
+ begin
+ internalerror(2012010702);
+ end;
+
+
+ procedure tcgz80.a_loadfpu_ref_reg(list: TAsmList; fromsize,tosize: tcgsize; const ref: treference; reg: tregister);
+ begin
+ internalerror(2012010703);
+ end;
+
+
+ procedure tcgz80.a_loadfpu_reg_ref(list: TAsmList; fromsize, tosize: tcgsize; reg: tregister; const ref: treference);
+ begin
+ internalerror(2012010704);
+ end;
+
+
+ { comparison operations }
+ procedure tcgz80.a_cmp_const_reg_label(list : TAsmList;size : tcgsize;
+ cmp_op : topcmp;a : tcgint;reg : tregister;l : tasmlabel);
+ var
+ swapped : boolean;
+ tmpreg : tregister;
+ i : byte;
+ tmpl: TAsmLabel;
+ begin
+ if size in [OS_8,OS_S8]then
+ begin
+ if cmp_op in [OC_EQ,OC_NE,OC_B,OC_AE] then
+ begin
+ getcpuregister(list,NR_A);
+ a_load_reg_reg(list,OS_8,OS_8,reg,NR_A);
+ list.concat(taicpu.op_reg_const(A_CP,NR_A,a));
+ case cmp_op of
+ OC_EQ:
+ a_jmp_flags(list,F_E,l);
+ OC_NE:
+ a_jmp_flags(list,F_NE,l);
+ OC_B:
+ a_jmp_flags(list,F_C,l);
+ OC_AE:
+ a_jmp_flags(list,F_NC,l);
+ else
+ internalerror(2020042206);
+ end;
+ ungetcpuregister(list,NR_A);
+ end
+ else if cmp_op in [OC_A,OC_BE] then
+ begin
+ getcpuregister(list,NR_A);
+ a_load_const_reg(list,OS_8,a,NR_A);
+ list.concat(taicpu.op_reg_reg(A_CP,NR_A,reg));
+ case cmp_op of
+ OC_A:
+ a_jmp_flags(list,F_C,l);
+ OC_BE:
+ a_jmp_flags(list,F_NC,l);
+ else
+ internalerror(2020042206);
+ end;
+ ungetcpuregister(list,NR_A);
+ end
+ else if cmp_op in [OC_LT,OC_GTE] then
+ begin
+ getcpuregister(list,NR_A);
+ a_load_reg_reg(list,OS_8,OS_8,reg,NR_A);
+ list.concat(taicpu.op_reg_const(A_SUB,NR_A,a));
+ current_asmdata.getjumplabel(tmpl);
+ a_jmp_flags(list,F_PO,tmpl);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_XOR,NR_A,$80));
+ cg.a_label(current_asmdata.CurrAsmList,tmpl);
+ case cmp_op of
+ OC_LT:
+ a_jmp_flags(list,F_M,l);
+ OC_GTE:
+ a_jmp_flags(list,F_P,l);
+ else
+ internalerror(2020042206);
+ end;
+ ungetcpuregister(list,NR_A);
+ end
+ else if cmp_op in [OC_GT,OC_LTE] then
+ begin
+ getcpuregister(list,NR_A);
+ a_load_const_reg(list,OS_8,a,NR_A);
+ list.concat(taicpu.op_reg_reg(A_SUB,NR_A,reg));
+ current_asmdata.getjumplabel(tmpl);
+ a_jmp_flags(list,F_PO,tmpl);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_XOR,NR_A,$80));
+ cg.a_label(current_asmdata.CurrAsmList,tmpl);
+ case cmp_op of
+ OC_GT:
+ a_jmp_flags(list,F_M,l);
+ OC_LTE:
+ a_jmp_flags(list,F_P,l);
+ else
+ internalerror(2020042206);
+ end;
+ ungetcpuregister(list,NR_A);
+ end;
+ end
+ else if cmp_op in [OC_EQ,OC_NE] then
+ begin
+ if cmp_op=OC_EQ then
+ current_asmdata.getjumplabel(tmpl);
+ for i:=0 to tcgsize2size[size]-1 do
+ begin
+ a_load_reg_reg(list,OS_8,OS_8,GetOffsetReg(reg,i),NR_A);
+ list.concat(taicpu.op_reg_const(A_CP,NR_A,Byte(a shr (8*i))));
+ case cmp_op of
+ OC_EQ:
+ if i<>(tcgsize2size[size]-1) then
+ a_jmp_flags(list,F_NE,tmpl)
+ else
+ a_jmp_flags(list,F_E,l);
+ OC_NE:
+ a_jmp_flags(list,F_NE,l);
+ else
+ internalerror(2020042206);
+ end;
+ end;
+ if cmp_op=OC_EQ then
+ cg.a_label(current_asmdata.CurrAsmList,tmpl);
+ end
+ else if cmp_op in [OC_GT,OC_LT,OC_GTE,OC_LTE,OC_BE,OC_B,OC_AE,OC_A] then
+ begin
+ getcpuregister(list,NR_A);
+ current_asmdata.getjumplabel(tmpl);
+ for i:=tcgsize2size[size]-1 downto 0 do
+ begin
+ a_load_reg_reg(list,OS_8,OS_8,GetOffsetReg(reg,i),NR_A);
+ list.concat(taicpu.op_reg_const(A_CP,NR_A,Byte(a shr (8*i))));
+ if (i=(tcgsize2size[size]-1)) and (cmp_op in [OC_GT,OC_LT,OC_GTE,OC_LTE]) then
+ case cmp_op of
+ OC_GTE,
+ OC_GT:
+ a_jmp_signed_cmp_3way(list,tmpl,nil,l);
+ OC_LT,
+ OC_LTE:
+ a_jmp_signed_cmp_3way(list,l,nil,tmpl);
+ else
+ internalerror(2020042206);
+ end
+ else if i<>0 then
+ case cmp_op of
+ OC_AE,
+ OC_A,
+ OC_GTE,
+ OC_GT:
+ a_jmp_unsigned_cmp_3way(list,tmpl,nil,l);
+ OC_BE,
+ OC_B,
+ OC_LT,
+ OC_LTE:
+ a_jmp_unsigned_cmp_3way(list,l,nil,tmpl);
+ else
+ internalerror(2020042206);
+ end
+ else
+ case cmp_op of
+ OC_A,
+ OC_GT:
+ a_jmp_unsigned_cmp_3way(list,nil,nil,l);
+ OC_B,
+ OC_LT:
+ a_jmp_unsigned_cmp_3way(list,l,nil,nil);
+ OC_AE,
+ OC_GTE:
+ a_jmp_unsigned_cmp_3way(list,nil,l,l);
+ OC_BE,
+ OC_LTE:
+ a_jmp_unsigned_cmp_3way(list,l,l,nil);
+ else
+ internalerror(2020042206);
+ end;
+ end;
+ cg.a_label(current_asmdata.CurrAsmList,tmpl);
+ ungetcpuregister(list,NR_A);
+ end
+ else
+ internalerror(2020042205);
+ end;
+
+
+ procedure tcgz80.a_cmp_reg_reg_label(list : TAsmList;size : tcgsize;cmp_op : topcmp;reg1,reg2 : tregister;l : tasmlabel);
+ begin
+ internalerror(2020042301);
+ end;
+
+
+ procedure tcgz80.a_jmp_name(list : TAsmList;const s : string);
+ var
+ ai : taicpu;
+ begin
+ ai:=taicpu.op_sym(A_JP,current_asmdata.RefAsmSymbol(s,AT_FUNCTION));
+ ai.is_jmp:=true;
+ list.concat(ai);
+ end;
+
+
+ procedure tcgz80.a_jmp_always(list : TAsmList;l: tasmlabel);
+ var
+ ai : taicpu;
+ begin
+ ai:=taicpu.op_sym(A_JP,l);
+ ai.is_jmp:=true;
+ list.concat(ai);
+ end;
+
+
+ procedure tcgz80.a_jmp_flags(list : TAsmList;const f : TResFlags;l: tasmlabel);
+ var
+ ai : taicpu;
+ begin
+ ai:=taicpu.op_cond_sym(A_JP,flags_to_cond(f),l);
+ ai.is_jmp:=true;
+ list.concat(ai);
+ end;
+
+
+ procedure tcgz80.a_jmp_unsigned_cmp_3way(list: TAsmList; onbelow, onequal, onabove: tasmlabel);
+ var
+ skiplabel: TAsmLabel;
+ begin
+ if (onbelow= nil) and (onequal= nil) and (onabove= nil) then
+ {nothing}
+ else if (onbelow= nil) and (onequal= nil) and (onabove<>nil) then
+ begin
+ current_asmdata.getjumplabel(skiplabel);
+ a_jmp_flags(list,F_E,skiplabel);
+ a_jmp_flags(list,F_NC,onabove);
+ cg.a_label(list,skiplabel);
+ end
+ else if (onbelow= nil) and (onequal<>nil) and (onabove= nil) then
+ a_jmp_flags(list,F_E,onequal)
+ else if (onbelow= nil) and (onequal<>nil) and (onabove<>nil) then
+ begin
+ if onequal<>onabove then
+ a_jmp_flags(list,F_E,onequal);
+ a_jmp_flags(list,F_NC,onabove);
+ end
+ else if (onbelow<>nil) and (onequal= nil) and (onabove= nil) then
+ a_jmp_flags(list,F_C,onbelow)
+ else if (onbelow<>nil) and (onequal= nil) and (onabove<>nil) then
+ begin
+ if onbelow<>onabove then
+ a_jmp_flags(list,F_C,onbelow);
+ a_jmp_flags(list,F_NE,onabove);
+ end
+ else if (onbelow<>nil) and (onequal<>nil) and (onabove= nil) then
+ begin
+ a_jmp_flags(list,F_C,onbelow);
+ a_jmp_flags(list,F_E,onequal);
+ end
+ else if (onbelow<>nil) and (onequal<>nil) and (onabove<>nil) then
+ begin
+ if (onbelow=onequal) and (onequal=onabove) then
+ a_jmp_always(list,onbelow)
+ else if onequal=onabove then
+ begin
+ a_jmp_flags(list,F_C,onbelow);
+ a_jmp_always(list,onabove);
+ end
+ else if onbelow=onequal then
+ begin
+ a_jmp_flags(list,F_C,onbelow);
+ a_jmp_flags(list,F_E,onequal);
+ a_jmp_always(list,onabove);
+ end
+ else if onbelow=onabove then
+ begin
+ a_jmp_flags(list,F_E,onequal);
+ a_jmp_always(list,onabove);
+ end
+ else
+ begin
+ { the generic case - all 3 are different labels }
+ a_jmp_flags(list,F_C,onbelow);
+ a_jmp_flags(list,F_E,onequal);
+ a_jmp_always(list,onabove);
+ end;
+ end
+ else
+ begin
+ { Shouldn't happen! All possible combinations are handled by the above code. }
+ internalerror(2020042201);
+ end;
+ end;
+
+ procedure tcgz80.a_jmp_signed_cmp_3way(list: TAsmList; onless, onequal, ongreater: tasmlabel);
+ var
+ l, skiplabel: TAsmLabel;
+ begin
+ if (onless= nil) and (onequal= nil) and (ongreater= nil) then
+ {nothing}
+ else if (onless= nil) and (onequal= nil) and (ongreater<>nil) then
+ begin
+ current_asmdata.getjumplabel(skiplabel);
+ a_jmp_flags(list,F_E,skiplabel);
+ current_asmdata.getjumplabel(l);
+ a_jmp_flags(list,F_PO,l);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_XOR,NR_A,$80));
+ cg.a_label(current_asmdata.CurrAsmList,l);
+ a_jmp_flags(list,F_P,ongreater);
+ cg.a_label(list,skiplabel);
+ end
+ else if (onless= nil) and (onequal<>nil) and (ongreater= nil) then
+ a_jmp_flags(list,F_E,onequal)
+ else if (onless= nil) and (onequal<>nil) and (ongreater<>nil) then
+ begin
+ if onequal<>ongreater then
+ a_jmp_flags(list,F_E,onequal);
+ current_asmdata.getjumplabel(l);
+ a_jmp_flags(list,F_PO,l);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_XOR,NR_A,$80));
+ cg.a_label(current_asmdata.CurrAsmList,l);
+ a_jmp_flags(list,F_P,ongreater);
+ end
+ else if (onless<>nil) and (onequal= nil) and (ongreater= nil) then
+ begin
+ current_asmdata.getjumplabel(l);
+ a_jmp_flags(list,F_PO,l);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_XOR,NR_A,$80));
+ cg.a_label(current_asmdata.CurrAsmList,l);
+ a_jmp_flags(list,F_M,onless);
+ end
+ else if (onless<>nil) and (onequal= nil) and (ongreater<>nil) then
+ begin
+ if onless=ongreater then
+ a_jmp_flags(list,F_NE,onless)
+ else
+ begin
+ current_asmdata.getjumplabel(skiplabel);
+ a_jmp_flags(list,F_E,skiplabel);
+ current_asmdata.getjumplabel(l);
+ a_jmp_flags(list,F_PO,l);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_XOR,NR_A,$80));
+ cg.a_label(current_asmdata.CurrAsmList,l);
+ a_jmp_flags(list,F_M,onless);
+ a_jmp_always(list,ongreater);
+ cg.a_label(list,skiplabel);
+ end;
+ end
+ else if (onless<>nil) and (onequal<>nil) and (ongreater= nil) then
+ begin
+ a_jmp_flags(list,F_E,onequal);
+ current_asmdata.getjumplabel(l);
+ a_jmp_flags(list,F_PO,l);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_XOR,NR_A,$80));
+ cg.a_label(current_asmdata.CurrAsmList,l);
+ a_jmp_flags(list,F_M,onless);
+ end
+ else if (onless<>nil) and (onequal<>nil) and (ongreater<>nil) then
+ begin
+ if (onless=onequal) and (onequal=ongreater) then
+ a_jmp_always(list,onless)
+ else if onequal=ongreater then
+ begin
+ current_asmdata.getjumplabel(l);
+ a_jmp_flags(list,F_PO,l);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_XOR,NR_A,$80));
+ cg.a_label(current_asmdata.CurrAsmList,l);
+ a_jmp_flags(list,F_M,onless);
+ a_jmp_always(list,ongreater);
+ end
+ else if onless=onequal then
+ begin
+ a_jmp_flags(list,F_E,onequal);
+ current_asmdata.getjumplabel(l);
+ a_jmp_flags(list,F_PO,l);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_XOR,NR_A,$80));
+ cg.a_label(current_asmdata.CurrAsmList,l);
+ a_jmp_flags(list,F_M,onless);
+ a_jmp_always(list,ongreater);
+ end
+ else if onless=ongreater then
+ begin
+ a_jmp_flags(list,F_E,onequal);
+ a_jmp_always(list,ongreater);
+ end
+ else
+ begin
+ { the generic case - all 3 are different labels }
+ a_jmp_flags(list,F_E,onequal);
+ current_asmdata.getjumplabel(l);
+ a_jmp_flags(list,F_PO,l);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_XOR,NR_A,$80));
+ cg.a_label(current_asmdata.CurrAsmList,l);
+ a_jmp_flags(list,F_M,onless);
+ a_jmp_always(list,ongreater);
+ end;
+ end
+ else
+ begin
+ { Shouldn't happen! All possible combinations are handled by the above code. }
+ internalerror(2020042204);
+ end;
+ end;
+
+
+ procedure tcgz80.g_flags2reg(list: TAsmList; size: TCgSize; const f: TResFlags; reg: TRegister);
+ var
+ l : TAsmLabel;
+ tmpflags : TResFlags;
+ begin
+ if f in [F_C,F_NC] then
+ begin
+ a_load_const_reg(list,size,0,reg);
+ if f=F_NC then
+ list.concat(taicpu.op_none(A_CCF));
+ list.concat(taicpu.op_reg(A_RL,reg));
+ end
+ else
+ begin
+ current_asmdata.getjumplabel(l);
+ a_load_const_reg(list,size,0,reg);
+ tmpflags:=f;
+ inverse_flags(tmpflags);
+ a_jmp_flags(list,tmpflags,l);
+ list.concat(taicpu.op_reg(A_INC,reg));
+ cg.a_label(list,l);
+ end;
+ end;
+
+
+ procedure tcgz80.g_stackpointer_alloc(list: TAsmList; localsize: longint);
+ begin
+ if localsize>0 then
+ begin
+ list.Concat(taicpu.op_reg_const(A_LD,NR_HL,-localsize));
+ list.Concat(taicpu.op_reg_reg(A_ADD,NR_HL,NR_SP));
+ list.Concat(taicpu.op_reg_reg(A_LD,NR_SP,NR_HL));
+ end;
+ end;
+
+
+ procedure tcgz80.a_adjust_sp(list : TAsmList; value : longint);
+ var
+ i : integer;
+ sym: TAsmSymbol;
+ ref: treference;
+ begin
+ case value of
+ 0:
+ ;
+ -7..-1:
+ begin
+ for i:=value to -1 do
+ list.concat(taicpu.op_reg(A_DEC,NR_SP));
+ end;
+ 1..7:
+ begin
+ for i:=1 to value do
+ list.concat(taicpu.op_reg(A_INC,NR_SP));
+ end;
+ else
+ begin
+ sym:=current_asmdata.RefAsmSymbol('FPC_Z80_SAVE_HL',AT_DATA);
+ reference_reset_symbol(ref,sym,0,1,[]);
+
+ // block interrupts
+ list.concat(taicpu.op_none(A_DI));
+
+ // save HL
+ list.concat(taicpu.op_ref_reg(A_LD,ref,NR_HL));
+
+ // adjust SP
+ list.concat(taicpu.op_reg_const(A_LD,NR_HL,value));
+ list.concat(taicpu.op_reg_reg(A_ADD,NR_HL,NR_SP));
+ list.concat(taicpu.op_reg_reg(A_LD,NR_SP,NR_HL));
+
+ // restore HL
+ list.concat(taicpu.op_reg_ref(A_LD,NR_HL,ref));
+
+ // release interrupts
+ list.concat(taicpu.op_none(A_EI));
+ end;
+ end;
+ end;
+
+
+ procedure tcgz80.g_proc_entry(list : TAsmList;localsize : longint;nostackframe:boolean);
+ var
+ regsize,stackmisalignment: longint;
+ begin
+ regsize:=0;
+ stackmisalignment:=0;
+ { save old framepointer }
+ if not nostackframe then
+ begin
+ { return address }
+ inc(stackmisalignment,2);
+ list.concat(tai_regalloc.alloc(current_procinfo.framepointer,nil));
+ if current_procinfo.framepointer=NR_FRAME_POINTER_REG then
+ begin
+ { push <frame_pointer> }
+ inc(stackmisalignment,2);
+ include(rg[R_INTREGISTER].preserved_by_proc,RS_FRAME_POINTER_REG);
+ list.concat(Taicpu.op_reg(A_PUSH,NR_FRAME_POINTER_REG));
+ { Return address and FP are both on stack }
+ current_asmdata.asmcfi.cfa_def_cfa_offset(list,2*2);
+ current_asmdata.asmcfi.cfa_offset(list,NR_FRAME_POINTER_REG,-(2*2));
+ if current_procinfo.procdef.proctypeoption<>potype_exceptfilter then
+ begin
+ list.concat(Taicpu.op_reg_const(A_LD,NR_FRAME_POINTER_REG,0));
+ list.concat(Taicpu.op_reg_reg(A_ADD,NR_FRAME_POINTER_REG,NR_STACK_POINTER_REG))
+ end
+ else
+ begin
+ internalerror(2020040301);
+ (*push_regs;
+ gen_load_frame_for_exceptfilter(list);
+ { Need only as much stack space as necessary to do the calls.
+ Exception filters don't have own local vars, and temps are 'mapped'
+ to the parent procedure.
+ maxpushedparasize is already aligned at least on x86_64. }
+ localsize:=current_procinfo.maxpushedparasize;*)
+ end;
+ current_asmdata.asmcfi.cfa_def_cfa_register(list,NR_FRAME_POINTER_REG);
+ end
+ else
+ begin
+ CGmessage(cg_d_stackframe_omited);
+ end;
+
+ { allocate stackframe space }
+ if (localsize<>0) or
+ ((target_info.stackalign>sizeof(pint)) and
+ (stackmisalignment <> 0) and
+ ((pi_do_call in current_procinfo.flags) or
+ (po_assembler in current_procinfo.procdef.procoptions))) then
+ begin
+ if target_info.stackalign>sizeof(pint) then
+ localsize := align(localsize+stackmisalignment,target_info.stackalign)-stackmisalignment;
+ g_stackpointer_alloc(list,localsize);
+ if current_procinfo.framepointer=NR_STACK_POINTER_REG then
+ current_asmdata.asmcfi.cfa_def_cfa_offset(list,regsize+localsize+sizeof(pint));
+ current_procinfo.final_localsize:=localsize;
+ end
+ end;
+ end;
+
+
+ procedure tcgz80.g_proc_exit(list : TAsmList;parasize : longint;nostackframe:boolean);
+ var
+ regs : tcpuregisterset;
+ reg : TSuperRegister;
+ LocalSize : longint;
+ begin
+ { every byte counts for Z80, so if a subroutine is marked as non-returning, we do
+ not generate any exit code, so we really trust the noreturn directive
+ }
+ if po_noreturn in current_procinfo.procdef.procoptions then
+ exit;
+
+ { remove stackframe }
+ if not nostackframe then
+ begin
+ stacksize:=current_procinfo.calc_stackframe_size;
+ if (target_info.stackalign>4) and
+ ((stacksize <> 0) or
+ (pi_do_call in current_procinfo.flags) or
+ { can't detect if a call in this case -> use nostackframe }
+ { if you (think you) know what you are doing }
+ (po_assembler in current_procinfo.procdef.procoptions)) then
+ stacksize := align(stacksize+sizeof(aint),target_info.stackalign) - sizeof(aint);
+ if (current_procinfo.framepointer=NR_STACK_POINTER_REG) then
+ begin
+ internalerror(2020040302);
+ {if (stacksize<>0) then
+ cg.a_op_const_reg(list,OP_ADD,OS_ADDR,stacksize,current_procinfo.framepointer);}
+ end
+ else
+ begin
+ list.Concat(taicpu.op_reg_reg(A_LD,NR_STACK_POINTER_REG,NR_FRAME_POINTER_REG));
+ list.Concat(taicpu.op_reg(A_POP,NR_FRAME_POINTER_REG));
+ end;
+ list.concat(tai_regalloc.dealloc(current_procinfo.framepointer,nil));
+ end;
+
+ list.concat(taicpu.op_none(A_RET));
+ end;
+
+
+ procedure tcgz80.a_loadaddr_ref_reg(list : TAsmList;const ref : treference;r : tregister);
+ var
+ tmpref : treference;
+ begin
+ if assigned(ref.symbol) then
+ begin
+ reference_reset(tmpref,0,[]);
+ tmpref.symbol:=ref.symbol;
+ tmpref.offset:=ref.offset;
+
+ tmpref.refaddr:=addr_lo8;
+ list.concat(taicpu.op_reg_ref(A_LD,r,tmpref));
+
+ tmpref.refaddr:=addr_hi8;
+ list.concat(taicpu.op_reg_ref(A_LD,GetNextReg(r),tmpref));
+
+ if (ref.base<>NR_NO) then
+ a_op_reg_reg(list,OP_ADD,OS_16,ref.base,r);
+ if (ref.index<>NR_NO) then
+ a_op_reg_reg(list,OP_ADD,OS_16,ref.index,r);
+ end
+ else if ref.base=NR_IX then
+ begin
+ list.concat(taicpu.op_reg(A_PUSH,NR_IX));
+ getcpuregister(list,NR_H);
+ getcpuregister(list,NR_L);
+ list.concat(taicpu.op_reg(A_POP,NR_HL));
+ emit_mov(list,r,NR_L);
+ ungetcpuregister(list,NR_L);
+ emit_mov(list,GetNextReg(r),NR_H);
+ ungetcpuregister(list,NR_H);
+ if (ref.index<>NR_NO) then
+ a_op_reg_reg(list,OP_ADD,OS_16,ref.index,r);
+ if ref.offset<>0 then
+ a_op_const_reg(list,OP_ADD,OS_16,ref.offset,r);
+ end
+ else if (ref.base=NR_SP) or (ref.base=NR_BC) or (ref.base=NR_DE) then
+ begin
+ getcpuregister(list,NR_H);
+ getcpuregister(list,NR_L);
+ list.Concat(taicpu.op_reg_const(A_LD,NR_HL,ref.offset));
+ list.Concat(taicpu.op_reg_reg(A_ADD,NR_HL,ref.base));
+ emit_mov(list,r,NR_L);
+ ungetcpuregister(list,NR_L);
+ emit_mov(list,GetNextReg(r),NR_H);
+ ungetcpuregister(list,NR_H);
+ if (ref.index<>NR_NO) then
+ a_op_reg_reg(list,OP_ADD,OS_16,ref.index,r);
+ end
+ else if ref.base<>NR_NO then
+ begin
+ a_op_const_reg_reg(list,OP_ADD,OS_16,ref.offset,ref.base,r);
+ if (ref.index<>NR_NO) then
+ a_op_reg_reg(list,OP_ADD,OS_16,ref.index,r);
+ end
+ else if ref.index<>NR_NO then
+ a_op_const_reg_reg(list,OP_ADD,OS_16,ref.offset,ref.index,r)
+ else
+ a_load_const_reg(list,OS_16,ref.offset,r);
+ end;
+
+
+ procedure tcgz80.g_concatcopy(list : TAsmList;const source,dest : treference;len : tcgint);
+ var
+ tmpreg,srcreg,dstreg: tregister;
+ srcref,dstref : treference;
+ i: Integer;
+ begin
+ if (len<=2) and
+ is_ref_in_opertypes(source,[OT_REF_IX_d,OT_REF_IY_d,OT_REF_HL]) and
+ is_ref_in_opertypes(dest,[OT_REF_IX_d,OT_REF_IY_d,OT_REF_HL]) then
+ begin
+ srcref:=source;
+ dstref:=dest;
+ tmpreg:=getintregister(list,OS_8);
+ for i:=1 to len do
+ begin
+ list.concat(taicpu.op_reg_ref(A_LD,tmpreg,srcref));
+ list.concat(taicpu.op_ref_reg(A_LD,dstref,tmpreg));
+ if i<>len then
+ begin
+ adjust_normalized_ref(list,srcref,1);
+ adjust_normalized_ref(list,dstref,1);
+ end;
+ end;
+ end
+ else
+ begin
+ srcreg:=getintregister(list,OS_16);
+ a_loadaddr_ref_reg(list,source,srcreg);
+ dstreg:=getintregister(list,OS_16);
+ a_loadaddr_ref_reg(list,dest,dstreg);
+ getcpuregister(list,NR_L);
+ a_load_reg_reg(list,OS_8,OS_8,srcreg,NR_L);
+ getcpuregister(list,NR_H);
+ a_load_reg_reg(list,OS_8,OS_8,GetNextReg(srcreg),NR_H);
+ getcpuregister(list,NR_E);
+ a_load_reg_reg(list,OS_8,OS_8,dstreg,NR_E);
+ getcpuregister(list,NR_D);
+ a_load_reg_reg(list,OS_8,OS_8,GetNextReg(dstreg),NR_D);
+ getcpuregister(list,NR_B);
+ getcpuregister(list,NR_C);
+ list.concat(taicpu.op_reg_const(A_LD,NR_BC,len));
+ list.concat(taicpu.op_none(A_LDIR));
+ ungetcpuregister(list,NR_B);
+ ungetcpuregister(list,NR_C);
+ ungetcpuregister(list,NR_D);
+ ungetcpuregister(list,NR_E);
+ ungetcpuregister(list,NR_H);
+ ungetcpuregister(list,NR_L);
+ end;
+ end;
+
+
+ procedure tcgz80.g_overflowcheck(list: TAsmList; const l: tlocation; def: tdef);
+ var
+ hl : tasmlabel;
+ ai : taicpu;
+ cond : TAsmCond;
+ begin
+ list.Concat(tai_comment.Create(strpnew('WARNING! not implemented: g_overflowCheck')));
+ //if not(cs_check_overflow in current_settings.localswitches) then
+ // exit;
+ //current_asmdata.getjumplabel(hl);
+ //if not ((def.typ=pointerdef) or
+ // ((def.typ=orddef) and
+ // (torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,
+ // pasbool8,pasbool16,pasbool32,pasbool64]))) then
+ // cond:=C_VC
+ //else
+ // cond:=C_CC;
+ //ai:=Taicpu.Op_Sym(A_BRxx,hl);
+ //ai.SetCondition(cond);
+ //ai.is_jmp:=true;
+ //list.concat(ai);
+ //
+ //a_call_name(list,'FPC_OVERFLOW',false);
+ //a_label(list,hl);
+ end;
+
+
+ procedure tcgz80.g_save_registers(list: TAsmList);
+ begin
+ { this is done by the entry code }
+ end;
+
+
+ procedure tcgz80.g_restore_registers(list: TAsmList);
+ begin
+ { this is done by the exit code }
+ end;
+
+
+ procedure tcgz80.a_jmp_cond(list : TAsmList;cond : TOpCmp;l: tasmlabel);
+ begin
+ case cond of
+ OC_EQ:
+ a_jmp_unsigned_cmp_3way(list,nil,l,nil);
+ OC_NE:
+ a_jmp_unsigned_cmp_3way(list,l,nil,l);
+ OC_A:
+ a_jmp_unsigned_cmp_3way(list,nil,nil,l);
+ OC_B:
+ a_jmp_unsigned_cmp_3way(list,l,nil,nil);
+ OC_AE:
+ a_jmp_unsigned_cmp_3way(list,nil,l,l);
+ OC_BE:
+ a_jmp_unsigned_cmp_3way(list,l,l,nil);
+ OC_GT:
+ a_jmp_signed_cmp_3way(list,nil,nil,l);
+ OC_LT:
+ a_jmp_signed_cmp_3way(list,l,nil,nil);
+ OC_GTE:
+ a_jmp_signed_cmp_3way(list,nil,l,l);
+ OC_LTE:
+ a_jmp_signed_cmp_3way(list,l,l,nil);
+ else
+ internalerror(2011082501);
+ end;
+ end;
+
+
+ procedure tcgz80.emit_mov(list: TAsmList;reg2: tregister; reg1: tregister);
+ var
+ instr: taicpu;
+ begin
+ instr:=taicpu.op_reg_reg(A_LD,reg2,reg1);
+ list.Concat(instr);
+ { Notify the register allocator that we have written a move instruction so
+ it can try to eliminate it. }
+ add_move_instruction(instr);
+ end;
+
+
+ procedure tcg64fz80.a_op64_reg_reg(list : TAsmList;op:TOpCG;size : tcgsize;regsrc,regdst : tregister64);
+ begin
+ if not(size in [OS_S64,OS_64]) then
+ internalerror(2012102402);
+ tcgz80(cg).a_op_reg_reg_internal(list,Op,size,regsrc.reglo,regsrc.reghi,regdst.reglo,regdst.reghi);
+ end;
+
+
+ procedure tcg64fz80.a_op64_const_reg(list : TAsmList;op:TOpCG;size : tcgsize;value : int64;reg : tregister64);
+ begin
+ tcgz80(cg).a_op_const_reg_internal(list,Op,size,value,reg.reglo,reg.reghi);
+ end;
+
+
+ procedure create_codegen;
+ begin
+ cg:=tcgz80.create;
+ cg64:=tcg64fz80.create;
+ end;
+
+end.
diff --git a/compiler/z80/cpubase.pas b/compiler/z80/cpubase.pas
new file mode 100644
index 0000000000..8627611128
--- /dev/null
+++ b/compiler/z80/cpubase.pas
@@ -0,0 +1,506 @@
+{
+ Copyright (c) 2006 by Florian Klaempfl
+
+ Contains the base types for the AVR
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+{# Base unit for processor information. This unit contains
+ enumerations of registers, opcodes, sizes, and other
+ such things which are processor specific.
+}
+unit cpubase;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ uses
+ cutils,cclasses,
+ globtype,globals,
+ cpuinfo,
+ aasmbase,
+ cgbase
+ ;
+
+
+{*****************************************************************************
+ Assembler Opcodes
+*****************************************************************************}
+
+ type
+ TAsmOp={$i z80op.inc}
+
+
+ { This should define the array of instructions as string }
+ op2strtable=array[tasmop] of string[4];
+
+ const
+ { First value of opcode enumeration }
+ firstop = low(tasmop);
+ { Last value of opcode enumeration }
+ lastop = high(tasmop);
+
+ std_op2str:op2strtable={$i z80stdopnames.inc}
+
+ { call/reg instructions are not considered as jmp instructions for the usage cases of
+ this set }
+ jmp_instructions = [A_JP,A_JR,A_DJNZ];
+ call_jmp_instructions = [A_CALL]+jmp_instructions;
+
+{*****************************************************************************
+ Registers
+*****************************************************************************}
+
+ type
+ { Number of registers used for indexing in tables }
+ tregisterindex=0..{$i rz80nor.inc}-1;
+
+ const
+ { Available Superregisters }
+ {$i rz80sup.inc}
+
+ { No Subregisters }
+ R_SUBWHOLE = R_SUBL;
+
+ { Available Registers }
+ {$i rz80con.inc}
+
+ { Integer Super registers first and last }
+ first_int_supreg = RS_A;
+ first_int_imreg = $20;
+
+ { Float Super register first and last }
+ first_fpu_supreg = RS_INVALID;
+ first_fpu_imreg = 0;
+
+ { MM Super register first and last }
+ first_mm_supreg = RS_INVALID;
+ first_mm_imreg = 0;
+
+ regnumber_count_bsstart = 32;
+
+ regnumber_table : array[tregisterindex] of tregister = (
+ {$i rz80num.inc}
+ );
+
+ regstabs_table : array[tregisterindex] of shortint = (
+ {$i rz80sta.inc}
+ );
+
+ regdwarf_table : array[tregisterindex] of shortint = (
+ {$i rz80dwa.inc}
+ );
+ { registers which may be destroyed by calls }
+ VOLATILE_INTREGISTERS = [RS_A,RS_B,RS_C,RS_D,RS_E,RS_H,RS_L];
+ VOLATILE_FPUREGISTERS = [];
+
+ type
+ totherregisterset = set of tregisterindex;
+
+{*****************************************************************************
+ Conditions
+*****************************************************************************}
+
+ type
+ TAsmCond=(C_None,
+ C_NZ,C_Z,C_NC,C_C,C_PO,C_PE,C_P,C_M
+ );
+
+ const
+ cond2str : array[TAsmCond] of string[2]=('',
+ 'nz','z','nc','c','po','pe','p','m'
+ );
+
+ uppercond2str : array[TAsmCond] of string[2]=('',
+ 'NZ','Z','NC','C','PO','PE','P','M'
+ );
+
+{*****************************************************************************
+ Flags
+*****************************************************************************}
+
+ type
+ TResFlags = (F_NotPossible,F_NE,F_E,F_NC,F_C,F_PO,F_PE,F_P,F_M);
+
+
+{*****************************************************************************
+ Constants
+*****************************************************************************}
+
+ const
+ max_operands = 2;
+
+ maxintregs = 15;
+ maxfpuregs = 0;
+ maxaddrregs = 0;
+
+{*****************************************************************************
+ Operand Sizes
+*****************************************************************************}
+
+ type
+ topsize = (S_NO,
+ S_B,S_W,S_L,S_BW,S_BL,S_WL,
+ S_IS,S_IL,S_IQ,
+ S_FS,S_FL,S_FX,S_D,S_Q,S_FV,S_FXX
+ );
+
+{*****************************************************************************
+ Constants
+*****************************************************************************}
+
+ const
+ firstsaveintreg = RS_INVALID;
+ lastsaveintreg = RS_INVALID;
+ firstsavefpureg = RS_INVALID;
+ lastsavefpureg = RS_INVALID;
+ firstsavemmreg = RS_INVALID;
+ lastsavemmreg = RS_INVALID;
+
+{*****************************************************************************
+ Default generic sizes
+*****************************************************************************}
+
+ { Defines the default address size for a processor, }
+ OS_ADDR = OS_16;
+ { the natural int size for a processor,
+ has to match osuinttype/ossinttype as initialized in psystem,
+ initially, this was OS_16/OS_S16 on avr, but experience has
+ proven that it is better to make it 8 Bit thus having the same
+ size as a register.
+ }
+ OS_INT = OS_8;
+ OS_SINT = OS_S8;
+ { the maximum float size for a processor, }
+ OS_FLOAT = OS_F64;
+ { the size of a vector register for a processor }
+ OS_VECTOR = OS_M32;
+
+{*****************************************************************************
+ Generic Register names
+*****************************************************************************}
+
+ { Stack pointer register }
+ NR_STACK_POINTER_REG = NR_SP;
+ RS_STACK_POINTER_REG = RS_SP;
+ { Frame pointer register }
+ RS_FRAME_POINTER_REG = RS_IX;
+ NR_FRAME_POINTER_REG = NR_IX;
+ { Register for addressing absolute data in a position independant way,
+ such as in PIC code. The exact meaning is ABI specific. For
+ further information look at GCC source : PIC_OFFSET_TABLE_REGNUM
+ }
+ NR_PIC_OFFSET_REG = NR_INVALID;
+ { Results are returned in this register (32-bit values) }
+ NR_FUNCTION_RETURN_REG = NR_L;
+ RS_FUNCTION_RETURN_REG = RS_L;
+ { Low part of 64bit return value }
+ NR_FUNCTION_RETURN64_LOW_REG = NR_L;
+ RS_FUNCTION_RETURN64_LOW_REG = RS_L;
+ { High part of 64bit return value }
+ NR_FUNCTION_RETURN64_HIGH_REG = NR_C;
+ RS_FUNCTION_RETURN64_HIGH_REG = RS_C;
+ { The value returned from a function is available in this register }
+ NR_FUNCTION_RESULT_REG = NR_FUNCTION_RETURN_REG;
+ RS_FUNCTION_RESULT_REG = RS_FUNCTION_RETURN_REG;
+ { The lowh part of 64bit value returned from a function }
+ NR_FUNCTION_RESULT64_LOW_REG = NR_FUNCTION_RETURN64_LOW_REG;
+ RS_FUNCTION_RESULT64_LOW_REG = RS_FUNCTION_RETURN64_LOW_REG;
+ { The high part of 64bit value returned from a function }
+ NR_FUNCTION_RESULT64_HIGH_REG = NR_FUNCTION_RETURN64_HIGH_REG;
+ RS_FUNCTION_RESULT64_HIGH_REG = RS_FUNCTION_RETURN64_HIGH_REG;
+
+ NR_FPU_RESULT_REG = NR_NO;
+
+ NR_MM_RESULT_REG = NR_NO;
+
+ NR_RETURN_ADDRESS_REG = NR_FUNCTION_RETURN_REG;
+
+ { Offset where the parent framepointer is pushed }
+ PARENT_FRAMEPOINTER_OFFSET = 0;
+
+ NR_DEFAULTFLAGS = NR_F;
+ RS_DEFAULTFLAGS = RS_F;
+
+{*****************************************************************************
+ GCC /ABI linking information
+*****************************************************************************}
+
+ const
+ { Registers which must be saved when calling a routine declared as
+ cppdecl, cdecl, stdcall, safecall, palmossyscall. The registers
+ saved should be the ones as defined in the target ABI and / or GCC.
+
+ This value can be deduced from the CALLED_USED_REGISTERS array in the
+ GCC source.
+ }
+ { on avr, gen_entry/gen_exit code saves/restores registers, so
+ we don't need this array }
+ saved_standard_registers : array[0..0] of tsuperregister =
+ (RS_INVALID);
+ { Required parameter alignment when calling a routine declared as
+ stdcall and cdecl. The alignment value should be the one defined
+ by GCC or the target ABI.
+
+ The value of this constant is equal to the constant
+ PARM_BOUNDARY / BITS_PER_UNIT in the GCC source.
+ }
+ std_param_align = 4;
+
+ saved_address_registers : array[0..0] of tsuperregister = (RS_INVALID);
+ saved_mm_registers : array[0..0] of tsuperregister = (RS_INVALID);
+
+{*****************************************************************************
+ Helpers
+*****************************************************************************}
+
+ { Returns the tcgsize corresponding with the size of reg.}
+ function reg_cgsize(const reg: tregister) : tcgsize;
+ function cgsize2subreg(regtype: tregistertype; s:Tcgsize):Tsubregister;
+ procedure inverse_flags(var f: TResFlags);
+ function flags_to_cond(const f: TResFlags) : TAsmCond;
+ function findreg_by_number(r:Tregister):tregisterindex;
+ function std_regnum_search(const s:string):Tregister;
+ function std_regname(r:Tregister):string;
+
+ function inverse_cond(const c: TAsmCond): TAsmCond; {$ifdef USEINLINE}inline;{$endif USEINLINE}
+ function conditions_equal(const c1, c2: TAsmCond): boolean; {$ifdef USEINLINE}inline;{$endif USEINLINE}
+
+ { Checks if Subset is a subset of c (e.g. "less than" is a subset of "less than or equal" }
+ function condition_in(const Subset, c: TAsmCond): Boolean;
+
+ function dwarf_reg(r:tregister):byte;
+ function dwarf_reg_no_error(r:tregister):shortint;
+ function eh_return_data_regno(nr: longint): longint;
+
+ function GetHigh(const r : TRegister) : TRegister;
+
+ { returns the next virtual register }
+ function GetNextReg(const r : TRegister) : TRegister;
+
+ { returns the last virtual register }
+ function GetLastReg(const r : TRegister) : TRegister;
+
+ { returns the register with the offset of ofs of a continuous set of register starting with r }
+ function GetOffsetReg(const r : TRegister;ofs : shortint) : TRegister;
+ { returns the register with the offset of ofs of a continuous set of register starting with r and being continued with rhi }
+ function GetOffsetReg64(const r,rhi: TRegister;ofs : shortint): TRegister;
+
+ function is_calljmp(o:tasmop):boolean;{$ifdef USEINLINE}inline;{$endif USEINLINE}
+
+ implementation
+
+ uses
+ rgBase,verbose;
+
+
+ const
+ std_regname_table : TRegNameTable = (
+ {$i rz80std.inc}
+ );
+
+ regnumber_index : array[tregisterindex] of tregisterindex = (
+ {$i rz80rni.inc}
+ );
+
+ std_regname_index : array[tregisterindex] of tregisterindex = (
+ {$i rz80sri.inc}
+ );
+
+
+ function cgsize2subreg(regtype: tregistertype; s:Tcgsize):Tsubregister;
+ begin
+ case s of
+ OS_8,OS_S8:
+ cgsize2subreg:=R_SUBL;
+ OS_16,OS_S16:
+ cgsize2subreg:=R_SUBW;
+ OS_32,OS_S32:
+ cgsize2subreg:=R_SUBD;
+ OS_64,OS_S64:
+ cgsize2subreg:=R_SUBQ;
+ OS_NO:
+ { error message should have been thrown already before, so avoid only
+ an internal error }
+ cgsize2subreg:=R_SUBNONE;
+ else
+ internalerror(200301231);
+ end;
+ end;
+
+
+ function reg_cgsize(const reg: tregister): tcgsize;
+ begin
+ case getregtype(reg) of
+ R_INTREGISTER,
+ R_SPECIALREGISTER:
+ case getsubreg(reg) of
+ R_SUBL,
+ R_SUBH:
+ reg_cgsize:=OS_8;
+ R_SUBW:
+ reg_cgsize:=OS_16;
+ else
+ internalerror(2020041901);
+ end;
+ else
+ internalerror(2011021905);
+ end;
+ end;
+
+
+ procedure inverse_flags(var f: TResFlags);
+ const
+ inv_flags: array[TResFlags] of TResFlags =
+ (F_NotPossible,F_E,F_NE,F_C,F_NC,F_PE,F_PO,F_M,F_P);
+ begin
+ f:=inv_flags[f];
+ end;
+
+
+ function flags_to_cond(const f: TResFlags) : TAsmCond;
+ const
+ flag_2_cond: array[F_NE..F_M] of TAsmCond =
+ (C_NZ,C_Z,C_NC,C_C,C_PO,C_PE,C_P,C_M);
+ begin
+ if f=F_NotPossible then
+ internalerror(2011022101);
+ if f>high(flag_2_cond) then
+ internalerror(200112301);
+ result:=flag_2_cond[f];
+ end;
+
+
+ function findreg_by_number(r:Tregister):tregisterindex;
+ begin
+ result:=rgBase.findreg_by_number_table(r,regnumber_index);
+ end;
+
+
+ function std_regnum_search(const s:string):Tregister;
+ begin
+ result:=regnumber_table[findreg_by_name_table(s,std_regname_table,std_regname_index)];
+ end;
+
+
+ function std_regname(r:Tregister):string;
+ var
+ p : tregisterindex;
+ begin
+ p:=findreg_by_number_table(r,regnumber_index);
+ if p<>0 then
+ result:=std_regname_table[p]
+ else
+ result:=generic_regname(r);
+ end;
+
+
+ function inverse_cond(const c: TAsmCond): TAsmCond; {$ifdef USEINLINE}inline;{$endif USEINLINE}
+ const
+ inverse: array[TAsmCond] of TAsmCond=(C_None,
+ C_Z,C_NZ,C_C,C_NC,C_PE,C_PO,C_M,C_P);
+ begin
+ result := inverse[c];
+ end;
+
+
+ function conditions_equal(const c1, c2: TAsmCond): boolean; {$ifdef USEINLINE}inline;{$endif USEINLINE}
+ begin
+ result := c1 = c2;
+ end;
+
+
+ { Checks if Subset is a subset of c (e.g. "less than" is a subset of "less than or equal" }
+ function condition_in(const Subset, c: TAsmCond): Boolean;
+ begin
+ Result := {(c.cond = C_None) or} conditions_equal(Subset, c);
+
+ { TODO: Can a PowerPC programmer please update this procedure to
+ actually detect subsets? Thanks. [Kit] }
+ end;
+
+
+ function rotl(d : dword;b : byte) : dword;
+ begin
+ result:=(d shr (32-b)) or (d shl b);
+ end;
+
+
+ function dwarf_reg(r:tregister):byte;
+ var
+ reg : shortint;
+ begin
+ reg:=regdwarf_table[findreg_by_number(r)];
+ if reg=-1 then
+ internalerror(200603251);
+ result:=reg;
+ end;
+
+
+ function dwarf_reg_no_error(r:tregister):shortint;
+ begin
+ result:=regdwarf_table[findreg_by_number(r)];
+ end;
+
+
+ function eh_return_data_regno(nr: longint): longint;
+ begin
+ result:=-1;
+ end;
+
+
+ function GetHigh(const r : TRegister) : TRegister;
+ begin
+ result:=TRegister(longint(r)+1)
+ end;
+
+
+ function GetNextReg(const r: TRegister): TRegister;
+ begin
+ result:=TRegister(longint(r)+1);
+ end;
+
+
+ function GetLastReg(const r: TRegister): TRegister;
+ begin
+ result:=TRegister(longint(r)-1);
+ end;
+
+
+ function GetOffsetReg(const r: TRegister;ofs : shortint): TRegister;
+ begin
+ result:=TRegister(longint(r)+ofs);
+ end;
+
+
+ function GetOffsetReg64(const r,rhi: TRegister;ofs : shortint): TRegister;
+ begin
+ if ofs>3 then
+ result:=TRegister(longint(rhi)+ofs-4)
+ else
+ result:=TRegister(longint(r)+ofs);
+ end;
+
+
+ function is_calljmp(o:tasmop):boolean;{$ifdef USEINLINE}inline;{$endif USEINLINE}
+ begin
+ is_calljmp:= o in call_jmp_instructions;
+ end;
+
+
+end.
diff --git a/compiler/z80/cpuinfo.pas b/compiler/z80/cpuinfo.pas
new file mode 100644
index 0000000000..41363039d7
--- /dev/null
+++ b/compiler/z80/cpuinfo.pas
@@ -0,0 +1,130 @@
+{
+ Copyright (c) 2008 by the Free Pascal development team
+
+ Basic Processor information for the Z80
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+Unit CPUInfo;
+
+Interface
+
+ uses
+ globtype;
+
+Type
+ bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
+ ts32real = single;
+ ts64real = double;
+ ts80real = type extended;
+ ts128real = type extended;
+ ts64comp = comp;
+
+ pbestreal=^bestreal;
+
+ { possible supported processors for this target }
+ tcputype =
+ (cpu_none,
+ cpu_z80,
+ cpu_ez80
+ );
+
+ tfputype =
+ (fpu_none,
+ fpu_soft,
+ fpu_libgcc
+ );
+
+ tcontrollertype =
+ (ct_none
+ );
+
+ tcontrollerdatatype = record
+ controllertypestr, controllerunitstr: string[20];
+ cputype: tcputype; fputype: tfputype;
+ flashbase, flashsize, srambase, sramsize, eeprombase, eepromsize, bootbase, bootsize: dword;
+ end;
+
+Const
+ {# Size of native extended floating point type }
+ extended_size = 12;
+ { target cpu string (used by compiler options) }
+ target_cpu_string = 'z80';
+
+ { Is there support for dealing with multiple microcontrollers available }
+ { for this platform? }
+ ControllerSupport = false;
+
+ { We know that there are fields after sramsize
+ but we don't care about this warning }
+ {$PUSH}
+ {$WARN 3177 OFF}
+ embedded_controllers : array [tcontrollertype] of tcontrollerdatatype =
+ (
+ (controllertypestr:''; controllerunitstr:''; cputype:cpu_none; fputype:fpu_none; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
+ { calling conventions supported by the code generator }
+ supported_calling_conventions : tproccalloptions = [
+ pocall_internproc,
+ pocall_safecall,
+ pocall_stdcall,
+ { same as stdcall only different name mangling }
+ pocall_cdecl,
+ { same as stdcall only different name mangling }
+ pocall_cppdecl,
+ { same as stdcall but floating point numbers are handled like equal sized integers }
+ pocall_softfloat
+ ];
+
+ cputypestr : array[tcputype] of string[5] = ('',
+ 'Z80',
+ 'EZ80'
+ );
+
+ fputypestr : array[tfputype] of string[6] = (
+ 'NONE',
+ 'SOFT',
+ 'LIBGCC'
+ );
+
+ { Supported optimizations, only used for information }
+ supported_optimizerswitches = genericlevel1optimizerswitches+
+ genericlevel2optimizerswitches+
+ genericlevel3optimizerswitches-
+ { no need to write info about those }
+ [cs_opt_level1,cs_opt_level2,cs_opt_level3]+
+ [cs_opt_regvar,cs_opt_loopunroll,cs_opt_tailrecursion,
+ cs_opt_stackframe,cs_opt_nodecse,cs_opt_reorder_fields,cs_opt_fastmath];
+
+ level1optimizerswitches = genericlevel1optimizerswitches;
+ level2optimizerswitches = genericlevel2optimizerswitches + level1optimizerswitches +
+ [cs_opt_regvar,cs_opt_stackframe,cs_opt_tailrecursion];
+ level3optimizerswitches = genericlevel3optimizerswitches + level2optimizerswitches + [{,cs_opt_loopunroll}];
+ level4optimizerswitches = genericlevel4optimizerswitches + level3optimizerswitches + [];
+
+ type
+ tcpuflags =
+ (CPUZ80_HAS_CALLCC
+ );
+
+ const
+ cpu_capabilities : array[tcputype] of set of tcpuflags =
+ ( { cpu_none } [],
+ { cpu_z80 } [],
+ { cpu_ez80 } [CPUZ80_HAS_CALLCC]
+ );
+
+Implementation
+
+end.
diff --git a/compiler/z80/cpunode.pas b/compiler/z80/cpunode.pas
new file mode 100644
index 0000000000..26de8c07ea
--- /dev/null
+++ b/compiler/z80/cpunode.pas
@@ -0,0 +1,51 @@
+{
+ Copyright (c) 2000-2017 by Florian Klaempfl
+
+ This unit includes the Z80 code generator into the compiler
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit cpunode;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ implementation
+
+ uses
+ { generic nodes }
+ ncgbas,ncgld,ncgflw,ncgcnv,ncgmem,ncgcon,ncgcal,ncgset,ncginl,ncgopt,ncgmat,ncgadd
+ { to be able to only parts of the generic code,
+ the processor specific nodes must be included
+ after the generic one (FK)
+ }
+ ,nz80add
+ ,nz80cal
+ ,nz80mat
+ ,nz80mem
+// ,nz80cnv
+// ,nz80util,
+ { these are not really nodes }
+ ,tgcpu
+ { symtable }
+ ,symcpu,
+ aasmdef
+ ;
+
+
+end.
diff --git a/compiler/z80/cpupara.pas b/compiler/z80/cpupara.pas
new file mode 100644
index 0000000000..aadc17e2df
--- /dev/null
+++ b/compiler/z80/cpupara.pas
@@ -0,0 +1,533 @@
+{
+ Copyright (c) 2008 by Florian Klaempfl
+
+ Z80 specific calling conventions
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ ****************************************************************************
+}
+{ ARM specific calling conventions are handled by this unit
+}
+unit cpupara;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ uses
+ globtype,globals,
+ aasmtai,aasmdata,
+ cpuinfo,cpubase,cgbase,cgutils,
+ symconst,symbase,symtype,symdef,parabase,paramgr;
+
+ type
+ tcpuparamanager = class(tparamanager)
+ function get_volatile_registers_int(calloption : tproccalloption):tcpuregisterset;override;
+ function get_volatile_registers_fpu(calloption : tproccalloption):tcpuregisterset;override;
+ function push_addr_param(varspez:tvarspez;def : tdef;calloption : tproccalloption) : boolean;override;
+ function ret_in_param(def:tdef;pd:tabstractprocdef):boolean;override;
+ function create_paraloc_info(p : tabstractprocdef; side: tcallercallee):longint;override;
+ function create_varargs_paraloc_info(p : tabstractprocdef; side: tcallercallee; varargspara:tvarargsparalist):longint;override;
+ function get_funcretloc(p : tabstractprocdef; side: tcallercallee; forcetempdef: tdef): tcgpara;override;
+ private
+ procedure init_values(var curintreg, curfloatreg, curmmreg: tsuperregister; var cur_stack_offset: longint);
+ function create_paraloc_info_intern(p : tabstractprocdef; side: tcallercallee; paras: tparalist;
+ var curintreg, curfloatreg, curmmreg: tsuperregister; var cur_stack_offset: longint):longint;
+ end;
+
+ implementation
+
+ uses
+ verbose,systems,
+ rgobj,
+ defutil,symsym;
+
+
+ function tcpuparamanager.get_volatile_registers_int(calloption : tproccalloption):tcpuregisterset;
+ begin
+ result:=VOLATILE_INTREGISTERS;
+ end;
+
+
+ function tcpuparamanager.get_volatile_registers_fpu(calloption : tproccalloption):tcpuregisterset;
+ begin
+ result:=VOLATILE_FPUREGISTERS;
+ end;
+
+
+ function getparaloc_fastcall(calloption : tproccalloption; p : tdef) : tcgloc;
+ begin
+ { Later, the LOC_REFERENCE is in most cases changed into LOC_REGISTER
+ if push_addr_param for the def is true
+ }
+ case p.typ of
+ orddef:
+ result:=LOC_REGISTER;
+ floatdef:
+ result:=LOC_REGISTER;
+ enumdef:
+ result:=LOC_REGISTER;
+ pointerdef:
+ result:=LOC_REGISTER;
+ formaldef:
+ result:=LOC_REGISTER;
+ classrefdef:
+ result:=LOC_REGISTER;
+ recorddef:
+ result:=LOC_REGISTER;
+ objectdef:
+ result:=LOC_REGISTER;
+ stringdef:
+ if is_shortstring(p) or is_longstring(p) then
+ result:=LOC_REFERENCE
+ else
+ result:=LOC_REGISTER;
+ procvardef:
+ result:=LOC_REGISTER;
+ filedef:
+ result:=LOC_REGISTER;
+ arraydef:
+ if is_dynamic_array(p) then
+ result:=LOC_REGISTER
+ else
+ result:=LOC_REFERENCE;
+ setdef:
+ if is_smallset(p) then
+ result:=LOC_REGISTER
+ else
+ result:=LOC_REFERENCE;
+ variantdef:
+ result:=LOC_REGISTER;
+ { avoid problems with errornous definitions }
+ errordef:
+ result:=LOC_REGISTER;
+ else
+ internalerror(2017032603);
+ end;
+ end;
+
+
+ function tcpuparamanager.push_addr_param(varspez:tvarspez;def : tdef;calloption : tproccalloption) : boolean;
+ begin
+ result:=false;
+ if varspez in [vs_var,vs_out,vs_constref] then
+ begin
+ result:=true;
+ exit;
+ end;
+ case def.typ of
+ objectdef:
+ result:=is_object(def) and ((varspez=vs_const) or (def.size=0));
+ recorddef:
+ result:=(varspez=vs_const) or (def.size=0);
+ variantdef,
+ formaldef:
+ result:=true;
+ arraydef:
+ result:=(tarraydef(def).highrange>=tarraydef(def).lowrange) or
+ is_open_array(def) or
+ is_array_of_const(def) or
+ is_array_constructor(def);
+ setdef :
+ result:=not is_smallset(def);
+ stringdef :
+ result:=tstringdef(def).stringtype in [st_shortstring,st_longstring];
+ else
+ result:=def.size>8;
+ end;
+ end;
+
+
+ function tcpuparamanager.ret_in_param(def:tdef;pd:tabstractprocdef):boolean;
+ begin
+ if handle_common_ret_in_param(def,pd,result) then
+ exit;
+ case def.typ of
+ recorddef:
+ { this is how gcc 4.0.4 on linux seems to do it, it doesn't look like being
+ ARM ABI standard compliant
+ }
+ result:=not((trecorddef(def).symtable.SymList.count=1) and
+ not(ret_in_param(tabstractvarsym(trecorddef(def).symtable.SymList[0]).vardef,pd)));
+ {
+ objectdef
+ arraydef:
+ result:=not(def.size in [1,2,4]);
+ }
+ else
+ if def.size>4 then
+ result:=true
+ else
+ result:=inherited ret_in_param(def,pd);
+ end;
+ end;
+
+
+ procedure tcpuparamanager.init_values(var curintreg, curfloatreg, curmmreg: tsuperregister; var cur_stack_offset: longint);
+ begin
+ curintreg:=RS_HL;
+ curfloatreg:=RS_INVALID;
+ curmmreg:=RS_INVALID;
+ cur_stack_offset:=0;
+ end;
+
+
+ { TODO : fix tcpuparamanager.create_paraloc_info_intern }
+ function tcpuparamanager.create_paraloc_info_intern(p : tabstractprocdef; side: tcallercallee; paras: tparalist;
+ var curintreg, curfloatreg, curmmreg: tsuperregister; var cur_stack_offset: longint):longint;
+
+ var
+ nextintreg,nextfloatreg,nextmmreg : tsuperregister;
+ paradef : tdef;
+ paraloc : pcgparalocation;
+ stack_offset : longint;
+ hp : tparavarsym;
+ loc : tcgloc;
+ paracgsize : tcgsize;
+ paralen : longint;
+ i : integer;
+ firstparaloc: boolean;
+
+ procedure assignintreg;
+ begin
+ { In case of po_delphi_nested_cc, the parent frame pointer
+ is always passed on the stack. }
+ //if false and { no fastcall yet }
+ // (nextintreg=RS_HL) and
+ // (not(vo_is_parentfp in hp.varoptions) or
+ // not(po_delphi_nested_cc in p.procoptions)) then
+ // begin
+ // paraloc^.loc:=LOC_REGISTER;
+ // paraloc^.register:=newreg(R_INTREGISTER,nextintreg-1,R_SUBWHOLE);
+ // paraloc:=hp.paraloc[side].add_location;
+ // paraloc^.loc:=LOC_REGISTER;
+ // paraloc^.register:=newreg(R_INTREGISTER,nextintreg,R_SUBWHOLE);
+ // dec(nextintreg,2);
+ // end
+ //else
+ begin
+ paraloc^.loc:=LOC_REFERENCE;
+ paraloc^.reference.index:=NR_STACK_POINTER_REG;
+ paraloc^.reference.offset:=stack_offset;
+ inc(stack_offset,2);
+ end;
+ end;
+
+
+ begin
+ result:=0;
+ nextintreg:=curintreg;
+ nextfloatreg:=curfloatreg;
+ nextmmreg:=curmmreg;
+ stack_offset:=cur_stack_offset;
+
+ for i:=0 to paras.count-1 do
+ begin
+ hp:=tparavarsym(paras[i]);
+ paradef:=hp.vardef;
+
+ hp.paraloc[side].reset;
+
+ { currently only support C-style array of const,
+ there should be no location assigned to the vararg array itself }
+ if (p.proccalloption in cstylearrayofconst) and
+ is_array_of_const(paradef) then
+ begin
+ paraloc:=hp.paraloc[side].add_location;
+ { hack: the paraloc must be valid, but is not actually used }
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_HL;
+ paraloc^.size:=OS_ADDR;
+ paraloc^.def:=voidpointertype;
+ break;
+ end;
+
+ if push_addr_param(hp.varspez,paradef,p.proccalloption) then
+ begin
+ paradef:=cpointerdef.getreusable_no_free(paradef);
+ loc:=LOC_REGISTER;
+ paracgsize:=OS_ADDR;
+ paralen:=tcgsize2size[OS_ADDR];
+ end
+ else
+ begin
+ if not is_special_array(paradef) then
+ paralen := paradef.size
+ else
+ paralen := tcgsize2size[def_cgsize(paradef)];
+ // loc := getparaloc(p.proccalloption,paradef);
+ loc:=LOC_REFERENCE;
+ if (paradef.typ in [objectdef,arraydef,recorddef]) and
+ not is_special_array(paradef) and
+ (hp.varspez in [vs_value,vs_const]) then
+ paracgsize := int_cgsize(paralen)
+ else
+ begin
+ paracgsize:=def_cgsize(paradef);
+ { for things like formaldef }
+ if (paracgsize=OS_NO) then
+ begin
+ paracgsize:=OS_ADDR;
+ paralen:=tcgsize2size[OS_ADDR];
+ paradef:=voidpointertype;
+ end;
+ end
+ end;
+
+ hp.paraloc[side].size:=paracgsize;
+ hp.paraloc[side].Alignment:=std_param_align;
+ hp.paraloc[side].intsize:=paralen;
+ hp.paraloc[side].def:=paradef;
+
+{$ifdef EXTDEBUG}
+ if paralen=0 then
+ internalerror(200410311);
+{$endif EXTDEBUG}
+ firstparaloc:=true;
+ if loc=LOC_REGISTER then
+ begin
+ { the lsb is located in the register with the lowest number,
+ by adding paralen mod 2, make the size even
+ }
+ nextintreg:=curintreg-(paralen+(paralen mod 2))+1;
+ if nextintreg>=RS_HL then
+ curintreg:=nextintreg-1
+ else
+ begin
+ curintreg:=RS_HL;
+ loc:=LOC_REFERENCE;
+ end;
+ end;
+ while paralen>0 do
+ begin
+ paraloc:=hp.paraloc[side].add_location;
+
+ if (loc=LOC_REGISTER) and (paracgsize in [OS_F32,OS_F64,OS_F80]) then
+ case paracgsize of
+ OS_F32:
+ begin
+ paraloc^.size:=OS_32;
+ paraloc^.def:=u32inttype;
+ end;
+ OS_F64:
+ begin
+ paraloc^.size:=OS_32;
+ paraloc^.def:=u32inttype;
+ end;
+ else
+ internalerror(2005082901);
+ end
+ else
+ begin
+ paraloc^.size:=paracgsize;
+ paraloc^.def:=paradef;
+ end;
+ case loc of
+ LOC_REGISTER:
+ begin
+ if nextintreg>=RS_HL then
+ begin
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+ paraloc^.register:=newreg(R_INTREGISTER,nextintreg,R_SUBWHOLE);
+ inc(nextintreg);
+ end
+ else
+ { parameters are always passed completely in registers or in memory on Z80 }
+ internalerror(2015041002);
+ dec(paralen,tcgsize2size[paraloc^.size]);
+ end;
+ LOC_REFERENCE:
+ begin
+ if push_addr_param(hp.varspez,paradef,p.proccalloption) then
+ begin
+ paraloc^.size:=OS_ADDR;
+ paraloc^.def:=cpointerdef.getreusable_no_free(paradef);
+ assignintreg
+ end
+ else
+ begin
+ paraloc^.def:=paradef;
+ paraloc^.loc:=LOC_REFERENCE;
+ paraloc^.reference.index:=NR_STACK_POINTER_REG;
+ paraloc^.reference.offset:=stack_offset;
+ inc(stack_offset,paradef.size);
+ end;
+ paralen:=0;
+ end;
+ else
+ internalerror(2002071002);
+ end;
+ if side=calleeside then
+ begin
+ if paraloc^.loc=LOC_REFERENCE then
+ begin
+ paraloc^.reference.index:=NR_FRAME_POINTER_REG;
+ inc(paraloc^.reference.offset,target_info.first_parm_offset);
+ end;
+ end;
+ firstparaloc:=false;
+ end;
+ end;
+ curfloatreg:=nextfloatreg;
+ curmmreg:=nextmmreg;
+ cur_stack_offset:=stack_offset;
+ result:=cur_stack_offset;
+ end;
+
+
+ function tcpuparamanager.create_paraloc_info(p : tabstractprocdef; side: tcallercallee):longint;
+ var
+ cur_stack_offset: longint;
+ curintreg, curfloatreg, curmmreg: tsuperregister;
+ retcgsize : tcgsize;
+ begin
+ init_values(curintreg,curfloatreg,curmmreg,cur_stack_offset);
+
+ result:=create_paraloc_info_intern(p,side,p.paras,curintreg,curfloatreg,curmmreg,cur_stack_offset);
+
+ create_funcretloc_info(p,side);
+ end;
+
+
+ function tcpuparamanager.get_funcretloc(p : tabstractprocdef; side: tcallercallee; forcetempdef: tdef): tcgpara;
+ var
+ retcgsize : tcgsize;
+ paraloc : pcgparalocation;
+ reg : TRegister;
+ begin
+ if set_common_funcretloc_info(p,forcetempdef,retcgsize,result) then
+ exit;
+
+ paraloc:=result.add_location;
+ { Return in FPU register? }
+ if result.def.typ=floatdef then
+ begin
+ if (p.proccalloption in [pocall_softfloat]) or (cs_fp_emulation in current_settings.moduleswitches) then
+ begin
+ case retcgsize of
+ OS_32,
+ OS_F32:
+ begin
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_L;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+
+ paraloc:=result.add_location;
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_H;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+
+ paraloc:=result.add_location;
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_E;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+
+ paraloc:=result.add_location;
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_D;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+ end;
+ else
+ internalerror(2005082603);
+ end;
+ end
+ else
+ begin
+ paraloc^.loc:=LOC_FPUREGISTER;
+ paraloc^.register:=NR_FPU_RESULT_REG;
+ paraloc^.size:=retcgsize;
+ paraloc^.def:=result.def;
+ end;
+ end
+ { Return in register }
+ else
+ begin
+ case retcgsize of
+ OS_32,OS_S32:
+ begin
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_L;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+
+ paraloc:=result.add_location;
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_H;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+
+ paraloc:=result.add_location;
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_E;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+
+ paraloc:=result.add_location;
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_D;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+ end;
+ OS_16,OS_S16:
+ begin
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_L;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+
+ paraloc:=result.add_location;
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_H;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+ end;
+ OS_8,OS_S8:
+ begin
+ paraloc^.loc:=LOC_REGISTER;
+ paraloc^.register:=NR_L;
+ paraloc^.size:=OS_8;
+ paraloc^.def:=u8inttype;
+ end;
+ else
+ internalerror(2014030101);
+ end;
+ end;
+ end;
+
+
+ function tcpuparamanager.create_varargs_paraloc_info(p : tabstractprocdef; side: tcallercallee; varargspara:tvarargsparalist):longint;
+ var
+ cur_stack_offset: longint;
+ curintreg, curfloatreg, curmmreg: tsuperregister;
+ begin
+ init_values(curintreg,curfloatreg,curmmreg,cur_stack_offset);
+
+ result:=create_paraloc_info_intern(p,side,p.paras,curintreg,curfloatreg,curmmreg,cur_stack_offset);
+ if (p.proccalloption in cstylearrayofconst) then
+ { just continue loading the parameters in the registers }
+ result:=create_paraloc_info_intern(p,side,varargspara,curintreg,curfloatreg,curmmreg,cur_stack_offset)
+ else
+ internalerror(200410231);
+ end;
+
+begin
+ paramanager:=tcpuparamanager.create;
+end.
diff --git a/compiler/z80/cpupi.pas b/compiler/z80/cpupi.pas
new file mode 100644
index 0000000000..805c686838
--- /dev/null
+++ b/compiler/z80/cpupi.pas
@@ -0,0 +1,70 @@
+{
+ Copyright (c) 2008 by Florian Klaempfl
+
+ This unit contains the CPU specific part of tprocinfo
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+
+{ This unit contains the CPU specific part of tprocinfo. }
+unit cpupi;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ uses
+ globtype,cutils,
+ procinfo,cpuinfo,psub;
+
+ type
+ tcpuprocinfo = class(tcgprocinfo)
+ // procedure handle_body_start;override;
+ // procedure after_pass1;override;
+ procedure set_first_temp_offset;override;
+ function calc_stackframe_size:longint;override;
+ end;
+
+
+ implementation
+
+ uses
+ globals,systems,
+ cpubase,
+ aasmtai,aasmdata,
+ tgobj,
+ symconst,symsym,paramgr,
+ cgbase,
+ cgobj,
+ aasmcpu;
+
+ procedure tcpuprocinfo.set_first_temp_offset;
+ begin
+ tg.setfirsttemp(0);
+ end;
+
+
+ function tcpuprocinfo.calc_stackframe_size:longint;
+ begin
+ result:=-tg.lasttemp+maxpushedparasize;
+ end;
+
+
+begin
+ cprocinfo:=tcpuprocinfo;
+end.
+
diff --git a/compiler/z80/cputarg.pas b/compiler/z80/cputarg.pas
new file mode 100644
index 0000000000..71b756a90f
--- /dev/null
+++ b/compiler/z80/cputarg.pas
@@ -0,0 +1,76 @@
+{
+ Copyright (c) 2001-2008 by Peter Vreman
+
+ Includes the Z80 dependent target units
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit cputarg;
+
+{$i fpcdefs.inc}
+
+interface
+
+
+implementation
+
+ uses
+ systems { prevent a syntax error when nothing is included }
+
+{**************************************
+ Targets
+**************************************}
+
+ {$ifndef NOTARGETEMBEDDED}
+ ,t_embed
+ {$endif}
+ {$ifndef NOTARGETZXSPECTRUM}
+ ,t_zxspectrum
+ {$endif}
+
+{**************************************
+ Assemblers
+**************************************}
+
+ {$ifndef NOAGZ80ASM}
+ ,agz80asm
+ {$endif}
+ {$ifndef NOAGSDASZ80}
+ ,agsdasz80
+ {$endif}
+
+{**************************************
+ Assembler Readers
+**************************************}
+
+ {$ifndef NoRaZ80asm}
+ ,raz80asm
+ {$endif NoRaZ80asm}
+
+{**************************************
+ Debuginfo
+**************************************}
+
+ {$ifndef NoDbgStabs}
+ ,dbgstabs
+ {$endif NoDbgStabs}
+ {$ifndef NoDbgDwarf}
+ ,dbgdwarf
+ {$endif NoDbgDwarf}
+ ;
+
+end.
diff --git a/compiler/z80/hlcgcpu.pas b/compiler/z80/hlcgcpu.pas
new file mode 100644
index 0000000000..e284559d43
--- /dev/null
+++ b/compiler/z80/hlcgcpu.pas
@@ -0,0 +1,88 @@
+{
+ Copyright (c) 1998-2010 by Florian Klaempfl and Jonas Maebe
+ Member of the Free Pascal development team
+
+ This unit contains routines to create a pass-through high-level code
+ generator. This is used by most regular code generators.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+
+unit hlcgcpu;
+
+{$i fpcdefs.inc}
+
+interface
+
+ uses
+ aasmdata,
+ symdef,
+ hlcg2ll;
+
+ type
+ thlcgcpu = class(thlcg2ll)
+ procedure g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);override;
+ end;
+
+ procedure create_hlcodegen;
+
+implementation
+
+ uses
+ hlcgobj,
+ aasmbase,aasmtai,
+ cgcpu,
+ symconst,
+ verbose,fmodule,cutils;
+
+ procedure thlcgcpu.g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);
+ var
+ make_global: Boolean;
+ begin
+ if not(procdef.proctypeoption in [potype_function,potype_procedure]) then
+ Internalerror(200006137);
+ if not assigned(procdef.struct) or
+ (procdef.procoptions*[po_classmethod, po_staticmethod,
+ po_methodpointer, po_interrupt, po_iocheck]<>[]) then
+ Internalerror(200006138);
+ if procdef.owner.symtabletype<>ObjectSymtable then
+ Internalerror(200109191);
+
+ make_global:=false;
+ if (not current_module.is_unit) or
+ create_smartlink or
+ (procdef.owner.defowner.owner.symtabletype=globalsymtable) then
+ make_global:=true;
+
+ if make_global then
+ List.concat(Tai_symbol.Createname_global(labelname,AT_FUNCTION,0,procdef))
+ else
+ List.concat(Tai_symbol.Createname_hidden(labelname,AT_FUNCTION,0,procdef));
+
+ list.Concat(tai_comment.Create(strpnew('WARNING! not implemented: g_intf_wrapper')));
+ end;
+
+
+ procedure create_hlcodegen;
+ begin
+ hlcg:=thlcgcpu.create;
+ create_codegen;
+ end;
+
+begin
+ chlcgobj:=thlcgcpu;
+end.
diff --git a/compiler/z80/nz80add.pas b/compiler/z80/nz80add.pas
new file mode 100644
index 0000000000..ea2808d927
--- /dev/null
+++ b/compiler/z80/nz80add.pas
@@ -0,0 +1,667 @@
+{
+ Copyright (c) 2008 by Florian Klaempfl
+
+ Code generation for add nodes on the AVR
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit nz80add;
+
+{$i fpcdefs.inc}
+
+interface
+
+ uses
+ node,ncgadd, symtype,cpubase;
+
+ type
+
+ { TZ80AddNode }
+
+ TZ80AddNode = class(tcgaddnode)
+ private
+ function GetResFlags(unsigned:Boolean;anodetype:tnodetype):TResFlags;
+ protected
+ function use_mul_helper: boolean;override;
+ function first_cmppointer: tnode;override;
+ function pass_1 : tnode;override;
+ procedure second_cmpordinal;override;
+ procedure second_cmpsmallset;override;
+ procedure second_cmp64bit;override;
+ procedure second_cmp16_32_64bit;
+ procedure second_cmp;
+ end;
+
+ implementation
+
+ uses
+ globtype,systems,
+ cutils,verbose,globals,
+ symconst,symdef,paramgr,
+ aasmbase,aasmtai,aasmdata,aasmcpu,defutil,htypechk,
+ cgbase,cgutils,cgcpu,
+ cpuinfo,pass_1,pass_2,procinfo,
+ cpupara,
+ ncon,nset,nadd,
+ ncgutil,tgobj,rgobj,rgcpu,cgobj,cg64f32,
+ hlcgobj;
+
+{*****************************************************************************
+ TZ80AddNode
+*****************************************************************************}
+
+
+ function TZ80AddNode.GetResFlags(unsigned: Boolean; anodetype: tnodetype): TResFlags;
+ begin
+ case anodetype of
+ equaln:
+ GetResFlags:=F_E;
+ unequaln:
+ GetResFlags:=F_NE;
+ else
+ if not(unsigned) then
+ begin
+ { signed }
+ if nf_swapped in flags then
+ case anodetype of
+ ltn:
+ GetResFlags:=F_NotPossible;
+ lten:
+ GetResFlags:=F_P;
+ gtn:
+ GetResFlags:=F_M;
+ gten:
+ GetResFlags:=F_NotPossible;
+ else
+ internalerror(2014082020);
+ end
+ else
+ case anodetype of
+ ltn:
+ GetResFlags:=F_M;
+ lten:
+ GetResFlags:=F_NotPossible;
+ gtn:
+ GetResFlags:=F_NotPossible;
+ gten:
+ GetResFlags:=F_P;
+ else
+ internalerror(2014082021);
+ end;
+ end
+ else
+ begin
+ { unsigned }
+ if nf_swapped in Flags then
+ case anodetype of
+ ltn:
+ GetResFlags:=F_NotPossible;
+ lten:
+ GetResFlags:=F_NC;
+ gtn:
+ GetResFlags:=F_C;
+ gten:
+ GetResFlags:=F_NotPossible;
+ else
+ internalerror(2014082022);
+ end
+ else
+ case anodetype of
+ ltn:
+ GetResFlags:=F_C;
+ lten:
+ GetResFlags:=F_NotPossible;
+ gtn:
+ GetResFlags:=F_NotPossible;
+ gten:
+ GetResFlags:=F_NC;
+ else
+ internalerror(2014082023);
+ end;
+ end;
+ end;
+ end;
+
+
+ function TZ80AddNode.use_mul_helper: boolean;
+ begin
+ result:=(nodetype=muln);
+ end;
+
+
+ function TZ80AddNode.first_cmppointer: tnode;
+ begin
+ result:=nil;
+ expectloc:=LOC_JUMP;
+ end;
+
+
+ procedure TZ80AddNode.second_cmpsmallset;
+
+ procedure gencmp(tmpreg1,tmpreg2 : tregister);
+ var
+ i : byte;
+ begin
+ //current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CP,tmpreg1,tmpreg2));
+ //for i:=2 to tcgsize2size[left.location.size] do
+ // begin
+ // tmpreg1:=GetNextReg(tmpreg1);
+ // tmpreg2:=GetNextReg(tmpreg2);
+ // current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CPC,tmpreg1,tmpreg2));
+ // end;
+ end;
+
+ var
+ tmpreg : tregister;
+ begin
+ //pass_left_right;
+ //location_reset(location,LOC_FLAGS,OS_NO);
+ //force_reg_left_right(false,false);
+ //
+ //case nodetype of
+ // equaln:
+ // begin
+ // gencmp(left.location.register,right.location.register);
+ // location.resflags:=F_EQ;
+ // end;
+ // unequaln:
+ // begin
+ // gencmp(left.location.register,right.location.register);
+ // location.resflags:=F_NE;
+ // end;
+ // lten,
+ // gten:
+ // begin
+ // if (not(nf_swapped in flags) and
+ // (nodetype = lten)) or
+ // ((nf_swapped in flags) and
+ // (nodetype = gten)) then
+ // swapleftright;
+ // tmpreg:=cg.getintregister(current_asmdata.CurrAsmList,location.size);
+ // cg.a_op_reg_reg_reg(current_asmdata.CurrAsmList,OP_AND,location.size,
+ // left.location.register,right.location.register,tmpreg);
+ // gencmp(tmpreg,right.location.register);
+ // location.resflags:=F_EQ;
+ // end;
+ // else
+ // internalerror(2004012401);
+ //end;
+ end;
+
+
+ procedure TZ80AddNode.second_cmp;
+ var
+ unsigned : boolean;
+ tmpreg1,tmpreg2 : tregister;
+ i : longint;
+ opdef: tdef;
+ opsize: TCgSize;
+ l: TAsmLabel;
+ begin
+ unsigned:=not(is_signed(left.resultdef)) or
+ not(is_signed(right.resultdef));
+ opdef:=left.resultdef;
+ opsize:=def_cgsize(opdef);
+
+ pass_left_right;
+
+ if (opsize=OS_8) or ((opsize=OS_S8) and (NodeType in [equaln,unequaln])) then
+ begin
+ if getresflags(unsigned,NodeType)=F_NotPossible then
+ swapleftright;
+
+ if left.location.loc<>LOC_REGISTER then
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,false);
+
+ if right.location.loc in [LOC_REFERENCE,LOC_CREFERENCE] then
+ begin
+ if is_ref_in_opertypes(right.location.reference,[OT_REF_IX_d,OT_REF_IY_d,OT_REF_HL]) then
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ cg.a_load_loc_reg(current_asmdata.CurrAsmList,def_cgsize(left.resultdef),left.location,NR_A);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_ref(A_CP,NR_A,right.location.reference));
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ end
+ else
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,right.location,right.resultdef,right.resultdef,false);
+ end;
+ case right.location.loc of
+ LOC_CONSTANT:
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ cg.a_load_loc_reg(current_asmdata.CurrAsmList,def_cgsize(left.resultdef),left.location,NR_A);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_CP,NR_A,right.location.value));
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ end;
+ LOC_REGISTER,LOC_CREGISTER:
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ cg.a_load_loc_reg(current_asmdata.CurrAsmList,def_cgsize(left.resultdef),left.location,NR_A);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_reg(A_CP,NR_A,right.location.register));
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ end;
+ LOC_REFERENCE,LOC_CREFERENCE:
+ begin
+ { Already handled before the case statement. Nothing to do here. }
+ end;
+ else
+ internalerror(2020040402);
+ end;
+
+ location_reset(location,LOC_FLAGS,OS_NO);
+ location.resflags:=getresflags(unsigned,NodeType);
+ end
+ else if opsize=OS_S8 then
+ begin
+ if getresflags(unsigned,NodeType)=F_NotPossible then
+ swapleftright;
+
+ if left.location.loc<>LOC_REGISTER then
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,false);
+
+ if right.location.loc in [LOC_REFERENCE,LOC_CREFERENCE] then
+ begin
+ if is_ref_in_opertypes(right.location.reference,[OT_REF_IX_d,OT_REF_IY_d,OT_REF_HL]) then
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ cg.a_load_loc_reg(current_asmdata.CurrAsmList,def_cgsize(left.resultdef),left.location,NR_A);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_ref(A_SUB,NR_A,right.location.reference));
+ end
+ else
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,right.location,right.resultdef,right.resultdef,false);
+ end;
+ case right.location.loc of
+ LOC_CONSTANT:
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ cg.a_load_loc_reg(current_asmdata.CurrAsmList,def_cgsize(left.resultdef),left.location,NR_A);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_SUB,NR_A,right.location.value));
+ end;
+ LOC_REGISTER,LOC_CREGISTER:
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ cg.a_load_loc_reg(current_asmdata.CurrAsmList,def_cgsize(left.resultdef),left.location,NR_A);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_reg(A_SUB,NR_A,right.location.register));
+ end;
+ LOC_REFERENCE,LOC_CREFERENCE:
+ begin
+ { Already handled before the case statement. Nothing to do here. }
+ end;
+ else
+ internalerror(2020040402);
+ end;
+ current_asmdata.getjumplabel(l);
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_PO,l);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_XOR,NR_A,$80));
+ cg.a_label(current_asmdata.CurrAsmList,l);
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+
+ location_reset(location,LOC_FLAGS,OS_NO);
+ location.resflags:=getresflags(unsigned,NodeType);
+ end
+ else
+ internalerror(2020040401);
+ end;
+
+
+ procedure TZ80AddNode.second_cmp64bit;
+ begin
+ second_cmp16_32_64bit;
+ end;
+
+
+ procedure TZ80AddNode.second_cmp16_32_64bit;
+ var
+ truelabel,
+ falselabel: tasmlabel;
+ unsigned : boolean;
+ i, size: Integer;
+ tmpref: treference;
+ op: TAsmOp;
+ actualnodetype: tnodetype;
+ begin
+ truelabel:=nil;
+ falselabel:=nil;
+ pass_left_right;
+
+ unsigned:=not(is_signed(left.resultdef)) or
+ not(is_signed(right.resultdef));
+
+ { we have LOC_JUMP as result }
+ current_asmdata.getjumplabel(truelabel);
+ current_asmdata.getjumplabel(falselabel);
+ location_reset_jump(location,truelabel,falselabel);
+
+ size:=tcgsize2size[def_cgsize(left.resultdef)];
+
+ if NodeType in [equaln,unequaln] then
+ begin
+ if left.location.loc<>LOC_REGISTER then
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,false);
+
+ if right.location.loc in [LOC_REFERENCE,LOC_CREFERENCE] then
+ begin
+ if is_ref_in_opertypes(right.location.reference,[OT_REF_IX_d,OT_REF_IY_d,OT_REF_HL]) then
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ tmpref:=right.location.reference;
+ for i:=0 to size-1 do
+ begin
+ cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_8,OS_8,tcgz80(cg).GetOffsetReg64(left.location.register,left.location.registerhi,i),NR_A);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_ref(A_CP,NR_A,tmpref));
+ case NodeType of
+ equaln:
+ if i<>(size-1) then
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,falselabel)
+ else
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_E,truelabel);
+ unequaln:
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,truelabel);
+ else
+ internalerror(2020042102);
+ end;
+ if i<>(size-1) then
+ tcgz80(cg).adjust_normalized_ref(current_asmdata.CurrAsmList,tmpref,1);
+ end;
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ cg.a_jmp_always(current_asmdata.CurrAsmList,falselabel);
+ end
+ else
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,right.location,right.resultdef,right.resultdef,false);
+ end;
+ case right.location.loc of
+ LOC_CONSTANT:
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ for i:=0 to size-1 do
+ begin
+ cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_8,OS_8,tcgz80(cg).GetOffsetReg64(left.location.register,left.location.registerhi,i),NR_A);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(A_CP,NR_A,byte(right.location.value shr (i*8))));
+ case NodeType of
+ equaln:
+ if i<>(size-1) then
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,falselabel)
+ else
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_E,truelabel);
+ unequaln:
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,truelabel);
+ else
+ internalerror(2020042102);
+ end;
+ end;
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ cg.a_jmp_always(current_asmdata.CurrAsmList,falselabel);
+ end;
+ LOC_REGISTER,LOC_CREGISTER:
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ for i:=0 to size-1 do
+ begin
+ cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_8,OS_8,tcgz80(cg).GetOffsetReg64(left.location.register,left.location.registerhi,i),NR_A);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_reg(A_CP,NR_A,tcgz80(cg).GetOffsetReg64(right.location.register,right.location.registerhi,i)));
+ case NodeType of
+ equaln:
+ if i<>(size-1) then
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,falselabel)
+ else
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_E,truelabel);
+ unequaln:
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,truelabel);
+ else
+ internalerror(2020042102);
+ end;
+ end;
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ cg.a_jmp_always(current_asmdata.CurrAsmList,falselabel);
+ end;
+ LOC_REFERENCE,LOC_CREFERENCE:
+ begin
+ { Already handled before the case statement. Nothing to do here. }
+ end;
+ else
+ internalerror(2020042103);
+ end;
+ end
+ else
+ begin
+ if nf_swapped in Flags then
+ begin
+ case NodeType of
+ ltn:
+ actualnodetype:=gtn;
+ lten:
+ actualnodetype:=gten;
+ gtn:
+ actualnodetype:=ltn;
+ gten:
+ actualnodetype:=lten;
+ else
+ internalerror(2020042701);
+ end;
+ end
+ else
+ actualnodetype:=NodeType;
+
+ if left.location.loc<>LOC_REGISTER then
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,false);
+
+ if right.location.loc in [LOC_REFERENCE,LOC_CREFERENCE] then
+ begin
+ if is_ref_in_opertypes(right.location.reference,[OT_REF_IX_d,OT_REF_IY_d,OT_REF_HL]) then
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ tmpref:=right.location.reference;
+ tcgz80(cg).adjust_normalized_ref(current_asmdata.CurrAsmList,tmpref,size-1);
+ for i:=size-1 downto 0 do
+ begin
+ cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_8,OS_8,tcgz80(cg).GetOffsetReg64(left.location.register,left.location.registerhi,i),NR_A);
+ if (i=(size-1)) and (not unsigned) then
+ op:=A_SUB
+ else
+ op:=A_CP;
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_ref(op,NR_A,tmpref));
+ if (i=(size-1)) and (not unsigned) then
+ case actualnodetype of
+ ltn,
+ lten:
+ tcgz80(cg).a_jmp_signed_cmp_3way(current_asmdata.CurrAsmList,truelabel,nil,falselabel);
+ gtn,
+ gten:
+ tcgz80(cg).a_jmp_signed_cmp_3way(current_asmdata.CurrAsmList,falselabel,nil,truelabel);
+ else
+ internalerror(2020042202);
+ end
+ else if i<>0 then
+ case actualnodetype of
+ ltn,
+ lten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,truelabel,nil,falselabel);
+ gtn,
+ gten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,falselabel,nil,truelabel);
+ else
+ internalerror(2020042202);
+ end
+ else
+ case actualnodetype of
+ ltn:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,truelabel,falselabel,falselabel);
+ lten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,truelabel,truelabel,falselabel);
+ gtn:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,falselabel,falselabel,truelabel);
+ gten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,falselabel,truelabel,truelabel);
+ else
+ internalerror(2020042203);
+ end;
+ if i<>0 then
+ tcgz80(cg).adjust_normalized_ref(current_asmdata.CurrAsmList,tmpref,-1);
+ end;
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ end
+ else
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,right.location,right.resultdef,right.resultdef,false);
+ end;
+ case right.location.loc of
+ LOC_CONSTANT:
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ for i:=size-1 downto 0 do
+ begin
+ cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_8,OS_8,tcgz80(cg).GetOffsetReg64(left.location.register,left.location.registerhi,i),NR_A);
+ if (i=(size-1)) and (not unsigned) then
+ op:=A_SUB
+ else
+ op:=A_CP;
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_const(op,NR_A,byte(right.location.value shr (i*8))));
+ if (i=(size-1)) and (not unsigned) then
+ case actualnodetype of
+ ltn,
+ lten:
+ tcgz80(cg).a_jmp_signed_cmp_3way(current_asmdata.CurrAsmList,truelabel,nil,falselabel);
+ gtn,
+ gten:
+ tcgz80(cg).a_jmp_signed_cmp_3way(current_asmdata.CurrAsmList,falselabel,nil,truelabel);
+ else
+ internalerror(2020042202);
+ end
+ else if i<>0 then
+ case actualnodetype of
+ ltn,
+ lten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,truelabel,nil,falselabel);
+ gtn,
+ gten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,falselabel,nil,truelabel);
+ else
+ internalerror(2020042202);
+ end
+ else
+ case actualnodetype of
+ ltn:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,truelabel,falselabel,falselabel);
+ lten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,truelabel,truelabel,falselabel);
+ gtn:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,falselabel,falselabel,truelabel);
+ gten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,falselabel,truelabel,truelabel);
+ else
+ internalerror(2020042203);
+ end;
+ end;
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ end;
+ LOC_REGISTER,LOC_CREGISTER:
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ for i:=size-1 downto 0 do
+ begin
+ cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_8,OS_8,tcgz80(cg).GetOffsetReg64(left.location.register,left.location.registerhi,i),NR_A);
+ if (i=(size-1)) and (not unsigned) then
+ op:=A_SUB
+ else
+ op:=A_CP;
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_reg(op,NR_A,tcgz80(cg).GetOffsetReg64(right.location.register,right.location.registerhi,i)));
+ if (i=(size-1)) and (not unsigned) then
+ case actualnodetype of
+ ltn,
+ lten:
+ tcgz80(cg).a_jmp_signed_cmp_3way(current_asmdata.CurrAsmList,truelabel,nil,falselabel);
+ gtn,
+ gten:
+ tcgz80(cg).a_jmp_signed_cmp_3way(current_asmdata.CurrAsmList,falselabel,nil,truelabel);
+ else
+ internalerror(2020042202);
+ end
+ else if i<>0 then
+ case actualnodetype of
+ ltn,
+ lten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,truelabel,nil,falselabel);
+ gtn,
+ gten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,falselabel,nil,truelabel);
+ else
+ internalerror(2020042202);
+ end
+ else
+ case actualnodetype of
+ ltn:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,truelabel,falselabel,falselabel);
+ lten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,truelabel,truelabel,falselabel);
+ gtn:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,falselabel,falselabel,truelabel);
+ gten:
+ tcgz80(cg).a_jmp_unsigned_cmp_3way(current_asmdata.CurrAsmList,falselabel,truelabel,truelabel);
+ else
+ internalerror(2020042203);
+ end;
+ end;
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ end;
+ LOC_REFERENCE,LOC_CREFERENCE:
+ begin
+ { Already handled before the case statement. Nothing to do here. }
+ end;
+ else
+ internalerror(2020042103);
+ end;
+ end;
+ end;
+
+
+ function TZ80AddNode.pass_1 : tnode;
+ begin
+ result:=inherited pass_1;
+{$ifdef dummy}
+ if not(assigned(result)) then
+ begin
+ unsigned:=not(is_signed(left.resultdef)) or
+ not(is_signed(right.resultdef));
+
+ if is_64bit(left.resultdef) and
+ ((nodetype in [equaln,unequaln]) or
+ (unsigned and (nodetype in [ltn,lten,gtn,gten]))
+ ) then
+ expectloc:=LOC_FLAGS;
+ end;
+ { handling boolean expressions }
+ if not(assigned(result)) and
+ (
+ not(is_boolean(left.resultdef)) or
+ not(is_boolean(right.resultdef)) or
+ is_dynamic_array(left.resultdef)
+ ) then
+ expectloc:=LOC_FLAGS;
+{$endif dummy}
+ end;
+
+
+ procedure TZ80AddNode.second_cmpordinal;
+ begin
+ if left.resultdef.size>=2 then
+ second_cmp16_32_64bit
+ else
+ second_cmp;
+ end;
+
+begin
+ caddnode:=TZ80AddNode;
+end.
diff --git a/compiler/z80/nz80cal.pas b/compiler/z80/nz80cal.pas
new file mode 100644
index 0000000000..dd44a412bb
--- /dev/null
+++ b/compiler/z80/nz80cal.pas
@@ -0,0 +1,71 @@
+{
+ Copyright (c) 1998-2002 by Florian Klaempfl
+
+ Generate Z80 assembler for in call nodes
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit nz80cal;
+
+{$i fpcdefs.inc}
+
+interface
+
+ uses
+ ncgcal;
+
+ type
+ tz80callnode = class(tcgcallnode)
+ protected
+ procedure pop_parasize(pop_size:longint);override;
+ end;
+
+
+implementation
+
+ uses
+ cpubase,
+ aasmdata,aasmcpu,
+ ncal,
+ cgobj;
+
+
+{*****************************************************************************
+ TZ80CALLNODE
+*****************************************************************************}
+
+
+ procedure tz80callnode.pop_parasize(pop_size:longint);
+ begin
+ if pop_size>=2 then
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ while pop_size>=2 do
+ begin
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg(A_POP,NR_AF));
+ dec(pop_size,2);
+ end;
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ end;
+ if pop_size=1 then
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg(A_INC,NR_SP));
+ end;
+
+
+begin
+ ccallnode:=tz80callnode;
+end.
diff --git a/compiler/z80/nz80mat.pas b/compiler/z80/nz80mat.pas
new file mode 100644
index 0000000000..446507726c
--- /dev/null
+++ b/compiler/z80/nz80mat.pas
@@ -0,0 +1,156 @@
+{
+ Copyright (c) 1998-2002 by Florian Klaempfl
+
+ Generate Z80 assembler for math nodes
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit nz80mat;
+
+{$i fpcdefs.inc}
+
+interface
+
+ uses
+ node,nmat,ncgmat;
+
+ type
+
+ { tz80notnode }
+
+ tz80notnode = class(tcgnotnode)
+ protected
+ procedure second_boolean;override;
+ end;
+
+
+implementation
+
+ uses
+ globtype,systems,constexp,
+ cutils,verbose,globals,
+ symconst,symdef,aasmbase,aasmtai,aasmdata,aasmcpu,defutil,
+ cgbase,pass_2,
+ ncon,
+ cpubase,cpuinfo,
+ ncgutil,cgobj,cgutils,
+ hlcgobj;
+
+{*****************************************************************************
+ tz80notnode
+*****************************************************************************}
+
+
+ procedure tz80notnode.second_boolean;
+ var
+ i: Integer;
+ begin
+ if not handle_locjump then
+ begin
+ { the second pass could change the location of left }
+ { if it is a register variable, so we've to do }
+ { this before the case statement }
+ secondpass(left);
+
+ if left.location.loc in [LOC_CREFERENCE,LOC_REFERENCE] then
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,resultdef,false);
+ case left.location.loc of
+ LOC_FLAGS :
+ begin
+ location_reset(location,LOC_FLAGS,OS_NO);
+ location.resflags:=left.location.resflags;
+ inverse_flags(location.resflags);
+ end;
+(* LOC_CREFERENCE,
+ LOC_REFERENCE:
+ begin
+ {$if defined(cpu32bitalu)}
+ if is_64bit(resultdef) then
+ begin
+ hreg:=cg.GetIntRegister(current_asmdata.CurrAsmList,OS_32);
+ tcgx86(cg).make_simple_ref(current_asmdata.CurrAsmList,left.location.reference);
+ cg.a_load_ref_reg(current_asmdata.CurrAsmList,OS_32,OS_32,left.location.reference,hreg);
+ inc(left.location.reference.offset,4);
+ cg.a_op_ref_reg(current_asmdata.CurrAsmList,OP_OR,OS_32,left.location.reference,hreg);
+ end
+ else
+ {$elseif defined(cpu16bitalu)}
+ if is_64bit(resultdef) then
+ begin
+ hreg:=cg.GetIntRegister(current_asmdata.CurrAsmList,OS_16);
+ tcgx86(cg).make_simple_ref(current_asmdata.CurrAsmList,left.location.reference);
+ cg.a_load_ref_reg(current_asmdata.CurrAsmList,OS_16,OS_16,left.location.reference,hreg);
+ inc(left.location.reference.offset,2);
+ cg.a_op_ref_reg(current_asmdata.CurrAsmList,OP_OR,OS_16,left.location.reference,hreg);
+ inc(left.location.reference.offset,2);
+ cg.a_op_ref_reg(current_asmdata.CurrAsmList,OP_OR,OS_16,left.location.reference,hreg);
+ inc(left.location.reference.offset,2);
+ cg.a_op_ref_reg(current_asmdata.CurrAsmList,OP_OR,OS_16,left.location.reference,hreg);
+ end
+ else if is_32bit(resultdef) then
+ begin
+ hreg:=cg.GetIntRegister(current_asmdata.CurrAsmList,OS_16);
+ tcgx86(cg).make_simple_ref(current_asmdata.CurrAsmList,left.location.reference);
+ cg.a_load_ref_reg(current_asmdata.CurrAsmList,OS_16,OS_16,left.location.reference,hreg);
+ inc(left.location.reference.offset,2);
+ cg.a_op_ref_reg(current_asmdata.CurrAsmList,OP_OR,OS_16,left.location.reference,hreg);
+ end
+ else
+ {$endif}
+ emit_const_ref(A_CMP, TCGSize2Opsize[opsize], 0, left.location.reference);
+ location_reset(location,LOC_FLAGS,OS_NO);
+ location.resflags:=F_E;
+ end;*)
+ LOC_CONSTANT,
+ LOC_REGISTER,
+ LOC_CREGISTER,
+ LOC_SUBSETREG,
+ LOC_CSUBSETREG,
+ LOC_SUBSETREF,
+ LOC_CSUBSETREF :
+ begin
+ if tcgsize2size[def_cgsize(left.resultdef)]<>tcgsize2size[def_cgsize(resultdef)] then
+ internalerror(2020042209);
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,resultdef,false);
+ if tcgsize2size[def_cgsize(left.resultdef)]=1 then
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_8,OS_8,left.location.register,NR_A);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_reg(A_OR,NR_A,NR_A));
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ end
+ else
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_A);
+ cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_8,OS_8,left.location.register,NR_A);
+ for i:=1 to tcgsize2size[def_cgsize(left.resultdef)]-1 do
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_reg(A_OR,NR_A,cg.GetOffsetReg64(left.location.register,left.location.registerhi,i)));
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_A);
+ end;
+ location_reset(location,LOC_FLAGS,OS_NO);
+ location.resflags:=F_E;
+ end;
+ else
+ internalerror(2020042208);
+ end;
+ end;
+ end;
+
+
+begin
+ cnotnode:=tz80notnode;
+end.
diff --git a/compiler/z80/nz80mem.pas b/compiler/z80/nz80mem.pas
new file mode 100644
index 0000000000..77db443da5
--- /dev/null
+++ b/compiler/z80/nz80mem.pas
@@ -0,0 +1,71 @@
+{
+ Copyright (c) 1998-2002 by Florian Klaempfl
+
+ Generate Z80 assembler for in memory related nodes
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit nz80mem;
+
+{$i fpcdefs.inc}
+
+interface
+
+ uses
+ cgbase,cpubase,
+ nmem,ncgmem;
+
+ type
+
+ { tz80loadparentfpnode }
+
+ tz80loadparentfpnode = class(tcgloadparentfpnode)
+ procedure pass_generate_code;override;
+ end;
+
+implementation
+
+ uses
+ aasmdata,aasmcpu,
+ cgobj;
+
+
+{*****************************************************************************
+ TZ80LOADPARENTFPNODE
+*****************************************************************************}
+
+ procedure tz80loadparentfpnode.pass_generate_code;
+ begin
+ inherited pass_generate_code;
+ if (location.loc=LOC_REGISTER) and ((location.register=NR_IX) or (location.register=NR_IY)) then
+ begin
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_H);
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_L);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg(A_PUSH,location.register));
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg(A_POP,NR_HL));
+ location.register:=cg.getintregister(current_asmdata.CurrAsmList,OS_16);
+ cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_8,OS_8,NR_L,location.register);
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_L);
+ cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_8,OS_8,NR_H,GetNextReg(location.register));
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_H);
+ end;
+ end;
+
+
+begin
+ cloadparentfpnode:=tz80loadparentfpnode;
+end.
diff --git a/compiler/z80/raz80.pas b/compiler/z80/raz80.pas
new file mode 100644
index 0000000000..2d576c00d3
--- /dev/null
+++ b/compiler/z80/raz80.pas
@@ -0,0 +1,52 @@
+{
+ Copyright (c) 1998-2003 by Carl Eric Codere and Peter Vreman
+
+ Handles the common arm assembler reader routines
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit raz80;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ uses
+ cpubase,
+ aasmtai,aasmdata,
+ rautils;
+
+ type
+ TZ80Operand=class(TOperand)
+ end;
+
+ TZ80Instruction=class(TInstruction)
+ function ConcatInstruction(p:TAsmList) : tai;override;
+ end;
+
+ implementation
+
+ uses
+ aasmcpu;
+
+ function TZ80Instruction.ConcatInstruction(p:TAsmList) : tai;
+ begin
+ result:=inherited ConcatInstruction(p);
+ end;
+
+
+end.
diff --git a/compiler/z80/raz80asm.pas b/compiler/z80/raz80asm.pas
new file mode 100644
index 0000000000..90c8787d95
--- /dev/null
+++ b/compiler/z80/raz80asm.pas
@@ -0,0 +1,2390 @@
+{
+ Copyright (c) 1998-2008 by Carl Eric Codere and Peter Vreman
+
+ Does the parsing for the Z80 styled inline assembler.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+Unit raz80asm;
+
+{$i fpcdefs.inc}
+
+ Interface
+
+ uses
+ cclasses,
+ globtype,
+ rasm,raz80,
+ aasmbase,cpubase;
+
+ type
+ tasmtoken = (
+ AS_NONE,AS_LABEL,AS_LLABEL,AS_STRING,AS_INTNUM,
+ AS_REALNUM,AS_COMMA,AS_LPAREN,
+ AS_RPAREN,AS_COLON,AS_DOT,AS_PLUS,AS_MINUS,AS_STAR,
+ AS_SEPARATOR,AS_ID,AS_REGISTER,AS_OPCODE,AS_CONDITION,AS_SLASH,AS_DOLLAR,
+ AS_HASH,AS_LSBRACKET,AS_RSBRACKET,AS_LBRACKET,AS_RBRACKET,
+ AS_EQUAL,
+ {------------------ Assembler directives --------------------}
+ AS_DEFB,AS_DEFW,AS_END,
+ {------------------ Assembler Operators --------------------}
+ AS_TYPE,AS_SIZEOF,AS_VMTOFFSET,AS_MOD,AS_SHL,AS_SHR,AS_NOT,AS_AND,AS_OR,AS_XOR,AS_NOR,AS_AT,
+ AS_RELTYPE, // common token for relocation types
+ {------------------ Target-specific directive ---------------}
+ AS_TARGET_DIRECTIVE
+ );
+ tasmkeyword = string[10];
+
+ const
+ { These tokens should be modified accordingly to the modifications }
+ { in the different enumerations. }
+ firstdirective = AS_DEFB;
+ lastdirective = AS_END;
+ token2str : array[tasmtoken] of tasmkeyword=(
+ '','Label','LLabel','string','integer',
+ 'float',',','(',
+ ')',':','.','+','-','*',
+ ';','identifier','register','opcode','condition','/','$',
+ '#','{','}','[',']',
+ '=',
+ 'defb','defw','END',
+ 'TYPE','SIZEOF','VMTOFFSET','%','<<','>>','!','&','|','^','~','@','reltype',
+ 'directive');
+
+ type
+ { input flags for BuildConstSymbolExpression }
+ tconstsymbolexpressioninputflag = (
+ cseif_needofs,
+ cseif_isref,
+ cseif_startingminus,
+ { allows using full reference-like syntax for constsymbol expressions,
+ for example:
+ Rec.Str[5] -> Rec.Str+5 }
+ cseif_referencelike
+ );
+ tconstsymbolexpressioninputflags = set of tconstsymbolexpressioninputflag;
+ { output flags for BuildConstSymbolExpression }
+ tconstsymbolexpressionoutputflag = (
+ cseof_isseg,
+ cseof_is_farproc_entry,
+ cseof_hasofs
+ );
+ tconstsymbolexpressionoutputflags = set of tconstsymbolexpressionoutputflag;
+
+ { tz80reader }
+
+ tz80reader = class(tasmreader)
+ actasmcond : TAsmCond;
+ actasmpattern_origcase : string;
+ actasmtoken : tasmtoken;
+ prevasmtoken : tasmtoken;
+ inexpression : boolean;
+ procedure SetupTables;
+ procedure GetToken;
+ function consume(t : tasmtoken):boolean;
+ procedure RecoverConsume(allowcomma:boolean);
+ procedure AddReferences(dest,src : tz80operand);
+ function is_locallabel(const s:string):boolean;
+ function is_asmopcode(const s: string):boolean;
+ Function is_asmdirective(const s: string):boolean;
+ function is_register(const s:string):boolean;
+ function is_condition(const s:string):boolean;
+ function is_targetdirective(const s: string):boolean;
+ procedure BuildRecordOffsetSize(const expr: string;out offset:tcgint;out size:tcgint; out mangledname: string; needvmtofs: boolean; out hastypecast: boolean);
+ procedure BuildConstSymbolExpression(in_flags: tconstsymbolexpressioninputflags;out value:tcgint;out asmsym:string;out asmsymtyp:TAsmsymtype;out size:tcgint;out out_flags:tconstsymbolexpressionoutputflags);
+ function BuildConstExpression:longint;
+ function BuildRefConstExpression(out size:tcgint;startingminus:boolean=false):longint;
+ procedure BuildConstantOperand(oper: tz80operand);
+ procedure BuildReference(oper : tz80operand);
+ procedure BuildOperand(oper: tz80operand;istypecast:boolean);
+ procedure BuildOpCode(instr:TZ80Instruction);
+ procedure handleopcode;
+ procedure ConvertCalljmp(instr : tz80instruction);
+ function Assemble: tlinkedlist;override;
+ end;
+
+
+ Implementation
+
+ uses
+ { helpers }
+ cutils,
+ { global }
+ globals,verbose,
+ systems,
+ { aasm }
+ cpuinfo,aasmtai,aasmdata,aasmcpu,
+ { symtable }
+ symconst,symbase,symtype,symsym,symtable,symdef,symutil,
+ { parser }
+ scanner,pbase,
+ procinfo,
+ rabase,rautils,
+ cgbase,cgutils,cgobj
+ ;
+
+
+{*****************************************************************************
+ tz80reader
+*****************************************************************************}
+
+
+ procedure tz80reader.SetupTables;
+ var
+ i: TAsmOp;
+ begin
+ iasmops:=TFPHashList.create;
+ for i:=firstop to lastop do
+ iasmops.Add(upper(std_op2str[i]),Pointer(PtrInt(i)));
+ end;
+
+
+ procedure tz80reader.GetToken;
+ var
+ len: Integer;
+ srsym : tsym;
+ srsymtable : TSymtable;
+ can_be_condition : Boolean;
+ begin
+ c:=scanner.c;
+ { certain instructions can have a condition, as an operand. We need to set this flag,
+ because 'C' can be either a register, or a condition, depending on the context }
+ can_be_condition:=(actasmtoken=AS_OPCODE) and (actopcode in [A_JP,A_JR,A_CALL,A_RET]);
+ { save old token and reset new token }
+ prevasmtoken:=actasmtoken;
+ actasmtoken:=AS_NONE;
+ { reset }
+ actasmpattern:='';
+ { while space and tab , continue scan... }
+ while c in [' ',#9] do
+ c:=current_scanner.asmgetchar;
+ { get token pos }
+ if not (c in [#10,#13,'{',';','/','(']) then
+ current_scanner.gettokenpos;
+ { Local Label, Label, Directive, Prefix or Opcode }
+ if firsttoken and not(c in [#10,#13,'{',';','/','(']) then
+ begin
+ firsttoken:=FALSE;
+ len:=0;
+ { directive }
+ if c = '.' then
+ begin
+ inc(len);
+ actasmpattern[len]:=c;
+ { Let us point to the next character }
+ c:=current_scanner.asmgetchar;
+ while c in ['A'..'Z','a'..'z','0'..'9','_','$'] do
+ begin
+ inc(len);
+ actasmpattern[len]:=c;
+ c:=current_scanner.asmgetchar;
+ end;
+ actasmpattern[0]:=chr(len);
+ { must be a directive }
+ if is_asmdirective(actasmpattern) then
+ exit;
+ if is_targetdirective(actasmpattern) then
+ begin
+ actasmtoken:=AS_TARGET_DIRECTIVE;
+ exit;
+ end;
+ Message1(asmr_e_not_directive_or_local_symbol,actasmpattern);
+ end;
+ { only opcodes, global and local labels are allowed now. }
+ while c in ['A'..'Z','a'..'z','0'..'9','_','@'] do
+ begin
+ inc(len);
+ actasmpattern[len]:=c;
+ c:=current_scanner.asmgetchar;
+ end;
+ actasmpattern[0]:=chr(len);
+ actasmpattern_origcase:=actasmpattern;
+ { Label ? }
+ if c = ':' then
+ begin
+ { Local label ? }
+ if is_locallabel(actasmpattern) then
+ actasmtoken:=AS_LLABEL
+ else
+ actasmtoken:=AS_LABEL;
+ { let us point to the next character }
+ c:=current_scanner.asmgetchar;
+ firsttoken:=true;
+ exit;
+ end;
+ { Opcode ? }
+ if is_asmopcode(upper(actasmpattern)) then
+ begin
+ uppervar(actasmpattern);
+ exit;
+ end;
+ { End of assemblerblock ? }
+ if upper(actasmpattern) = 'END' then
+ begin
+ actasmtoken:=AS_END;
+ exit;
+ end;
+ message1(asmr_e_unknown_opcode,actasmpattern);
+ actasmtoken:=AS_NONE;
+ end
+ else { else firsttoken }
+ { Here we must handle all possible cases }
+ begin
+ case c of
+ '.' : { possiblities : - local label reference , such as in jmp @local1 }
+ { - field of object/record }
+ { - directive. }
+ begin
+ if (prevasmtoken in [AS_ID,AS_RPAREN]) then
+ begin
+ c:=current_scanner.asmgetchar;
+ actasmtoken:=AS_DOT;
+ exit;
+ end;
+ actasmpattern:=c;
+ c:=current_scanner.asmgetchar;
+ while c in ['A'..'Z','a'..'z','0'..'9','_','$'] do
+ begin
+ actasmpattern:=actasmpattern + c;
+ c:=current_scanner.asmgetchar;
+ end;
+ if is_asmdirective(actasmpattern) then
+ exit;
+ if is_targetdirective(actasmpattern) then
+ begin
+ actasmtoken:=AS_TARGET_DIRECTIVE;
+ exit;
+ end;
+ { local label references and directives }
+ { are case sensitive }
+ actasmtoken:=AS_ID;
+ exit;
+ end;
+
+ { identifier, register, prefix or directive }
+ '_','A'..'Z','a'..'z':
+ begin
+ len:=0;
+ while c in ['A'..'Z','a'..'z','0'..'9','_','$'] do
+ begin
+ inc(len);
+ actasmpattern[len]:=c;
+ c:=current_scanner.asmgetchar;
+ end;
+ actasmpattern[0]:=chr(len);
+ actasmpattern_origcase:=actasmpattern;
+ uppervar(actasmpattern);
+ {$ifdef x86}
+ { only x86 architectures have instruction prefixes }
+
+ { Opcode, can only be when the previous was a prefix }
+ If is_prefix(actopcode) and is_asmopcode(actasmpattern) then
+ Begin
+ uppervar(actasmpattern);
+ exit;
+ end;
+ {$endif x86}
+ { check for end which is a reserved word unlike the opcodes }
+ if actasmpattern = 'END' then
+ begin
+ actasmtoken:=AS_END;
+ exit;
+ end;
+ if actasmpattern = 'TYPE' then
+ begin
+ actasmtoken:=AS_TYPE;
+ exit;
+ end;
+ if actasmpattern = 'SIZEOF' then
+ begin
+ actasmtoken:=AS_SIZEOF;
+ exit;
+ end;
+ if actasmpattern = 'VMTOFFSET' then
+ begin
+ actasmtoken:=AS_VMTOFFSET;
+ exit;
+ end;
+ if can_be_condition and is_condition(actasmpattern) then
+ begin
+ actasmtoken:=AS_CONDITION;
+ exit;
+ end;
+ if is_register(actasmpattern) then
+ begin
+ actasmtoken:=AS_REGISTER;
+ exit;
+ end;
+ { if next is a '.' and this is a unitsym then we also need to
+ parse the identifier }
+ if (c='.') then
+ begin
+ searchsym(actasmpattern,srsym,srsymtable);
+ if assigned(srsym) and
+ (srsym.typ=unitsym) and
+ (srsym.owner.symtabletype in [staticsymtable,globalsymtable]) and
+ srsym.owner.iscurrentunit then
+ begin
+ actasmpattern:=actasmpattern+c;
+ c:=current_scanner.asmgetchar;
+ while c in ['A'..'Z','a'..'z','0'..'9','_','$'] do
+ begin
+ actasmpattern:=actasmpattern + upcase(c);
+ c:=current_scanner.asmgetchar;
+ end;
+ end;
+ end;
+ actasmtoken:=AS_ID;
+ exit;
+ end;
+
+ //'%' : { register or modulo }
+ // handlepercent;
+
+ '1'..'9': { integer number }
+ begin
+ len:=0;
+ while c in ['0'..'9'] do
+ Begin
+ inc(len);
+ actasmpattern[len]:=c;
+ c:=current_scanner.asmgetchar;
+ end;
+ actasmpattern[0]:=chr(len);
+ actasmpattern:=tostr(ParseVal(actasmpattern,10));
+ actasmtoken:=AS_INTNUM;
+ exit;
+ end;
+ '0' : { octal,hexa,real or binary number. }
+ begin
+ actasmpattern:=c;
+ c:=current_scanner.asmgetchar;
+ case upcase(c) of
+ 'B': { binary }
+ Begin
+ c:=current_scanner.asmgetchar;
+ while c in ['0','1'] do
+ Begin
+ actasmpattern:=actasmpattern + c;
+ c:=current_scanner.asmgetchar;
+ end;
+ actasmpattern:=tostr(ParseVal(actasmpattern,2));
+ actasmtoken:=AS_INTNUM;
+ exit;
+ end;
+ 'D': { real }
+ Begin
+ c:=current_scanner.asmgetchar;
+ { get ridd of the 0d }
+ if (c in ['+','-']) then
+ begin
+ actasmpattern:=c;
+ c:=current_scanner.asmgetchar;
+ end
+ else
+ actasmpattern:='';
+ while c in ['0'..'9'] do
+ Begin
+ actasmpattern:=actasmpattern + c;
+ c:=current_scanner.asmgetchar;
+ end;
+ if c='.' then
+ begin
+ actasmpattern:=actasmpattern + c;
+ c:=current_scanner.asmgetchar;
+ while c in ['0'..'9'] do
+ Begin
+ actasmpattern:=actasmpattern + c;
+ c:=current_scanner.asmgetchar;
+ end;
+ if upcase(c) = 'E' then
+ begin
+ actasmpattern:=actasmpattern + c;
+ c:=current_scanner.asmgetchar;
+ if (c in ['+','-']) then
+ begin
+ actasmpattern:=actasmpattern + c;
+ c:=current_scanner.asmgetchar;
+ end;
+ while c in ['0'..'9'] do
+ Begin
+ actasmpattern:=actasmpattern + c;
+ c:=current_scanner.asmgetchar;
+ end;
+ end;
+ actasmtoken:=AS_REALNUM;
+ exit;
+ end
+ else
+ begin
+ Message1(asmr_e_invalid_float_const,actasmpattern+c);
+ actasmtoken:=AS_NONE;
+ end;
+ end;
+ 'X': { hexadecimal }
+ Begin
+ c:=current_scanner.asmgetchar;
+ while c in ['0'..'9','a'..'f','A'..'F'] do
+ Begin
+ actasmpattern:=actasmpattern + c;
+ c:=current_scanner.asmgetchar;
+ end;
+ actasmpattern:=tostr(ParseVal(actasmpattern,16));
+ actasmtoken:=AS_INTNUM;
+ exit;
+ end;
+ '1'..'7': { octal }
+ begin
+ actasmpattern:=actasmpattern + c;
+ while c in ['0'..'7'] do
+ Begin
+ actasmpattern:=actasmpattern + c;
+ c:=current_scanner.asmgetchar;
+ end;
+ actasmpattern:=tostr(ParseVal(actasmpattern,8));
+ actasmtoken:=AS_INTNUM;
+ exit;
+ end;
+ else { octal number zero value...}
+ Begin
+ actasmpattern:=tostr(ParseVal(actasmpattern,8));
+ actasmtoken:=AS_INTNUM;
+ exit;
+ end;
+ end; { end case }
+ end;
+
+ '&' :
+ begin
+ c:=current_scanner.asmgetchar;
+ actasmtoken:=AS_AND;
+ end;
+
+ '''' : { char }
+ begin
+ actasmpattern:='';
+ repeat
+ c:=current_scanner.asmgetchar;
+ case c of
+ '\' :
+ begin
+ { copy also the next char so \" is parsed correctly }
+ actasmpattern:=actasmpattern+c;
+ c:=current_scanner.asmgetchar;
+ actasmpattern:=actasmpattern+c;
+ end;
+ '''' :
+ begin
+ c:=current_scanner.asmgetchar;
+ break;
+ end;
+ #10,#13:
+ Message(scan_f_string_exceeds_line);
+ else
+ actasmpattern:=actasmpattern+c;
+ end;
+ until false;
+ actasmpattern:=EscapeToPascal(actasmpattern);
+ actasmtoken:=AS_STRING;
+ exit;
+ end;
+
+ '"' : { string }
+ begin
+ actasmpattern:='';
+ repeat
+ c:=current_scanner.asmgetchar;
+ case c of
+ '\' :
+ begin
+ { copy also the next char so \" is parsed correctly }
+ actasmpattern:=actasmpattern+c;
+ c:=current_scanner.asmgetchar;
+ actasmpattern:=actasmpattern+c;
+ end;
+ '"' :
+ begin
+ c:=current_scanner.asmgetchar;
+ break;
+ end;
+ #10,#13:
+ Message(scan_f_string_exceeds_line);
+ else
+ actasmpattern:=actasmpattern+c;
+ end;
+ until false;
+ actasmpattern:=EscapeToPascal(actasmpattern);
+ actasmtoken:=AS_STRING;
+ exit;
+ end;
+
+ //'$' :
+ // begin
+ // handledollar;
+ // exit;
+ // end;
+
+ '#' :
+ begin
+ actasmtoken:=AS_HASH;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '[' :
+ begin
+ actasmtoken:=AS_LBRACKET;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ ']' :
+ begin
+ actasmtoken:=AS_RBRACKET;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '{' :
+ begin
+ {$ifdef arm}
+ // the arm assembler uses { ... } for register sets
+ // but compiler directives {$... } are still allowed
+ c:=current_scanner.asmgetchar;
+ if c<>'$' then
+ actasmtoken:=AS_LSBRACKET
+ else
+ begin
+ current_scanner.skipcomment(false);
+ GetToken;
+ end;
+ {$else arm}
+ current_scanner.skipcomment(true);
+ GetToken;
+ {$endif arm}
+ exit;
+ end;
+
+ {$ifdef arm}
+ '}' :
+ begin
+ actasmtoken:=AS_RSBRACKET;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '=' :
+ begin
+ actasmtoken:=AS_EQUAL;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+ {$endif arm}
+
+ ',' :
+ begin
+ actasmtoken:=AS_COMMA;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '<' :
+ begin
+ actasmtoken:=AS_SHL;
+ c:=current_scanner.asmgetchar;
+ if c = '<' then
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '>' :
+ begin
+ actasmtoken:=AS_SHL;
+ c:=current_scanner.asmgetchar;
+ if c = '>' then
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '|' :
+ begin
+ actasmtoken:=AS_OR;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '^' :
+ begin
+ actasmtoken:=AS_XOR;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+
+ '(' :
+ begin
+ c:=current_scanner.asmgetchar;
+ if c='*' then
+ begin
+ current_scanner.skipoldtpcomment(true);
+ GetToken;
+ end
+ else
+ actasmtoken:=AS_LPAREN;
+ exit;
+ end;
+
+ ')' :
+ begin
+ actasmtoken:=AS_RPAREN;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ ':' :
+ begin
+ actasmtoken:=AS_COLON;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '+' :
+ begin
+ actasmtoken:=AS_PLUS;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '-' :
+ begin
+ actasmtoken:=AS_MINUS;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '*' :
+ begin
+ actasmtoken:=AS_STAR;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '/' :
+ begin
+ c:=current_scanner.asmgetchar;
+ if c='/' then
+ begin
+ current_scanner.skipdelphicomment;
+ GetToken;
+ end
+ else
+ actasmtoken:=AS_SLASH;
+ exit;
+ end;
+
+ '!', '~' :
+ begin
+ actasmtoken:=AS_NOT;
+ c:=current_scanner.asmgetchar;
+ exit;
+ end;
+
+ '@' : { possiblities : - local label reference , such as in jmp @local1 }
+ { - @Result, @Code or @Data special variables. }
+ begin
+ actasmpattern:=c;
+ c:=current_scanner.asmgetchar;
+ while c in ['A'..'Z','a'..'z','0'..'9','_','@','$','&','?'] do
+ begin
+ actasmpattern:=actasmpattern + c;
+ c:=current_scanner.asmgetchar;
+ end;
+ actasmpattern_origcase:=actasmpattern;
+ uppervar(actasmpattern);
+ actasmtoken:=AS_ID;
+ exit;
+ end;
+
+ #13,#10:
+ begin
+ current_scanner.linebreak;
+ c:=current_scanner.asmgetchar;
+ firsttoken:=TRUE;
+ actasmtoken:=AS_SEPARATOR;
+ exit;
+ end;
+
+ ';' :
+ begin
+ c:=current_scanner.asmgetchar;
+ firsttoken:=TRUE;
+ actasmtoken:=AS_SEPARATOR;
+ exit;
+ end;
+
+ else
+ current_scanner.illegal_char(c);
+ end;
+ end;
+ end;
+
+
+ function tz80reader.consume(t: tasmtoken): boolean;
+ begin
+ Consume:=true;
+ if t<>actasmtoken then
+ begin
+ Message2(scan_f_syn_expected,token2str[t],token2str[actasmtoken]);
+ Consume:=false;
+ end;
+ repeat
+ gettoken;
+ until actasmtoken<>AS_NONE;
+ end;
+
+
+ procedure tz80reader.RecoverConsume(allowcomma: boolean);
+ begin
+ while not (actasmtoken in [AS_SEPARATOR,AS_END]) do
+ begin
+ if allowcomma and (actasmtoken=AS_COMMA) then
+ break;
+ Consume(actasmtoken);
+ end;
+ end;
+
+
+ procedure tz80reader.AddReferences(dest, src: tz80operand);
+
+ procedure AddRegister(reg:tregister;scalefactor:byte);
+ begin
+ if reg=NR_NO then
+ exit;
+ if (dest.opr.ref.base=NR_NO) and (scalefactor=1) then
+ begin
+ dest.opr.ref.base:=reg;
+ exit;
+ end;
+ if dest.opr.ref.index=NR_NO then
+ begin
+ dest.opr.ref.index:=reg;
+ dest.opr.ref.scalefactor:=scalefactor;
+ exit;
+ end;
+ if dest.opr.ref.index=reg then
+ begin
+ Inc(dest.opr.ref.scalefactor,scalefactor);
+ exit;
+ end;
+ Message(asmr_e_multiple_index);
+ end;
+
+ var
+ tmplocal: TOprRec;
+ segreg: TRegister;
+ begin
+ case dest.opr.typ of
+ OPR_REFERENCE:
+ begin
+ case src.opr.typ of
+ OPR_REFERENCE:
+ begin
+ AddRegister(src.opr.ref.base,1);
+ AddRegister(src.opr.ref.index,src.opr.ref.scalefactor);
+ Inc(dest.opr.ref.offset,src.opr.ref.offset);
+ Inc(dest.opr.constoffset,src.opr.constoffset);
+ dest.haslabelref:=dest.haslabelref or src.haslabelref;
+ dest.hasproc:=dest.hasproc or src.hasproc;
+ dest.hasvar:=dest.hasvar or src.hasvar;
+ if assigned(src.opr.ref.symbol) then
+ begin
+ if assigned(dest.opr.ref.symbol) then
+ Message(asmr_e_cant_have_multiple_relocatable_symbols);
+ dest.opr.ref.symbol:=src.opr.ref.symbol;
+ end;
+ if assigned(src.opr.ref.relsymbol) then
+ begin
+ if assigned(dest.opr.ref.relsymbol) then
+ Message(asmr_e_cant_have_multiple_relocatable_symbols);
+ dest.opr.ref.relsymbol:=src.opr.ref.relsymbol;
+ end;
+ if dest.opr.ref.refaddr=addr_no then
+ dest.opr.ref.refaddr:=src.opr.ref.refaddr;
+ end;
+ OPR_LOCAL:
+ begin
+ tmplocal:=src.opr;
+ if dest.opr.ref.base<>NR_NO then
+ begin
+ if tmplocal.localindexreg=NR_NO then
+ begin
+ tmplocal.localindexreg:=dest.opr.ref.base;
+ tmplocal.localscale:=0;
+ end
+ else if tmplocal.localindexreg=dest.opr.ref.base then
+ tmplocal.localscale:=Min(tmplocal.localscale,1)+1
+ else
+ Message(asmr_e_multiple_index);
+ end;
+ if dest.opr.ref.index<>NR_NO then
+ begin
+ if tmplocal.localindexreg=NR_NO then
+ begin
+ tmplocal.localindexreg:=dest.opr.ref.index;
+ tmplocal.localscale:=dest.opr.ref.scalefactor;
+ end
+ else if tmplocal.localindexreg=dest.opr.ref.index then
+ tmplocal.localscale:=Min(tmplocal.localscale,1)+Min(dest.opr.ref.scalefactor,1)
+ else
+ Message(asmr_e_multiple_index);
+ end;
+ Inc(tmplocal.localconstoffset,dest.opr.constoffset);
+ Inc(tmplocal.localsymofs,dest.opr.ref.offset);
+ dest.opr:=tmplocal;
+ end;
+ else
+ internalerror(2018030701);
+ end;
+ end;
+ OPR_LOCAL:
+ begin
+ case src.opr.typ of
+ OPR_REFERENCE:
+ begin
+ if src.opr.ref.base<>NR_NO then
+ begin
+ if dest.opr.localindexreg=NR_NO then
+ begin
+ dest.opr.localindexreg:=src.opr.ref.base;
+ dest.opr.localscale:=0;
+ end
+ else if dest.opr.localindexreg=src.opr.ref.base then
+ dest.opr.localscale:=Min(dest.opr.localscale,1)+1
+ else
+ Message(asmr_e_multiple_index);
+ end;
+ if src.opr.ref.index<>NR_NO then
+ begin
+ if dest.opr.localindexreg=NR_NO then
+ begin
+ dest.opr.localindexreg:=src.opr.ref.index;
+ dest.opr.localscale:=src.opr.ref.scalefactor;
+ end
+ else if dest.opr.localindexreg=src.opr.ref.index then
+ dest.opr.localscale:=Min(dest.opr.localscale,1)+Min(src.opr.ref.scalefactor,1)
+ else
+ Message(asmr_e_multiple_index);
+ end;
+ Inc(dest.opr.localconstoffset,src.opr.constoffset);
+ Inc(dest.opr.localsymofs,src.opr.ref.offset);
+ end;
+ OPR_LOCAL:
+ Message(asmr_e_no_local_or_para_allowed);
+ else
+ internalerror(2018030703);
+ end;
+ end;
+ else
+ internalerror(2018030702);
+ end;
+ end;
+
+
+ function tz80reader.is_locallabel(const s: string): boolean;
+ begin
+ is_locallabel:=(length(s)>1) and (s[1]='@');
+ end;
+
+
+ function tz80reader.is_asmopcode(const s: string):boolean;
+ begin
+ actcondition:=C_None;
+ actopcode:=tasmop(PtrUInt(iasmops.Find(s)));
+ if actopcode<>A_NONE then
+ begin
+ actasmtoken:=AS_OPCODE;
+ is_asmopcode:=true;
+ end
+ else
+ is_asmopcode:=false;
+ end;
+
+
+ function tz80reader.is_asmdirective(const s: string): boolean;
+ var
+ i : tasmtoken;
+ hs : string;
+ begin
+ hs:=lower(s);
+ for i:=firstdirective to lastdirective do
+ if hs=token2str[i] then
+ begin
+ actasmtoken:=i;
+ is_asmdirective:=true;
+ exit;
+ end;
+ is_asmdirective:=false;
+ end;
+
+
+ function tz80reader.is_register(const s:string):boolean;
+ begin
+ is_register:=false;
+ actasmregister:=std_regnum_search(lower(s));
+ if actasmregister<>NR_NO then
+ begin
+ is_register:=true;
+ actasmtoken:=AS_REGISTER;
+ end;
+ end;
+
+
+ function tz80reader.is_condition(const s: string): boolean;
+ var
+ condstr: string;
+ cond: TAsmCond;
+ begin
+ is_condition:=false;
+ actasmcond:=C_None;
+ condstr:=lower(s);
+ for cond in TAsmCond do
+ if (cond<>C_None) and (cond2str[cond]=condstr) then
+ begin
+ is_condition:=true;
+ actasmtoken:=AS_CONDITION;
+ actasmcond:=cond;
+ exit;
+ end;
+ end;
+
+
+ function tz80reader.is_targetdirective(const s: string): boolean;
+ begin
+ result:=false;
+ end;
+
+ procedure tz80reader.BuildRecordOffsetSize(const expr: string; out
+ offset: tcgint; out size: tcgint; out mangledname: string;
+ needvmtofs: boolean; out hastypecast: boolean);
+ var
+ s: string;
+ Begin
+ offset:=0;
+ size:=0;
+ mangledname:='';
+ hastypecast:=false;
+ s:=expr;
+ while (actasmtoken=AS_DOT) do
+ begin
+ Consume(AS_DOT);
+ if actasmtoken in [AS_ID,AS_REGISTER] then
+ begin
+ s:=s+'.'+actasmpattern;
+ consume(actasmtoken);
+ end
+ else
+ begin
+ Consume(AS_ID);
+ RecoverConsume(true);
+ break;
+ end;
+ end;
+ if not GetRecordOffsetSize(s,offset,size,mangledname,needvmtofs,hastypecast) then
+ Message(asmr_e_building_record_offset);
+ end;
+
+ procedure tz80reader.BuildConstSymbolExpression(
+ in_flags: tconstsymbolexpressioninputflags; out value: tcgint; out
+ asmsym: string; out asmsymtyp: TAsmsymtype; out size: tcgint; out
+ out_flags: tconstsymbolexpressionoutputflags);
+ var
+ tempstr,expr,hs,mangledname : string;
+ parenlevel : longint;
+ l,k : tcgint;
+ hasparen,
+ errorflag,
+ needvmtofs : boolean;
+ prevtok : tasmtoken;
+ hl : tasmlabel;
+ hssymtyp : Tasmsymtype;
+ def : tdef;
+ sym : tsym;
+ srsymtable : TSymtable;
+ hastypecast : boolean;
+ Begin
+ { reset }
+ value:=0;
+ asmsym:='';
+ asmsymtyp:=AT_DATA;
+ size:=0;
+ out_flags:=[];
+ errorflag:=FALSE;
+ tempstr:='';
+ expr:='';
+ if cseif_startingminus in in_flags then
+ expr:='-';
+ inexpression:=TRUE;
+ parenlevel:=0;
+ sym:=nil;
+ needvmtofs:=FALSE;
+ Repeat
+ { Support ugly delphi constructs like: [ECX].1+2[EDX] }
+ if (cseif_isref in in_flags) and (actasmtoken=AS_LBRACKET) then
+ break;
+ if (cseif_referencelike in in_flags) and
+ (actasmtoken in [AS_LBRACKET,AS_RBRACKET]) then
+ case actasmtoken of
+ AS_LBRACKET:
+ begin
+ Consume(AS_LBRACKET);
+ if (length(expr)>0) and
+ not (expr[length(expr)] in ['+','-']) then
+ expr:=expr+'+';
+ expr:=expr+'[';
+ end;
+ AS_RBRACKET:
+ begin
+ Consume(AS_RBRACKET);
+ expr:=expr+']';
+ end;
+ else
+ ;
+ end;
+ Case actasmtoken of
+ AS_LPAREN:
+ Begin
+ Consume(AS_LPAREN);
+ expr:=expr + '(';
+ inc(parenlevel);
+ end;
+ AS_RPAREN:
+ Begin
+ { Keep the AS_PAREN in actasmtoken, it is maybe a typecast }
+ if parenlevel=0 then
+ break;
+ Consume(AS_RPAREN);
+ expr:=expr + ')';
+ dec(parenlevel);
+ end;
+ AS_SHL:
+ Begin
+ Consume(AS_SHL);
+ expr:=expr + '<';
+ end;
+ AS_SHR:
+ Begin
+ Consume(AS_SHR);
+ expr:=expr + '>';
+ end;
+ AS_SLASH:
+ Begin
+ Consume(AS_SLASH);
+ expr:=expr + '/';
+ end;
+ AS_MOD:
+ Begin
+ Consume(AS_MOD);
+ expr:=expr + '%';
+ end;
+ AS_STAR:
+ Begin
+ Consume(AS_STAR);
+ if (cseif_isref in in_flags) and (actasmtoken=AS_REGISTER) then
+ break;
+ expr:=expr + '*';
+ end;
+ AS_PLUS:
+ Begin
+ Consume(AS_PLUS);
+ if (cseif_isref in in_flags) and ((actasmtoken=AS_REGISTER) or (actasmtoken=AS_LBRACKET)) then
+ break;
+ expr:=expr + '+';
+ end;
+ AS_MINUS:
+ Begin
+ Consume(AS_MINUS);
+ expr:=expr + '-';
+ end;
+ AS_AND:
+ Begin
+ Consume(AS_AND);
+ expr:=expr + '&';
+ end;
+ AS_NOT:
+ Begin
+ Consume(AS_NOT);
+ expr:=expr + '~';
+ end;
+ AS_XOR:
+ Begin
+ Consume(AS_XOR);
+ expr:=expr + '^';
+ end;
+ AS_OR:
+ Begin
+ Consume(AS_OR);
+ expr:=expr + '|';
+ end;
+ AS_INTNUM:
+ Begin
+ expr:=expr + actasmpattern;
+ Consume(AS_INTNUM);
+ end;
+{$ifdef i8086}
+ AS_SEG:
+ begin
+ include(out_flags,cseof_isseg);
+ Consume(actasmtoken);
+ if actasmtoken<>AS_ID then
+ Message(asmr_e_seg_without_identifier);
+ end;
+{$endif i8086}
+ AS_VMTOFFSET{,
+ AS_OFFSET}:
+ begin
+ {if (actasmtoken = AS_OFFSET) then
+ begin
+ include(in_flags,cseif_needofs);
+ include(out_flags,cseof_hasofs);
+ end
+ else}
+ needvmtofs:=true;
+ Consume(actasmtoken);
+ if actasmtoken<>AS_ID then
+ Message(asmr_e_offset_without_identifier);
+ end;
+ AS_SIZEOF,
+ AS_TYPE:
+ begin
+ l:=0;
+ hasparen:=false;
+ Consume(actasmtoken);
+ if actasmtoken=AS_LPAREN then
+ begin
+ hasparen:=true;
+ Consume(AS_LPAREN);
+ end;
+ if actasmtoken<>AS_ID then
+ Message(asmr_e_type_without_identifier)
+ else
+ begin
+ tempstr:=actasmpattern;
+ Consume(AS_ID);
+ if actasmtoken=AS_DOT then
+ begin
+ BuildRecordOffsetSize(tempstr,k,l,mangledname,false,hastypecast);
+ if mangledname<>'' then
+ { procsym }
+ Message(asmr_e_wrong_sym_type);
+ if hastypecast then
+
+ end
+ else
+ begin
+ asmsearchsym(tempstr,sym,srsymtable);
+ if assigned(sym) then
+ begin
+ case sym.typ of
+ staticvarsym,
+ localvarsym,
+ paravarsym :
+ l:=tabstractvarsym(sym).getsize;
+ typesym :
+ l:=ttypesym(sym).typedef.size;
+ else
+ Message(asmr_e_wrong_sym_type);
+ end;
+ end
+ else
+ Message1(sym_e_unknown_id,tempstr);
+ end;
+ end;
+ str(l, tempstr);
+ expr:=expr + tempstr;
+ if hasparen then
+ Consume(AS_RPAREN);
+ end;
+ //AS_PTR :
+ // begin
+ // { Support ugly delphi constructs like <constant> PTR [ref] }
+ // break;
+ // end;
+ AS_STRING:
+ begin
+ l:=0;
+ case Length(actasmpattern) of
+ 1 :
+ l:=ord(actasmpattern[1]);
+ 2 :
+ l:=ord(actasmpattern[2]) + ord(actasmpattern[1]) shl 8;
+ 3 :
+ l:=ord(actasmpattern[3]) +
+ Ord(actasmpattern[2]) shl 8 + ord(actasmpattern[1]) shl 16;
+ 4 :
+ l:=ord(actasmpattern[4]) + ord(actasmpattern[3]) shl 8 +
+ Ord(actasmpattern[2]) shl 16 + ord(actasmpattern[1]) shl 24;
+ else
+ Message1(asmr_e_invalid_string_as_opcode_operand,actasmpattern);
+ end;
+ str(l, tempstr);
+ expr:=expr + tempstr;
+ Consume(AS_STRING);
+ end;
+ AS_ID:
+ begin
+ hs:='';
+ hssymtyp:=AT_DATA;
+ def:=nil;
+ tempstr:=actasmpattern;
+ prevtok:=prevasmtoken;
+ { stop parsing a constant expression if we find an opcode after a
+ non-operator like "db $66 mov eax,ebx" }
+ if (prevtok in [AS_ID,AS_INTNUM,AS_RPAREN]) and
+ is_asmopcode(actasmpattern) then
+ break;
+ consume(AS_ID);
+ if (tempstr='@CODE') or (tempstr='@DATA') then
+ begin
+ if asmsym='' then
+ begin
+ asmsym:=tempstr;
+ asmsymtyp:=AT_SECTION;
+ end
+ else
+ Message(asmr_e_cant_have_multiple_relocatable_symbols);
+ end
+ else if SearchIConstant(tempstr,l) then
+ begin
+ str(l, tempstr);
+ expr:=expr + tempstr;
+ end
+ else
+ begin
+ if is_locallabel(tempstr) then
+ begin
+ CreateLocalLabel(tempstr,hl,false);
+ hs:=hl.name;
+ hssymtyp:=AT_FUNCTION;
+ end
+ else
+ if SearchLabel(tempstr,hl,false) then
+ begin
+ hs:=hl.name;
+ hssymtyp:=AT_FUNCTION;
+ end
+ else
+ begin
+ asmsearchsym(tempstr,sym,srsymtable);
+ if assigned(sym) then
+ begin
+ case sym.typ of
+ staticvarsym :
+ begin
+ hs:=tstaticvarsym(sym).mangledname;
+ def:=tstaticvarsym(sym).vardef;
+ end;
+ localvarsym,
+ paravarsym :
+ begin
+ Message(asmr_e_no_local_or_para_allowed);
+ end;
+ procsym :
+ begin
+ if Tprocsym(sym).ProcdefList.Count>1 then
+ Message(asmr_w_calling_overload_func);
+ hs:=tprocdef(tprocsym(sym).ProcdefList[0]).mangledname;
+{$ifdef i8086}
+ if is_proc_far(tprocdef(tprocsym(sym).ProcdefList[0]))
+ and not (po_interrupt in tprocdef(tprocsym(sym).ProcdefList[0]).procoptions) then
+ include(out_flags,cseof_is_farproc_entry)
+ else
+ exclude(out_flags,cseof_is_farproc_entry);
+{$endif i8086}
+ hssymtyp:=AT_FUNCTION;
+ end;
+ typesym :
+ begin
+ if not(ttypesym(sym).typedef.typ in [recorddef,objectdef]) then
+ Message(asmr_e_wrong_sym_type);
+ size:=ttypesym(sym).typedef.size;
+ end;
+ fieldvarsym :
+ begin
+ tempstr:=upper(tdef(sym.owner.defowner).GetTypeName)+'.'+tempstr;
+ end;
+ else
+ Message(asmr_e_wrong_sym_type);
+ end;
+ end
+ else
+ Message1(sym_e_unknown_id,tempstr);
+ end;
+ { symbol found? }
+ if hs<>'' then
+ begin
+ if asmsym='' then
+ begin
+ asmsym:=hs;
+ asmsymtyp:=hssymtyp;
+ end
+ else
+ Message(asmr_e_cant_have_multiple_relocatable_symbols);
+ if (expr='') or (expr[length(expr)]='+') then
+ begin
+ { don't remove the + if there could be a record field }
+ if actasmtoken<>AS_DOT then
+ delete(expr,length(expr),1);
+ end
+ else
+ //if (cseif_needofs in in_flags) then
+ // begin
+ // if (prevtok<>AS_OFFSET) then
+ // Message(asmr_e_need_offset);
+ // end
+ //else
+ Message(asmr_e_only_add_relocatable_symbol);
+ end;
+ if (actasmtoken=AS_DOT) or
+ (assigned(sym) and
+ is_normal_fieldvarsym(sym)) then
+ begin
+ BuildRecordOffsetSize(tempstr,l,size,hs,needvmtofs,hastypecast);
+ if hs <> '' then
+ hssymtyp:=AT_FUNCTION
+ else
+ begin
+ str(l, tempstr);
+ expr:=expr + tempstr;
+ end
+ end
+ else if (actasmtoken<>AS_DOT) and
+ assigned(sym) and
+ (sym.typ=typesym) and
+ (ttypesym(sym).typedef.typ in [recorddef,objectdef]) then
+ begin
+ { just a record type (without being followed by dot)
+ evaluates to 0. Ugly, but TP7 compatible. }
+ expr:=expr+'0';
+ end
+ else
+ begin
+ if (expr='') or (expr[length(expr)] in ['+','-','/','*']) then
+ delete(expr,length(expr),1);
+ end;
+ if (actasmtoken=AS_LBRACKET) and
+ assigned(def) and
+ (def.typ=arraydef) then
+ begin
+ consume(AS_LBRACKET);
+ l:=BuildConstExpression;
+ if l<tarraydef(def).lowrange then
+ begin
+ Message(asmr_e_constant_out_of_bounds);
+ l:=0;
+ end
+ else
+ l:=(l-tarraydef(def).lowrange)*tarraydef(def).elesize;
+ str(l, tempstr);
+ expr:=expr + '+' + tempstr;
+ consume(AS_RBRACKET);
+ end;
+ end;
+ { check if there are wrong operator used like / or mod etc. }
+ if (hs<>'') and not(actasmtoken in [AS_MINUS,AS_PLUS,AS_COMMA,AS_SEPARATOR,AS_END,AS_RBRACKET]) then
+ Message(asmr_e_only_add_relocatable_symbol);
+ end;
+ //AS_ALIGN,
+ //AS_DB,
+ //AS_DW,
+ //AS_DD,
+ //AS_DQ,
+ AS_END,
+ AS_RBRACKET,
+ AS_SEPARATOR,
+ AS_COMMA,
+ AS_COLON:
+ break;
+ else
+ begin
+ { write error only once. }
+ if not errorflag then
+ Message(asmr_e_invalid_constant_expression);
+ { consume tokens until we find COMMA or SEPARATOR }
+ Consume(actasmtoken);
+ errorflag:=TRUE;
+ end;
+ end;
+ Until false;
+ { calculate expression }
+ if not ErrorFlag then
+ value:=CalculateExpression(expr)
+ else
+ value:=0;
+ { no longer in an expression }
+ inexpression:=FALSE;
+ end;
+
+
+ function tz80reader.BuildConstExpression: longint;
+ var
+ l,size : tcgint;
+ hs : string;
+ hssymtyp : TAsmsymtype;
+ out_flags : tconstsymbolexpressionoutputflags;
+ begin
+ BuildConstSymbolExpression([],l,hs,hssymtyp,size,out_flags);
+ if hs<>'' then
+ Message(asmr_e_relocatable_symbol_not_allowed);
+ BuildConstExpression:=l;
+ end;
+
+
+ function tz80reader.BuildRefConstExpression(out size: tcgint;
+ startingminus: boolean): longint;
+ var
+ l : tcgint;
+ hs : string;
+ hssymtyp : TAsmsymtype;
+ in_flags : tconstsymbolexpressioninputflags;
+ out_flags : tconstsymbolexpressionoutputflags;
+ begin
+ in_flags:=[cseif_isref];
+ if startingminus then
+ include(in_flags,cseif_startingminus);
+ BuildConstSymbolExpression(in_flags,l,hs,hssymtyp,size,out_flags);
+ if hs<>'' then
+ Message(asmr_e_relocatable_symbol_not_allowed);
+ BuildRefConstExpression:=l;
+ end;
+
+
+ procedure tz80reader.BuildConstantOperand(oper: tz80operand);
+ var
+ l,size : tcgint;
+ tempstr : string;
+ tempsymtyp : tasmsymtype;
+ cse_out_flags : tconstsymbolexpressionoutputflags;
+ begin
+ if not (oper.opr.typ in [OPR_NONE,OPR_CONSTANT]) then
+ Message(asmr_e_invalid_operand_type);
+ BuildConstSymbolExpression([cseif_needofs],l,tempstr,tempsymtyp,size,cse_out_flags);
+ if tempstr<>'' then
+ begin
+ oper.opr.typ:=OPR_SYMBOL;
+ oper.opr.symofs:=l;
+ oper.opr.symbol:=current_asmdata.RefAsmSymbol(tempstr,tempsymtyp);
+ oper.opr.symseg:=cseof_isseg in cse_out_flags;
+ oper.opr.sym_farproc_entry:=cseof_is_farproc_entry in cse_out_flags;
+ end
+ else
+ if oper.opr.typ=OPR_NONE then
+ begin
+ oper.opr.typ:=OPR_CONSTANT;
+ oper.opr.val:=l;
+ end
+ else
+ inc(oper.opr.val,l);
+ end;
+
+
+ procedure tz80reader.BuildReference(oper: tz80operand);
+ var
+ scale : byte;
+ k,l,size : tcgint;
+ tempstr,hs : string;
+ tempsymtyp : tasmsymtype;
+ code : integer;
+ hreg : tregister;
+ GotStar,GotOffset,HadVar,
+ GotPlus,Negative,BracketlessReference : boolean;
+ hl : tasmlabel;
+ hastypecast: boolean;
+ tmpoper: tz80operand;
+ cse_in_flags: tconstsymbolexpressioninputflags;
+ cse_out_flags: tconstsymbolexpressionoutputflags;
+ begin
+ if actasmtoken=AS_LPAREN then
+ begin
+ Consume(AS_LPAREN);
+ BracketlessReference:=false;
+ end
+ else
+ BracketlessReference:=true;
+ if not(oper.opr.typ in [OPR_LOCAL,OPR_REFERENCE]) then
+ oper.InitRef;
+ GotStar:=false;
+ GotPlus:=true;
+ GotOffset:=false;
+ Negative:=false;
+ Scale:=0;
+ repeat
+ if GotOffset and (actasmtoken<>AS_ID) then
+ Message(asmr_e_invalid_reference_syntax);
+
+ Case actasmtoken of
+ AS_ID, { Constant reference expression OR variable reference expression }
+ AS_VMTOFFSET:
+ Begin
+ if not GotPlus then
+ Message(asmr_e_invalid_reference_syntax);
+ GotStar:=false;
+ GotPlus:=false;
+ if (actasmtoken = AS_VMTOFFSET) or
+ (SearchIConstant(actasmpattern,l) or
+ SearchRecordType(actasmpattern)) then
+ begin
+ l:=BuildRefConstExpression(size,negative);
+ if size<>0 then
+ oper.SetSize(size,false);
+ negative:=false; { "l" was negated if necessary }
+ GotPlus:=(prevasmtoken=AS_PLUS);
+ GotStar:=(prevasmtoken=AS_STAR);
+ case oper.opr.typ of
+ OPR_LOCAL :
+ begin
+ if GotStar then
+ Message(asmr_e_invalid_reference_syntax);
+ Inc(oper.opr.localsymofs,l);
+ end;
+ OPR_REFERENCE :
+ begin
+ if GotStar then
+ oper.opr.ref.scalefactor:=l
+ else
+ Inc(oper.opr.ref.offset,l);
+ end;
+ else
+ internalerror(2019050715);
+ end;
+ end
+ else
+ Begin
+ if negative and not oper.hasvar then
+ Message(asmr_e_only_add_relocatable_symbol)
+ else if oper.hasvar and not GotOffset and
+ (not negative or assigned(oper.opr.ref.relsymbol)) then
+ Message(asmr_e_cant_have_multiple_relocatable_symbols);
+ HadVar:=oper.hasvar and GotOffset;
+ tempstr:=actasmpattern;
+ Consume(AS_ID);
+ { typecasting? }
+ if (actasmtoken=AS_LPAREN) and
+ SearchType(tempstr,l) then
+ begin
+ oper.hastype:=true;
+ oper.typesize:=l;
+ Consume(AS_LPAREN);
+ BuildOperand(oper,true);
+ Consume(AS_RPAREN);
+ end
+ else
+ if is_locallabel(tempstr) then
+ begin
+ CreateLocalLabel(tempstr,hl,false);
+ oper.InitRef;
+ oper.haslabelref:=true;
+ if not negative then
+ begin
+ oper.opr.ref.symbol:=hl;
+ oper.hasvar:=true;
+ end
+ else
+ oper.opr.ref.relsymbol:=hl;
+{$ifdef i8086}
+ if oper.opr.ref.segment=NR_NO then
+ oper.opr.ref.segment:=NR_CS;
+{$endif i8086}
+ end
+ else
+ if oper.SetupVar(tempstr,GotOffset) then
+ begin
+ { convert OPR_LOCAL register para into a reference base }
+ if (oper.opr.typ=OPR_LOCAL) and
+ AsmRegisterPara(oper.opr.localsym) then
+ oper.InitRefConvertLocal
+ else
+ begin
+{$ifdef x86_64}
+ if actasmtoken=AS_WRT then
+ begin
+ if (oper.opr.typ=OPR_REFERENCE) then
+ begin
+ Consume(AS_WRT);
+ Consume(AS___GOTPCREL);
+ if (oper.opr.ref.base<>NR_NO) or
+ (oper.opr.ref.index<>NR_NO) or
+ (oper.opr.ref.offset<>0) then
+ Message(asmr_e_wrong_gotpcrel_intel_syntax);
+ if tf_no_pic_supported in target_info.flags then
+ Message(asmr_e_no_gotpcrel_support);
+ oper.opr.ref.refaddr:=addr_pic;
+ oper.opr.ref.base:=NR_RIP;
+ end
+ else
+ message(asmr_e_invalid_reference_syntax);
+ end;
+{$endif x86_64}
+ end;
+ end
+ else
+ Message1(sym_e_unknown_id,tempstr);
+ { record.field ? }
+ if actasmtoken=AS_DOT then
+ begin
+ BuildRecordOffsetSize(tempstr,l,k,hs,false,hastypecast);
+ if (hs<>'') then
+ Message(asmr_e_invalid_symbol_ref);
+ case oper.opr.typ of
+ OPR_LOCAL :
+ inc(oper.opr.localsymofs,l);
+ OPR_REFERENCE :
+ inc(oper.opr.ref.offset,l);
+ else
+ internalerror(2019050716);
+ end;
+ if hastypecast then
+ oper.hastype:=true;
+ oper.SetSize(k,false);
+ end;
+ if GotOffset then
+ begin
+ if oper.hasvar and (oper.opr.ref.base=current_procinfo.framepointer) then
+ begin
+ if (oper.opr.typ=OPR_REFERENCE) then
+ oper.opr.ref.base:=NR_NO;
+ oper.hasvar:=hadvar;
+ end
+ else
+ begin
+ if oper.hasvar and hadvar then
+ Message(asmr_e_cant_have_multiple_relocatable_symbols);
+ { should we allow ?? }
+ end;
+ end;
+ end;
+ GotOffset:=false;
+ end;
+
+ AS_PLUS :
+ Begin
+ Consume(AS_PLUS);
+ Negative:=false;
+ GotPlus:=true;
+ GotStar:=false;
+ Scale:=0;
+ end;
+
+ AS_DOT :
+ Begin
+ { Handle like a + }
+ Consume(AS_DOT);
+ Negative:=false;
+ GotPlus:=true;
+ GotStar:=false;
+ Scale:=0;
+ end;
+
+ AS_MINUS :
+ begin
+ Consume(AS_MINUS);
+ Negative:=true;
+ GotPlus:=true;
+ GotStar:=false;
+ Scale:=0;
+ end;
+
+ AS_STAR : { Scaling, with eax*4 order }
+ begin
+ Consume(AS_STAR);
+ hs:='';
+ l:=0;
+ case actasmtoken of
+ AS_ID,
+ AS_LPAREN :
+ l:=BuildConstExpression;
+ AS_INTNUM:
+ Begin
+ hs:=actasmpattern;
+ Consume(AS_INTNUM);
+ end;
+ AS_REGISTER :
+ begin
+ case oper.opr.typ of
+ OPR_REFERENCE :
+ begin
+ if oper.opr.ref.scalefactor=0 then
+ begin
+ if scale<>0 then
+ begin
+ oper.opr.ref.scalefactor:=scale;
+ scale:=0;
+ end
+ else
+ Message(asmr_e_wrong_scale_factor);
+ end
+ else
+ Message(asmr_e_invalid_reference_syntax);
+ end;
+ OPR_LOCAL :
+ begin
+ if oper.opr.localscale=0 then
+ begin
+ if scale<>0 then
+ begin
+ oper.opr.localscale:=scale;
+ scale:=0;
+ end
+ else
+ Message(asmr_e_wrong_scale_factor);
+ end
+ else
+ Message(asmr_e_invalid_reference_syntax);
+ end;
+ else
+ internalerror(2019050719);
+ end;
+ end;
+ else
+ Message(asmr_e_invalid_reference_syntax);
+ end;
+ if actasmtoken<>AS_REGISTER then
+ begin
+ if hs<>'' then
+ val(hs,l,code);
+ case oper.opr.typ of
+ OPR_REFERENCE :
+ oper.opr.ref.scalefactor:=l;
+ OPR_LOCAL :
+ oper.opr.localscale:=l;
+ else
+ internalerror(2019050717);
+ end;
+ if l>9 then
+ Message(asmr_e_wrong_scale_factor);
+ end;
+ GotPlus:=false;
+ GotStar:=false;
+ end;
+
+ AS_REGISTER :
+ begin
+ hreg:=actasmregister;
+
+ Consume(AS_REGISTER);
+
+ if not((GotPlus and (not Negative)) or
+ GotStar) then
+ Message(asmr_e_invalid_reference_syntax);
+ { this register will be the index:
+ 1. just read a *
+ 2. next token is a *
+ 3. base register is already used }
+ case oper.opr.typ of
+ OPR_LOCAL :
+ begin
+ if (oper.opr.localindexreg<>NR_NO) then
+ Message(asmr_e_multiple_index);
+ oper.opr.localindexreg:=hreg;
+ if scale<>0 then
+ begin
+ oper.opr.localscale:=scale;
+ scale:=0;
+ end;
+ end;
+ OPR_REFERENCE :
+ begin
+ if (GotStar) or
+ (actasmtoken=AS_STAR) or
+ (oper.opr.ref.base<>NR_NO) then
+ begin
+ if (oper.opr.ref.index<>NR_NO) then
+ Message(asmr_e_multiple_index);
+ oper.opr.ref.index:=hreg;
+ if scale<>0 then
+ begin
+ oper.opr.ref.scalefactor:=scale;
+ scale:=0;
+ end;
+ end
+ else
+ begin
+ oper.opr.ref.base:=hreg;
+{$ifdef x86_64}
+ { non-GOT based RIP-relative accesses are also position-independent }
+ if (oper.opr.ref.base=NR_RIP) and
+ (oper.opr.ref.refaddr<>addr_pic) then
+ oper.opr.ref.refaddr:=addr_pic_no_got;
+{$endif x86_64}
+ end;
+ end;
+ else
+ internalerror(2019050718);
+ end;
+ GotPlus:=false;
+ GotStar:=false;
+ end;
+
+ //AS_OFFSET :
+ // begin
+ // Consume(AS_OFFSET);
+ // GotOffset:=true;
+ // end;
+
+ AS_TYPE,
+ AS_NOT,
+ AS_STRING,
+ AS_INTNUM,
+ AS_LPAREN : { Constant reference expression }
+ begin
+ if not GotPlus and not GotStar then
+ Message(asmr_e_invalid_reference_syntax);
+ cse_in_flags:=[cseif_needofs,cseif_isref];
+ if GotPlus and negative then
+ include(cse_in_flags,cseif_startingminus);
+ BuildConstSymbolExpression(cse_in_flags,l,tempstr,tempsymtyp,size,cse_out_flags);
+ { already handled by BuildConstSymbolExpression(); must be
+ handled there to avoid [reg-1+1] being interpreted as
+ [reg-(1+1)] }
+ negative:=false;
+
+ if tempstr<>'' then
+ begin
+ if GotStar then
+ Message(asmr_e_only_add_relocatable_symbol);
+ if not assigned(oper.opr.ref.symbol) then
+ begin
+ oper.opr.ref.symbol:=current_asmdata.RefAsmSymbol(tempstr,tempsymtyp);
+{$ifdef i8086}
+ if cseof_isseg in cse_out_flags then
+ begin
+ if not (oper.opr.ref.refaddr in [addr_fardataseg,addr_dgroup]) then
+ oper.opr.ref.refaddr:=addr_seg;
+ end
+ else if (tempsymtyp=AT_FUNCTION) and (oper.opr.ref.segment=NR_NO) then
+ oper.opr.ref.segment:=NR_CS;
+{$endif i8086}
+ end
+ else
+ Message(asmr_e_cant_have_multiple_relocatable_symbols);
+ end;
+ case oper.opr.typ of
+ OPR_REFERENCE :
+ begin
+ if GotStar then
+ oper.opr.ref.scalefactor:=l
+ else if (prevasmtoken = AS_STAR) then
+ begin
+ if scale<>0 then
+ scale:=l*scale
+ else
+ scale:=l;
+ end
+ else
+ begin
+ Inc(oper.opr.ref.offset,l);
+ Inc(oper.opr.constoffset,l);
+ end;
+ end;
+ OPR_LOCAL :
+ begin
+ if GotStar then
+ oper.opr.localscale:=l
+ else if (prevasmtoken = AS_STAR) then
+ begin
+ if scale<>0 then
+ scale:=l*scale
+ else
+ scale:=l;
+ end
+ else
+ Inc(oper.opr.localsymofs,l);
+ end;
+ else
+ internalerror(2019050714);
+ end;
+ GotPlus:=(prevasmtoken=AS_PLUS) or
+ (prevasmtoken=AS_MINUS);
+ if GotPlus then
+ negative := prevasmtoken = AS_MINUS;
+ GotStar:=(prevasmtoken=AS_STAR);
+ end;
+
+ //AS_LBRACKET :
+ // begin
+ // if (GotPlus and Negative) or GotStar then
+ // Message(asmr_e_invalid_reference_syntax);
+ // tmpoper:=Tz80Operand.create;
+ // BuildReference(tmpoper);
+ // AddReferences(oper,tmpoper);
+ // tmpoper.Free;
+ // GotPlus:=false;
+ // GotStar:=false;
+ // end;
+
+ AS_RPAREN :
+ begin
+ if GotPlus or GotStar or BracketlessReference then
+ Message(asmr_e_invalid_reference_syntax);
+
+ Consume(AS_RPAREN);
+
+
+
+ if actasmtoken=AS_LPAREN then
+ begin
+ tmpoper:=Tz80Operand.create;
+ BuildReference(tmpoper);
+ AddReferences(oper,tmpoper);
+ tmpoper.Free;
+ end;
+ break;
+ end;
+
+ AS_SEPARATOR,
+ AS_END,
+ AS_COMMA:
+ begin
+ if not BracketlessReference then
+ begin
+ Message(asmr_e_invalid_reference_syntax);
+ RecoverConsume(true);
+ end;
+ break;
+ end;
+
+ else
+ Begin
+ Message(asmr_e_invalid_reference_syntax);
+ RecoverConsume(true);
+ break;
+ end;
+ end;
+ until false;
+ end;
+
+
+ procedure tz80reader.BuildOperand(oper: tz80operand; istypecast: boolean);
+
+ procedure AddLabelOperand(hl:tasmlabel);
+ begin
+ if (oper.opr.typ=OPR_NONE) and
+ is_calljmp(actopcode) then
+ begin
+ oper.opr.typ:=OPR_SYMBOL;
+ oper.opr.symbol:=hl;
+ end
+ else
+ begin
+ oper.InitRef;
+ oper.opr.ref.symbol:=hl;
+ oper.haslabelref:=true;
+ end;
+ end;
+
+ var
+ l: tcgint;
+ tsize: tcgint;
+ expr: string;
+ hl: tasmlabel;
+ begin
+ repeat
+ case actasmtoken of
+ //AS_OFFSET,
+ AS_SIZEOF,
+ AS_VMTOFFSET,
+ AS_TYPE,
+ AS_NOT,
+ AS_STRING,
+ AS_PLUS,
+ AS_MINUS,
+// AS_LPAREN,
+ AS_INTNUM :
+ begin
+ case oper.opr.typ of
+ OPR_REFERENCE :
+ begin
+ l := BuildRefConstExpression(tsize);
+ if tsize<>0 then
+ oper.SetSize(tsize,false);
+ inc(oper.opr.ref.offset,l);
+ inc(oper.opr.constoffset,l);
+ end;
+ OPR_LOCAL :
+ begin
+ l := BuildConstExpression;
+ inc(oper.opr.localsymofs,l);
+ inc(oper.opr.localconstoffset,l);
+ end;
+
+ OPR_NONE,
+ OPR_CONSTANT :
+ BuildConstantOperand(oper);
+ else
+ Message(asmr_e_invalid_operand_type);
+ end;
+ end;
+
+ AS_LPAREN:
+ begin
+ BuildReference(oper);
+ end;
+
+ AS_ID : { A constant expression, or a Variable ref. }
+ Begin
+ { Label or Special symbol reference? }
+ if actasmpattern[1] = '@' then
+ Begin
+ if actasmpattern = '@RESULT' then
+ Begin
+ oper.SetupResult;
+ Consume(AS_ID);
+ expr:='result';
+ end
+ else
+ if (actasmpattern = '@CODE') or (actasmpattern = '@DATA') then
+ begin
+ Message(asmr_w_CODE_and_DATA_not_supported);
+ Consume(AS_ID);
+ end
+ else
+ { Local Label }
+ begin
+ CreateLocalLabel(actasmpattern,hl,false);
+ Consume(AS_ID);
+ AddLabelOperand(hl);
+ end;
+ end
+ else
+ { support result for delphi modes }
+ if (m_objpas in current_settings.modeswitches) and (actasmpattern='RESULT') then
+ begin
+ oper.SetUpResult;
+ Consume(AS_ID);
+ expr:='result';
+ end
+ { probably a variable or normal expression }
+ { or a procedure (such as in CALL ID) }
+ else
+ Begin
+ { is it a constant ? }
+ if SearchIConstant(actasmpattern,l) then
+ Begin
+ case oper.opr.typ of
+ OPR_REFERENCE :
+ begin
+ l := BuildRefConstExpression(tsize);
+ if tsize<>0 then
+ oper.SetSize(tsize,false);
+ inc(oper.opr.ref.offset,l);
+ inc(oper.opr.constoffset,l);
+ end;
+
+ OPR_LOCAL :
+ begin
+ l := BuildRefConstExpression(tsize);
+ if tsize<>0 then
+ oper.SetSize(tsize,false);
+ inc(oper.opr.localsymofs,l);
+ inc(oper.opr.localconstoffset,l);
+ end;
+ OPR_NONE,
+ OPR_CONSTANT :
+ BuildConstantOperand(oper);
+ else
+ Message(asmr_e_invalid_operand_type);
+ end;
+ end
+ else
+ { Check for pascal label }
+ if SearchLabel(actasmpattern,hl,false) then
+ begin
+ Consume(AS_ID);
+ AddLabelOperand(hl);
+ end
+ else
+ { is it a normal variable ? }
+ Begin
+ expr:=actasmpattern;
+ Consume(AS_ID);
+
+
+ { typecasting? }
+ if SearchType(expr,l) then
+ begin
+ oper.hastype:=true;
+ oper.typesize:=l;
+ case actasmtoken of
+ AS_LPAREN :
+ begin
+ { Support Type([Reference]) }
+ Consume(AS_LPAREN);
+ BuildOperand(oper,true);
+ { Delphi also supports Type(Register) and
+ interprets it the same as Type([Register]). }
+ if (oper.opr.typ = OPR_REGISTER) then
+ { This also sets base to the register. }
+ oper.InitRef;
+ Consume(AS_RPAREN);
+ end;
+ //AS_LBRACKET :
+ // begin
+ // { Support Var.Type[Index] }
+ // { Convert @label.Byte[1] to reference }
+ // if oper.opr.typ=OPR_SYMBOL then
+ // oper.initref;
+ // end;
+ else
+ ;
+ end;
+ end
+ else
+ begin
+ if not oper.SetupVar(expr,false) then
+ Begin
+ { not a variable, check special variables.. }
+ if expr = 'SELF' then
+ begin
+ oper.SetupSelf;
+ expr:='self';
+ end
+ else
+ begin
+ Message1(sym_e_unknown_id,expr);
+ expr:='';
+ end;
+ end;
+ { indexed access to variable? }
+ //if actasmtoken=AS_LBRACKET then
+ // begin
+ // { ... then the operand size is not known anymore }
+ // oper.size:=OS_NO;
+ // BuildReference(oper);
+ // end;
+ end;
+ end;
+ end;
+ end;
+
+ AS_REGISTER : { Register, a variable reference or a constant reference }
+ begin
+ Consume(AS_REGISTER);
+
+ { Simple register }
+ if (oper.opr.typ <> OPR_NONE) then
+ Message(asmr_e_syn_operand);
+ oper.opr.typ:=OPR_REGISTER;
+ oper.opr.reg:=actasmregister;
+ oper.SetSize(tcgsize2size[reg_cgsize(oper.opr.reg)],true);
+ end;
+
+ AS_SEPARATOR,
+ AS_END,
+ AS_COMMA:
+ begin
+ break;
+ end;
+
+ else
+ begin
+ Message(asmr_e_syn_operand);
+ RecoverConsume(true);
+ break;
+ end;
+ end;
+ until false;
+ end;
+
+
+ procedure tz80reader.BuildOpCode(instr: TZ80Instruction);
+ var
+ operandnum: Integer;
+ begin
+ instr.opcode:=actopcode;
+ operandnum:=1;
+ Consume(AS_OPCODE);
+ { Zero operand opcode ? }
+ if actasmtoken in [AS_SEPARATOR,AS_END] then
+ exit;
+ { Condition (e.g. 'NC' in 'JP NC, label') }
+ if actasmtoken=AS_CONDITION then
+ begin
+ instr.condition:=actasmcond;
+ Consume(AS_CONDITION);
+ if actasmtoken in [AS_SEPARATOR,AS_END] then
+ exit;
+ if actasmtoken=AS_COMMA then
+ Consume(AS_COMMA);
+ end;
+ { Read Operands }
+ repeat
+ case actasmtoken of
+ { End of asm operands for this opcode }
+ AS_END,
+ AS_SEPARATOR :
+ break;
+
+ { Operand delimiter }
+ AS_COMMA :
+ begin
+ { should have something before the comma }
+ if instr.operands[operandnum].opr.typ=OPR_NONE then
+ Message(asmr_e_syntax_error);
+ if operandnum >= max_operands then
+ Message(asmr_e_too_many_operands)
+ else
+ Inc(operandnum);
+ Consume(AS_COMMA);
+ end;
+ else
+ BuildOperand(instr.Operands[operandnum] as tz80operand,false);
+ end;
+ until false;
+ instr.ops:=operandnum;
+ end;
+
+
+ procedure tz80reader.handleopcode;
+ var
+ instr: TZ80Instruction;
+ begin
+ instr:=TZ80Instruction.create(TZ80Operand);
+ BuildOpcode(instr);
+ with instr do
+ begin
+ //CheckNonCommutativeOpcodes;
+ //AddReferenceSizes;
+ //SetInstructionOpsize;
+ //CheckOperandSizes;
+ ConcatInstruction(curlist);
+ end;
+ instr.Free;
+ end;
+
+
+ procedure tz80reader.ConvertCalljmp(instr : tz80instruction);
+ var
+ newopr : toprrec;
+ begin
+ if instr.Operands[1].opr.typ=OPR_REFERENCE then
+ begin
+ newopr.typ:=OPR_SYMBOL;
+ newopr.symbol:=instr.Operands[1].opr.ref.symbol;
+ newopr.symofs:=instr.Operands[1].opr.ref.offset;
+ if (instr.Operands[1].opr.ref.base<>NR_NO) or
+ (instr.Operands[1].opr.ref.index<>NR_NO) then
+ Message(asmr_e_syn_operand);
+ instr.Operands[1].opr:=newopr;
+ end;
+ end;
+
+
+ function tz80reader.Assemble: tlinkedlist;
+ var
+ hl: tasmlabel;
+ begin
+ Message1(asmr_d_start_reading,'Z80');
+ firsttoken:=TRUE;
+ { sets up all opcode and register tables in uppercase }
+ if not _asmsorted then
+ begin
+ SetupTables;
+ _asmsorted:=TRUE;
+ end;
+ curlist:=TAsmList.Create;
+
+ { we might need to know which parameters are passed in registers }
+ if not parse_generic then
+ current_procinfo.generate_parameter_info;
+
+ { start tokenizer }
+ gettoken;
+ { main loop }
+ repeat
+ case actasmtoken of
+ AS_LLABEL:
+ Begin
+ if CreateLocalLabel(actasmpattern,hl,true) then
+ ConcatLabel(curlist,hl);
+ Consume(AS_LLABEL);
+ end;
+
+ AS_LABEL:
+ Begin
+ if SearchLabel(upper(actasmpattern),hl,true) then
+ begin
+ if hl.is_public then
+ ConcatPublic(curlist,actasmpattern_origcase);
+ ConcatLabel(curlist,hl);
+ end
+ else
+ Message1(asmr_e_unknown_label_identifier,actasmpattern);
+ Consume(AS_LABEL);
+ end;
+
+ AS_END:
+ begin
+ break; { end assembly block }
+ end;
+
+ AS_SEPARATOR:
+ begin
+ Consume(AS_SEPARATOR);
+ end;
+
+ AS_OPCODE:
+ begin
+ HandleOpCode;
+ end;
+
+ else
+ begin
+ Message(asmr_e_syntax_error);
+ RecoverConsume(false);
+ end;
+ end;
+ until false;
+ { check that all referenced local labels are defined }
+ checklocallabels;
+ { Return the list in an asmnode }
+ assemble:=curlist;
+ Message1(asmr_d_finish_reading,'Z80');
+ end;
+
+
+{*****************************************************************************
+ Initialize
+*****************************************************************************}
+
+const
+{ asmmode_z80_att_info : tasmmodeinfo =
+ (
+ id : asmmode_z80_gas;
+ idtxt : 'GAS';
+ casmreader : tz80attreader;
+ );}
+
+ asmmode_z80_standard_info : tasmmodeinfo =
+ (
+ id : asmmode_standard;
+ idtxt : 'STANDARD';
+ casmreader : tz80reader;
+ );
+
+initialization
+// RegisterAsmMode(asmmode_z80_att_info);
+ RegisterAsmMode(asmmode_z80_standard_info);
+end.
diff --git a/compiler/z80/rgcpu.pas b/compiler/z80/rgcpu.pas
new file mode 100644
index 0000000000..69e41285d2
--- /dev/null
+++ b/compiler/z80/rgcpu.pas
@@ -0,0 +1,260 @@
+{
+ Copyright (c) 1998-2008 by Florian Klaempfl
+
+ This unit implements the Z80 specific class for the register
+ allocator
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+
+unit rgcpu;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ uses
+ aasmbase,aasmtai,aasmdata,aasmcpu,aasmsym,
+ cgbase,cgutils,
+ cpubase,
+ rgobj;
+
+ type
+ trgcpu = class(trgobj)
+ procedure add_constraints(reg:tregister);override;
+ procedure do_spill_read(list: TAsmList; pos: tai; const spilltemp: treference; tempreg: tregister; orgsupreg: tsuperregister); override;
+ procedure do_spill_written(list: TAsmList; pos: tai; const spilltemp: treference; tempreg: tregister; orgsupreg: tsuperregister); override;
+ function do_spill_replace(list : TAsmList;instr : tai_cpu_abstract_sym; orgreg : tsuperregister;const spilltemp : treference) : boolean; override;
+ end;
+
+ trgintcpu = class(trgcpu)
+ procedure add_cpu_interferences(p : tai);override;
+ end;
+
+ implementation
+
+ uses
+ verbose, cutils,
+ cgobj,
+ procinfo;
+
+
+ procedure trgcpu.add_constraints(reg:tregister);
+ var
+ supreg,i : Tsuperregister;
+ begin
+ case getsubreg(reg) of
+ R_SUBL,R_SUBH:
+ begin
+ { Some registers have no 8-bit subregister }
+ supreg:=getsupreg(reg);
+ add_edge(supreg,RS_IX);
+ add_edge(supreg,RS_IY);
+ add_edge(supreg,RS_SP);
+ end;
+ else
+ ;
+ end;
+ end;
+
+
+ procedure trgcpu.do_spill_read(list: TAsmList; pos: tai; const spilltemp: treference; tempreg: tregister; orgsupreg: tsuperregister);
+ var
+ helpins : tai;
+ tmpref : treference;
+ helplist : TAsmList;
+ hreg : tregister;
+ begin
+ // if abs(spilltemp.offset)>127 then
+ // begin
+ // Internalerror(2017032701);
+//
+// helplist:=TAsmList.create;
+//
+// helplist.concat(taicpu.op_reg_const(A_LDI,NR_R26,lo(word(spilltemp.offset))));
+// helplist.concat(taicpu.op_reg_const(A_LDI,NR_R27,hi(word(spilltemp.offset))));
+// helplist.concat(taicpu.op_reg_reg(A_ADD,NR_R26,spilltemp.base));
+// helplist.concat(taicpu.op_reg_reg(A_ADC,NR_R27,GetNextReg(spilltemp.base)));
+//
+// reference_reset_base(tmpref,NR_R26,0,1,[]);
+// helpins:=spilling_create_load(tmpref,tempreg);
+// helplist.concat(helpins);
+// list.insertlistafter(pos,helplist);
+// helplist.free;
+ // end
+ // else
+ inherited;
+ end;
+
+
+ procedure trgcpu.do_spill_written(list: TAsmList; pos: tai; const spilltemp: treference; tempreg: tregister; orgsupreg: tsuperregister);
+ var
+ tmpref : treference;
+ helplist : TAsmList;
+ hreg : tregister;
+ begin
+ // if abs(spilltemp.offset)>127 then
+ // begin
+ // Internalerror(2017032702);
+//
+// helplist:=TAsmList.create;
+//
+// helplist.concat(taicpu.op_reg_const(A_LDI,NR_R26,lo(word(spilltemp.offset))));
+// helplist.concat(taicpu.op_reg_const(A_LDI,NR_R27,hi(word(spilltemp.offset))));
+// helplist.concat(taicpu.op_reg_reg(A_ADD,NR_R26,spilltemp.base));
+// helplist.concat(taicpu.op_reg_reg(A_ADC,NR_R27,GetNextReg(spilltemp.base)));
+//
+// reference_reset_base(tmpref,NR_R26,0,1,[]);
+// helplist.concat(spilling_create_store(tempreg,tmpref));
+// list.insertlistafter(pos,helplist);
+// helplist.free;
+ // end
+ // else
+ inherited;
+ end;
+
+
+ procedure trgintcpu.add_cpu_interferences(p : tai);
+ var
+ r : tsuperregister;
+ begin
+ //if p.typ=ait_instruction then
+ // begin
+ // case taicpu(p).opcode of
+ // A_CPI,
+ // A_ANDI,
+ // A_ORI,
+ // A_SUBI,
+ // A_SBCI,
+ // A_LDI:
+ // for r:=RS_R0 to RS_R15 do
+ // add_edge(r,GetSupReg(taicpu(p).oper[0]^.reg));
+ // A_MULS:
+ // begin
+ // for r:=RS_R0 to RS_R15 do
+ // add_edge(r,GetSupReg(taicpu(p).oper[0]^.reg));
+ // for r:=RS_R0 to RS_R15 do
+ // add_edge(r,GetSupReg(taicpu(p).oper[1]^.reg));
+ // end;
+ // end;
+ // end;
+ end;
+
+
+ function trgcpu.do_spill_replace(list:TAsmList;instr:tai_cpu_abstract_sym;orgreg:tsuperregister;const spilltemp:treference):boolean;
+ var
+ b : byte;
+ begin
+ result:=false;
+ if (spilltemp.offset<-128) or (spilltemp.offset>127) then
+ exit;
+
+ { Replace 'ld orgreg,src' with 'ld spilltemp,src'
+ and 'ld dst,orgreg' with 'ld dst,spilltemp' }
+ with instr do
+ begin
+ if (opcode=A_LD) and (ops=2) and (oper[1]^.typ=top_reg) and (oper[0]^.typ=top_reg) then
+ begin
+ if (getregtype(oper[0]^.reg)=regtype) and
+ (get_alias(getsupreg(oper[0]^.reg))=orgreg) and
+ (get_alias(getsupreg(oper[1]^.reg))<>orgreg) then
+ begin
+ instr.loadref(0,spilltemp);
+ result:=true;
+ end
+ else if (getregtype(oper[1]^.reg)=regtype) and
+ (get_alias(getsupreg(oper[1]^.reg))=orgreg) and
+ (get_alias(getsupreg(oper[0]^.reg))<>orgreg) then
+ begin
+ instr.loadref(1,spilltemp);
+ result:=true;
+ end;
+ end
+ { Replace 'ld orgreg,const' with 'ld spilltemp,const' }
+ else if (opcode=A_LD) and (ops=2) and (oper[1]^.typ=top_const) and (oper[0]^.typ=top_reg) then
+ begin
+ if (getregtype(oper[0]^.reg)=regtype) and
+ (get_alias(getsupreg(oper[0]^.reg))=orgreg) then
+ begin
+ instr.loadref(0,spilltemp);
+ result:=true;
+ end;
+ end
+ { Replace 'add A,orgreg' with 'add A,spilltemp'
+ and 'adc A,orgreg' with 'adc A,spilltemp'
+ and 'sub A,orgreg' with 'sub A,spilltemp'
+ and 'sbc A,orgreg' with 'sbc A,spilltemp'
+ and 'and A,orgreg' with 'and A,spilltemp'
+ and 'or A,orgreg' with 'or A,spilltemp'
+ and 'xor A,orgreg' with 'xor A,spilltemp'
+ and 'cp A,orgreg' with 'cp A,spilltemp' }
+ else if (opcode in [A_ADD,A_ADC,A_SUB,A_SBC,A_AND,A_OR,A_XOR,A_CP]) and (ops=2) and (oper[1]^.typ=top_reg) and (oper[0]^.typ=top_reg) then
+ begin
+ { we don't really need to check whether the first register is 'A',
+ because that's the only register allowed as a destination for
+ these instructions }
+ if (getregtype(oper[1]^.reg)=regtype) and
+ (get_alias(getsupreg(oper[1]^.reg))=orgreg) and
+ (get_alias(getsupreg(oper[0]^.reg))<>orgreg) then
+ begin
+ instr.loadref(1,spilltemp);
+ result:=true;
+ end;
+ end
+ { Replace 'bit const,orgreg' with 'bit const,spilltemp'
+ and 'set const,orgreg' with 'set const,spilltemp'
+ and 'res const,orgreg' with 'res const,spilltemp' }
+ else if (opcode in [A_BIT,A_SET,A_RES]) and (ops=2) and (oper[1]^.typ=top_reg) and (oper[0]^.typ=top_const) then
+ begin
+ if (getregtype(oper[1]^.reg)=regtype) and
+ (get_alias(getsupreg(oper[1]^.reg))=orgreg) then
+ begin
+ instr.loadref(1,spilltemp);
+ result:=true;
+ end;
+ end
+ { Replace 'inc orgreg' with 'inc spilltemp'
+ and 'dec orgreg' with 'dec spilltemp'
+ and 'add orgreg' with 'add spilltemp'
+ and 'adc orgreg' with 'adc spilltemp'
+ and 'sub orgreg' with 'sub spilltemp'
+ and 'sbc orgreg' with 'sbc spilltemp'
+ and 'and orgreg' with 'and spilltemp'
+ and 'or orgreg' with 'or spilltemp'
+ and 'xor orgreg' with 'xor spilltemp'
+ and 'cp orgreg' with 'cp spilltemp'
+ and 'rlc orgreg' with 'rlc spilltemp'
+ and 'rl orgreg' with 'rl spilltemp'
+ and 'rrc orgreg' with 'rrc spilltemp'
+ and 'rr orgreg' with 'rr spilltemp'
+ and 'sla orgreg' with 'sla spilltemp'
+ and 'sra orgreg' with 'sra spilltemp'
+ and 'srl orgreg' with 'srl spilltemp' }
+ else if (opcode in [A_INC,A_DEC,A_ADD,A_ADC,A_SUB,A_SBC,A_AND,A_OR,A_XOR,A_CP,
+ A_RLC,A_RL,A_RRC,A_RR,A_SLA,A_SRA,A_SRL]) and (ops=1) and (oper[0]^.typ=top_reg) then
+ begin
+ if (getregtype(oper[0]^.reg)=regtype) and
+ (get_alias(getsupreg(oper[0]^.reg))=orgreg) then
+ begin
+ instr.loadref(0,spilltemp);
+ result:=true;
+ end;
+ end;
+ end;
+ end;
+
+end.
diff --git a/compiler/z80/rz80con.inc b/compiler/z80/rz80con.inc
new file mode 100644
index 0000000000..94af2a4825
--- /dev/null
+++ b/compiler/z80/rz80con.inc
@@ -0,0 +1,28 @@
+{ don't edit, this file is generated from z80reg.dat }
+NR_NO = tregister($00000000);
+NR_B = tregister($01010000);
+NR_C = tregister($01010001);
+NR_D = tregister($01010002);
+NR_E = tregister($01010003);
+NR_H = tregister($01010004);
+NR_L = tregister($01010005);
+NR_A = tregister($01010007);
+NR_BC = tregister($01030001);
+NR_DE = tregister($01030003);
+NR_HL = tregister($01030005);
+NR_AF = tregister($01030007);
+NR_IX = tregister($01030008);
+NR_IY = tregister($01030009);
+NR_B_ = tregister($05010000);
+NR_C_ = tregister($05010001);
+NR_D_ = tregister($05010002);
+NR_E_ = tregister($05010003);
+NR_H_ = tregister($05010004);
+NR_L_ = tregister($05010005);
+NR_A_ = tregister($05010007);
+NR_SP = tregister($05030008);
+NR_F = tregister($05010009);
+NR_F_ = tregister($0501000a);
+NR_PC = tregister($0503000b);
+NR_I = tregister($0501000c);
+NR_R = tregister($0501000d);
diff --git a/compiler/z80/rz80dwa.inc b/compiler/z80/rz80dwa.inc
new file mode 100644
index 0000000000..0abf4d2065
--- /dev/null
+++ b/compiler/z80/rz80dwa.inc
@@ -0,0 +1,28 @@
+{ don't edit, this file is generated from z80reg.dat }
+0,
+1,
+2,
+3,
+4,
+5,
+6,
+7,
+8,
+9,
+10,
+11,
+11,
+12,
+13,
+14,
+15,
+16,
+17,
+18,
+19,
+20,
+23,
+24,
+21,
+25,
+22
diff --git a/compiler/z80/rz80nor.inc b/compiler/z80/rz80nor.inc
new file mode 100644
index 0000000000..d3340821e0
--- /dev/null
+++ b/compiler/z80/rz80nor.inc
@@ -0,0 +1,2 @@
+{ don't edit, this file is generated from z80reg.dat }
+27
diff --git a/compiler/z80/rz80num.inc b/compiler/z80/rz80num.inc
new file mode 100644
index 0000000000..f6273b2902
--- /dev/null
+++ b/compiler/z80/rz80num.inc
@@ -0,0 +1,28 @@
+{ don't edit, this file is generated from z80reg.dat }
+tregister($00000000),
+tregister($01010000),
+tregister($01010001),
+tregister($01010002),
+tregister($01010003),
+tregister($01010004),
+tregister($01010005),
+tregister($01010007),
+tregister($01030001),
+tregister($01030003),
+tregister($01030005),
+tregister($01030007),
+tregister($01030008),
+tregister($01030009),
+tregister($05010000),
+tregister($05010001),
+tregister($05010002),
+tregister($05010003),
+tregister($05010004),
+tregister($05010005),
+tregister($05010007),
+tregister($05030008),
+tregister($05010009),
+tregister($0501000a),
+tregister($0503000b),
+tregister($0501000c),
+tregister($0501000d)
diff --git a/compiler/z80/rz80rni.inc b/compiler/z80/rz80rni.inc
new file mode 100644
index 0000000000..0f72ea92f7
--- /dev/null
+++ b/compiler/z80/rz80rni.inc
@@ -0,0 +1,28 @@
+{ don't edit, this file is generated from z80reg.dat }
+0,
+1,
+2,
+3,
+4,
+5,
+6,
+7,
+8,
+9,
+10,
+11,
+12,
+13,
+14,
+15,
+16,
+17,
+18,
+19,
+20,
+22,
+23,
+25,
+26,
+21,
+24
diff --git a/compiler/z80/rz80sri.inc b/compiler/z80/rz80sri.inc
new file mode 100644
index 0000000000..e7c87a91f4
--- /dev/null
+++ b/compiler/z80/rz80sri.inc
@@ -0,0 +1,28 @@
+{ don't edit, this file is generated from z80reg.dat }
+0,
+7,
+20,
+11,
+1,
+14,
+8,
+2,
+15,
+3,
+16,
+9,
+4,
+17,
+22,
+23,
+5,
+18,
+10,
+25,
+12,
+13,
+6,
+19,
+24,
+26,
+21
diff --git a/compiler/z80/rz80sta.inc b/compiler/z80/rz80sta.inc
new file mode 100644
index 0000000000..0abf4d2065
--- /dev/null
+++ b/compiler/z80/rz80sta.inc
@@ -0,0 +1,28 @@
+{ don't edit, this file is generated from z80reg.dat }
+0,
+1,
+2,
+3,
+4,
+5,
+6,
+7,
+8,
+9,
+10,
+11,
+11,
+12,
+13,
+14,
+15,
+16,
+17,
+18,
+19,
+20,
+23,
+24,
+21,
+25,
+22
diff --git a/compiler/z80/rz80std.inc b/compiler/z80/rz80std.inc
new file mode 100644
index 0000000000..1c2db46cb9
--- /dev/null
+++ b/compiler/z80/rz80std.inc
@@ -0,0 +1,28 @@
+{ don't edit, this file is generated from z80reg.dat }
+'INVALID',
+'b',
+'c',
+'d',
+'e',
+'h',
+'l',
+'a',
+'bc',
+'de',
+'hl',
+'af',
+'ix',
+'iy',
+'b''',
+'c''',
+'d''',
+'e''',
+'h''',
+'l''',
+'a''',
+'sp',
+'f',
+'f''',
+'pc',
+'i',
+'r'
diff --git a/compiler/z80/rz80sup.inc b/compiler/z80/rz80sup.inc
new file mode 100644
index 0000000000..233301826e
--- /dev/null
+++ b/compiler/z80/rz80sup.inc
@@ -0,0 +1,28 @@
+{ don't edit, this file is generated from z80reg.dat }
+RS_NO = 0;
+RS_B = 0;
+RS_C = 1;
+RS_D = 2;
+RS_E = 3;
+RS_H = 4;
+RS_L = 5;
+RS_A = 7;
+RS_BC = 1;
+RS_DE = 3;
+RS_HL = 5;
+RS_AF = 7;
+RS_IX = 8;
+RS_IY = 9;
+RS_B_ = 0;
+RS_C_ = 1;
+RS_D_ = 2;
+RS_E_ = 3;
+RS_H_ = 4;
+RS_L_ = 5;
+RS_A_ = 7;
+RS_SP = 8;
+RS_F = 9;
+RS_F_ = 10;
+RS_PC = 11;
+RS_I = 12;
+RS_R = 13;
diff --git a/compiler/z80/symcpu.pas b/compiler/z80/symcpu.pas
new file mode 100644
index 0000000000..bdcbbfff83
--- /dev/null
+++ b/compiler/z80/symcpu.pas
@@ -0,0 +1,216 @@
+{
+ Copyright (c) 2014 by Florian Klaempfl
+
+ Symbol table overrides for Z80
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit symcpu;
+
+{$i fpcdefs.inc}
+
+interface
+
+uses
+ symtype,symdef,symsym;
+
+type
+ { defs }
+ tcpufiledef = class(tfiledef)
+ end;
+ tcpufiledefclass = class of tcpufiledef;
+
+ tcpuvariantdef = class(tvariantdef)
+ end;
+ tcpuvariantdefclass = class of tcpuvariantdef;
+
+ tcpuformaldef = class(tformaldef)
+ end;
+ tcpuformaldefclass = class of tcpuformaldef;
+
+ tcpuforwarddef = class(tforwarddef)
+ end;
+ tcpuforwarddefclass = class of tcpuforwarddef;
+
+ tcpuundefineddef = class(tundefineddef)
+ end;
+ tcpuundefineddefclass = class of tcpuundefineddef;
+
+ tcpuerrordef = class(terrordef)
+ end;
+ tcpuerrordefclass = class of tcpuerrordef;
+
+ tcpupointerdef = class(tpointerdef)
+ end;
+ tcpupointerdefclass = class of tcpupointerdef;
+
+ tcpurecorddef = class(trecorddef)
+ end;
+ tcpurecorddefclass = class of tcpurecorddef;
+
+ tcpuimplementedinterface = class(timplementedinterface)
+ end;
+ tcpuimplementedinterfaceclass = class of tcpuimplementedinterface;
+
+ tcpuobjectdef = class(tobjectdef)
+ end;
+ tcpuobjectdefclass = class of tcpuobjectdef;
+
+ tcpuclassrefdef = class(tclassrefdef)
+ end;
+ tcpuclassrefdefclass = class of tcpuclassrefdef;
+
+ tcpuarraydef = class(tarraydef)
+ end;
+ tcpuarraydefclass = class of tcpuarraydef;
+
+ tcpuorddef = class(torddef)
+ end;
+ tcpuorddefclass = class of tcpuorddef;
+
+ tcpufloatdef = class(tfloatdef)
+ end;
+ tcpufloatdefclass = class of tcpufloatdef;
+
+ tcpuprocvardef = class(tprocvardef)
+ end;
+ tcpuprocvardefclass = class of tcpuprocvardef;
+
+ tcpuprocdef = class(tprocdef)
+ end;
+ tcpuprocdefclass = class of tcpuprocdef;
+
+ tcpustringdef = class(tstringdef)
+ end;
+ tcpustringdefclass = class of tcpustringdef;
+
+ tcpuenumdef = class(tenumdef)
+ end;
+ tcpuenumdefclass = class of tcpuenumdef;
+
+ tcpusetdef = class(tsetdef)
+ end;
+ tcpusetdefclass = class of tcpusetdef;
+
+ { syms }
+ tcpulabelsym = class(tlabelsym)
+ end;
+ tcpulabelsymclass = class of tcpulabelsym;
+
+ tcpuunitsym = class(tunitsym)
+ end;
+ tcpuunitsymclass = class of tcpuunitsym;
+
+ tcpuprogramparasym = class(tprogramparasym)
+ end;
+ tcpuprogramparasymclass = class(tprogramparasym);
+
+ tcpunamespacesym = class(tnamespacesym)
+ end;
+ tcpunamespacesymclass = class of tcpunamespacesym;
+
+ tcpuprocsym = class(tprocsym)
+ end;
+ tcpuprocsymclass = class of tcpuprocsym;
+
+ tcputypesym = class(ttypesym)
+ end;
+ tcpuypesymclass = class of tcputypesym;
+
+ tcpufieldvarsym = class(tfieldvarsym)
+ end;
+ tcpufieldvarsymclass = class of tcpufieldvarsym;
+
+ tcpulocalvarsym = class(tlocalvarsym)
+ end;
+ tcpulocalvarsymclass = class of tcpulocalvarsym;
+
+ tcpuparavarsym = class(tparavarsym)
+ end;
+ tcpuparavarsymclass = class of tcpuparavarsym;
+
+ tcpustaticvarsym = class(tstaticvarsym)
+ end;
+ tcpustaticvarsymclass = class of tcpustaticvarsym;
+
+ tcpuabsolutevarsym = class(tabsolutevarsym)
+ end;
+ tcpuabsolutevarsymclass = class of tcpuabsolutevarsym;
+
+ tcpupropertysym = class(tpropertysym)
+ end;
+ tcpupropertysymclass = class of tcpupropertysym;
+
+ tcpuconstsym = class(tconstsym)
+ end;
+ tcpuconstsymclass = class of tcpuconstsym;
+
+ tcpuenumsym = class(tenumsym)
+ end;
+ tcpuenumsymclass = class of tcpuenumsym;
+
+ tcpusyssym = class(tsyssym)
+ end;
+ tcpusyssymclass = class of tcpusyssym;
+
+
+const
+ pbestrealtype : ^tdef = @s64floattype;
+
+
+implementation
+
+begin
+ { used tdef classes }
+ cfiledef:=tcpufiledef;
+ cvariantdef:=tcpuvariantdef;
+ cformaldef:=tcpuformaldef;
+ cforwarddef:=tcpuforwarddef;
+ cundefineddef:=tcpuundefineddef;
+ cerrordef:=tcpuerrordef;
+ cpointerdef:=tcpupointerdef;
+ crecorddef:=tcpurecorddef;
+ cimplementedinterface:=tcpuimplementedinterface;
+ cobjectdef:=tcpuobjectdef;
+ cclassrefdef:=tcpuclassrefdef;
+ carraydef:=tcpuarraydef;
+ corddef:=tcpuorddef;
+ cfloatdef:=tcpufloatdef;
+ cprocvardef:=tcpuprocvardef;
+ cprocdef:=tcpuprocdef;
+ cstringdef:=tcpustringdef;
+ cenumdef:=tcpuenumdef;
+ csetdef:=tcpusetdef;
+
+ { used tsym classes }
+ clabelsym:=tcpulabelsym;
+ cunitsym:=tcpuunitsym;
+ cprogramparasym:=tcpuprogramparasym;
+ cnamespacesym:=tcpunamespacesym;
+ cprocsym:=tcpuprocsym;
+ ctypesym:=tcputypesym;
+ cfieldvarsym:=tcpufieldvarsym;
+ clocalvarsym:=tcpulocalvarsym;
+ cparavarsym:=tcpuparavarsym;
+ cstaticvarsym:=tcpustaticvarsym;
+ cabsolutevarsym:=tcpuabsolutevarsym;
+ cpropertysym:=tcpupropertysym;
+ cconstsym:=tcpuconstsym;
+ cenumsym:=tcpuenumsym;
+ csyssym:=tcpusyssym;
+end.
+
diff --git a/compiler/z80/tgcpu.pas b/compiler/z80/tgcpu.pas
new file mode 100644
index 0000000000..3976ae75da
--- /dev/null
+++ b/compiler/z80/tgcpu.pas
@@ -0,0 +1,67 @@
+{
+ Copyright (C) 1998-2000 by Florian Klaempfl
+
+ This unit handles the temporary variables stuff for Z80
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+{
+ This unit handles the temporary variables stuff for Z80.
+}
+unit tgcpu;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ uses
+ tgobj,globtype,aasmdata,cgutils,symtype;
+
+ type
+
+ { ttgz80 }
+
+ ttgz80 = class(ttgobj)
+ public
+ procedure setfirsttemp(l: asizeint); override;
+ end;
+
+implementation
+
+uses
+ globals,
+ verbose,
+ cpubase,
+ cutils;
+
+{ ttgz80 }
+
+procedure ttgz80.setfirsttemp(l: asizeint);
+ begin
+ { this is a negative value normally }
+ if l>0 then
+ internalerror(200204221);
+ firsttemp:=l;
+ lasttemp:=l;
+{$ifdef EXTDEBUG}
+ Comment(V_Note,'tgobj: (SetFirstTemp) set to '+tostr(l));
+{$endif}
+ end;
+
+begin
+ tgobjclass:=ttgz80;
+end.
diff --git a/compiler/z80/z80ins.dat b/compiler/z80/z80ins.dat
new file mode 100644
index 0000000000..1d1f5fac18
--- /dev/null
+++ b/compiler/z80/z80ins.dat
@@ -0,0 +1,381 @@
+; legend:
+; r - 8-bit register: A/B/C/D/E/H/L
+; r' - 8-bit register: A/B/C/D/E/H/L
+; b - 3-bit immediate value (bit number: [0..7])
+; n - 8-bit immediate value
+; p - immediate value in [$00,$08,$10,$18,$20,$28,$30,$38]
+; e - 8-bit relative jump offset
+; nn - 16-bit immediate value
+; 0 - the immediate value 0
+; 1 - the immediate value 1
+; 2 - the immediate value 2
+; cc - condition: NZ/Z/NC/C/PO/PE/P/M
+; C - condition C
+; NC - condition NC
+; Z - condition Z
+; NZ - condition NZ
+; dd - 16-bit register pair: BC/DE/HL/SP
+; qq - 16-bit register pair: BC/DE/HL/AF
+; pp - 16-bit register pair: BC/DE/IX/SP
+; rr - 16-bit register pair: BC/DE/IY/SP
+; A - register A
+; I - register I
+; R - register R
+; IX - register IX
+; IY - register IY
+; SP - register SP
+; DE - 16-bit register pair DE
+; HL - 16-bit register pair HL
+; AF - 16-bit register pair AF
+; AF' - alternate register set, 16-bit register pair AF'
+; (C) - implied parameter of the IN and OUT instructions
+; (n) - 8-bit immediate port number for the IN and OUT instructions
+; (nn) - memory contents at address (nn = 16-bit immediate address)
+; (BC) - memory contents at address in register BC
+; (DE) - memory contents at address in register DE
+; (HL) - memory contents at address in register HL
+; (SP) - memory contents at address in register SP
+; (IX) - memory contents at address in register IX
+; (IY) - memory contents at address in register IY
+; (IX+d) - memory contents at address in register IX+d, d is in [-128..127]
+; (IY+d) - memory contents at address in register IY+d, d is in [-128..127]
+
+[None]
+void void
+
+[ADC]
+A,r %10001rrr
+A,n $CE,n
+A,(HL) $8E
+A,(IX+d) $DD,$8E,d
+A,(IY+d) $FD,$8E,d
+HL,dd $ED,%01dd1010
+
+[ADD]
+A,r %10000rrr
+A,n $C6,n
+A,(HL) $86
+A,(IX+d) $DD,$86,d
+A,(IY+d) $FD,$86,d
+HL,dd %00dd1001
+IX,pp $DD,%00pp1001
+IY,rr $FD,%00rr1001
+
+[AND]
+A,r %10100rrr
+A,n $E6,n
+A,(HL) $A6
+A,(IX+d) $DD,$A6,d
+A,(IY+d) $FD,$A6,d
+
+[BIT]
+b,r $CB,%01bbbrrr
+b,(HL) $CB,%01bbb110
+b,(IX+d) $DD,$CB,d,%01bbb110
+b,(IY+d) $FD,$CB,d,%01bbb110
+
+[CALL]
+nn $CD,nn
+cc,nn %11ccc100,nn
+
+[CCF]
+void $3F
+
+[CP]
+A,r %10111rrr
+A,n $FE,n
+A,(HL) $BE
+A,(IX+d) $DD,$BE,d
+A,(IY+d) $FD,$BE,d
+
+[CPD]
+void $ED,$A9
+
+[CPDR]
+void $ED,$B9
+
+[CPI]
+void $ED,$A1
+
+[CPIR]
+void $ED,$B1
+
+[CPL]
+void $2F
+
+[DAA]
+void $27
+
+[DEC]
+r %00rrr101
+(HL) $35
+(IX+d) $DD,$35,d
+(IY+d) $FD,$35,d
+dd %00dd1011
+IX $DD,$2B
+IY $FD,$2B
+
+[DI]
+void $F3
+
+[DJNZ]
+e $10,e
+
+[EI]
+void $FB
+
+[EX]
+DE,HL $EB
+AF,AF' $08
+(SP),HL $E3
+(SP),IX $DD,$E3
+(SP),IY $FD,$E3
+
+[EXX]
+void $D9
+
+[HALT]
+void $76
+
+[IM]
+0 $ED,$46
+1 $ED,$56
+2 $ED,$5E
+
+[IN]
+A,(n) $DB,n
+r,(C) $ED,%01rrr000
+
+[INC]
+r %00rrr100
+(HL) $34
+(IX+d) $DD,$34,d
+(IY+d) $FD,$34,d
+dd %00dd0011
+IX $DD,$23
+IY $FD,$23
+
+[IND]
+void $ED,$AA
+
+[INDR]
+void $ED,$BA
+
+[INI]
+void $ED,$A2
+
+[INIR]
+void $ED,$B2
+
+[JP]
+nn $C3,nn
+cc,nn %11ccc010,nn
+(HL) $E9
+(IX) $DD,$E9
+(IY) $FD,$E9
+
+[JR]
+e $18,e
+C,e $38,e
+NC,e $30,e
+Z,e $28,e
+NZ,e $20,e
+
+[LD]
+r,r' %01rrrr'r'r'
+r,n %00rrr110,n
+r,(HL) %01rrr110
+r,(IX+d) $DD,%01rrr110,d
+r,(IY+d) $FD,%01rrr110,d
+(HL),r %01110rrr
+(IX+d),r $DD,%01110rrr,d
+(IY+d),r $FD,%01110rrr,d
+(HL),n $36,n
+(IX+d),n $DD,$36,d,n
+(IY+d),n $FD,$36,d,n
+A,(BC) $0A
+A,(DE) $1A
+A,(nn) $3A,nn
+(BC),A $02
+(DE),A $12
+(nn),A $32,nn
+A,I $ED,$57
+A,R $ED,$5F
+I,A $ED,$47
+R,A $ED,$4F
+dd,nn %00dd0001,nn
+IX,nn $DD,$21,nn
+IY,nn $FD,$21,nn
+HL,(nn) $2A,nn
+dd,(nn) $ED,%01dd1011,nn
+IX,(nn) $DD,$2A,nn
+IY,(nn) $FD,$2A,nn
+(nn),HL $22,nn
+(nn),dd $ED,%01dd0011,nn
+(nn),IX $DD,$22,nn
+(nn),IY $FD,$22,nn
+SP,HL $F9
+SP,IX $DD,$F9
+SP,IY $FD,$F9
+
+[LDD]
+void $ED,$A8
+
+[LDDR]
+void $ED,$B8
+
+[LDI]
+void $ED,$A0
+
+[LDIR]
+void $ED,$B0
+
+[NEG]
+void $ED,$44
+
+[NOP]
+void $00
+
+[OR]
+A,r %10110rrr
+A,n $F6,n
+A,(HL) $B6
+A,(IX+d) $DD,$B6,d
+A,(IY+d) $FD,$B6,d
+
+[OTDR]
+void $ED,$BB
+
+[OTIR]
+void $ED,$B3
+
+[OUT]
+(n),A $D3,n
+(C),r $ED,%01rrr001
+
+[OUTD]
+void $ED,$AB
+
+[OUTI]
+void $ED,$A3
+
+[POP]
+qq %11qq0001
+IX $DD,$E1
+IY $FD,$E1
+
+[PUSH]
+qq %11qq0101
+IX $DD,$E5
+IY $FD,$E5
+
+[RES]
+b,r $CB,%10bbbrrr
+b,(HL) $CB,%10bbb110
+b,(IX+d) $DD,$CB,d,%10bbb110
+b,(IY+d) $FD,$CB,d,%10bbb110
+
+[RET]
+void $C9
+cc %11ccc000
+
+[RETI]
+void $ED,$4D
+
+[RETN]
+void $ED,$45
+
+[RL]
+r $CB,%00010rrr
+(HL) $CB,$16
+(IX+d) $DD,$CB,d,$16
+(IY+d) $FD,$CB,d,$16
+
+[RLA]
+void $17
+
+[RLC]
+r $CB,%00000rrr
+(HL) $CB,$06
+(IX+d) $DD,$CB,d,$06
+(IY+d) $FD,$CB,d,$06
+
+[RLCA]
+void $07
+
+[RLD]
+void $ED,$6F
+
+[RR]
+r $CB,%00001rrr
+(HL) $CB,$1E
+(IX+d) $DD,$CB,d,$1E
+(IY+d) $FD,$CB,d,$1E
+
+[RRA]
+void $1F
+
+[RRC]
+r $CB,%00001rrr
+(HL) $CB,$0E
+(IX+d) $DD,$CB,d,$0E
+(IY+d) $FD,$CB,d,$0E
+
+[RRCA]
+void $0F
+
+[RRD]
+void $ED,$67
+
+[RST]
+p %11ppp111
+
+[SBC]
+A,r %10011rrr
+A,n $DE,n
+A,(HL) $9E
+A,(IX+d) $DD,$9E,d
+A,(IY+d) $FD,$9E,d
+HL,dd $ED,%01dd0010
+
+[SCF]
+void $37
+
+[SET]
+b,r $CB,%11bbbrrr
+b,(HL) $CB,%11bbb110
+b,(IX+d) $DD,$CB,d,%11bbb110
+b,(IY+d) $FD,$CB,d,%11bbb110
+
+[SLA]
+r $CB,%00100rrr
+(HL) $CB,$26
+(IX+d) $DD,$CB,d,$26
+(IY+d) $FD,$CB,d,$26
+
+[SRA]
+r $CB,%00101rrr
+(HL) $CB,$2E
+(IX+d) $DD,$CB,d,$2E
+(IY+d) $FD,$CB,d,$2E
+
+[SRL]
+r $CB,%00111rrr
+(HL) $CB,$3E
+(IX+d) $DD,$CB,d,$3E
+(IY+d) $FD,$CB,d,$3E
+
+[SUB]
+A,r %10010rrr
+A,n $D6,n
+A,(HL) $96
+A,(IX+d) $DD,$96,d
+A,(IY+d) $FD,$96,d
+
+[XOR]
+A,r %10101rrr
+A,n $EE,n
+A,(HL) $AE
+A,(IX+d) $DD,$AE,d
+A,(IY+d) $FD,$AE,d
+
diff --git a/compiler/z80/z80nop.inc b/compiler/z80/z80nop.inc
new file mode 100644
index 0000000000..65a8aacb83
--- /dev/null
+++ b/compiler/z80/z80nop.inc
@@ -0,0 +1,2 @@
+{ don't edit, this file is generated from z80ins.dat; to regenerate, run 'make insdat' in the compiler directory }
+203;
diff --git a/compiler/z80/z80op.inc b/compiler/z80/z80op.inc
new file mode 100644
index 0000000000..d641da8d60
--- /dev/null
+++ b/compiler/z80/z80op.inc
@@ -0,0 +1,70 @@
+{ don't edit, this file is generated from z80ins.dat; to regenerate, run 'make insdat' in the compiler directory }
+(
+A_None,
+A_ADC,
+A_ADD,
+A_AND,
+A_BIT,
+A_CALL,
+A_CCF,
+A_CP,
+A_CPD,
+A_CPDR,
+A_CPI,
+A_CPIR,
+A_CPL,
+A_DAA,
+A_DEC,
+A_DI,
+A_DJNZ,
+A_EI,
+A_EX,
+A_EXX,
+A_HALT,
+A_IM,
+A_IN,
+A_INC,
+A_IND,
+A_INDR,
+A_INI,
+A_INIR,
+A_JP,
+A_JR,
+A_LD,
+A_LDD,
+A_LDDR,
+A_LDI,
+A_LDIR,
+A_NEG,
+A_NOP,
+A_OR,
+A_OTDR,
+A_OTIR,
+A_OUT,
+A_OUTD,
+A_OUTI,
+A_POP,
+A_PUSH,
+A_RES,
+A_RET,
+A_RETI,
+A_RETN,
+A_RL,
+A_RLA,
+A_RLC,
+A_RLCA,
+A_RLD,
+A_RR,
+A_RRA,
+A_RRC,
+A_RRCA,
+A_RRD,
+A_RST,
+A_SBC,
+A_SCF,
+A_SET,
+A_SLA,
+A_SRA,
+A_SRL,
+A_SUB,
+A_XOR);
diff --git a/compiler/z80/z80reg.dat b/compiler/z80/z80reg.dat
new file mode 100644
index 0000000000..b745a7fe8e
--- /dev/null
+++ b/compiler/z80/z80reg.dat
@@ -0,0 +1,50 @@
+;
+; Z80 registers
+;
+; layout
+; <name>,<value>,<stdname>,<stabidx>,<dwarfidx>
+;
+NO,$00000000,INVALID,0,0
+
+; Main registers
+B,$01010000,b,1,1
+C,$01010001,c,2,2
+D,$01010002,d,3,3
+E,$01010003,e,4,4
+H,$01010004,h,5,5
+L,$01010005,l,6,6
+A,$01010007,a,7,7
+
+; Register pairs
+BC,$01030001,bc,8,8
+DE,$01030003,de,9,9
+HL,$01030005,hl,10,10
+AF,$01030007,af,11,11
+
+; Index registers
+IX,$01030008,ix,11,11
+IY,$01030009,iy,12,12
+
+; Alternate registers
+B_,$05010000,b'',13,13
+C_,$05010001,c'',14,14
+D_,$05010002,d'',15,15
+E_,$05010003,e'',16,16
+H_,$05010004,h'',17,17
+L_,$05010005,l'',18,18
+A_,$05010007,a'',19,19
+
+; Stack pointer
+SP,$05030008,sp,20,20
+
+; Flags
+F,$05010009,f,23,23
+F_,$0501000a,f'',24,24
+
+; Program counter
+PC,$0503000b,pc,21,21
+
+; Other registers
+I,$0501000c,i,25,25
+R,$0501000d,r,22,22
+
diff --git a/compiler/z80/z80stdopnames.inc b/compiler/z80/z80stdopnames.inc
new file mode 100644
index 0000000000..7cfbe373c9
--- /dev/null
+++ b/compiler/z80/z80stdopnames.inc
@@ -0,0 +1,70 @@
+{ don't edit, this file is generated from z80ins.dat; to regenerate, run 'make insdat' in the compiler directory }
+(
+'none',
+'adc',
+'add',
+'and',
+'bit',
+'call',
+'ccf',
+'cp',
+'cpd',
+'cpdr',
+'cpi',
+'cpir',
+'cpl',
+'daa',
+'dec',
+'di',
+'djnz',
+'ei',
+'ex',
+'exx',
+'halt',
+'im',
+'in',
+'inc',
+'ind',
+'indr',
+'ini',
+'inir',
+'jp',
+'jr',
+'ld',
+'ldd',
+'lddr',
+'ldi',
+'ldir',
+'neg',
+'nop',
+'or',
+'otdr',
+'otir',
+'out',
+'outd',
+'outi',
+'pop',
+'push',
+'res',
+'ret',
+'reti',
+'retn',
+'rl',
+'rla',
+'rlc',
+'rlca',
+'rld',
+'rr',
+'rra',
+'rrc',
+'rrca',
+'rrd',
+'rst',
+'sbc',
+'scf',
+'set',
+'sla',
+'sra',
+'srl',
+'sub',
+'xor');
diff --git a/compiler/z80/z80tab.inc b/compiler/z80/z80tab.inc
new file mode 100644
index 0000000000..8869e35da8
--- /dev/null
+++ b/compiler/z80/z80tab.inc
@@ -0,0 +1,1424 @@
+{ don't edit, this file is generated from z80ins.dat; to regenerate, run 'make insdat' in the compiler directory }
+(
+ (
+ opcode : A_None;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : 'void';
+ flags : 0
+ ),
+ (
+ opcode : A_ADC;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REG8);
+ code : '%10001rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_ADC;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_IMM8);
+ code : '$CE,n';
+ flags : 0
+ ),
+ (
+ opcode : A_ADC;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_HL);
+ code : '$8E';
+ flags : 0
+ ),
+ (
+ opcode : A_ADC;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IX_d);
+ code : '$DD,$8E,d';
+ flags : 0
+ ),
+ (
+ opcode : A_ADC;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IY_d);
+ code : '$FD,$8E,d';
+ flags : 0
+ ),
+ (
+ opcode : A_ADC;
+ ops : 2;
+ optypes : (OT_REG16_HL,OT_REG16_BC_DE_HL_SP);
+ code : '$ED,%01dd1010';
+ flags : 0
+ ),
+ (
+ opcode : A_ADD;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REG8);
+ code : '%10000rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_ADD;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_IMM8);
+ code : '$C6,n';
+ flags : 0
+ ),
+ (
+ opcode : A_ADD;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_HL);
+ code : '$86';
+ flags : 0
+ ),
+ (
+ opcode : A_ADD;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IX_d);
+ code : '$DD,$86,d';
+ flags : 0
+ ),
+ (
+ opcode : A_ADD;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IY_d);
+ code : '$FD,$86,d';
+ flags : 0
+ ),
+ (
+ opcode : A_ADD;
+ ops : 2;
+ optypes : (OT_REG16_HL,OT_REG16_BC_DE_HL_SP);
+ code : '%00dd1001';
+ flags : 0
+ ),
+ (
+ opcode : A_ADD;
+ ops : 2;
+ optypes : (OT_REG16_IX,OT_REG16_BC_DE_IX_SP);
+ code : '$DD,%00pp1001';
+ flags : 0
+ ),
+ (
+ opcode : A_ADD;
+ ops : 2;
+ optypes : (OT_REG16_IY,OT_REG16_BC_DE_IY_SP);
+ code : '$FD,%00rr1001';
+ flags : 0
+ ),
+ (
+ opcode : A_AND;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REG8);
+ code : '%10100rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_AND;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_IMM8);
+ code : '$E6,n';
+ flags : 0
+ ),
+ (
+ opcode : A_AND;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_HL);
+ code : '$A6';
+ flags : 0
+ ),
+ (
+ opcode : A_AND;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IX_d);
+ code : '$DD,$A6,d';
+ flags : 0
+ ),
+ (
+ opcode : A_AND;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IY_d);
+ code : '$FD,$A6,d';
+ flags : 0
+ ),
+ (
+ opcode : A_BIT;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REG8);
+ code : '$CB,%01bbbrrr';
+ flags : 0
+ ),
+ (
+ opcode : A_BIT;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REF_HL);
+ code : '$CB,%01bbb110';
+ flags : 0
+ ),
+ (
+ opcode : A_BIT;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REF_IX_d);
+ code : '$DD,$CB,d,%01bbb110';
+ flags : 0
+ ),
+ (
+ opcode : A_BIT;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REF_IY_d);
+ code : '$FD,$CB,d,%01bbb110';
+ flags : 0
+ ),
+ (
+ opcode : A_CALL;
+ ops : 1;
+ optypes : (OT_IMM16,OT_NONE);
+ code : '$CD,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_CALL;
+ ops : 2;
+ optypes : (OT_COND,OT_IMM16);
+ code : '%11ccc100,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_CCF;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$3F';
+ flags : 0
+ ),
+ (
+ opcode : A_CP;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REG8);
+ code : '%10111rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_CP;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_IMM8);
+ code : '$FE,n';
+ flags : 0
+ ),
+ (
+ opcode : A_CP;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_HL);
+ code : '$BE';
+ flags : 0
+ ),
+ (
+ opcode : A_CP;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IX_d);
+ code : '$DD,$BE,d';
+ flags : 0
+ ),
+ (
+ opcode : A_CP;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IY_d);
+ code : '$FD,$BE,d';
+ flags : 0
+ ),
+ (
+ opcode : A_CPD;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$A9';
+ flags : 0
+ ),
+ (
+ opcode : A_CPDR;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$B9';
+ flags : 0
+ ),
+ (
+ opcode : A_CPI;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$A1';
+ flags : 0
+ ),
+ (
+ opcode : A_CPIR;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$B1';
+ flags : 0
+ ),
+ (
+ opcode : A_CPL;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$2F';
+ flags : 0
+ ),
+ (
+ opcode : A_DAA;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$27';
+ flags : 0
+ ),
+ (
+ opcode : A_DEC;
+ ops : 1;
+ optypes : (OT_REG8,OT_NONE);
+ code : '%00rrr101';
+ flags : 0
+ ),
+ (
+ opcode : A_DEC;
+ ops : 1;
+ optypes : (OT_REF_HL,OT_NONE);
+ code : '$35';
+ flags : 0
+ ),
+ (
+ opcode : A_DEC;
+ ops : 1;
+ optypes : (OT_REF_IX_d,OT_NONE);
+ code : '$DD,$35,d';
+ flags : 0
+ ),
+ (
+ opcode : A_DEC;
+ ops : 1;
+ optypes : (OT_REF_IY_d,OT_NONE);
+ code : '$FD,$35,d';
+ flags : 0
+ ),
+ (
+ opcode : A_DEC;
+ ops : 1;
+ optypes : (OT_REG16_BC_DE_HL_SP,OT_NONE);
+ code : '%00dd1011';
+ flags : 0
+ ),
+ (
+ opcode : A_DEC;
+ ops : 1;
+ optypes : (OT_REG16_IX,OT_NONE);
+ code : '$DD,$2B';
+ flags : 0
+ ),
+ (
+ opcode : A_DEC;
+ ops : 1;
+ optypes : (OT_REG16_IY,OT_NONE);
+ code : '$FD,$2B';
+ flags : 0
+ ),
+ (
+ opcode : A_DI;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$F3';
+ flags : 0
+ ),
+ (
+ opcode : A_DJNZ;
+ ops : 1;
+ optypes : (OT_RELJMP8,OT_NONE);
+ code : '$10,e';
+ flags : 0
+ ),
+ (
+ opcode : A_EI;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$FB';
+ flags : 0
+ ),
+ (
+ opcode : A_EX;
+ ops : 2;
+ optypes : (OT_REG16_DE,OT_REG16_HL);
+ code : '$EB';
+ flags : 0
+ ),
+ (
+ opcode : A_EX;
+ ops : 2;
+ optypes : (OT_REG16_AF,OT_REG16_AF_);
+ code : '$08';
+ flags : 0
+ ),
+ (
+ opcode : A_EX;
+ ops : 2;
+ optypes : (OT_REF_SP,OT_REG16_HL);
+ code : '$E3';
+ flags : 0
+ ),
+ (
+ opcode : A_EX;
+ ops : 2;
+ optypes : (OT_REF_SP,OT_REG16_IX);
+ code : '$DD,$E3';
+ flags : 0
+ ),
+ (
+ opcode : A_EX;
+ ops : 2;
+ optypes : (OT_REF_SP,OT_REG16_IY);
+ code : '$FD,$E3';
+ flags : 0
+ ),
+ (
+ opcode : A_EXX;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$D9';
+ flags : 0
+ ),
+ (
+ opcode : A_HALT;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$76';
+ flags : 0
+ ),
+ (
+ opcode : A_IM;
+ ops : 1;
+ optypes : (OT_IMM_VAL0,OT_NONE);
+ code : '$ED,$46';
+ flags : 0
+ ),
+ (
+ opcode : A_IM;
+ ops : 1;
+ optypes : (OT_IMM_VAL1,OT_NONE);
+ code : '$ED,$56';
+ flags : 0
+ ),
+ (
+ opcode : A_IM;
+ ops : 1;
+ optypes : (OT_IMM_VAL2,OT_NONE);
+ code : '$ED,$5E';
+ flags : 0
+ ),
+ (
+ opcode : A_IN;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_IMM_PORT);
+ code : '$DB,n';
+ flags : 0
+ ),
+ (
+ opcode : A_IN;
+ ops : 2;
+ optypes : (OT_REG8,OT_REG8_C_PORT);
+ code : '$ED,%01rrr000';
+ flags : 0
+ ),
+ (
+ opcode : A_INC;
+ ops : 1;
+ optypes : (OT_REG8,OT_NONE);
+ code : '%00rrr100';
+ flags : 0
+ ),
+ (
+ opcode : A_INC;
+ ops : 1;
+ optypes : (OT_REF_HL,OT_NONE);
+ code : '$34';
+ flags : 0
+ ),
+ (
+ opcode : A_INC;
+ ops : 1;
+ optypes : (OT_REF_IX_d,OT_NONE);
+ code : '$DD,$34,d';
+ flags : 0
+ ),
+ (
+ opcode : A_INC;
+ ops : 1;
+ optypes : (OT_REF_IY_d,OT_NONE);
+ code : '$FD,$34,d';
+ flags : 0
+ ),
+ (
+ opcode : A_INC;
+ ops : 1;
+ optypes : (OT_REG16_BC_DE_HL_SP,OT_NONE);
+ code : '%00dd0011';
+ flags : 0
+ ),
+ (
+ opcode : A_INC;
+ ops : 1;
+ optypes : (OT_REG16_IX,OT_NONE);
+ code : '$DD,$23';
+ flags : 0
+ ),
+ (
+ opcode : A_INC;
+ ops : 1;
+ optypes : (OT_REG16_IY,OT_NONE);
+ code : '$FD,$23';
+ flags : 0
+ ),
+ (
+ opcode : A_IND;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$AA';
+ flags : 0
+ ),
+ (
+ opcode : A_INDR;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$BA';
+ flags : 0
+ ),
+ (
+ opcode : A_INI;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$A2';
+ flags : 0
+ ),
+ (
+ opcode : A_INIR;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$B2';
+ flags : 0
+ ),
+ (
+ opcode : A_JP;
+ ops : 1;
+ optypes : (OT_IMM16,OT_NONE);
+ code : '$C3,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_JP;
+ ops : 2;
+ optypes : (OT_COND,OT_IMM16);
+ code : '%11ccc010,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_JP;
+ ops : 1;
+ optypes : (OT_REF_HL,OT_NONE);
+ code : '$E9';
+ flags : 0
+ ),
+ (
+ opcode : A_JP;
+ ops : 1;
+ optypes : (OT_REF_IX,OT_NONE);
+ code : '$DD,$E9';
+ flags : 0
+ ),
+ (
+ opcode : A_JP;
+ ops : 1;
+ optypes : (OT_REF_IY,OT_NONE);
+ code : '$FD,$E9';
+ flags : 0
+ ),
+ (
+ opcode : A_JR;
+ ops : 1;
+ optypes : (OT_RELJMP8,OT_NONE);
+ code : '$18,e';
+ flags : 0
+ ),
+ (
+ opcode : A_JR;
+ ops : 2;
+ optypes : (OT_COND_C,OT_RELJMP8);
+ code : '$38,e';
+ flags : 0
+ ),
+ (
+ opcode : A_JR;
+ ops : 2;
+ optypes : (OT_COND_NC,OT_RELJMP8);
+ code : '$30,e';
+ flags : 0
+ ),
+ (
+ opcode : A_JR;
+ ops : 2;
+ optypes : (OT_COND_Z,OT_RELJMP8);
+ code : '$28,e';
+ flags : 0
+ ),
+ (
+ opcode : A_JR;
+ ops : 2;
+ optypes : (OT_COND_NZ,OT_RELJMP8);
+ code : '$20,e';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8,OT_REG8);
+ code : '%01rrrr''r''r''';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8,OT_IMM8);
+ code : '%00rrr110,n';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8,OT_REF_HL);
+ code : '%01rrr110';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8,OT_REF_IX_d);
+ code : '$DD,%01rrr110,d';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8,OT_REF_IY_d);
+ code : '$FD,%01rrr110,d';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_HL,OT_REG8);
+ code : '%01110rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_IX_d,OT_REG8);
+ code : '$DD,%01110rrr,d';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_IY_d,OT_REG8);
+ code : '$FD,%01110rrr,d';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_HL,OT_IMM8);
+ code : '$36,n';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_IX_d,OT_IMM8);
+ code : '$DD,$36,d,n';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_IY_d,OT_IMM8);
+ code : '$FD,$36,d,n';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_BC);
+ code : '$0A';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_DE);
+ code : '$1A';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_ADDR16);
+ code : '$3A,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_BC,OT_REG8_A);
+ code : '$02';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_DE,OT_REG8_A);
+ code : '$12';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_ADDR16,OT_REG8_A);
+ code : '$32,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REG8_I);
+ code : '$ED,$57';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REG8_R);
+ code : '$ED,$5F';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8_I,OT_REG8_A);
+ code : '$ED,$47';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG8_R,OT_REG8_A);
+ code : '$ED,$4F';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG16_BC_DE_HL_SP,OT_IMM16);
+ code : '%00dd0001,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG16_IX,OT_IMM16);
+ code : '$DD,$21,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG16_IY,OT_IMM16);
+ code : '$FD,$21,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG16_HL,OT_REF_ADDR16);
+ code : '$2A,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG16_BC_DE_HL_SP,OT_REF_ADDR16);
+ code : '$ED,%01dd1011,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG16_IX,OT_REF_ADDR16);
+ code : '$DD,$2A,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG16_IY,OT_REF_ADDR16);
+ code : '$FD,$2A,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_ADDR16,OT_REG16_HL);
+ code : '$22,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_ADDR16,OT_REG16_BC_DE_HL_SP);
+ code : '$ED,%01dd0011,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_ADDR16,OT_REG16_IX);
+ code : '$DD,$22,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REF_ADDR16,OT_REG16_IY);
+ code : '$FD,$22,nn';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG16_SP,OT_REG16_HL);
+ code : '$F9';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG16_SP,OT_REG16_IX);
+ code : '$DD,$F9';
+ flags : 0
+ ),
+ (
+ opcode : A_LD;
+ ops : 2;
+ optypes : (OT_REG16_SP,OT_REG16_IY);
+ code : '$FD,$F9';
+ flags : 0
+ ),
+ (
+ opcode : A_LDD;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$A8';
+ flags : 0
+ ),
+ (
+ opcode : A_LDDR;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$B8';
+ flags : 0
+ ),
+ (
+ opcode : A_LDI;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$A0';
+ flags : 0
+ ),
+ (
+ opcode : A_LDIR;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$B0';
+ flags : 0
+ ),
+ (
+ opcode : A_NEG;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$44';
+ flags : 0
+ ),
+ (
+ opcode : A_NOP;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$00';
+ flags : 0
+ ),
+ (
+ opcode : A_OR;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REG8);
+ code : '%10110rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_OR;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_IMM8);
+ code : '$F6,n';
+ flags : 0
+ ),
+ (
+ opcode : A_OR;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_HL);
+ code : '$B6';
+ flags : 0
+ ),
+ (
+ opcode : A_OR;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IX_d);
+ code : '$DD,$B6,d';
+ flags : 0
+ ),
+ (
+ opcode : A_OR;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IY_d);
+ code : '$FD,$B6,d';
+ flags : 0
+ ),
+ (
+ opcode : A_OTDR;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$BB';
+ flags : 0
+ ),
+ (
+ opcode : A_OTIR;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$B3';
+ flags : 0
+ ),
+ (
+ opcode : A_OUT;
+ ops : 2;
+ optypes : (OT_IMM_PORT,OT_REG8_A);
+ code : '$D3,n';
+ flags : 0
+ ),
+ (
+ opcode : A_OUT;
+ ops : 2;
+ optypes : (OT_REG8_C_PORT,OT_REG8);
+ code : '$ED,%01rrr001';
+ flags : 0
+ ),
+ (
+ opcode : A_OUTD;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$AB';
+ flags : 0
+ ),
+ (
+ opcode : A_OUTI;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$A3';
+ flags : 0
+ ),
+ (
+ opcode : A_POP;
+ ops : 1;
+ optypes : (OT_REG16_BC_DE_HL_AF,OT_NONE);
+ code : '%11qq0001';
+ flags : 0
+ ),
+ (
+ opcode : A_POP;
+ ops : 1;
+ optypes : (OT_REG16_IX,OT_NONE);
+ code : '$DD,$E1';
+ flags : 0
+ ),
+ (
+ opcode : A_POP;
+ ops : 1;
+ optypes : (OT_REG16_IY,OT_NONE);
+ code : '$FD,$E1';
+ flags : 0
+ ),
+ (
+ opcode : A_PUSH;
+ ops : 1;
+ optypes : (OT_REG16_BC_DE_HL_AF,OT_NONE);
+ code : '%11qq0101';
+ flags : 0
+ ),
+ (
+ opcode : A_PUSH;
+ ops : 1;
+ optypes : (OT_REG16_IX,OT_NONE);
+ code : '$DD,$E5';
+ flags : 0
+ ),
+ (
+ opcode : A_PUSH;
+ ops : 1;
+ optypes : (OT_REG16_IY,OT_NONE);
+ code : '$FD,$E5';
+ flags : 0
+ ),
+ (
+ opcode : A_RES;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REG8);
+ code : '$CB,%10bbbrrr';
+ flags : 0
+ ),
+ (
+ opcode : A_RES;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REF_HL);
+ code : '$CB,%10bbb110';
+ flags : 0
+ ),
+ (
+ opcode : A_RES;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REF_IX_d);
+ code : '$DD,$CB,d,%10bbb110';
+ flags : 0
+ ),
+ (
+ opcode : A_RES;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REF_IY_d);
+ code : '$FD,$CB,d,%10bbb110';
+ flags : 0
+ ),
+ (
+ opcode : A_RET;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$C9';
+ flags : 0
+ ),
+ (
+ opcode : A_RET;
+ ops : 1;
+ optypes : (OT_COND,OT_NONE);
+ code : '%11ccc000';
+ flags : 0
+ ),
+ (
+ opcode : A_RETI;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$4D';
+ flags : 0
+ ),
+ (
+ opcode : A_RETN;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$45';
+ flags : 0
+ ),
+ (
+ opcode : A_RL;
+ ops : 1;
+ optypes : (OT_REG8,OT_NONE);
+ code : '$CB,%00010rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_RL;
+ ops : 1;
+ optypes : (OT_REF_HL,OT_NONE);
+ code : '$CB,$16';
+ flags : 0
+ ),
+ (
+ opcode : A_RL;
+ ops : 1;
+ optypes : (OT_REF_IX_d,OT_NONE);
+ code : '$DD,$CB,d,$16';
+ flags : 0
+ ),
+ (
+ opcode : A_RL;
+ ops : 1;
+ optypes : (OT_REF_IY_d,OT_NONE);
+ code : '$FD,$CB,d,$16';
+ flags : 0
+ ),
+ (
+ opcode : A_RLA;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$17';
+ flags : 0
+ ),
+ (
+ opcode : A_RLC;
+ ops : 1;
+ optypes : (OT_REG8,OT_NONE);
+ code : '$CB,%00000rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_RLC;
+ ops : 1;
+ optypes : (OT_REF_HL,OT_NONE);
+ code : '$CB,$06';
+ flags : 0
+ ),
+ (
+ opcode : A_RLC;
+ ops : 1;
+ optypes : (OT_REF_IX_d,OT_NONE);
+ code : '$DD,$CB,d,$06';
+ flags : 0
+ ),
+ (
+ opcode : A_RLC;
+ ops : 1;
+ optypes : (OT_REF_IY_d,OT_NONE);
+ code : '$FD,$CB,d,$06';
+ flags : 0
+ ),
+ (
+ opcode : A_RLCA;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$07';
+ flags : 0
+ ),
+ (
+ opcode : A_RLD;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$6F';
+ flags : 0
+ ),
+ (
+ opcode : A_RR;
+ ops : 1;
+ optypes : (OT_REG8,OT_NONE);
+ code : '$CB,%00001rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_RR;
+ ops : 1;
+ optypes : (OT_REF_HL,OT_NONE);
+ code : '$CB,$1E';
+ flags : 0
+ ),
+ (
+ opcode : A_RR;
+ ops : 1;
+ optypes : (OT_REF_IX_d,OT_NONE);
+ code : '$DD,$CB,d,$1E';
+ flags : 0
+ ),
+ (
+ opcode : A_RR;
+ ops : 1;
+ optypes : (OT_REF_IY_d,OT_NONE);
+ code : '$FD,$CB,d,$1E';
+ flags : 0
+ ),
+ (
+ opcode : A_RRA;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$1F';
+ flags : 0
+ ),
+ (
+ opcode : A_RRC;
+ ops : 1;
+ optypes : (OT_REG8,OT_NONE);
+ code : '$CB,%00001rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_RRC;
+ ops : 1;
+ optypes : (OT_REF_HL,OT_NONE);
+ code : '$CB,$0E';
+ flags : 0
+ ),
+ (
+ opcode : A_RRC;
+ ops : 1;
+ optypes : (OT_REF_IX_d,OT_NONE);
+ code : '$DD,$CB,d,$0E';
+ flags : 0
+ ),
+ (
+ opcode : A_RRC;
+ ops : 1;
+ optypes : (OT_REF_IY_d,OT_NONE);
+ code : '$FD,$CB,d,$0E';
+ flags : 0
+ ),
+ (
+ opcode : A_RRCA;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$0F';
+ flags : 0
+ ),
+ (
+ opcode : A_RRD;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$ED,$67';
+ flags : 0
+ ),
+ (
+ opcode : A_RST;
+ ops : 1;
+ optypes : (OT_IMM_RST,OT_NONE);
+ code : '%11ppp111';
+ flags : 0
+ ),
+ (
+ opcode : A_SBC;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REG8);
+ code : '%10011rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_SBC;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_IMM8);
+ code : '$DE,n';
+ flags : 0
+ ),
+ (
+ opcode : A_SBC;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_HL);
+ code : '$9E';
+ flags : 0
+ ),
+ (
+ opcode : A_SBC;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IX_d);
+ code : '$DD,$9E,d';
+ flags : 0
+ ),
+ (
+ opcode : A_SBC;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IY_d);
+ code : '$FD,$9E,d';
+ flags : 0
+ ),
+ (
+ opcode : A_SBC;
+ ops : 2;
+ optypes : (OT_REG16_HL,OT_REG16_BC_DE_HL_SP);
+ code : '$ED,%01dd0010';
+ flags : 0
+ ),
+ (
+ opcode : A_SCF;
+ ops : 0;
+ optypes : (OT_NONE,OT_NONE);
+ code : '$37';
+ flags : 0
+ ),
+ (
+ opcode : A_SET;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REG8);
+ code : '$CB,%11bbbrrr';
+ flags : 0
+ ),
+ (
+ opcode : A_SET;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REF_HL);
+ code : '$CB,%11bbb110';
+ flags : 0
+ ),
+ (
+ opcode : A_SET;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REF_IX_d);
+ code : '$DD,$CB,d,%11bbb110';
+ flags : 0
+ ),
+ (
+ opcode : A_SET;
+ ops : 2;
+ optypes : (OT_IMM3,OT_REF_IY_d);
+ code : '$FD,$CB,d,%11bbb110';
+ flags : 0
+ ),
+ (
+ opcode : A_SLA;
+ ops : 1;
+ optypes : (OT_REG8,OT_NONE);
+ code : '$CB,%00100rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_SLA;
+ ops : 1;
+ optypes : (OT_REF_HL,OT_NONE);
+ code : '$CB,$26';
+ flags : 0
+ ),
+ (
+ opcode : A_SLA;
+ ops : 1;
+ optypes : (OT_REF_IX_d,OT_NONE);
+ code : '$DD,$CB,d,$26';
+ flags : 0
+ ),
+ (
+ opcode : A_SLA;
+ ops : 1;
+ optypes : (OT_REF_IY_d,OT_NONE);
+ code : '$FD,$CB,d,$26';
+ flags : 0
+ ),
+ (
+ opcode : A_SRA;
+ ops : 1;
+ optypes : (OT_REG8,OT_NONE);
+ code : '$CB,%00101rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_SRA;
+ ops : 1;
+ optypes : (OT_REF_HL,OT_NONE);
+ code : '$CB,$2E';
+ flags : 0
+ ),
+ (
+ opcode : A_SRA;
+ ops : 1;
+ optypes : (OT_REF_IX_d,OT_NONE);
+ code : '$DD,$CB,d,$2E';
+ flags : 0
+ ),
+ (
+ opcode : A_SRA;
+ ops : 1;
+ optypes : (OT_REF_IY_d,OT_NONE);
+ code : '$FD,$CB,d,$2E';
+ flags : 0
+ ),
+ (
+ opcode : A_SRL;
+ ops : 1;
+ optypes : (OT_REG8,OT_NONE);
+ code : '$CB,%00111rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_SRL;
+ ops : 1;
+ optypes : (OT_REF_HL,OT_NONE);
+ code : '$CB,$3E';
+ flags : 0
+ ),
+ (
+ opcode : A_SRL;
+ ops : 1;
+ optypes : (OT_REF_IX_d,OT_NONE);
+ code : '$DD,$CB,d,$3E';
+ flags : 0
+ ),
+ (
+ opcode : A_SRL;
+ ops : 1;
+ optypes : (OT_REF_IY_d,OT_NONE);
+ code : '$FD,$CB,d,$3E';
+ flags : 0
+ ),
+ (
+ opcode : A_SUB;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REG8);
+ code : '%10010rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_SUB;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_IMM8);
+ code : '$D6,n';
+ flags : 0
+ ),
+ (
+ opcode : A_SUB;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_HL);
+ code : '$96';
+ flags : 0
+ ),
+ (
+ opcode : A_SUB;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IX_d);
+ code : '$DD,$96,d';
+ flags : 0
+ ),
+ (
+ opcode : A_SUB;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IY_d);
+ code : '$FD,$96,d';
+ flags : 0
+ ),
+ (
+ opcode : A_XOR;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REG8);
+ code : '%10101rrr';
+ flags : 0
+ ),
+ (
+ opcode : A_XOR;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_IMM8);
+ code : '$EE,n';
+ flags : 0
+ ),
+ (
+ opcode : A_XOR;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_HL);
+ code : '$AE';
+ flags : 0
+ ),
+ (
+ opcode : A_XOR;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IX_d);
+ code : '$DD,$AE,d';
+ flags : 0
+ ),
+ (
+ opcode : A_XOR;
+ ops : 2;
+ optypes : (OT_REG8_A,OT_REF_IY_d);
+ code : '$FD,$AE,d';
+ flags : 0
+ )
+);
diff --git a/installer/Makefile b/installer/Makefile
index be9b674de3..6c9e701bec 100644
--- a/installer/Makefile
+++ b/installer/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -700,6 +700,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=scroll insthelp
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=scroll insthelp
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=scroll insthelp
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=installer.pas
endif
@@ -1197,6 +1203,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1205,6 +1214,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2916,6 +2928,36 @@ REQUIRE_PACKAGES_CHM=1
REQUIRE_PACKAGES_REGEXPR=1
REQUIRE_PACKAGES_IDE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_RTL-CONSOLE=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_UNZIP=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+REQUIRE_PACKAGES_CHM=1
+REQUIRE_PACKAGES_REGEXPR=1
+REQUIRE_PACKAGES_IDE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_RTL-CONSOLE=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_UNZIP=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+REQUIRE_PACKAGES_CHM=1
+REQUIRE_PACKAGES_REGEXPR=1
+REQUIRE_PACKAGES_IDE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/Makefile b/packages/Makefile
index 705cd001f5..96d0a385af 100644
--- a/packages/Makefile
+++ b/packages/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -827,6 +827,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -835,6 +838,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1381,6 +1387,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/a52/Makefile b/packages/a52/Makefile
index a7c05e3053..4af78ecb40 100644
--- a/packages/a52/Makefile
+++ b/packages/a52/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ami-extra/Makefile b/packages/ami-extra/Makefile
index 4b9404dd42..29de9e589d 100644
--- a/packages/ami-extra/Makefile
+++ b/packages/ami-extra/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/amunits/Makefile b/packages/amunits/Makefile
index c0f2d7629c..add708c12a 100644
--- a/packages/amunits/Makefile
+++ b/packages/amunits/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/arosunits/Makefile b/packages/arosunits/Makefile
index bd16894998..4aab20cead 100644
--- a/packages/arosunits/Makefile
+++ b/packages/arosunits/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/aspell/Makefile b/packages/aspell/Makefile
index 7c2f68af1b..2d380bb02b 100644
--- a/packages/aspell/Makefile
+++ b/packages/aspell/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/bfd/Makefile b/packages/bfd/Makefile
index 7dcf68c769..b7126415e6 100644
--- a/packages/bfd/Makefile
+++ b/packages/bfd/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/bzip2/Makefile b/packages/bzip2/Makefile
index b105042f37..6044025fbc 100644
--- a/packages/bzip2/Makefile
+++ b/packages/bzip2/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/bzip2/fpmake.pp b/packages/bzip2/fpmake.pp
index 6422dd4c90..940476d84f 100644
--- a/packages/bzip2/fpmake.pp
+++ b/packages/bzip2/fpmake.pp
@@ -28,7 +28,7 @@ begin
P.Email := '';
P.Description := 'BZip2 decompression unit.';
P.NeedLibC:= true;
- P.OSes := P.OSes - [embedded,nativent,msdos,win16,macos,palmos];
+ P.OSes := P.OSes - [embedded,nativent,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/cairo/Makefile b/packages/cairo/Makefile
index 9cedc9c0d0..5f8cc63263 100644
--- a/packages/cairo/Makefile
+++ b/packages/cairo/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/cdrom/Makefile b/packages/cdrom/Makefile
index 4fb3b298b7..b9608d4be1 100644
--- a/packages/cdrom/Makefile
+++ b/packages/cdrom/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/cdrom/examples/Makefile b/packages/cdrom/examples/Makefile
index 334f640597..4ba6fa3e2b 100644
--- a/packages/cdrom/examples/Makefile
+++ b/packages/cdrom/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=getdiscid showcds
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=getdiscid showcds
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=getdiscid showcds
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_CDROM=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_CDROM=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_CDROM=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/chm/Makefile b/packages/chm/Makefile
index 36ca393bb2..5dd5ab88a5 100644
--- a/packages/chm/Makefile
+++ b/packages/chm/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/chm/fpmake.pp b/packages/chm/fpmake.pp
index dca54a864f..f422fa90cf 100644
--- a/packages/chm/fpmake.pp
+++ b/packages/chm/fpmake.pp
@@ -25,7 +25,7 @@ begin
P.Email := '';
P.Description := 'Standalone CHM reader and writer library';
P.NeedLibC:= false;
- P.OSes := P.OSes - [embedded,nativent,msdos,win16,macos,palmos,atari];
+ P.OSes := P.OSes - [embedded,nativent,msdos,win16,macos,palmos,atari,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/cocoaint/Makefile b/packages/cocoaint/Makefile
index 9dcbc9d8e5..d76c754136 100644
--- a/packages/cocoaint/Makefile
+++ b/packages/cocoaint/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/dblib/Makefile b/packages/dblib/Makefile
index adf93f55bd..948b10288a 100644
--- a/packages/dblib/Makefile
+++ b/packages/dblib/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/dbus/Makefile b/packages/dbus/Makefile
index 6a725bcc95..2efb5c6566 100644
--- a/packages/dbus/Makefile
+++ b/packages/dbus/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/dbus/examples/Makefile b/packages/dbus/examples/Makefile
index b8955f3858..726dccb173 100644
--- a/packages/dbus/examples/Makefile
+++ b/packages/dbus/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=busexample
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=busexample
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=busexample
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_DBUS=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_DBUS=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_DBUS=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/dts/Makefile b/packages/dts/Makefile
index 843b9a1893..8dbae848bc 100644
--- a/packages/dts/Makefile
+++ b/packages/dts/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fastcgi/Makefile b/packages/fastcgi/Makefile
index afe3288572..ea11f493d3 100644
--- a/packages/fastcgi/Makefile
+++ b/packages/fastcgi/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-async/Makefile b/packages/fcl-async/Makefile
index 8648fcfb05..ede519cabd 100644
--- a/packages/fcl-async/Makefile
+++ b/packages/fcl-async/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-base/Makefile b/packages/fcl-base/Makefile
index 8969cda41b..b3570799b9 100644
--- a/packages/fcl-base/Makefile
+++ b/packages/fcl-base/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-base/examples/Makefile b/packages/fcl-base/examples/Makefile
index 409db651db..ef1f21b471 100644
--- a/packages/fcl-base/examples/Makefile
+++ b/packages/fcl-base/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip avltreetest testmime decodeascii85 encodeascii85
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip avltreetest testmime decodeascii85 encodeascii85
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip avltreetest testmime decodeascii85 encodeascii85
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2996,6 +3008,40 @@ REQUIRE_PACKAGES_FCL-REGISTRY=1
REQUIRE_PACKAGES_FCL-WEB=1
REQUIRE_PACKAGES_FCL-XML=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-IMAGE=1
+REQUIRE_PACKAGES_FCL-NET=1
+REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_FCL-WEB=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-IMAGE=1
+REQUIRE_PACKAGES_FCL-NET=1
+REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_FCL-WEB=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-base/fpmake.pp b/packages/fcl-base/fpmake.pp
index bcfb859df1..401e968945 100644
--- a/packages/fcl-base/fpmake.pp
+++ b/packages/fcl-base/fpmake.pp
@@ -27,7 +27,7 @@ begin
P.Email := '';
P.Description := 'Base library of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-db/Makefile b/packages/fcl-db/Makefile
index b73039d19d..fbf7eb649f 100644
--- a/packages/fcl-db/Makefile
+++ b/packages/fcl-db/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/fpmake.pp b/packages/fcl-db/fpmake.pp
index 1e5801b435..e85447f048 100644
--- a/packages/fcl-db/fpmake.pp
+++ b/packages/fcl-db/fpmake.pp
@@ -32,7 +32,7 @@ begin
P.Email := '';
P.Description := 'Database library of Free Component Libraries(FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-db/src/base/Makefile b/packages/fcl-db/src/base/Makefile
index 57c54a2072..c2ad8cb746 100644
--- a/packages/fcl-db/src/base/Makefile
+++ b/packages/fcl-db/src/base/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -641,6 +641,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
endif
@@ -932,6 +938,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -1224,6 +1236,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITDIR+=../dbase
endif
@@ -1515,6 +1533,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITDIR+=../dbase
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITDIR+=../dbase
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITDIR+=../dbase
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1960,6 +1984,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1968,6 +1995,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3193,6 +3223,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/codegen/Makefile b/packages/fcl-db/src/codegen/Makefile
index 291cc1a24f..22d94c28ff 100644
--- a/packages/fcl-db/src/codegen/Makefile
+++ b/packages/fcl-db/src/codegen/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -1223,6 +1235,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1668,6 +1686,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1676,6 +1697,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2804,6 +2828,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/datadict/Makefile b/packages/fcl-db/src/datadict/Makefile
index e6e86a04a4..e88112d164 100644
--- a/packages/fcl-db/src/datadict/Makefile
+++ b/packages/fcl-db/src/datadict/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd fpddmysql51 fpddmysql55
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -1223,6 +1235,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1668,6 +1686,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1676,6 +1697,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3133,6 +3157,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/dbase/Makefile b/packages/fcl-db/src/dbase/Makefile
index a45513091e..6c354709c5 100644
--- a/packages/fcl-db/src/dbase/Makefile
+++ b/packages/fcl-db/src/dbase/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -648,6 +648,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=dbf
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=dbf
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=dbf
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_EXAMPLES+=testdbf
endif
@@ -939,6 +945,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_EXAMPLES+=testdbf
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_EXAMPLES+=testdbf
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_EXAMPLES+=testdbf
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
endif
@@ -1230,6 +1242,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
+endif
ifeq ($(FULL_TARGET),i386-linux)
override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
endif
@@ -1521,6 +1539,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2 -Sh
@@ -1813,6 +1837,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2 -Sh
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2 -Sh
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2 -Sh
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2258,6 +2288,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2266,6 +2299,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3394,6 +3430,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/export/Makefile b/packages/fcl-db/src/export/Makefile
index 0e835fd8d0..d12ff81c95 100644
--- a/packages/fcl-db/src/export/Makefile
+++ b/packages/fcl-db/src/export/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -1223,6 +1235,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1668,6 +1686,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1676,6 +1697,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2901,6 +2925,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/json/Makefile b/packages/fcl-db/src/json/Makefile
index 38d24e4a08..1e18c10f73 100644
--- a/packages/fcl-db/src/json/Makefile
+++ b/packages/fcl-db/src/json/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=fpjsondataset extjsdataset
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=fpjsondataset extjsdataset
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=fpjsondataset extjsdataset
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1086,6 +1092,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1094,6 +1103,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2319,6 +2331,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-JSON=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/memds/Makefile b/packages/fcl-db/src/memds/Makefile
index e638ecaff6..de5c7549ca 100644
--- a/packages/fcl-db/src/memds/Makefile
+++ b/packages/fcl-db/src/memds/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=memds
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=memds
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=memds
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=memds
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=memds
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=memds
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=memds
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_EXAMPLES+=testpop testopen testld testcp
endif
@@ -1222,6 +1234,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_EXAMPLES+=testpop testopen testld testcp
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_EXAMPLES+=testpop testopen testld testcp
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_EXAMPLES+=testpop testopen testld testcp
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1668,6 +1686,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1676,6 +1697,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2804,6 +2828,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/paradox/Makefile b/packages/fcl-db/src/paradox/Makefile
index 260c448b26..b12fe88e08 100644
--- a/packages/fcl-db/src/paradox/Makefile
+++ b/packages/fcl-db/src/paradox/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=paradox
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=paradox
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=paradox
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=paradox
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=paradox
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=paradox
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=paradox
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1377,6 +1389,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1385,6 +1400,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2610,6 +2628,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_PXLIB=1
REQUIRE_PACKAGES_FCL-BASE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_PXLIB=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_PXLIB=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/sdf/Makefile b/packages/fcl-db/src/sdf/Makefile
index 8010187aea..d36a0627f7 100644
--- a/packages/fcl-db/src/sdf/Makefile
+++ b/packages/fcl-db/src/sdf/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=sdfdata
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=sdfdata
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=sdfdata
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_EXAMPLES+=testsdf testfix
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_EXAMPLES+=testsdf testfix
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_EXAMPLES+=testsdf testfix
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_EXAMPLES+=testsdf testfix
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1377,6 +1389,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1385,6 +1400,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2513,6 +2531,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/sql/Makefile b/packages/fcl-db/src/sql/Makefile
index bb572ead0f..45c10dcfc3 100644
--- a/packages/fcl-db/src/sql/Makefile
+++ b/packages/fcl-db/src/sql/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -1223,6 +1235,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITDIR+=../dbase
endif
@@ -1514,6 +1532,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITDIR+=../dbase
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITDIR+=../dbase
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITDIR+=../dbase
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1959,6 +1983,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1967,6 +1994,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3095,6 +3125,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/sqldb/Makefile b/packages/fcl-db/src/sqldb/Makefile
index 65a8680e35..ec148a7086 100644
--- a/packages/fcl-db/src/sqldb/Makefile
+++ b/packages/fcl-db/src/sqldb/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -763,6 +763,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=sqldb
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=sqldb
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=sqldb
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=sqldb
endif
@@ -1054,6 +1060,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=sqldb
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=sqldb
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=sqldb
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2
@@ -1346,6 +1358,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1791,6 +1809,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1799,6 +1820,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3198,6 +3222,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/sqldb/interbase/Makefile b/packages/fcl-db/src/sqldb/interbase/Makefile
index 5fb0bca732..934242d0bf 100644
--- a/packages/fcl-db/src/sqldb/interbase/Makefile
+++ b/packages/fcl-db/src/sqldb/interbase/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2
@@ -932,6 +938,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1377,6 +1389,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1385,6 +1400,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2610,6 +2628,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_IBASE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_IBASE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_IBASE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/sqldb/mssql/Makefile b/packages/fcl-db/src/sqldb/mssql/Makefile
index 4e8e009d71..1502193bb6 100644
--- a/packages/fcl-db/src/sqldb/mssql/Makefile
+++ b/packages/fcl-db/src/sqldb/mssql/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=mssqlconn
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=mssqlconn
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=mssqlconn
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2
@@ -932,6 +938,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1377,6 +1389,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1385,6 +1400,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2513,6 +2531,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_DBLIB=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_DBLIB=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_DBLIB=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/sqldb/mysql/Makefile b/packages/fcl-db/src/sqldb/mysql/Makefile
index 261aeff3a0..c2af125259 100644
--- a/packages/fcl-db/src/sqldb/mysql/Makefile
+++ b/packages/fcl-db/src/sqldb/mysql/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2
@@ -1223,6 +1235,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1668,6 +1686,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1676,6 +1697,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2901,6 +2925,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_MYSQL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_MYSQL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_MYSQL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/sqldb/odbc/Makefile b/packages/fcl-db/src/sqldb/odbc/Makefile
index 21d8082c6a..c9f13d19c0 100644
--- a/packages/fcl-db/src/sqldb/odbc/Makefile
+++ b/packages/fcl-db/src/sqldb/odbc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=odbcconn
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=odbcconn
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=odbcconn
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2
@@ -932,6 +938,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1377,6 +1389,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1385,6 +1400,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2610,6 +2628,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_ODBC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ODBC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ODBC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/sqldb/oracle/Makefile b/packages/fcl-db/src/sqldb/oracle/Makefile
index ddfb379994..e3c4f7c660 100644
--- a/packages/fcl-db/src/sqldb/oracle/Makefile
+++ b/packages/fcl-db/src/sqldb/oracle/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=oracleconnection
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=oracleconnection
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=oracleconnection
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=oracleconnection
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=oracleconnection
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2
@@ -1223,6 +1235,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1668,6 +1686,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1676,6 +1697,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2901,6 +2925,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_ORACLE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/sqldb/postgres/Makefile b/packages/fcl-db/src/sqldb/postgres/Makefile
index 4e54c944b2..3b2a1368de 100644
--- a/packages/fcl-db/src/sqldb/postgres/Makefile
+++ b/packages/fcl-db/src/sqldb/postgres/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=pqconnection pqeventmonitor
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=pqconnection pqeventmonitor
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=pqconnection pqeventmonitor
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=pqconnection
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=pqconnection
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=pqconnection
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=pqconnection
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2
@@ -1223,6 +1235,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1668,6 +1686,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1676,6 +1697,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2901,6 +2925,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_POSTGRES=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_POSTGRES=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_POSTGRES=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/sqldb/sqlite/Makefile b/packages/fcl-db/src/sqldb/sqlite/Makefile
index cdcb5d63f3..27efde81ce 100644
--- a/packages/fcl-db/src/sqldb/sqlite/Makefile
+++ b/packages/fcl-db/src/sqldb/sqlite/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=sqlite3conn
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=sqlite3conn
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=sqlite3conn
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2
@@ -932,6 +938,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1377,6 +1389,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1385,6 +1400,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2610,6 +2628,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_SQLITE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_SQLITE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_SQLITE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/src/sqlite/Makefile b/packages/fcl-db/src/sqlite/Makefile
index 4e1a254ea1..e57d06b4b9 100644
--- a/packages/fcl-db/src/sqlite/Makefile
+++ b/packages/fcl-db/src/sqlite/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1086,6 +1092,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1094,6 +1103,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2319,6 +2331,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SQLITE=1
REQUIRE_PACKAGES_FCL-BASE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-db/tests/Makefile b/packages/fcl-db/tests/Makefile
index ab089effe7..00ba447f2a 100644
--- a/packages/fcl-db/tests/Makefile
+++ b/packages/fcl-db/tests/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_EXAMPLES+=dbtestframework testsqlfiles
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_EXAMPLES+=dbtestframework testsqlfiles
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1377,6 +1389,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1385,6 +1400,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2610,6 +2628,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-FPCUNIT=1
REQUIRE_PACKAGES_FCL-DB=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-extra/Makefile b/packages/fcl-extra/Makefile
index 22d990655b..272685a1ab 100644
--- a/packages/fcl-extra/Makefile
+++ b/packages/fcl-extra/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-extra/examples/Makefile b/packages/fcl-extra/examples/Makefile
index e53b019182..a6074084af 100644
--- a/packages/fcl-extra/examples/Makefile
+++ b/packages/fcl-extra/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -910,6 +910,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -918,6 +921,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2143,6 +2149,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-EXTRA=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-EXTRA=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-EXTRA=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-fpcunit/Makefile b/packages/fcl-fpcunit/Makefile
index 4b190a50c2..2190361059 100644
--- a/packages/fcl-fpcunit/Makefile
+++ b/packages/fcl-fpcunit/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-fpcunit/fpmake.pp b/packages/fcl-fpcunit/fpmake.pp
index e77053c3f4..58c040f021 100644
--- a/packages/fcl-fpcunit/fpmake.pp
+++ b/packages/fcl-fpcunit/fpmake.pp
@@ -30,7 +30,7 @@ begin
P.Email := '';
P.Description := 'Unit testing system inspired by JUnit of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes := P.OSes - [embedded,nativent,msdos,win16,macos,palmos,symbian];
+ P.OSes := P.OSes - [embedded,nativent,msdos,win16,macos,palmos,symbian,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-fpcunit/src/exampletests/Makefile b/packages/fcl-fpcunit/src/exampletests/Makefile
index 06943195a8..0be0f26044 100644
--- a/packages/fcl-fpcunit/src/exampletests/Makefile
+++ b/packages/fcl-fpcunit/src/exampletests/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=fpcunittests money moneytest testmockobject
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=fpcunittests money moneytest testmockobject
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=fpcunittests money moneytest testmockobject
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -932,6 +938,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1377,6 +1389,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1385,6 +1400,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2707,6 +2725,28 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-FPCUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-fpcunit/src/tests/Makefile b/packages/fcl-fpcunit/src/tests/Makefile
index 355eca1ed7..a0c3290da6 100644
--- a/packages/fcl-fpcunit/src/tests/Makefile
+++ b/packages/fcl-fpcunit/src/tests/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=asserttest frameworktest suitetest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=asserttest frameworktest suitetest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=asserttest frameworktest suitetest
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -932,6 +938,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1377,6 +1389,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1385,6 +1400,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2707,6 +2725,28 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-FPCUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-image/Makefile b/packages/fcl-image/Makefile
index c0b96f5108..a98711d663 100644
--- a/packages/fcl-image/Makefile
+++ b/packages/fcl-image/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-image/examples/Makefile b/packages/fcl-image/examples/Makefile
index 7a5a3988ac..b51dbf7c83 100644
--- a/packages/fcl-image/examples/Makefile
+++ b/packages/fcl-image/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-IMAGE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-IMAGE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-IMAGE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-image/fpmake.pp b/packages/fcl-image/fpmake.pp
index 4481dbb809..7d2bec93c6 100644
--- a/packages/fcl-image/fpmake.pp
+++ b/packages/fcl-image/fpmake.pp
@@ -28,7 +28,7 @@ begin
P.Email := '';
P.Description := 'Image loading and conversion parts of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes := P.OSes - [embedded,nativent,msdos,win16,macos,palmos];
+ P.OSes := P.OSes - [embedded,nativent,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-js/Makefile b/packages/fcl-js/Makefile
index cff2e63480..e632311a37 100644
--- a/packages/fcl-js/Makefile
+++ b/packages/fcl-js/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-js/fpmake.pp b/packages/fcl-js/fpmake.pp
index 9e338832b9..fbd0f62211 100644
--- a/packages/fcl-js/fpmake.pp
+++ b/packages/fcl-js/fpmake.pp
@@ -23,7 +23,7 @@ begin
P.HomepageURL := 'www.freepascal.org';
P.Email := 'michael@freepascal.org';
P.Description := 'Javascript scanner/parser/syntax tree units';
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-json/Makefile b/packages/fcl-json/Makefile
index 497c72e3eb..4dab831bfb 100644
--- a/packages/fcl-json/Makefile
+++ b/packages/fcl-json/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-json/fpmake.pp b/packages/fcl-json/fpmake.pp
index d5e4f0b8c5..1c591bbdfa 100644
--- a/packages/fcl-json/fpmake.pp
+++ b/packages/fcl-json/fpmake.pp
@@ -26,7 +26,7 @@ begin
P.Email := '';
P.Description := 'Json interfacing, part of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-net/Makefile b/packages/fcl-net/Makefile
index 27cd7480f0..24bbf99593 100644
--- a/packages/fcl-net/Makefile
+++ b/packages/fcl-net/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-net/examples/Makefile b/packages/fcl-net/examples/Makefile
index 9829cd971d..4ea5b9b2d2 100644
--- a/packages/fcl-net/examples/Makefile
+++ b/packages/fcl-net/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=svrclass svrclass_xmlrpc
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=svrclass svrclass_xmlrpc
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=svrclass svrclass_xmlrpc
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=svrclass svrclass_xmlrpc
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -1221,6 +1233,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1666,6 +1684,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1674,6 +1695,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2996,6 +3020,28 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-NET=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-NET=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-NET=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-net/fpmake.pp b/packages/fcl-net/fpmake.pp
index 73fcbed9e2..1cfe8221ca 100644
--- a/packages/fcl-net/fpmake.pp
+++ b/packages/fcl-net/fpmake.pp
@@ -30,7 +30,7 @@ begin
P.Email := '';
P.Description := 'Network related parts of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes:=P.OSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=P.OSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-passrc/Makefile b/packages/fcl-passrc/Makefile
index 7670a9760e..6583fa7921 100644
--- a/packages/fcl-passrc/Makefile
+++ b/packages/fcl-passrc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-passrc/fpmake.pp b/packages/fcl-passrc/fpmake.pp
index 8148cd44e1..d6c1f45cf8 100644
--- a/packages/fcl-passrc/fpmake.pp
+++ b/packages/fcl-passrc/fpmake.pp
@@ -25,7 +25,7 @@ begin
P.Email := '';
P.Description := 'Pascal parsing parts of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-pdf/Makefile b/packages/fcl-pdf/Makefile
index aa7260cc1f..ebbe2c0f98 100644
--- a/packages/fcl-pdf/Makefile
+++ b/packages/fcl-pdf/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -827,6 +827,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -835,6 +838,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1963,6 +1969,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-pdf/fpmake.pp b/packages/fcl-pdf/fpmake.pp
index 6cd838efd7..c39ffeafc3 100644
--- a/packages/fcl-pdf/fpmake.pp
+++ b/packages/fcl-pdf/fpmake.pp
@@ -24,7 +24,7 @@ begin
P.Email := '';
P.Description := 'PDF generating and TTF file info library';
P.NeedLibC:= false;
- P.OSes:=P.OSes-[embedded,win16,msdos,nativent,macos,palmos];
+ P.OSes:=P.OSes-[embedded,win16,msdos,nativent,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-process/Makefile b/packages/fcl-process/Makefile
index 2c83292899..5f0718d102 100644
--- a/packages/fcl-process/Makefile
+++ b/packages/fcl-process/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -827,6 +827,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -835,6 +838,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1381,6 +1387,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-process/fpmake.pp b/packages/fcl-process/fpmake.pp
index f3c1eb25c4..325a659ca3 100644
--- a/packages/fcl-process/fpmake.pp
+++ b/packages/fcl-process/fpmake.pp
@@ -25,7 +25,7 @@ begin
P.Description := 'Process (execution) related parts of Free Component Libraries (FCL), FPC''s OOP library.';
P.Options.Add('-S2h');
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded,msdos,win16,go32v2,nativent,macos,palmos,atari];
+ P.OSes:=AllOSes-[embedded,msdos,win16,go32v2,nativent,macos,palmos,atari,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-registry/Makefile b/packages/fcl-registry/Makefile
index bf7f57014a..9cea3a70bf 100644
--- a/packages/fcl-registry/Makefile
+++ b/packages/fcl-registry/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-registry/fpmake.pp b/packages/fcl-registry/fpmake.pp
index 2426079483..80f3e96e8f 100644
--- a/packages/fcl-registry/fpmake.pp
+++ b/packages/fcl-registry/fpmake.pp
@@ -27,7 +27,7 @@ begin
P.Email := '';
P.Description := 'Windows registry + emulation parts of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-registry/tests/Makefile b/packages/fcl-registry/tests/Makefile
index 2b27138004..bd48ff072f 100644
--- a/packages/fcl-registry/tests/Makefile
+++ b/packages/fcl-registry/tests/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_EXAMPLES+=regtestframework
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_EXAMPLES+=regtestframework
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_EXAMPLES+=regtestframework
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1086,6 +1092,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1094,6 +1103,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1640,6 +1652,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-report/Makefile b/packages/fcl-report/Makefile
index 72a9134116..2c7a122590 100644
--- a/packages/fcl-report/Makefile
+++ b/packages/fcl-report/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2133,6 +2139,28 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-IMAGE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-IMAGE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-IMAGE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-res/Makefile b/packages/fcl-res/Makefile
index 69fa946814..c40e9718e5 100644
--- a/packages/fcl-res/Makefile
+++ b/packages/fcl-res/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-res/fpmake.pp b/packages/fcl-res/fpmake.pp
index 037c85e0c8..b9f8b1247e 100644
--- a/packages/fcl-res/fpmake.pp
+++ b/packages/fcl-res/fpmake.pp
@@ -24,7 +24,7 @@ begin
P.Email := '';
P.Description := 'Resource handling of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-sdo/Makefile b/packages/fcl-sdo/Makefile
index 3f38560007..783602e1bf 100644
--- a/packages/fcl-sdo/Makefile
+++ b/packages/fcl-sdo/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-sdo/fpmake.pp b/packages/fcl-sdo/fpmake.pp
index 42afca681e..cecda22582 100644
--- a/packages/fcl-sdo/fpmake.pp
+++ b/packages/fcl-sdo/fpmake.pp
@@ -25,7 +25,7 @@ begin
P.HomepageURL := 'www.freepascal.org';
P.Email := 'inoussa12@gmail.com';
P.Description := 'Free Pascal implementation of Service Data Objects';
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-sound/Makefile b/packages/fcl-sound/Makefile
index 1c205ea816..a9a7f30968 100644
--- a/packages/fcl-sound/Makefile
+++ b/packages/fcl-sound/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-sound/fpmake.pp b/packages/fcl-sound/fpmake.pp
index 346fbf61b8..74dfd5f2a8 100644
--- a/packages/fcl-sound/fpmake.pp
+++ b/packages/fcl-sound/fpmake.pp
@@ -26,7 +26,7 @@ begin
P.Email := '';
P.Description := 'Sound loading, storing and conversion parts for the Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-stl/Makefile b/packages/fcl-stl/Makefile
index a5d015ecfc..f7092b7a6a 100644
--- a/packages/fcl-stl/Makefile
+++ b/packages/fcl-stl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-stl/fpmake.pp b/packages/fcl-stl/fpmake.pp
index cd6cc6c2a0..918ef0d0ce 100644
--- a/packages/fcl-stl/fpmake.pp
+++ b/packages/fcl-stl/fpmake.pp
@@ -25,7 +25,7 @@ begin
P.Email := '';
P.Description := 'Generic container library of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded];
+ P.OSes:=AllOSes-[embedded,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fcl-web/Makefile b/packages/fcl-web/Makefile
index f1e27cad26..ece8618be0 100644
--- a/packages/fcl-web/Makefile
+++ b/packages/fcl-web/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-web/src/base/Makefile b/packages/fcl-web/src/base/Makefile
index beaace9809..bf6c0592b3 100644
--- a/packages/fcl-web/src/base/Makefile
+++ b/packages/fcl-web/src/base/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -641,6 +641,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=httpdefs fphttp custweb custcgi fpcgi fphtml iniwebsession websession fpweb webutil fpdatasetform cgiapp ezcgi fpapache webpage fcgigate fphttpserver fphttpclient custhttpapp fphttpapp fpwebfile fpapache24
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=httpdefs fphttp custweb custcgi fpcgi fphtml iniwebsession websession fpweb webutil fpdatasetform cgiapp ezcgi fpapache webpage fcgigate fphttpserver fphttpclient custhttpapp fphttpapp fpwebfile fpapache24
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=httpdefs fphttp custweb custcgi fpcgi fphtml iniwebsession websession fpweb webutil fpdatasetform cgiapp ezcgi fpapache webpage fcgigate fphttpserver fphttpclient custhttpapp fphttpapp fpwebfile fpapache24
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
endif
@@ -932,6 +938,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -1224,6 +1236,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1669,6 +1687,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1677,6 +1698,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3395,6 +3419,36 @@ REQUIRE_PACKAGES_FASTCGI=1
REQUIRE_PACKAGES_FCL-NET=1
REQUIRE_PACKAGES_HTTPD24=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_HTTPD22=1
+REQUIRE_PACKAGES_FASTCGI=1
+REQUIRE_PACKAGES_FCL-NET=1
+REQUIRE_PACKAGES_HTTPD24=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_HTTPD22=1
+REQUIRE_PACKAGES_FASTCGI=1
+REQUIRE_PACKAGES_FCL-NET=1
+REQUIRE_PACKAGES_HTTPD24=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-web/src/jsonrpc/Makefile b/packages/fcl-web/src/jsonrpc/Makefile
index 20b4de0dd3..fa29198c69 100644
--- a/packages/fcl-web/src/jsonrpc/Makefile
+++ b/packages/fcl-web/src/jsonrpc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -641,6 +641,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -933,6 +939,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1378,6 +1390,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1386,6 +1401,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2708,6 +2726,28 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-JSON=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-web/src/webdata/Makefile b/packages/fcl-web/src/webdata/Makefile
index d74e8e352b..7bcaa6f6b6 100644
--- a/packages/fcl-web/src/webdata/Makefile
+++ b/packages/fcl-web/src/webdata/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -641,6 +641,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -933,6 +939,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1378,6 +1390,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1386,6 +1401,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2805,6 +2823,30 @@ REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-JSON=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-xml/Makefile b/packages/fcl-xml/Makefile
index 3d377dff3f..5be6b0b048 100644
--- a/packages/fcl-xml/Makefile
+++ b/packages/fcl-xml/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fcl-xml/fpmake.pp b/packages/fcl-xml/fpmake.pp
index 5914c5c41f..e2cdcdc270 100644
--- a/packages/fcl-xml/fpmake.pp
+++ b/packages/fcl-xml/fpmake.pp
@@ -29,7 +29,7 @@ begin
P.Email := '';
P.Description := 'XML and DOM parts of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fftw/Makefile b/packages/fftw/Makefile
index 7539c3678d..5f1c7d8d13 100644
--- a/packages/fftw/Makefile
+++ b/packages/fftw/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fpgtk/Makefile b/packages/fpgtk/Makefile
index f7cf1e6ed9..fe3fcf4837 100644
--- a/packages/fpgtk/Makefile
+++ b/packages/fpgtk/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fpgtk/examples/Makefile b/packages/fpgtk/examples/Makefile
index 6604a889b1..0722f36b6f 100644
--- a/packages/fpgtk/examples/Makefile
+++ b/packages/fpgtk/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testgtk
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testgtk
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testgtk
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=lister
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=lister
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=lister
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=lister
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1375,6 +1387,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1383,6 +1398,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2511,6 +2529,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FPGTK=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FPGTK=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FPGTK=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fpindexer/Makefile b/packages/fpindexer/Makefile
index 4dada745ca..e144b1160d 100644
--- a/packages/fpindexer/Makefile
+++ b/packages/fpindexer/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fpmkunit/Makefile b/packages/fpmkunit/Makefile
index 731e262afc..45288ba50f 100644
--- a/packages/fpmkunit/Makefile
+++ b/packages/fpmkunit/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -846,6 +846,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -854,6 +857,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1788,6 +1794,20 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fpmkunit/fpmake.pp b/packages/fpmkunit/fpmake.pp
index d15fdb7a4a..c675becbb3 100644
--- a/packages/fpmkunit/fpmake.pp
+++ b/packages/fpmkunit/fpmake.pp
@@ -25,7 +25,7 @@ begin
P.Email := '';
P.Description := 'Basic library of the fpmake/fppkg build system.';
P.NeedLibC:= false; // true for headers that indirectly link to libc?
- P.OSes := P.OSes - [embedded,nativent,msdos,win16,atari,macos,palmos];
+ P.OSes := P.OSes - [embedded,nativent,msdos,win16,atari,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fpmkunit/src/fpmkunit.pp b/packages/fpmkunit/src/fpmkunit.pp
index b1cb778a24..9ff9796055 100644
--- a/packages/fpmkunit/src/fpmkunit.pp
+++ b/packages/fpmkunit/src/fpmkunit.pp
@@ -111,7 +111,7 @@ Type
// Please keep this order, see OSCPUSupported below
TCpu=(cpuNone,
i386,m68k,powerpc,sparc,x86_64,arm,powerpc64,avr,armeb,
- mips,mipsel,mips64,mips64el,jvm,i8086,aarch64,cpuwasm,sparc64,riscv32,riscv64,xtensa
+ mips,mipsel,mips64,mips64el,jvm,i8086,aarch64,cpuwasm,sparc64,riscv32,riscv64,xtensa,z80
);
TCPUS = Set of TCPU;
@@ -122,7 +122,7 @@ Type
palmos,macos,darwin,emx,watcom,morphos,netwlibc,
win64,wince,gba,nds,embedded,symbian,haiku,iphonesim,
aix,java,android,nativent,msdos,wii,aros,dragonfly,
- win16,wasm,freertos
+ win16,wasm,freertos,zxspectrum
);
TOSes = Set of TOS;
@@ -186,48 +186,49 @@ Const
{ This table is kept OS,Cpu because it is easier to maintain (PFV) }
OSCPUSupported : array[TOS,TCpu] of boolean = (
- { os none i386 m68k ppc sparc x86_64 arm ppc64 avr armeb mips mipsel mips64 mips64el jvm i8086 aarch64 wasm sparc64 riscv32 riscv64 xtensa }
- { none } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { linux } ( false, true, true, true, true, true, true, true, false, true , true , true , true , true , false, false, true , false, true , true , true, true ),
- { go32v2 } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { win32 } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { os2 } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { freebsd } ( false, true, true, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { beos } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { netbsd } ( false, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { amiga } ( false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { atari } ( false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { solaris } ( false, true, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { qnx } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { netware } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { openbsd } ( false, true, true, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { wdosx } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { palmos } ( false, false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { macos } ( false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { darwin } ( false, true, false, true, false, true, true, true, false, false, false, false, false, false, false, false, true , false, false, false, false, false),
- { emx } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { watcom } ( false, true, false, false, false ,false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { morphos } ( false, false, false, true, false ,false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { netwlibc }( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { win64 } ( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false),
- { wince }( false, true, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { gba } ( false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { nds } ( false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { embedded }( false, true, true, true, true, true, true, true, true, true , false, true, false, true, false, true , false, false, false, true, true, true ),
- { symbian } ( false, true, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { haiku } ( false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { iphonesim}( false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { aix } ( false, false, false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { java } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false, false),
- { android } ( false, true, false, false, false, true, true, false, false, false, false, true, false, true, true , false, true, false, false, false, false, false),
- { nativent }( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { msdos } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false),
- { wii } ( false, false, false, true , false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { aros } ( false, true, false, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { dragonfly}( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { win16 } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false),
- { wasm } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false),
- { freertos }( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true )
+ { os none i386 m68k ppc sparc x86_64 arm ppc64 avr armeb mips mipsel mips64 mips64el jvm i8086 aarch64 wasm sparc64 riscv32 riscv64 xtensa z80}
+ { none } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { linux } ( false, true, true, true, true, true, true, true, false, true , true , true , true , true , false, false, true , false, true , true , true, true , false),
+ { go32v2 } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { win32 } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { os2 } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { freebsd } ( false, true, true, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { beos } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { netbsd } ( false, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { amiga } ( false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { atari } ( false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { solaris } ( false, true, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { qnx } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { netware } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { openbsd } ( false, true, true, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { wdosx } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { palmos } ( false, false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { macos } ( false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { darwin } ( false, true, false, true, false, true, true, true, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false),
+ { emx } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { watcom } ( false, true, false, false, false ,false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { morphos } ( false, false, false, true, false ,false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { netwlibc }( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { win64 } ( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false),
+ { wince }( false, true, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { gba } ( false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { nds } ( false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { embedded }( false, true, true, true, true, true, true, true, true, true , false, true, false, true, false, true , false, false, false, true, true, true , false),
+ { symbian } ( false, true, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { haiku } ( false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { iphonesim}( false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { aix } ( false, false, false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { java } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false, false, false),
+ { android } ( false, true, false, false, false, true, true, false, false, false, false, true, false, true, true , false, true, false, false, false, false, false, false),
+ { nativent }( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { msdos } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false, false),
+ { wii } ( false, false, false, true , false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { aros } ( false, true, false, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { dragonfly}( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { win16 } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false, false),
+ { wasm } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false),
+ { freertos }( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false),
+ {zxspectrum}( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true )
);
// Useful
diff --git a/packages/fppkg/Makefile b/packages/fppkg/Makefile
index 8428e87a51..86713fbcfb 100644
--- a/packages/fppkg/Makefile
+++ b/packages/fppkg/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fppkg/fpmake.pp b/packages/fppkg/fpmake.pp
index 371e447d40..4354eff354 100644
--- a/packages/fppkg/fpmake.pp
+++ b/packages/fppkg/fpmake.pp
@@ -44,7 +44,7 @@ begin
P.Email := '';
P.Description := 'Libraries to create fppkg package managers.';
P.NeedLibC:= false;
- P.OSes := P.OSes - [embedded,nativent,msdos,win16,atari,macos,palmos,symbian];
+ P.OSes := P.OSes - [embedded,nativent,msdos,win16,atari,macos,palmos,symbian,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/fuse/Makefile b/packages/fuse/Makefile
index c0dd5f1f8e..291b6e7c24 100644
--- a/packages/fuse/Makefile
+++ b/packages/fuse/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fv/Makefile b/packages/fv/Makefile
index c09a7f35bd..24d08bd3ce 100644
--- a/packages/fv/Makefile
+++ b/packages/fv/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/fv/examples/Makefile b/packages/fv/examples/Makefile
index b682704be3..4840f1e297 100644
--- a/packages/fv/examples/Makefile
+++ b/packages/fv/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testapp
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testapp
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testapp
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=../src
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=../src
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=../src
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=../src
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1374,6 +1386,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1382,6 +1397,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2510,6 +2528,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FV=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FV=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FV=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gdbint/Makefile b/packages/gdbint/Makefile
index 3471c0c248..003e5c01be 100644
--- a/packages/gdbint/Makefile
+++ b/packages/gdbint/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gdbm/Makefile b/packages/gdbm/Makefile
index a432832188..6958ac47f1 100644
--- a/packages/gdbm/Makefile
+++ b/packages/gdbm/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gdbm/examples/Makefile b/packages/gdbm/examples/Makefile
index 828933fb0b..3955f6e746 100644
--- a/packages/gdbm/examples/Makefile
+++ b/packages/gdbm/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testgdbm testgdbm2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testgdbm testgdbm2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testgdbm testgdbm2
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GDBM=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GDBM=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GDBM=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ggi/Makefile b/packages/ggi/Makefile
index a46b8740d1..97e40c4e18 100644
--- a/packages/ggi/Makefile
+++ b/packages/ggi/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ggi/examples/Makefile b/packages/ggi/examples/Makefile
index 24b3d372a4..9fa119decc 100644
--- a/packages/ggi/examples/Makefile
+++ b/packages/ggi/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=ggi1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=ggi1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=ggi1
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GGI=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GGI=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GGI=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gmp/Makefile b/packages/gmp/Makefile
index e3c903a5f2..345516cf2f 100644
--- a/packages/gmp/Makefile
+++ b/packages/gmp/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gmp/examples/Makefile b/packages/gmp/examples/Makefile
index 8a503e01bd..0a1200c1e9 100644
--- a/packages/gmp/examples/Makefile
+++ b/packages/gmp/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=gmp_accept_test gmp_testcase pidigits_example pidigits_example2 printf_example printf_example2 scanf_example scanf_example2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=gmp_accept_test gmp_testcase pidigits_example pidigits_example2 printf_example printf_example2 scanf_example scanf_example2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=gmp_accept_test gmp_testcase pidigits_example pidigits_example2 printf_example printf_example2 scanf_example scanf_example2
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GMP=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GMP=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GMP=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gnome1/Makefile b/packages/gnome1/Makefile
index 04450e9a2c..aed8dd946a 100644
--- a/packages/gnome1/Makefile
+++ b/packages/gnome1/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gnutls/Makefile b/packages/gnutls/Makefile
index 9a675d1dc0..c2f97b076d 100644
--- a/packages/gnutls/Makefile
+++ b/packages/gnutls/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1939,6 +1945,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-NET=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-NET=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-NET=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/googleapi/Makefile b/packages/googleapi/Makefile
index 48daa017cd..c457ea46bc 100644
--- a/packages/googleapi/Makefile
+++ b/packages/googleapi/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/graph/Makefile b/packages/graph/Makefile
index 179019742e..884942e721 100644
--- a/packages/graph/Makefile
+++ b/packages/graph/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk1/Makefile b/packages/gtk1/Makefile
index e1a1a62021..1c4b9d1bbe 100644
--- a/packages/gtk1/Makefile
+++ b/packages/gtk1/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk1/examples/Makefile b/packages/gtk1/examples/Makefile
index a90e56a29b..2425e37230 100644
--- a/packages/gtk1/examples/Makefile
+++ b/packages/gtk1/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=tutorial
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=tutorial
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=tutorial
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=tictactoe
endif
@@ -1220,6 +1232,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=tictactoe
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=tictactoe
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=tictactoe
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1666,6 +1684,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1674,6 +1695,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2802,6 +2826,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK1=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK1=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK1=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3886,6 +3928,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_TUTORIAL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_TUTORIAL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_TUTORIAL=1
+endif
ifdef TARGET_DIRS_TUTORIAL
tutorial_all:
$(MAKE) -C tutorial all
diff --git a/packages/gtk1/examples/tutorial/Makefile b/packages/gtk1/examples/tutorial/Makefile
index a02e21a4d8..34f6150e3d 100644
--- a/packages/gtk1/examples/tutorial/Makefile
+++ b/packages/gtk1/examples/tutorial/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -793,6 +793,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -801,6 +804,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1929,6 +1935,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK1=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK1=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK1=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk1/src/gtkgl/Makefile b/packages/gtk1/src/gtkgl/Makefile
index f478bf87e1..c5cbd70739 100644
--- a/packages/gtk1/src/gtkgl/Makefile
+++ b/packages/gtk1/src/gtkgl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=gtkglarea
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=gtkglarea
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=gtkglarea
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_EXAMPLES+=gtkgldemo
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_EXAMPLES+=gtkgldemo
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_EXAMPLES+=gtkgldemo
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_EXAMPLES+=gtkgldemo
+endif
override INSTALL_FPCPACKAGE=y
override SHARED_BUILD=n
override SHARED_BUILD=n
@@ -1379,6 +1391,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1387,6 +1402,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2515,6 +2533,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk2/Makefile b/packages/gtk2/Makefile
index da986949c4..70343eda8a 100644
--- a/packages/gtk2/Makefile
+++ b/packages/gtk2/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk2/examples/Makefile b/packages/gtk2/examples/Makefile
index 41e6084ce6..a2447cda19 100644
--- a/packages/gtk2/examples/Makefile
+++ b/packages/gtk2/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2317,6 +2329,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
REQUIRE_PACKAGES_OPENGL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3854,6 +3886,24 @@ TARGET_DIRS_PLUGINS=1
TARGET_DIRS_SCRIBBLE_SIMPLE=1
TARGET_DIRS_GTKGLEXT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_HELLOWORLD=1
+TARGET_DIRS_HELLOWORLD2=1
+TARGET_DIRS_GTK_DEMO=1
+TARGET_DIRS_GETTINGSTARTED=1
+TARGET_DIRS_PLUGINS=1
+TARGET_DIRS_SCRIBBLE_SIMPLE=1
+TARGET_DIRS_GTKGLEXT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_HELLOWORLD=1
+TARGET_DIRS_HELLOWORLD2=1
+TARGET_DIRS_GTK_DEMO=1
+TARGET_DIRS_GETTINGSTARTED=1
+TARGET_DIRS_PLUGINS=1
+TARGET_DIRS_SCRIBBLE_SIMPLE=1
+TARGET_DIRS_GTKGLEXT=1
+endif
ifdef TARGET_DIRS_HELLOWORLD
helloworld_all:
$(MAKE) -C helloworld all
diff --git a/packages/gtk2/examples/filechooser/Makefile b/packages/gtk2/examples/filechooser/Makefile
index 86f9bf9fab..7aab5098fa 100644
--- a/packages/gtk2/examples/filechooser/Makefile
+++ b/packages/gtk2/examples/filechooser/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=simple glade
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=simple glade
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=simple glade
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk2/examples/gettingstarted/Makefile b/packages/gtk2/examples/gettingstarted/Makefile
index cf35a3ffd3..77533e5fdf 100644
--- a/packages/gtk2/examples/gettingstarted/Makefile
+++ b/packages/gtk2/examples/gettingstarted/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=gettingstarted
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=gettingstarted
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=gettingstarted
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk2/examples/gtk_demo/Makefile b/packages/gtk2/examples/gtk_demo/Makefile
index 95cb79a7af..5ac4208739 100644
--- a/packages/gtk2/examples/gtk_demo/Makefile
+++ b/packages/gtk2/examples/gtk_demo/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=gtk_demo
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=gtk_demo
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=gtk_demo
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk2/examples/gtkglext/Makefile b/packages/gtk2/examples/gtkglext/Makefile
index efe40b742e..20c6990e01 100644
--- a/packages/gtk2/examples/gtkglext/Makefile
+++ b/packages/gtk2/examples/gtkglext/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=gears
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=gears
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=gears
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2317,6 +2329,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
REQUIRE_PACKAGES_OPENGL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk2/examples/helloworld/Makefile b/packages/gtk2/examples/helloworld/Makefile
index d3eb398387..35ab798393 100644
--- a/packages/gtk2/examples/helloworld/Makefile
+++ b/packages/gtk2/examples/helloworld/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=helloworld
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=helloworld
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=helloworld
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk2/examples/helloworld2/Makefile b/packages/gtk2/examples/helloworld2/Makefile
index 912740ee56..6267e18a20 100644
--- a/packages/gtk2/examples/helloworld2/Makefile
+++ b/packages/gtk2/examples/helloworld2/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=helloworld2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=helloworld2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=helloworld2
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk2/examples/plugins/Makefile b/packages/gtk2/examples/plugins/Makefile
index f9c4d4a97b..7ccb65652a 100644
--- a/packages/gtk2/examples/plugins/Makefile
+++ b/packages/gtk2/examples/plugins/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=plugin main
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=plugin main
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=plugin main
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/gtk2/examples/scribble_simple/Makefile b/packages/gtk2/examples/scribble_simple/Makefile
index eeecd35c4b..8f31a5f526 100644
--- a/packages/gtk2/examples/scribble_simple/Makefile
+++ b/packages/gtk2/examples/scribble_simple/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=scribble_simple
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=scribble_simple
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=scribble_simple
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_GTK2=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/hash/Makefile b/packages/hash/Makefile
index a04ec86a96..26d98299e9 100644
--- a/packages/hash/Makefile
+++ b/packages/hash/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -827,6 +827,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -835,6 +838,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1381,6 +1387,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/hash/examples/Makefile b/packages/hash/examples/Makefile
index feed3a5c99..a17db731ee 100644
--- a/packages/hash/examples/Makefile
+++ b/packages/hash/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2317,6 +2329,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_RTL-EXTRA=1
REQUIRE_PACKAGES_RTL-OBJPAS=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+REQUIRE_PACKAGES_RTL-OBJPAS=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+REQUIRE_PACKAGES_RTL-OBJPAS=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/hash/fpmake.pp b/packages/hash/fpmake.pp
index 33f4e19941..20f6897868 100644
--- a/packages/hash/fpmake.pp
+++ b/packages/hash/fpmake.pp
@@ -23,7 +23,7 @@ begin
P.Email := '';
P.Description := 'Several hash and cryptography algorithms (MD5,CRC,Linux crypt and NTLM1).';
P.NeedLibC:= false;
- P.OSes:=P.OSes-[embedded,win16,macos,palmos];
+ P.OSes:=P.OSes-[embedded,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/hermes/Makefile b/packages/hermes/Makefile
index c4d8de6434..51c97d4bed 100644
--- a/packages/hermes/Makefile
+++ b/packages/hermes/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/hermes/fpmake.pp b/packages/hermes/fpmake.pp
index 7b8efe61e6..a32e2d9287 100644
--- a/packages/hermes/fpmake.pp
+++ b/packages/hermes/fpmake.pp
@@ -25,7 +25,7 @@ begin
P.Email := '';
P.Description := 'Library for pixel graphics conversion';
P.NeedLibC := false;
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/httpd13/Makefile b/packages/httpd13/Makefile
index efbd837ee2..0c40c1155b 100644
--- a/packages/httpd13/Makefile
+++ b/packages/httpd13/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/httpd20/Makefile b/packages/httpd20/Makefile
index b35ea43b08..0686a9bbe4 100644
--- a/packages/httpd20/Makefile
+++ b/packages/httpd20/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/httpd20/examples/Makefile b/packages/httpd20/examples/Makefile
index 1d146fdd8e..ce21e7244f 100644
--- a/packages/httpd20/examples/Makefile
+++ b/packages/httpd20/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=minimain
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=minimain
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=minimain
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1375,6 +1387,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1383,6 +1398,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2511,6 +2529,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD20=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_HTTPD20=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_HTTPD20=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/httpd22/Makefile b/packages/httpd22/Makefile
index fdd12b5bc1..c9150f6082 100644
--- a/packages/httpd22/Makefile
+++ b/packages/httpd22/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/httpd22/examples/Makefile b/packages/httpd22/examples/Makefile
index d774771b31..1d9f126d27 100644
--- a/packages/httpd22/examples/Makefile
+++ b/packages/httpd22/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=minimain
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=minimain
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=minimain
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1375,6 +1387,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1383,6 +1398,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2511,6 +2529,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD22=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_HTTPD22=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_HTTPD22=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/httpd24/Makefile b/packages/httpd24/Makefile
index 60378d783b..eca2cedbcf 100644
--- a/packages/httpd24/Makefile
+++ b/packages/httpd24/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/httpd24/examples/Makefile b/packages/httpd24/examples/Makefile
index 1d2781861e..314899c130 100644
--- a/packages/httpd24/examples/Makefile
+++ b/packages/httpd24/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=mod_hello
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=mod_hello
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=mod_hello
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=minimain
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=minimain
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=minimain
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1375,6 +1387,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1383,6 +1398,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2511,6 +2529,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD24=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_HTTPD24=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_HTTPD24=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ibase/Makefile b/packages/ibase/Makefile
index ba0161cee7..d829749458 100644
--- a/packages/ibase/Makefile
+++ b/packages/ibase/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ibase/examples/Makefile b/packages/ibase/examples/Makefile
index 6b0593a548..fc2c1927cb 100644
--- a/packages/ibase/examples/Makefile
+++ b/packages/ibase/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testib40 testib60
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testib40 testib60
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testib40 testib60
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_IBASE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_IBASE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_IBASE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/iconvenc/Makefile b/packages/iconvenc/Makefile
index 0506f66a09..adddb9009d 100644
--- a/packages/iconvenc/Makefile
+++ b/packages/iconvenc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/iconvenc/examples/Makefile b/packages/iconvenc/examples/Makefile
index eb41e205c4..4d39af49ea 100644
--- a/packages/iconvenc/examples/Makefile
+++ b/packages/iconvenc/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=iconvtest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=iconvtest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=iconvtest
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_ICONVENC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_ICONVENC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_ICONVENC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ide/Makefile b/packages/ide/Makefile
index ff01d5ff3a..698329b260 100644
--- a/packages/ide/Makefile
+++ b/packages/ide/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -812,6 +812,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -820,6 +823,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2240,6 +2246,30 @@ REQUIRE_PACKAGES_FV=1
REQUIRE_PACKAGES_CHM=1
REQUIRE_PACKAGES_REGEXPR=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_CHM=1
+REQUIRE_PACKAGES_REGEXPR=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_CHM=1
+REQUIRE_PACKAGES_REGEXPR=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ide/compiler/Makefile b/packages/ide/compiler/Makefile
index d16992911f..091445d933 100644
--- a/packages/ide/compiler/Makefile
+++ b/packages/ide/compiler/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -677,6 +677,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=compunit
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=compunit
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=compunit
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Ur -dNOCATCH
@@ -969,6 +975,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Ur -dNOCATCH
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Ur -dNOCATCH
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Ur -dNOCATCH
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
endif
@@ -1260,6 +1272,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
endif
@@ -1551,6 +1569,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1996,6 +2020,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2004,6 +2031,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3132,6 +3162,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_RTL-EXTRA=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ide/fakegdb/Makefile b/packages/ide/fakegdb/Makefile
index 3674a78044..2e23ef7351 100644
--- a/packages/ide/fakegdb/Makefile
+++ b/packages/ide/fakegdb/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=gdbcon gdbint
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=gdbcon gdbint
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=gdbcon gdbint
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1086,6 +1092,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1094,6 +1103,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1640,6 +1652,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/imagemagick/Makefile b/packages/imagemagick/Makefile
index 74f8668d56..82830305c7 100644
--- a/packages/imagemagick/Makefile
+++ b/packages/imagemagick/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/imlib/Makefile b/packages/imlib/Makefile
index 34a02611d0..07a76d6732 100644
--- a/packages/imlib/Makefile
+++ b/packages/imlib/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/iosxlocale/Makefile b/packages/iosxlocale/Makefile
index 616d00fde9..0f7adcf9e3 100644
--- a/packages/iosxlocale/Makefile
+++ b/packages/iosxlocale/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/jni/Makefile b/packages/jni/Makefile
index b6f54e6c30..e308da88cd 100644
--- a/packages/jni/Makefile
+++ b/packages/jni/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ldap/Makefile b/packages/ldap/Makefile
index 22e013a844..fe27ba68f9 100644
--- a/packages/ldap/Makefile
+++ b/packages/ldap/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libc/Makefile b/packages/libc/Makefile
index d3d8f4b352..20d3a50a17 100644
--- a/packages/libc/Makefile
+++ b/packages/libc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libcups/Makefile b/packages/libcups/Makefile
index 2997f5751f..f9089f976e 100644
--- a/packages/libcups/Makefile
+++ b/packages/libcups/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libcurl/Makefile b/packages/libcurl/Makefile
index 706392fe3f..e965a74ca9 100644
--- a/packages/libcurl/Makefile
+++ b/packages/libcurl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libcurl/examples/Makefile b/packages/libcurl/examples/Makefile
index b03f5843b9..88a4f1f94d 100644
--- a/packages/libcurl/examples/Makefile
+++ b/packages/libcurl/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testcurl teststream
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testcurl teststream
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testcurl teststream
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBCURL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBCURL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBCURL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libenet/Makefile b/packages/libenet/Makefile
index 639023d4e5..6505cbfa55 100644
--- a/packages/libenet/Makefile
+++ b/packages/libenet/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libffi/Makefile b/packages/libffi/Makefile
index 8c98a8be6e..4493427f04 100644
--- a/packages/libffi/Makefile
+++ b/packages/libffi/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libfontconfig/Makefile b/packages/libfontconfig/Makefile
index a5b101fd16..993b9f4c6d 100644
--- a/packages/libfontconfig/Makefile
+++ b/packages/libfontconfig/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libgbafpc/Makefile b/packages/libgbafpc/Makefile
index 980a2e8fc9..394f854579 100644
--- a/packages/libgbafpc/Makefile
+++ b/packages/libgbafpc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libgbafpc/examples/Makefile b/packages/libgbafpc/examples/Makefile
index 541735ec8c..1fd93f0627 100644
--- a/packages/libgbafpc/examples/Makefile
+++ b/packages/libgbafpc/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=audio graphics template
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=audio graphics template
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=audio graphics template
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3331,6 +3361,16 @@ TARGET_DIRS_AUDIO=1
TARGET_DIRS_GRAPHICS=1
TARGET_DIRS_TEMPLATE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_AUDIO=1
+TARGET_DIRS_GRAPHICS=1
+TARGET_DIRS_TEMPLATE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_AUDIO=1
+TARGET_DIRS_GRAPHICS=1
+TARGET_DIRS_TEMPLATE=1
+endif
ifdef TARGET_DIRS_AUDIO
audio_all:
$(MAKE) -C audio all
diff --git a/packages/libgbafpc/examples/audio/Makefile b/packages/libgbafpc/examples/audio/Makefile
index 5e707515f9..bea440056c 100644
--- a/packages/libgbafpc/examples/audio/Makefile
+++ b/packages/libgbafpc/examples/audio/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=PlayBoyScout
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=PlayBoyScout
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=PlayBoyScout
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1086,6 +1092,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1094,6 +1103,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2222,6 +2234,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3298,6 +3328,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_PLAYBOYSCOUT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_PLAYBOYSCOUT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_PLAYBOYSCOUT=1
+endif
ifdef TARGET_DIRS_PLAYBOYSCOUT
PlayBoyScout_all:
$(MAKE) -C PlayBoyScout all
diff --git a/packages/libgbafpc/examples/audio/PlayBoyScout/Makefile b/packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
index 1d216aacff..95eff37bb3 100644
--- a/packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
+++ b/packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -645,6 +645,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=PlayBoyScout
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=PlayBoyScout
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=PlayBoyScout
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -936,6 +942,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1227,6 +1239,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1673,6 +1691,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1681,6 +1702,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2809,6 +2833,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libgbafpc/examples/graphics/Makefile b/packages/libgbafpc/examples/graphics/Makefile
index 6521f3c37e..d7c445cba8 100644
--- a/packages/libgbafpc/examples/graphics/Makefile
+++ b/packages/libgbafpc/examples/graphics/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1086,6 +1092,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1094,6 +1103,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2222,6 +2234,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3492,6 +3522,16 @@ TARGET_DIRS_ANSI_CONSOLE=1
TARGET_DIRS_PCXVIEW=1
TARGET_DIRS_SIMPLEBGSCROLL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_ANSI_CONSOLE=1
+TARGET_DIRS_PCXVIEW=1
+TARGET_DIRS_SIMPLEBGSCROLL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_ANSI_CONSOLE=1
+TARGET_DIRS_PCXVIEW=1
+TARGET_DIRS_SIMPLEBGSCROLL=1
+endif
ifdef TARGET_DIRS_ANSI_CONSOLE
ansi_console_all:
$(MAKE) -C ansi_console all
diff --git a/packages/libgbafpc/examples/graphics/PCXView/Makefile b/packages/libgbafpc/examples/graphics/PCXView/Makefile
index 67993d511d..e4fcf197c0 100644
--- a/packages/libgbafpc/examples/graphics/PCXView/Makefile
+++ b/packages/libgbafpc/examples/graphics/PCXView/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -645,6 +645,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=PcxView
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=PcxView
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=PcxView
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -936,6 +942,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1227,6 +1239,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1673,6 +1691,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1681,6 +1702,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2809,6 +2833,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile b/packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
index a8a9a1f9bc..9f57f2f423 100644
--- a/packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
+++ b/packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -645,6 +645,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=SimpleBGScroll
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=SimpleBGScroll
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=SimpleBGScroll
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -936,6 +942,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1227,6 +1239,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1673,6 +1691,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1681,6 +1702,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2809,6 +2833,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libgbafpc/examples/graphics/ansi_console/Makefile b/packages/libgbafpc/examples/graphics/ansi_console/Makefile
index a7f2b8d776..c4f86231d4 100644
--- a/packages/libgbafpc/examples/graphics/ansi_console/Makefile
+++ b/packages/libgbafpc/examples/graphics/ansi_console/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -645,6 +645,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=console
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=console
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=console
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -936,6 +942,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1227,6 +1239,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1673,6 +1691,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1681,6 +1702,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2809,6 +2833,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libgbafpc/examples/template/Makefile b/packages/libgbafpc/examples/template/Makefile
index ff2b04c5aa..50576f9012 100644
--- a/packages/libgbafpc/examples/template/Makefile
+++ b/packages/libgbafpc/examples/template/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -647,6 +647,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=template
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=template
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=template
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -938,6 +944,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1229,6 +1241,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1675,6 +1693,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1683,6 +1704,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2811,6 +2835,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libgc/Makefile b/packages/libgc/Makefile
index 965e1483f3..d8da6cae0d 100644
--- a/packages/libgc/Makefile
+++ b/packages/libgc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libgd/Makefile b/packages/libgd/Makefile
index 051383a67b..85fe9fddd3 100644
--- a/packages/libgd/Makefile
+++ b/packages/libgd/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libgd/examples/Makefile b/packages/libgd/examples/Makefile
index 027ebbb2ef..c4f8f4225f 100644
--- a/packages/libgd/examples/Makefile
+++ b/packages/libgd/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=gdtest gdtestcgi
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=gdtest gdtestcgi
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=gdtest gdtestcgi
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGD=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGD=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBGD=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libgd/fpmake.pp b/packages/libgd/fpmake.pp
index 1deba1d48d..d0fdd71c9d 100644
--- a/packages/libgd/fpmake.pp
+++ b/packages/libgd/fpmake.pp
@@ -20,7 +20,7 @@ begin
{$endif ALLPACKAGES}
P.Version:='3.3.1';
P.SourcePath.Add('src');
- P.OSes := P.OSes - [embedded,nativent,msdos,wii,win16,atari,macos,palmos,symbian,freertos];
+ P.OSes := P.OSes - [embedded,nativent,msdos,wii,win16,atari,macos,palmos,symbian,freertos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/libmagic/Makefile b/packages/libmagic/Makefile
index 3b500a00d3..646ec87884 100644
--- a/packages/libmagic/Makefile
+++ b/packages/libmagic/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libmicrohttpd/Makefile b/packages/libmicrohttpd/Makefile
index 86399a2dd5..0064f180bc 100644
--- a/packages/libmicrohttpd/Makefile
+++ b/packages/libmicrohttpd/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/Makefile b/packages/libndsfpc/Makefile
index 50174dcb91..7c20ca8c14 100644
--- a/packages/libndsfpc/Makefile
+++ b/packages/libndsfpc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/Makefile b/packages/libndsfpc/examples/Makefile
index 32535c7766..b84a6a484f 100644
--- a/packages/libndsfpc/examples/Makefile
+++ b/packages/libndsfpc/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -4107,6 +4137,32 @@ TARGET_DIRS_HELLO_WORLD=1
TARGET_DIRS_INPUT=1
TARGET_DIRS_TIME=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_AUDIO=1
+TARGET_DIRS_CARD=1
+TARGET_DIRS_DEBUGGING=1
+TARGET_DIRS_DS_MOTION=1
+TARGET_DIRS_DSWIFI=1
+TARGET_DIRS_FILESYSTEM=1
+TARGET_DIRS_GL2D=1
+TARGET_DIRS_GRAPHICS=1
+TARGET_DIRS_HELLO_WORLD=1
+TARGET_DIRS_INPUT=1
+TARGET_DIRS_TIME=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_AUDIO=1
+TARGET_DIRS_CARD=1
+TARGET_DIRS_DEBUGGING=1
+TARGET_DIRS_DS_MOTION=1
+TARGET_DIRS_DSWIFI=1
+TARGET_DIRS_FILESYSTEM=1
+TARGET_DIRS_GL2D=1
+TARGET_DIRS_GRAPHICS=1
+TARGET_DIRS_HELLO_WORLD=1
+TARGET_DIRS_INPUT=1
+TARGET_DIRS_TIME=1
+endif
ifdef TARGET_DIRS_AUDIO
audio_all:
$(MAKE) -C audio all
diff --git a/packages/libndsfpc/examples/audio/Makefile b/packages/libndsfpc/examples/audio/Makefile
index c192bb797e..b090f9c8e1 100644
--- a/packages/libndsfpc/examples/audio/Makefile
+++ b/packages/libndsfpc/examples/audio/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=maxmod micrecord
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=maxmod micrecord
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=maxmod micrecord
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3234,6 +3264,14 @@ ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_MAXMOD=1
TARGET_DIRS_MICRECORD=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_MAXMOD=1
+TARGET_DIRS_MICRECORD=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_MAXMOD=1
+TARGET_DIRS_MICRECORD=1
+endif
ifdef TARGET_DIRS_MAXMOD
maxmod_all:
$(MAKE) -C maxmod all
diff --git a/packages/libndsfpc/examples/audio/maxmod/Makefile b/packages/libndsfpc/examples/audio/maxmod/Makefile
index 25073d0eb7..2b3134e429 100644
--- a/packages/libndsfpc/examples/audio/maxmod/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3525,6 +3555,20 @@ TARGET_DIRS_REVERB=1
TARGET_DIRS_SONG_EVENTS_EXAMPLE=1
TARGET_DIRS_SONG_EVENTS_EXAMPLE2=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_AUDIO_MODES=1
+TARGET_DIRS_BASIC_SOUND=1
+TARGET_DIRS_REVERB=1
+TARGET_DIRS_SONG_EVENTS_EXAMPLE=1
+TARGET_DIRS_SONG_EVENTS_EXAMPLE2=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_AUDIO_MODES=1
+TARGET_DIRS_BASIC_SOUND=1
+TARGET_DIRS_REVERB=1
+TARGET_DIRS_SONG_EVENTS_EXAMPLE=1
+TARGET_DIRS_SONG_EVENTS_EXAMPLE2=1
+endif
ifdef TARGET_DIRS_AUDIO_MODES
audio_modes_all:
$(MAKE) -C audio_modes all
diff --git a/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile b/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
index 489ccc70f7..277c4e6eac 100644
--- a/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=audio_modes
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=audio_modes
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=audio_modes
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=soundbank.bin
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=soundbank.bin
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=soundbank.bin
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=soundbank.bin
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1523,6 +1541,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2397,6 +2433,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2842,6 +2884,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2850,6 +2895,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3978,6 +4026,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile b/packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
index 0d2b4765d0..bb0568fab4 100644
--- a/packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=basic_sound
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=basic_sound
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=basic_sound
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1523,6 +1541,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2397,6 +2433,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2842,6 +2884,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2850,6 +2895,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3978,6 +4026,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile b/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
index c95b0711b2..2af27e5970 100644
--- a/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=reverb
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=reverb
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=reverb
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1523,6 +1541,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2397,6 +2433,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2842,6 +2884,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2850,6 +2895,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3978,6 +4026,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile b/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
index 2459194101..2f7eb37d81 100644
--- a/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=song_events_example
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=song_events_example
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=song_events_example
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=mmsolution.bin
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=mmsolution.bin
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=mmsolution.bin
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=mmsolution.bin
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1523,6 +1541,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2397,6 +2433,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2842,6 +2884,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2850,6 +2895,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3978,6 +4026,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile b/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
index ac567f67b7..982ddda803 100644
--- a/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=song_events_example2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=song_events_example2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=song_events_example2
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=mmsolution.bin
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=mmsolution.bin
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=mmsolution.bin
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=mmsolution.bin
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1523,6 +1541,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2397,6 +2433,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2842,6 +2884,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2850,6 +2895,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3978,6 +4026,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/audio/maxmod/streaming/Makefile b/packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
index dc44c5ceb0..334c5eac35 100644
--- a/packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=streaming
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=streaming
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=streaming
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/audio/micrecord/Makefile b/packages/libndsfpc/examples/audio/micrecord/Makefile
index f211620c00..f551d418f6 100644
--- a/packages/libndsfpc/examples/audio/micrecord/Makefile
+++ b/packages/libndsfpc/examples/audio/micrecord/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -648,6 +648,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=micrecord
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=micrecord
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=micrecord
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -939,6 +945,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1230,6 +1242,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1522,6 +1540,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1813,6 +1837,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2104,6 +2134,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2549,6 +2585,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2557,6 +2596,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3685,6 +3727,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/card/Makefile b/packages/libndsfpc/examples/card/Makefile
index dd4c00f5a8..e08193768c 100644
--- a/packages/libndsfpc/examples/card/Makefile
+++ b/packages/libndsfpc/examples/card/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=eeprom
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=eeprom
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=eeprom
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_EEPROM=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_EEPROM=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_EEPROM=1
+endif
ifdef TARGET_DIRS_EEPROM
eeprom_all:
$(MAKE) -C eeprom all
diff --git a/packages/libndsfpc/examples/card/eeprom/Makefile b/packages/libndsfpc/examples/card/eeprom/Makefile
index 6985f1b2d6..853dbbcded 100644
--- a/packages/libndsfpc/examples/card/eeprom/Makefile
+++ b/packages/libndsfpc/examples/card/eeprom/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -648,6 +648,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=eeprom
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=eeprom
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=eeprom
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -939,6 +945,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1230,6 +1242,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1522,6 +1540,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1813,6 +1837,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2104,6 +2134,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2549,6 +2585,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2557,6 +2596,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3685,6 +3727,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/debugging/Makefile b/packages/libndsfpc/examples/debugging/Makefile
index d1abac9f31..b3cb86811a 100644
--- a/packages/libndsfpc/examples/debugging/Makefile
+++ b/packages/libndsfpc/examples/debugging/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=exceptionTest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=exceptionTest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=exceptionTest
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_EXCEPTIONTEST=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_EXCEPTIONTEST=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_EXCEPTIONTEST=1
+endif
ifdef TARGET_DIRS_EXCEPTIONTEST
exceptionTest_all:
$(MAKE) -C exceptionTest all
diff --git a/packages/libndsfpc/examples/debugging/exceptionTest/Makefile b/packages/libndsfpc/examples/debugging/exceptionTest/Makefile
index 36c0158c54..2b06f38669 100644
--- a/packages/libndsfpc/examples/debugging/exceptionTest/Makefile
+++ b/packages/libndsfpc/examples/debugging/exceptionTest/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -648,6 +648,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=exceptionTest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=exceptionTest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=exceptionTest
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -939,6 +945,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1230,6 +1242,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1522,6 +1540,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1813,6 +1837,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2104,6 +2134,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2549,6 +2585,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2557,6 +2596,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3685,6 +3727,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/ds_motion/Makefile b/packages/libndsfpc/examples/ds_motion/Makefile
index 6d168b4cb8..7c9e1ef1df 100644
--- a/packages/libndsfpc/examples/ds_motion/Makefile
+++ b/packages/libndsfpc/examples/ds_motion/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -648,6 +648,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=dsMotion
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=dsMotion
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=dsMotion
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -939,6 +945,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1230,6 +1242,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1522,6 +1540,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1813,6 +1837,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2104,6 +2134,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2549,6 +2585,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2557,6 +2596,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3685,6 +3727,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/dswifi/Makefile b/packages/libndsfpc/examples/dswifi/Makefile
index db6678f7d6..8985ff4ec6 100644
--- a/packages/libndsfpc/examples/dswifi/Makefile
+++ b/packages/libndsfpc/examples/dswifi/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=ap_search autoconnect httpget
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=ap_search autoconnect httpget
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=ap_search autoconnect httpget
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3331,6 +3361,16 @@ TARGET_DIRS_AP_SEARCH=1
TARGET_DIRS_AUTOCONNECT=1
TARGET_DIRS_HTTPGET=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_AP_SEARCH=1
+TARGET_DIRS_AUTOCONNECT=1
+TARGET_DIRS_HTTPGET=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_AP_SEARCH=1
+TARGET_DIRS_AUTOCONNECT=1
+TARGET_DIRS_HTTPGET=1
+endif
ifdef TARGET_DIRS_AP_SEARCH
ap_search_all:
$(MAKE) -C ap_search all
diff --git a/packages/libndsfpc/examples/dswifi/ap_search/Makefile b/packages/libndsfpc/examples/dswifi/ap_search/Makefile
index c790b950d0..0848588276 100644
--- a/packages/libndsfpc/examples/dswifi/ap_search/Makefile
+++ b/packages/libndsfpc/examples/dswifi/ap_search/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -648,6 +648,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=apSearch
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=apSearch
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=apSearch
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -939,6 +945,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1230,6 +1242,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1522,6 +1540,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1813,6 +1837,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2104,6 +2134,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2549,6 +2585,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2557,6 +2596,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3685,6 +3727,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/dswifi/autoconnect/Makefile b/packages/libndsfpc/examples/dswifi/autoconnect/Makefile
index a60b5adcb5..fb813687b0 100644
--- a/packages/libndsfpc/examples/dswifi/autoconnect/Makefile
+++ b/packages/libndsfpc/examples/dswifi/autoconnect/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -648,6 +648,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=autoconnect
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=autoconnect
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=autoconnect
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -939,6 +945,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1230,6 +1242,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1522,6 +1540,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1813,6 +1837,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2104,6 +2134,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2549,6 +2585,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2557,6 +2596,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3685,6 +3727,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/dswifi/httpget/Makefile b/packages/libndsfpc/examples/dswifi/httpget/Makefile
index 70735aff6d..ef57203988 100644
--- a/packages/libndsfpc/examples/dswifi/httpget/Makefile
+++ b/packages/libndsfpc/examples/dswifi/httpget/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -648,6 +648,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=httpget
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=httpget
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=httpget
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -939,6 +945,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1230,6 +1242,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1522,6 +1540,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1813,6 +1837,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2104,6 +2134,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2549,6 +2585,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2557,6 +2596,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3685,6 +3727,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/filesystem/Makefile b/packages/libndsfpc/examples/filesystem/Makefile
index cdb4367c50..fc21f11736 100644
--- a/packages/libndsfpc/examples/filesystem/Makefile
+++ b/packages/libndsfpc/examples/filesystem/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=libfat nitrofs
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=libfat nitrofs
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=libfat nitrofs
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3234,6 +3264,14 @@ ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_LIBFAT=1
TARGET_DIRS_NITROFS=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_LIBFAT=1
+TARGET_DIRS_NITROFS=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_LIBFAT=1
+TARGET_DIRS_NITROFS=1
+endif
ifdef TARGET_DIRS_LIBFAT
libfat_all:
$(MAKE) -C libfat all
diff --git a/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile b/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
index 08ad069c1e..0d382046d0 100644
--- a/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
+++ b/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -649,6 +649,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=embedded_gbfs
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=embedded_gbfs
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=embedded_gbfs
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=data.gbfs
endif
@@ -940,6 +946,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=data.gbfs
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=data.gbfs
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=data.gbfs
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -1231,6 +1243,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1522,6 +1540,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1814,6 +1838,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -2105,6 +2135,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2396,6 +2432,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2841,6 +2883,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2849,6 +2894,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3977,6 +4025,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/filesystem/libfat/Makefile b/packages/libndsfpc/examples/filesystem/libfat/Makefile
index b7fdb3abc6..db157a5f18 100644
--- a/packages/libndsfpc/examples/filesystem/libfat/Makefile
+++ b/packages/libndsfpc/examples/filesystem/libfat/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=libfatdir
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=libfatdir
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=libfatdir
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_LIBFATDIR=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_LIBFATDIR=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_LIBFATDIR=1
+endif
ifdef TARGET_DIRS_LIBFATDIR
libfatdir_all:
$(MAKE) -C libfatdir all
diff --git a/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile b/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
index 06d19e3433..04604935b3 100644
--- a/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
+++ b/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -648,6 +648,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=access_dir
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=access_dir
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=access_dir
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -939,6 +945,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1230,6 +1242,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1522,6 +1540,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1813,6 +1837,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2104,6 +2134,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2549,6 +2585,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2557,6 +2596,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3685,6 +3727,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile b/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
index 91d0796cfe..5b401a2778 100644
--- a/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
+++ b/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -648,6 +648,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=access_file
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=access_file
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=access_file
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -939,6 +945,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1230,6 +1242,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1522,6 +1540,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1813,6 +1837,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2104,6 +2134,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2549,6 +2585,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2557,6 +2596,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3685,6 +3727,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile b/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
index ebf1e00b02..8267653b6c 100644
--- a/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
+++ b/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -648,6 +648,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=libfatdir
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=libfatdir
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=libfatdir
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -939,6 +945,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1230,6 +1242,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1522,6 +1540,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1813,6 +1837,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2104,6 +2134,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2549,6 +2585,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2557,6 +2596,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3685,6 +3727,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/filesystem/nitrofs/Makefile b/packages/libndsfpc/examples/filesystem/nitrofs/Makefile
index 48c1c52ccd..4dab98a163 100644
--- a/packages/libndsfpc/examples/filesystem/nitrofs/Makefile
+++ b/packages/libndsfpc/examples/filesystem/nitrofs/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=nitrodir
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=nitrodir
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=nitrodir
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_NITRODIR=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_NITRODIR=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_NITRODIR=1
+endif
ifdef TARGET_DIRS_NITRODIR
nitrodir_all:
$(MAKE) -C nitrodir all
diff --git a/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile b/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
index 3b7b948c9b..d27762e978 100644
--- a/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
+++ b/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=nitrodir
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=nitrodir
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=nitrodir
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile b/packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
index 7fc39994d7..5e8f81eaf7 100644
--- a/packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
+++ b/packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=2Dplus3D
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=2Dplus3D
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=2Dplus3D
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/gl2d/Makefile b/packages/libndsfpc/examples/gl2d/Makefile
index bf0dab5c2a..77c35a0068 100644
--- a/packages/libndsfpc/examples/gl2d/Makefile
+++ b/packages/libndsfpc/examples/gl2d/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3622,6 +3652,22 @@ TARGET_DIRS_PRIMITIVES=1
TARGET_DIRS_SCROLLING=1
TARGET_DIRS_SPRITES=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_2DPLUS3D=1
+TARGET_DIRS_DUAL_SCREEN=1
+TARGET_DIRS_FONTS=1
+TARGET_DIRS_PRIMITIVES=1
+TARGET_DIRS_SCROLLING=1
+TARGET_DIRS_SPRITES=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_2DPLUS3D=1
+TARGET_DIRS_DUAL_SCREEN=1
+TARGET_DIRS_FONTS=1
+TARGET_DIRS_PRIMITIVES=1
+TARGET_DIRS_SCROLLING=1
+TARGET_DIRS_SPRITES=1
+endif
ifdef TARGET_DIRS_2DPLUS3D
2Dplus3D_all:
$(MAKE) -C 2Dplus3D all
diff --git a/packages/libndsfpc/examples/gl2d/dual_screen/Makefile b/packages/libndsfpc/examples/gl2d/dual_screen/Makefile
index 44e179ea62..acca78cb68 100644
--- a/packages/libndsfpc/examples/gl2d/dual_screen/Makefile
+++ b/packages/libndsfpc/examples/gl2d/dual_screen/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=dual_screen
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=dual_screen
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=dual_screen
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/gl2d/fonts/Makefile b/packages/libndsfpc/examples/gl2d/fonts/Makefile
index 1193e4061f..820b46d067 100644
--- a/packages/libndsfpc/examples/gl2d/fonts/Makefile
+++ b/packages/libndsfpc/examples/gl2d/fonts/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=fonts
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=fonts
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=fonts
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/gl2d/primitives/Makefile b/packages/libndsfpc/examples/gl2d/primitives/Makefile
index 1a19be8324..15ccf518d9 100644
--- a/packages/libndsfpc/examples/gl2d/primitives/Makefile
+++ b/packages/libndsfpc/examples/gl2d/primitives/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=primitives
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=primitives
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=primitives
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/gl2d/scrolling/Makefile b/packages/libndsfpc/examples/gl2d/scrolling/Makefile
index 383328305f..a52d7833ad 100644
--- a/packages/libndsfpc/examples/gl2d/scrolling/Makefile
+++ b/packages/libndsfpc/examples/gl2d/scrolling/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=scrolling
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=scrolling
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=scrolling
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/gl2d/sprites/Makefile b/packages/libndsfpc/examples/gl2d/sprites/Makefile
index 1113c13ede..61abdbe02a 100644
--- a/packages/libndsfpc/examples/gl2d/sprites/Makefile
+++ b/packages/libndsfpc/examples/gl2d/sprites/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=sprites
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=sprites
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=sprites
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile b/packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
index 976156de09..3a4f9ce149 100644
--- a/packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=3DBothScreens
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=3DBothScreens
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=3DBothScreens
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile b/packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
index 5aca191aaf..c64d1bc2c4 100644
--- a/packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=BoxTest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=BoxTest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=BoxTest
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Display_List/Makefile b/packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
index 489b93fdda..974c841aed 100644
--- a/packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=DisplayList
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=DisplayList
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=DisplayList
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile b/packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
index c8db1fb4dc..14cbe17956 100644
--- a/packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=DisplayList2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=DisplayList2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=DisplayList2
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile b/packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
index a7e8579055..c323fd03f4 100644
--- a/packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=EnvMapping
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=EnvMapping
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=EnvMapping
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Makefile b/packages/libndsfpc/examples/graphics/3D/Makefile
index ec2226a1c8..e349c413b0 100644
--- a/packages/libndsfpc/examples/graphics/3D/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=3D_Both_Screens BoxTest Display_List Display_List_2 Env_Mapping Mixed_Text_3D Ortho Paletted_Cube Picking Simple_Quad Simple_Tri Textured_Cube Textured_Quad Toon_Shading nehe
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=3D_Both_Screens BoxTest Display_List Display_List_2 Env_Mapping Mixed_Text_3D Ortho Paletted_Cube Picking Simple_Quad Simple_Tri Textured_Cube Textured_Quad Toon_Shading nehe
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=3D_Both_Screens BoxTest Display_List Display_List_2 Env_Mapping Mixed_Text_3D Ortho Paletted_Cube Picking Simple_Quad Simple_Tri Textured_Cube Textured_Quad Toon_Shading nehe
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -4495,6 +4525,40 @@ TARGET_DIRS_TEXTURED_QUAD=1
TARGET_DIRS_TOON_SHADING=1
TARGET_DIRS_NEHE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_3D_BOTH_SCREENS=1
+TARGET_DIRS_BOXTEST=1
+TARGET_DIRS_DISPLAY_LIST=1
+TARGET_DIRS_DISPLAY_LIST_2=1
+TARGET_DIRS_ENV_MAPPING=1
+TARGET_DIRS_MIXED_TEXT_3D=1
+TARGET_DIRS_ORTHO=1
+TARGET_DIRS_PALETTED_CUBE=1
+TARGET_DIRS_PICKING=1
+TARGET_DIRS_SIMPLE_QUAD=1
+TARGET_DIRS_SIMPLE_TRI=1
+TARGET_DIRS_TEXTURED_CUBE=1
+TARGET_DIRS_TEXTURED_QUAD=1
+TARGET_DIRS_TOON_SHADING=1
+TARGET_DIRS_NEHE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_3D_BOTH_SCREENS=1
+TARGET_DIRS_BOXTEST=1
+TARGET_DIRS_DISPLAY_LIST=1
+TARGET_DIRS_DISPLAY_LIST_2=1
+TARGET_DIRS_ENV_MAPPING=1
+TARGET_DIRS_MIXED_TEXT_3D=1
+TARGET_DIRS_ORTHO=1
+TARGET_DIRS_PALETTED_CUBE=1
+TARGET_DIRS_PICKING=1
+TARGET_DIRS_SIMPLE_QUAD=1
+TARGET_DIRS_SIMPLE_TRI=1
+TARGET_DIRS_TEXTURED_CUBE=1
+TARGET_DIRS_TEXTURED_QUAD=1
+TARGET_DIRS_TOON_SHADING=1
+TARGET_DIRS_NEHE=1
+endif
ifdef TARGET_DIRS_3D_BOTH_SCREENS
3D_Both_Screens_all:
$(MAKE) -C 3D_Both_Screens all
diff --git a/packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile b/packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
index cd26b1adc4..1c422edbc2 100644
--- a/packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=MixedText3D
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=MixedText3D
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=MixedText3D
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Ortho/Makefile b/packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
index a99057d97c..89ca57a866 100644
--- a/packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=Ortho
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=Ortho
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=Ortho
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile b/packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
index a49072e336..7d73c5ddaa 100644
--- a/packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=PalettedCube
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=PalettedCube
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=PalettedCube
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Picking/Makefile b/packages/libndsfpc/examples/graphics/3D/Picking/Makefile
index d7b356e08c..0b12aad9f5 100644
--- a/packages/libndsfpc/examples/graphics/3D/Picking/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Picking/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=Picking
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=Picking
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=Picking
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile b/packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
index 0a05a1d5e7..0912e00298 100644
--- a/packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=SimpleQuad
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=SimpleQuad
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=SimpleQuad
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile b/packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
index 31bb76eb2a..f1df49c5ba 100644
--- a/packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=SimpleTri
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=SimpleTri
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=SimpleTri
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile b/packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
index a74414930f..32a451a573 100644
--- a/packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=TexturedCube
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=TexturedCube
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=TexturedCube
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile b/packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
index 031a9a1f98..caaa3e066e 100644
--- a/packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=TexturedQuad
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=TexturedQuad
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=TexturedQuad
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile b/packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
index 846ec5eb75..b1f44f4910 100644
--- a/packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=ToonShading
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=ToonShading
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=ToonShading
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/Makefile
index 79fa08aa5c..6302fb0d0f 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -4204,6 +4234,34 @@ TARGET_DIRS_LESSON10=1
TARGET_DIRS_LESSON10B=1
TARGET_DIRS_LESSON11=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_LESSON01=1
+TARGET_DIRS_LESSON02=1
+TARGET_DIRS_LESSON03=1
+TARGET_DIRS_LESSON04=1
+TARGET_DIRS_LESSON05=1
+TARGET_DIRS_LESSON06=1
+TARGET_DIRS_LESSON07=1
+TARGET_DIRS_LESSON08=1
+TARGET_DIRS_LESSON09=1
+TARGET_DIRS_LESSON10=1
+TARGET_DIRS_LESSON10B=1
+TARGET_DIRS_LESSON11=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_LESSON01=1
+TARGET_DIRS_LESSON02=1
+TARGET_DIRS_LESSON03=1
+TARGET_DIRS_LESSON04=1
+TARGET_DIRS_LESSON05=1
+TARGET_DIRS_LESSON06=1
+TARGET_DIRS_LESSON07=1
+TARGET_DIRS_LESSON08=1
+TARGET_DIRS_LESSON09=1
+TARGET_DIRS_LESSON10=1
+TARGET_DIRS_LESSON10B=1
+TARGET_DIRS_LESSON11=1
+endif
ifdef TARGET_DIRS_LESSON01
lesson01_all:
$(MAKE) -C lesson01 all
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
index ed5fe6aa9a..6ee8463096 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson01
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson01
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson01
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
index a8705fb803..a2da5553a6 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson02
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson02
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson02
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
index c9beb1b06d..35e599b596 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson03
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson03
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson03
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
index eedf34e37f..d59ab895ca 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson04
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson04
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson04
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
index 9ac157f5f5..a085cf6ad1 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson05
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson05
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson05
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
index 1c551c21d6..2f82bcb6a2 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson06
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson06
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson06
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
index 83ece8fea8..cacfaa7637 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson07
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson07
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson07
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
index a5785a8db9..0cbf14b0ac 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson08
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson08
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson08
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
index 31733f9370..88de3ddce3 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson09
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson09
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson09
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
index f3d434bbf0..53edefa359 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson10
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson10
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson10
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
index 960b1f34da..25a2f40d59 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson10b
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson10b
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson10b
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
index 47aaba0055..375fca779a 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson11
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson11
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson11
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
index 38182f4dfe..4dd090be48 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=16bitColorBmp
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=16bitColorBmp
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=16bitColorBmp
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
index bf32a30b56..63c94f0361 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=256ColorBmp
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=256ColorBmp
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=256ColorBmp
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
index 8fc7e7996b..e32fa699b6 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=DoubleBuffer
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=DoubleBuffer
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=DoubleBuffer
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/Makefile
index 6b24adf335..76f852ce0a 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3525,6 +3555,20 @@ TARGET_DIRS_ALL_IN_ONE=1
TARGET_DIRS_DOUBLE_BUFFER=1
TARGET_DIRS_ROTATION=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_16BIT_COLOR_BMP=1
+TARGET_DIRS_256_COLOR_BMP=1
+TARGET_DIRS_ALL_IN_ONE=1
+TARGET_DIRS_DOUBLE_BUFFER=1
+TARGET_DIRS_ROTATION=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_16BIT_COLOR_BMP=1
+TARGET_DIRS_256_COLOR_BMP=1
+TARGET_DIRS_ALL_IN_ONE=1
+TARGET_DIRS_DOUBLE_BUFFER=1
+TARGET_DIRS_ROTATION=1
+endif
ifdef TARGET_DIRS_16BIT_COLOR_BMP
16bit_color_bmp_all:
$(MAKE) -C 16bit_color_bmp all
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
index 9c17268343..d1f2ee93dd 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -651,6 +651,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=BackgroundAllInOne
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=BackgroundAllInOne
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=BackgroundAllInOne
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -942,6 +948,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1233,6 +1245,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1525,6 +1543,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1816,6 +1840,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2107,6 +2137,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2552,6 +2588,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2560,6 +2599,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3688,6 +3730,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
index 3553b3b2f1..811a5101ac 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=Rotation
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=Rotation
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=Rotation
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Effects/Makefile b/packages/libndsfpc/examples/graphics/Effects/Makefile
index cdf728ce55..fb58121e2f 100644
--- a/packages/libndsfpc/examples/graphics/Effects/Makefile
+++ b/packages/libndsfpc/examples/graphics/Effects/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=windows
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=windows
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_WINDOWS=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_WINDOWS=1
+endif
ifdef TARGET_DIRS_WINDOWS
windows_all:
$(MAKE) -C windows all
diff --git a/packages/libndsfpc/examples/graphics/Effects/windows/Makefile b/packages/libndsfpc/examples/graphics/Effects/windows/Makefile
index 6aad893614..fec5b19e2e 100644
--- a/packages/libndsfpc/examples/graphics/Effects/windows/Makefile
+++ b/packages/libndsfpc/examples/graphics/Effects/windows/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=windows
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=windows
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile b/packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
index 716f998860..1c289c4d94 100644
--- a/packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=backgrounds
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=backgrounds
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_BACKGROUNDS=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_BACKGROUNDS=1
+endif
ifdef TARGET_DIRS_BACKGROUNDS
backgrounds_all:
$(MAKE) -C backgrounds all
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
index 1d5ccca13e..ebae6c2aaa 100644
--- a/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=backgrounds
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=backgrounds
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Makefile b/packages/libndsfpc/examples/graphics/Makefile
index 454494c759..07c0f1d7b5 100644
--- a/packages/libndsfpc/examples/graphics/Makefile
+++ b/packages/libndsfpc/examples/graphics/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes grit Printing Sprites
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes grit Printing Sprites
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes grit Printing Sprites
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3719,6 +3749,24 @@ TARGET_DIRS_GRIT=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_3D=1
+TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
+TARGET_DIRS_GRIT=1
+TARGET_DIRS_PRINTING=1
+TARGET_DIRS_SPRITES=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_3D=1
+TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
+TARGET_DIRS_GRIT=1
+TARGET_DIRS_PRINTING=1
+TARGET_DIRS_SPRITES=1
+endif
ifdef TARGET_DIRS_3D
3D_all:
$(MAKE) -C 3D all
diff --git a/packages/libndsfpc/examples/graphics/Printing/Makefile b/packages/libndsfpc/examples/graphics/Printing/Makefile
index ebff6919e5..7cff5b1dc4 100644
--- a/packages/libndsfpc/examples/graphics/Printing/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3525,6 +3555,20 @@ TARGET_DIRS_CUSTOM_FONT=1
TARGET_DIRS_PRINT_BOTH_SCREENS=1
TARGET_DIRS_ROTSCALE_TEXT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_ANSI_CONSOLE=1
+TARGET_DIRS_CONSOLE_WINDOWS=1
+TARGET_DIRS_CUSTOM_FONT=1
+TARGET_DIRS_PRINT_BOTH_SCREENS=1
+TARGET_DIRS_ROTSCALE_TEXT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_ANSI_CONSOLE=1
+TARGET_DIRS_CONSOLE_WINDOWS=1
+TARGET_DIRS_CUSTOM_FONT=1
+TARGET_DIRS_PRINT_BOTH_SCREENS=1
+TARGET_DIRS_ROTSCALE_TEXT=1
+endif
ifdef TARGET_DIRS_ANSI_CONSOLE
ansi_console_all:
$(MAKE) -C ansi_console all
diff --git a/packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile b/packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
index 27ea8231ee..100b9bab2e 100644
--- a/packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=AnsiConsole
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=AnsiConsole
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=AnsiConsole
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile b/packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
index 1ba5cfc4f3..ed0239ce31 100644
--- a/packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=ConsoleWindows
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=ConsoleWindows
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=ConsoleWindows
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile b/packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
index 0f958d027d..d178dba416 100644
--- a/packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=CustomFont
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=CustomFont
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=CustomFont
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile b/packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
index 04b2048192..ceef476c5d 100644
--- a/packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=printBothScreens
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=printBothScreens
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=printBothScreens
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile b/packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
index cafe3a5cdd..e4a8d74a6d 100644
--- a/packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=RotscaleText
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=RotscaleText
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=RotscaleText
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/Makefile b/packages/libndsfpc/examples/graphics/Sprites/Makefile
index 6a388c9d5d..82295897b6 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3719,6 +3749,24 @@ TARGET_DIRS_SIMPLE=1
TARGET_DIRS_SPRITE_EXTENDED_PALETTES=1
TARGET_DIRS_SPRITE_ROTATE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_ALLOCATION_TEST=1
+TARGET_DIRS_ANIMATE_SIMPLE=1
+TARGET_DIRS_BITMAP_SPRITES=1
+TARGET_DIRS_FIRE_AND_SPRITES=1
+TARGET_DIRS_SIMPLE=1
+TARGET_DIRS_SPRITE_EXTENDED_PALETTES=1
+TARGET_DIRS_SPRITE_ROTATE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_ALLOCATION_TEST=1
+TARGET_DIRS_ANIMATE_SIMPLE=1
+TARGET_DIRS_BITMAP_SPRITES=1
+TARGET_DIRS_FIRE_AND_SPRITES=1
+TARGET_DIRS_SIMPLE=1
+TARGET_DIRS_SPRITE_EXTENDED_PALETTES=1
+TARGET_DIRS_SPRITE_ROTATE=1
+endif
ifdef TARGET_DIRS_ALLOCATION_TEST
allocation_test_all:
$(MAKE) -C allocation_test all
diff --git a/packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile b/packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
index b17e0d1aec..8a360c4e10 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=AllocationTest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=AllocationTest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=AllocationTest
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile b/packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
index 8fe8e45ac6..32d162e26c 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=AnimateSimple
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=AnimateSimple
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=AnimateSimple
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile b/packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
index a869790c2b..f368effa06 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=BitmapSprites
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=BitmapSprites
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=BitmapSprites
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile b/packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
index 42fe60e478..ce1b9b614c 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=FireAndSprites
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=FireAndSprites
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=FireAndSprites
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/simple/Makefile b/packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
index 4e844fe171..c71cfeba11 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=Simple
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=Simple
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=Simple
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile b/packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
index 5a0cec48ab..0da26e5c95 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=SpriteExtendedPalettes
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=SpriteExtendedPalettes
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=SpriteExtendedPalettes
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile b/packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
index 0798e76433..2635023ddd 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=SpriteRotate
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=SpriteRotate
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=SpriteRotate
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile b/packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
index 3eede1ff85..ac09a5e4ce 100644
--- a/packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
+++ b/packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=tilemap_256_color
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=tilemap_256_color
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=tilemap_256_color
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/graphics/grit/Makefile b/packages/libndsfpc/examples/graphics/grit/Makefile
index ec64019ada..d1aaee0779 100644
--- a/packages/libndsfpc/examples/graphics/grit/Makefile
+++ b/packages/libndsfpc/examples/graphics/grit/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=256colorTilemap
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=256colorTilemap
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=256colorTilemap
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_256COLORTILEMAP=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_256COLORTILEMAP=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_256COLORTILEMAP=1
+endif
ifdef TARGET_DIRS_256COLORTILEMAP
256colorTilemap_all:
$(MAKE) -C 256colorTilemap all
diff --git a/packages/libndsfpc/examples/hello_world/Makefile b/packages/libndsfpc/examples/hello_world/Makefile
index 6922c2701e..59215b40d7 100644
--- a/packages/libndsfpc/examples/hello_world/Makefile
+++ b/packages/libndsfpc/examples/hello_world/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=helloWorld
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=helloWorld
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=helloWorld
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/input/Makefile b/packages/libndsfpc/examples/input/Makefile
index 62bb572fa7..d62a6b427c 100644
--- a/packages/libndsfpc/examples/input/Makefile
+++ b/packages/libndsfpc/examples/input/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=keyboard Touch_Pad
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=keyboard Touch_Pad
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=keyboard Touch_Pad
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3234,6 +3264,14 @@ ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_KEYBOARD=1
TARGET_DIRS_TOUCH_PAD=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_KEYBOARD=1
+TARGET_DIRS_TOUCH_PAD=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_KEYBOARD=1
+TARGET_DIRS_TOUCH_PAD=1
+endif
ifdef TARGET_DIRS_KEYBOARD
keyboard_all:
$(MAKE) -C keyboard all
diff --git a/packages/libndsfpc/examples/input/Touch_Pad/Makefile b/packages/libndsfpc/examples/input/Touch_Pad/Makefile
index f36b81a823..a93ea98045 100644
--- a/packages/libndsfpc/examples/input/Touch_Pad/Makefile
+++ b/packages/libndsfpc/examples/input/Touch_Pad/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=touch_area touch_look touch_test
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=touch_area touch_look touch_test
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=touch_area touch_look touch_test
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3331,6 +3361,16 @@ TARGET_DIRS_TOUCH_AREA=1
TARGET_DIRS_TOUCH_LOOK=1
TARGET_DIRS_TOUCH_TEST=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_TOUCH_AREA=1
+TARGET_DIRS_TOUCH_LOOK=1
+TARGET_DIRS_TOUCH_TEST=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_TOUCH_AREA=1
+TARGET_DIRS_TOUCH_LOOK=1
+TARGET_DIRS_TOUCH_TEST=1
+endif
ifdef TARGET_DIRS_TOUCH_AREA
touch_area_all:
$(MAKE) -C touch_area all
diff --git a/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile b/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
index 9541859c49..33a65e0a69 100644
--- a/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
+++ b/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=touchArea
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=touchArea
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=touchArea
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile b/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
index ffb50bbac4..9626112d78 100644
--- a/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
+++ b/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=touchLook
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=touchLook
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=touchLook
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile b/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
index de7bdc5b0b..0ceba60eb1 100644
--- a/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
+++ b/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=touchTest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=touchTest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=touchTest
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/input/keyboard/Makefile b/packages/libndsfpc/examples/input/keyboard/Makefile
index 87a15672f1..5823f6b0c1 100644
--- a/packages/libndsfpc/examples/input/keyboard/Makefile
+++ b/packages/libndsfpc/examples/input/keyboard/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=keyboard_async keyboard_stdin
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=keyboard_async keyboard_stdin
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=keyboard_async keyboard_stdin
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3234,6 +3264,14 @@ ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_KEYBOARD_ASYNC=1
TARGET_DIRS_KEYBOARD_STDIN=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_KEYBOARD_ASYNC=1
+TARGET_DIRS_KEYBOARD_STDIN=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_KEYBOARD_ASYNC=1
+TARGET_DIRS_KEYBOARD_STDIN=1
+endif
ifdef TARGET_DIRS_KEYBOARD_ASYNC
keyboard_async_all:
$(MAKE) -C keyboard_async all
diff --git a/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile b/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
index bf4d413a5a..2db214ffec 100644
--- a/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
+++ b/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=keyboardAsync
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=keyboardAsync
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=keyboardAsync
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile b/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
index 016ee471f2..c8c5c3e750 100644
--- a/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
+++ b/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=keyboardStdin
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=keyboardStdin
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=keyboardStdin
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/time/Makefile b/packages/libndsfpc/examples/time/Makefile
index 9243a2a29b..f1a6eb3684 100644
--- a/packages/libndsfpc/examples/time/Makefile
+++ b/packages/libndsfpc/examples/time/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=RealTimeClock timercallback stopwatch
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=RealTimeClock timercallback stopwatch
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=RealTimeClock timercallback stopwatch
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3331,6 +3361,16 @@ TARGET_DIRS_REALTIMECLOCK=1
TARGET_DIRS_TIMERCALLBACK=1
TARGET_DIRS_STOPWATCH=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_REALTIMECLOCK=1
+TARGET_DIRS_TIMERCALLBACK=1
+TARGET_DIRS_STOPWATCH=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_REALTIMECLOCK=1
+TARGET_DIRS_TIMERCALLBACK=1
+TARGET_DIRS_STOPWATCH=1
+endif
ifdef TARGET_DIRS_REALTIMECLOCK
RealTimeClock_all:
$(MAKE) -C RealTimeClock all
diff --git a/packages/libndsfpc/examples/time/RealTimeClock/Makefile b/packages/libndsfpc/examples/time/RealTimeClock/Makefile
index 88302a814b..0240139080 100644
--- a/packages/libndsfpc/examples/time/RealTimeClock/Makefile
+++ b/packages/libndsfpc/examples/time/RealTimeClock/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=realtimeclock
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=realtimeclock
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=realtimeclock
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/time/stopwatch/Makefile b/packages/libndsfpc/examples/time/stopwatch/Makefile
index c9270d1f56..e660a491c0 100644
--- a/packages/libndsfpc/examples/time/stopwatch/Makefile
+++ b/packages/libndsfpc/examples/time/stopwatch/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=stopwatch
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=stopwatch
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=stopwatch
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libndsfpc/examples/time/timercallback/Makefile b/packages/libndsfpc/examples/time/timercallback/Makefile
index 25bec9d374..0d1d0b748c 100644
--- a/packages/libndsfpc/examples/time/timercallback/Makefile
+++ b/packages/libndsfpc/examples/time/timercallback/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -650,6 +650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=timercallback
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=timercallback
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=timercallback
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -941,6 +947,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
@@ -1232,6 +1244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/* $(BIN)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-Xm
@@ -1524,6 +1542,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(BIN)
endif
@@ -1815,6 +1839,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(BIN)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(BIN)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
@@ -2106,6 +2136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=$(BUILD)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=$(BUILD)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2551,6 +2587,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2559,6 +2598,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3687,6 +3729,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/Makefile b/packages/libogcfpc/Makefile
index 66202a1212..159ce770ea 100644
--- a/packages/libogcfpc/Makefile
+++ b/packages/libogcfpc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/Makefile b/packages/libogcfpc/examples/Makefile
index 5a1d1a7df0..563e51f371 100644
--- a/packages/libogcfpc/examples/Makefile
+++ b/packages/libogcfpc/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=audio devices filesystem graphics template
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=audio devices filesystem graphics template
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=audio devices filesystem graphics template
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2317,6 +2329,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
REQUIRE_PACKAGES_MAD=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+REQUIRE_PACKAGES_MAD=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+REQUIRE_PACKAGES_MAD=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3660,6 +3692,20 @@ TARGET_DIRS_FILESYSTEM=1
TARGET_DIRS_GRAPHICS=1
TARGET_DIRS_TEMPLATE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_AUDIO=1
+TARGET_DIRS_DEVICES=1
+TARGET_DIRS_FILESYSTEM=1
+TARGET_DIRS_GRAPHICS=1
+TARGET_DIRS_TEMPLATE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_AUDIO=1
+TARGET_DIRS_DEVICES=1
+TARGET_DIRS_FILESYSTEM=1
+TARGET_DIRS_GRAPHICS=1
+TARGET_DIRS_TEMPLATE=1
+endif
ifdef TARGET_DIRS_AUDIO
audio_all:
$(MAKE) -C audio all
diff --git a/packages/libogcfpc/examples/audio/Makefile b/packages/libogcfpc/examples/audio/Makefile
index 5778058703..f02205d71e 100644
--- a/packages/libogcfpc/examples/audio/Makefile
+++ b/packages/libogcfpc/examples/audio/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=modplay mp3player
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=modplay mp3player
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=modplay mp3player
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2317,6 +2329,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
REQUIRE_PACKAGES_MAD=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+REQUIRE_PACKAGES_MAD=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+REQUIRE_PACKAGES_MAD=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3369,6 +3401,14 @@ ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_MODPLAY=1
TARGET_DIRS_MP3PLAYER=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_MODPLAY=1
+TARGET_DIRS_MP3PLAYER=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_MODPLAY=1
+TARGET_DIRS_MP3PLAYER=1
+endif
ifdef TARGET_DIRS_MODPLAY
modplay_all:
$(MAKE) -C modplay all
diff --git a/packages/libogcfpc/examples/audio/modplay/Makefile b/packages/libogcfpc/examples/audio/modplay/Makefile
index 19c13d9d3c..9fdb1fb62d 100644
--- a/packages/libogcfpc/examples/audio/modplay/Makefile
+++ b/packages/libogcfpc/examples/audio/modplay/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=modplay
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=modplay
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=modplay
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/audio/mp3player/Makefile b/packages/libogcfpc/examples/audio/mp3player/Makefile
index 8d50585edf..2066e329ae 100644
--- a/packages/libogcfpc/examples/audio/mp3player/Makefile
+++ b/packages/libogcfpc/examples/audio/mp3player/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=playmp3
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=playmp3
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=playmp3
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3198,6 +3228,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
REQUIRE_PACKAGES_MAD=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+REQUIRE_PACKAGES_MAD=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+REQUIRE_PACKAGES_MAD=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/devices/Makefile b/packages/libogcfpc/examples/devices/Makefile
index 88f245f4ed..c8c3409125 100644
--- a/packages/libogcfpc/examples/devices/Makefile
+++ b/packages/libogcfpc/examples/devices/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=network usbkeyboard usbgecko
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=network usbkeyboard usbgecko
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=network usbkeyboard usbgecko
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3331,6 +3361,16 @@ TARGET_DIRS_NETWORK=1
TARGET_DIRS_USBKEYBOARD=1
TARGET_DIRS_USBGECKO=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_NETWORK=1
+TARGET_DIRS_USBKEYBOARD=1
+TARGET_DIRS_USBGECKO=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_NETWORK=1
+TARGET_DIRS_USBKEYBOARD=1
+TARGET_DIRS_USBGECKO=1
+endif
ifdef TARGET_DIRS_NETWORK
network_all:
$(MAKE) -C network all
diff --git a/packages/libogcfpc/examples/devices/network/Makefile b/packages/libogcfpc/examples/devices/network/Makefile
index d647fc9c56..0a371f1c76 100644
--- a/packages/libogcfpc/examples/devices/network/Makefile
+++ b/packages/libogcfpc/examples/devices/network/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=sockettest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=sockettest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=sockettest
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_SOCKETTEST=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_SOCKETTEST=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_SOCKETTEST=1
+endif
ifdef TARGET_DIRS_SOCKETTEST
sockettest_all:
$(MAKE) -C sockettest all
diff --git a/packages/libogcfpc/examples/devices/network/sockettest/Makefile b/packages/libogcfpc/examples/devices/network/sockettest/Makefile
index 9a9243cdf6..2cb122a4b9 100644
--- a/packages/libogcfpc/examples/devices/network/sockettest/Makefile
+++ b/packages/libogcfpc/examples/devices/network/sockettest/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=sockettest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=sockettest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=sockettest
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/devices/usbgecko/Makefile b/packages/libogcfpc/examples/devices/usbgecko/Makefile
index 7f0d9c760b..8b9d695e2c 100644
--- a/packages/libogcfpc/examples/devices/usbgecko/Makefile
+++ b/packages/libogcfpc/examples/devices/usbgecko/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=gdbstub
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=gdbstub
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=gdbstub
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_GDBSTUB=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_GDBSTUB=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_GDBSTUB=1
+endif
ifdef TARGET_DIRS_GDBSTUB
gdbstub_all:
$(MAKE) -C gdbstub all
diff --git a/packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile b/packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
index 9202401ec9..e9258b5549 100644
--- a/packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
+++ b/packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=gdbstub
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=gdbstub
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=gdbstub
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/devices/usbkeyboard/Makefile b/packages/libogcfpc/examples/devices/usbkeyboard/Makefile
index 698bebe00e..dd1316e626 100644
--- a/packages/libogcfpc/examples/devices/usbkeyboard/Makefile
+++ b/packages/libogcfpc/examples/devices/usbkeyboard/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=basic_stdin
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=basic_stdin
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=basic_stdin
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_BASIC_STDIN=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_BASIC_STDIN=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_BASIC_STDIN=1
+endif
ifdef TARGET_DIRS_BASIC_STDIN
basic_stdin_all:
$(MAKE) -C basic_stdin all
diff --git a/packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile b/packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
index 41604a89e8..149a9c2d21 100644
--- a/packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
+++ b/packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=basic_stdin
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=basic_stdin
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=basic_stdin
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/filesystem/Makefile b/packages/libogcfpc/examples/filesystem/Makefile
index 51bbf83f33..c7431adf3c 100644
--- a/packages/libogcfpc/examples/filesystem/Makefile
+++ b/packages/libogcfpc/examples/filesystem/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=directory
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=directory
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=directory
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_DIRECTORY=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_DIRECTORY=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_DIRECTORY=1
+endif
ifdef TARGET_DIRS_DIRECTORY
directory_all:
$(MAKE) -C directory all
diff --git a/packages/libogcfpc/examples/filesystem/directory/Makefile b/packages/libogcfpc/examples/filesystem/directory/Makefile
index 507f3d100e..5a1b4f8b51 100644
--- a/packages/libogcfpc/examples/filesystem/directory/Makefile
+++ b/packages/libogcfpc/examples/filesystem/directory/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=directory
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=directory
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=directory
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/graphics/Makefile b/packages/libogcfpc/examples/graphics/Makefile
index a79c373ee7..ae61313fa0 100644
--- a/packages/libogcfpc/examples/graphics/Makefile
+++ b/packages/libogcfpc/examples/graphics/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=gx
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=gx
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=gx
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3137,6 +3167,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_GX=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_GX=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_GX=1
+endif
ifdef TARGET_DIRS_GX
gx_all:
$(MAKE) -C gx all
diff --git a/packages/libogcfpc/examples/graphics/gx/Makefile b/packages/libogcfpc/examples/graphics/gx/Makefile
index e506a3f95b..0ee447a871 100644
--- a/packages/libogcfpc/examples/graphics/gx/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=gxSprites neheGX triangle
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=gxSprites neheGX triangle
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=gxSprites neheGX triangle
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3331,6 +3361,16 @@ TARGET_DIRS_GXSPRITES=1
TARGET_DIRS_NEHEGX=1
TARGET_DIRS_TRIANGLE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_GXSPRITES=1
+TARGET_DIRS_NEHEGX=1
+TARGET_DIRS_TRIANGLE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_GXSPRITES=1
+TARGET_DIRS_NEHEGX=1
+TARGET_DIRS_TRIANGLE=1
+endif
ifdef TARGET_DIRS_GXSPRITES
gxSprites_all:
$(MAKE) -C gxSprites all
diff --git a/packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile b/packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
index 0420c5053b..ab8f44cab0 100644
--- a/packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=gxsprites
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=gxsprites
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=gxsprites
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
index b297b83c04..92574cd448 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
@@ -3913,6 +3943,28 @@ TARGET_DIRS_LESSON7=1
TARGET_DIRS_LESSON8=1
TARGET_DIRS_LESSON9=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_LESSON1=1
+TARGET_DIRS_LESSON2=1
+TARGET_DIRS_LESSON3=1
+TARGET_DIRS_LESSON4=1
+TARGET_DIRS_LESSON5=1
+TARGET_DIRS_LESSON6=1
+TARGET_DIRS_LESSON7=1
+TARGET_DIRS_LESSON8=1
+TARGET_DIRS_LESSON9=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_LESSON1=1
+TARGET_DIRS_LESSON2=1
+TARGET_DIRS_LESSON3=1
+TARGET_DIRS_LESSON4=1
+TARGET_DIRS_LESSON5=1
+TARGET_DIRS_LESSON6=1
+TARGET_DIRS_LESSON7=1
+TARGET_DIRS_LESSON8=1
+TARGET_DIRS_LESSON9=1
+endif
ifdef TARGET_DIRS_LESSON1
lesson1_all:
$(MAKE) -C lesson1 all
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
index 20e9f8051a..83c42ef9c9 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson1
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
index 23474e02f2..6f11bb62a4 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson2
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
index 3f6f77abc0..eebcfd0ec1 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson3
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson3
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson3
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
index 915809179e..92d299d2f0 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson4
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson4
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson4
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
index 093a0addbf..6642d7665d 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson5
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson5
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson5
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
index 74fefd6bf1..d2220a4e7a 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson6
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson6
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson6
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
index a6bfa99083..4a927091eb 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson7
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson7
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson7
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
index 502f48613a..9f269978e7 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson8
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson8
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson8
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
index 16371a0edf..bcb24274ae 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=lesson9
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=lesson9
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=lesson9
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/graphics/gx/triangle/Makefile b/packages/libogcfpc/examples/graphics/gx/triangle/Makefile
index 03fa984192..74f1b084ee 100644
--- a/packages/libogcfpc/examples/graphics/gx/triangle/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/triangle/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=triangle
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=triangle
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=triangle
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libogcfpc/examples/template/Makefile b/packages/libogcfpc/examples/template/Makefile
index c5e7ba5be8..3a9ad78ff7 100644
--- a/packages/libogcfpc/examples/template/Makefile
+++ b/packages/libogcfpc/examples/template/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -646,6 +646,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=template
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=template
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=template
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=*
endif
@@ -937,6 +943,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1228,6 +1240,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-g -Xm
@@ -1520,6 +1538,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1965,6 +1989,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1973,6 +2000,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3101,6 +3131,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libpng/Makefile b/packages/libpng/Makefile
index b78e4056a1..333001933f 100644
--- a/packages/libpng/Makefile
+++ b/packages/libpng/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/librsvg/Makefile b/packages/librsvg/Makefile
index 79f1d98772..34a31cc18a 100644
--- a/packages/librsvg/Makefile
+++ b/packages/librsvg/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libsee/Makefile b/packages/libsee/Makefile
index 0cd95c3aa7..bed0a67457 100644
--- a/packages/libsee/Makefile
+++ b/packages/libsee/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libsee/examples/Makefile b/packages/libsee/examples/Makefile
index e6a329fb5c..a7a3ef4243 100644
--- a/packages/libsee/examples/Makefile
+++ b/packages/libsee/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=teststream testwrite tlibsee
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=teststream testwrite tlibsee
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=teststream testwrite tlibsee
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1375,6 +1387,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1383,6 +1398,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2511,6 +2529,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBSEE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBSEE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_LIBSEE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libtar/Makefile b/packages/libtar/Makefile
index 29771f0f49..6813d2abb5 100644
--- a/packages/libtar/Makefile
+++ b/packages/libtar/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -827,6 +827,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -835,6 +838,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1381,6 +1387,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libtar/fpmake.pp b/packages/libtar/fpmake.pp
index 31587cd260..a2e21eb711 100644
--- a/packages/libtar/fpmake.pp
+++ b/packages/libtar/fpmake.pp
@@ -24,7 +24,7 @@ begin
P.HomepageURL := 'http://www.destructor.de/';
P.Description := 'Library for handling tar-files.';
- P.OSes:=AllOSes-[embedded,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/libusb/Makefile b/packages/libusb/Makefile
index 0b609168ef..7d19f98dca 100644
--- a/packages/libusb/Makefile
+++ b/packages/libusb/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libvlc/Makefile b/packages/libvlc/Makefile
index 78fbf3c9ee..cf308b9f69 100644
--- a/packages/libvlc/Makefile
+++ b/packages/libvlc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libxml/Makefile b/packages/libxml/Makefile
index 40201203e0..913615068e 100644
--- a/packages/libxml/Makefile
+++ b/packages/libxml/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/libxml/examples/Makefile b/packages/libxml/examples/Makefile
index fe728de69d..eb074813e0 100644
--- a/packages/libxml/examples/Makefile
+++ b/packages/libxml/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1638,6 +1650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/lua/Makefile b/packages/lua/Makefile
index 0c95a26325..37a874b876 100644
--- a/packages/lua/Makefile
+++ b/packages/lua/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/mad/Makefile b/packages/mad/Makefile
index a715c8a727..46ccfff7ab 100644
--- a/packages/mad/Makefile
+++ b/packages/mad/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/matroska/Makefile b/packages/matroska/Makefile
index 37f4252908..138b5db02c 100644
--- a/packages/matroska/Makefile
+++ b/packages/matroska/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/modplug/Makefile b/packages/modplug/Makefile
index 51120bd70c..fb83c802d5 100644
--- a/packages/modplug/Makefile
+++ b/packages/modplug/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/morphunits/Makefile b/packages/morphunits/Makefile
index 9988fede4f..ecc1b76d9a 100644
--- a/packages/morphunits/Makefile
+++ b/packages/morphunits/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/mysql/Makefile b/packages/mysql/Makefile
index f11357e731..e192038f77 100644
--- a/packages/mysql/Makefile
+++ b/packages/mysql/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/mysql/examples/Makefile b/packages/mysql/examples/Makefile
index b93ab9e338..3c54693e90 100644
--- a/packages/mysql/examples/Makefile
+++ b/packages/mysql/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testdb4 mysqls testdb3 testdb5
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testdb4 mysqls testdb3 testdb5
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testdb4 mysqls testdb3 testdb5
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_MYSQL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_MYSQL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_MYSQL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ncurses/Makefile b/packages/ncurses/Makefile
index f353118e2c..6dae40311f 100644
--- a/packages/ncurses/Makefile
+++ b/packages/ncurses/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ncurses/examples/Makefile b/packages/ncurses/examples/Makefile
index 64d208ff79..b8d472e828 100644
--- a/packages/ncurses/examples/Makefile
+++ b/packages/ncurses/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=firework testn ocrt_demo edit_demo db_demo screen_demo t1form t1menu t1panel t2form t2menu t2panel t3form tbackground tclock tevent tmouse tnlshello tpad twindow
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=firework testn ocrt_demo edit_demo db_demo screen_demo t1form t1menu t1panel t2form t2menu t2panel t3form tbackground tclock tevent tmouse tnlshello tpad twindow
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=firework testn ocrt_demo edit_demo db_demo screen_demo t1form t1menu t1panel t2form t2menu t2panel t3form tbackground tclock tevent tmouse tnlshello tpad twindow
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_NCURSES=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_NCURSES=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_NCURSES=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/newt/Makefile b/packages/newt/Makefile
index 98fae43db8..8409262f28 100644
--- a/packages/newt/Makefile
+++ b/packages/newt/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/newt/examples/Makefile b/packages/newt/examples/Makefile
index 18861a1691..b7cb7cce7b 100644
--- a/packages/newt/examples/Makefile
+++ b/packages/newt/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=newt1 newt2 newt3
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=newt1 newt2 newt3
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=newt1 newt2 newt3
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_NEWT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_NEWT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_NEWT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/numlib/Makefile b/packages/numlib/Makefile
index 22f63d31ca..d9e81a7d54 100644
--- a/packages/numlib/Makefile
+++ b/packages/numlib/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/numlib/examples/Makefile b/packages/numlib/examples/Makefile
index 0346df52c5..e4dde16134 100644
--- a/packages/numlib/examples/Makefile
+++ b/packages/numlib/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=$(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(OEXT)) $(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(PPUEXT)) $(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(RSTEXT))
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=$(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(OEXT)) $(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(PPUEXT)) $(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(RSTEXT))
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=$(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(OEXT)) $(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(PPUEXT)) $(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(RSTEXT))
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=$(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(OEXT)) $(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(PPUEXT)) $(wildcard ../units/$(CPU_TARGET)-$(OS_TARGET)/*$(RSTEXT))
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-gl
endif
@@ -1222,6 +1234,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-gl
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-gl
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-gl
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITDIR+=..
endif
@@ -1513,6 +1531,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITDIR+=..
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -1804,6 +1828,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=.
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
endif
@@ -2095,6 +2125,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2540,6 +2576,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2548,6 +2587,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3094,6 +3136,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/nvapi/Makefile b/packages/nvapi/Makefile
index 64f96f8574..34ceae11d5 100644
--- a/packages/nvapi/Makefile
+++ b/packages/nvapi/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/objcrtl/Makefile b/packages/objcrtl/Makefile
index c7c483f110..b8691a6051 100644
--- a/packages/objcrtl/Makefile
+++ b/packages/objcrtl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/odata/Makefile b/packages/odata/Makefile
index 3b4c50dd22..0cd54bac63 100644
--- a/packages/odata/Makefile
+++ b/packages/odata/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2036,6 +2042,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-WEB=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-WEB=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-WEB=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/odbc/Makefile b/packages/odbc/Makefile
index f9b7d3b449..4be4916198 100644
--- a/packages/odbc/Makefile
+++ b/packages/odbc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/odbc/examples/Makefile b/packages/odbc/examples/Makefile
index 4452f9354a..575f54ba6e 100644
--- a/packages/odbc/examples/Makefile
+++ b/packages/odbc/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testodbc
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testodbc
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testodbc
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_ODBC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_ODBC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_ODBC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/oggvorbis/Makefile b/packages/oggvorbis/Makefile
index b39b898410..feea17827e 100644
--- a/packages/oggvorbis/Makefile
+++ b/packages/oggvorbis/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/openal/Makefile b/packages/openal/Makefile
index fee3bf7102..0b24890100 100644
--- a/packages/openal/Makefile
+++ b/packages/openal/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/openal/examples/Makefile b/packages/openal/examples/Makefile
index 1ba159911e..5b06d066a2 100644
--- a/packages/openal/examples/Makefile
+++ b/packages/openal/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2721,6 +2733,34 @@ REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_OPENAL=1
+REQUIRE_PACKAGES_OGGVORBIS=1
+REQUIRE_PACKAGES_A52=1
+REQUIRE_PACKAGES_DTS=1
+REQUIRE_PACKAGES_MODPLUG=1
+REQUIRE_PACKAGES_MATROSKA=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_OPENAL=1
+REQUIRE_PACKAGES_OGGVORBIS=1
+REQUIRE_PACKAGES_A52=1
+REQUIRE_PACKAGES_DTS=1
+REQUIRE_PACKAGES_MODPLUG=1
+REQUIRE_PACKAGES_MATROSKA=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/opencl/Makefile b/packages/opencl/Makefile
index d527d35305..0f1d8346f9 100644
--- a/packages/opencl/Makefile
+++ b/packages/opencl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/opengl/Makefile b/packages/opengl/Makefile
index b08ed74102..f8fd170b7c 100644
--- a/packages/opengl/Makefile
+++ b/packages/opengl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/opengl/examples/Makefile b/packages/opengl/examples/Makefile
index b74d627b81..62b3ddf4ff 100644
--- a/packages/opengl/examples/Makefile
+++ b/packages/opengl/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -930,6 +936,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1375,6 +1387,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1383,6 +1398,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2511,6 +2529,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/opengles/Makefile b/packages/opengles/Makefile
index 4873f3faa9..13b54a3b43 100644
--- a/packages/opengles/Makefile
+++ b/packages/opengles/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/opengles/examples/Makefile b/packages/opengles/examples/Makefile
index 0c2c48a98e..8e2ca1b20d 100644
--- a/packages/opengles/examples/Makefile
+++ b/packages/opengles/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=glutdemoes
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=glutdemoes
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=glutdemoes
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_OPTIONS+=-S2h
@@ -930,6 +936,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_OPTIONS+=-S2h
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1375,6 +1387,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1383,6 +1398,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2511,6 +2529,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGLES=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_OPENGLES=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_OPENGLES=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/openssl/Makefile b/packages/openssl/Makefile
index 398f178c99..747496321f 100644
--- a/packages/openssl/Makefile
+++ b/packages/openssl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/oracle/Makefile b/packages/oracle/Makefile
index c15e0211d8..e0cf9741e0 100644
--- a/packages/oracle/Makefile
+++ b/packages/oracle/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/oracle/examples/Makefile b/packages/oracle/examples/Makefile
index a7f4380582..8707557c95 100644
--- a/packages/oracle/examples/Makefile
+++ b/packages/oracle/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=oraclew
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=oraclew
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=oraclew
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_EXAMPLES+=test01
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_EXAMPLES+=test01
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_EXAMPLES+=test01
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_EXAMPLES+=test01
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1375,6 +1387,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1383,6 +1398,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2802,6 +2820,30 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-XML=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/os2units/Makefile b/packages/os2units/Makefile
index 5abbfa930e..2c6c220a23 100644
--- a/packages/os2units/Makefile
+++ b/packages/os2units/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/os2units/examples/Makefile b/packages/os2units/examples/Makefile
index 1da18b0c60..7f2b36c54b 100644
--- a/packages/os2units/examples/Makefile
+++ b/packages/os2units/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OS2UNITS=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_OS2UNITS=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_OS2UNITS=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/os4units/Makefile b/packages/os4units/Makefile
index be2556c8a3..2702378c54 100644
--- a/packages/os4units/Makefile
+++ b/packages/os4units/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/palmunits/Makefile b/packages/palmunits/Makefile
index 4fab62d15a..b988cb27e4 100644
--- a/packages/palmunits/Makefile
+++ b/packages/palmunits/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/pasjpeg/Makefile b/packages/pasjpeg/Makefile
index 49267e0c5b..8acd8cf3c7 100644
--- a/packages/pasjpeg/Makefile
+++ b/packages/pasjpeg/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/pasjpeg/fpmake.pp b/packages/pasjpeg/fpmake.pp
index ece508f709..94511b0178 100644
--- a/packages/pasjpeg/fpmake.pp
+++ b/packages/pasjpeg/fpmake.pp
@@ -19,7 +19,7 @@ begin
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
P.Version:='3.3.1';
- P.OSes:=P.OSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=P.OSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/pastojs/Makefile b/packages/pastojs/Makefile
index d9ffdaac54..31353b1b9f 100644
--- a/packages/pastojs/Makefile
+++ b/packages/pastojs/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/paszlib/Makefile b/packages/paszlib/Makefile
index 7bafb4269d..6bb13ddf86 100644
--- a/packages/paszlib/Makefile
+++ b/packages/paszlib/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -827,6 +827,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -835,6 +838,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1381,6 +1387,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/paszlib/examples/Makefile b/packages/paszlib/examples/Makefile
index a4cf90d760..f95de7ec60 100644
--- a/packages/paszlib/examples/Makefile
+++ b/packages/paszlib/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1735,6 +1747,14 @@ ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/paszlib/fpmake.pp b/packages/paszlib/fpmake.pp
index e664df00a0..69b29096fd 100644
--- a/packages/paszlib/fpmake.pp
+++ b/packages/paszlib/fpmake.pp
@@ -20,7 +20,7 @@ begin
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
P.Version:='3.3.1';
- P.OSes := P.OSes - [embedded,msdos,win16,macos,palmos];
+ P.OSes := P.OSes - [embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/pcap/Makefile b/packages/pcap/Makefile
index 50a640390e..e4dda6e8c7 100644
--- a/packages/pcap/Makefile
+++ b/packages/pcap/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/postgres/Makefile b/packages/postgres/Makefile
index 49f67b61fc..16dba4f766 100644
--- a/packages/postgres/Makefile
+++ b/packages/postgres/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/postgres/examples/Makefile b/packages/postgres/examples/Makefile
index e11df130cb..69999ec2ca 100644
--- a/packages/postgres/examples/Makefile
+++ b/packages/postgres/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testpg1 testpg2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testpg1 testpg2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testpg1 testpg2
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_POSTGRES=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_POSTGRES=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_POSTGRES=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/proj4/Makefile b/packages/proj4/Makefile
index 51a005a395..4b3ed6fc4a 100644
--- a/packages/proj4/Makefile
+++ b/packages/proj4/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ptc/Makefile b/packages/ptc/Makefile
index 0c4cf73bfe..1802fa4b82 100644
--- a/packages/ptc/Makefile
+++ b/packages/ptc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/ptc/examples/Makefile b/packages/ptc/examples/Makefile
index 8ed6767d0a..dad0961e9e 100644
--- a/packages/ptc/examples/Makefile
+++ b/packages/ptc/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=area buffer clear clip con_info console fire flower hicolor image keyboard keyboard2 keyboard3 land lights modes mojo palette pixel random save stretch texwarp timer tunnel3d tunnel
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=area buffer clear clip con_info console fire flower hicolor image keyboard keyboard2 keyboard3 land lights modes mojo palette pixel random save stretch texwarp timer tunnel3d tunnel
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=area buffer clear clip con_info console fire flower hicolor image keyboard keyboard2 keyboard3 land lights modes mojo palette pixel random save stretch texwarp timer tunnel3d tunnel
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1376,6 +1388,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1384,6 +1399,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2626,6 +2644,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HERMES=1
REQUIRE_PACKAGES_PTC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_HERMES=1
+REQUIRE_PACKAGES_PTC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_HERMES=1
+REQUIRE_PACKAGES_PTC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/pthreads/Makefile b/packages/pthreads/Makefile
index cf5e423eef..ebe62d3d09 100644
--- a/packages/pthreads/Makefile
+++ b/packages/pthreads/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/pxlib/Makefile b/packages/pxlib/Makefile
index 3cfcbf2fe6..56d01b2fb2 100644
--- a/packages/pxlib/Makefile
+++ b/packages/pxlib/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/pxlib/examples/Makefile b/packages/pxlib/examples/Makefile
index 637680ce95..342477256a 100644
--- a/packages/pxlib/examples/Makefile
+++ b/packages/pxlib/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -898,6 +898,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -906,6 +909,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2034,6 +2040,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_PXLIB=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_PXLIB=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_PXLIB=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/regexpr/Makefile b/packages/regexpr/Makefile
index 1145ebb82d..8f9e82ceb2 100644
--- a/packages/regexpr/Makefile
+++ b/packages/regexpr/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/regexpr/examples/Makefile b/packages/regexpr/examples/Makefile
index 572f0ddd1e..9ecc611a83 100644
--- a/packages/regexpr/examples/Makefile
+++ b/packages/regexpr/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testreg1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testreg1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testreg1
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_REGEXPR=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_REGEXPR=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_REGEXPR=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/regexpr/fpmake.pp b/packages/regexpr/fpmake.pp
index c99ac5de3e..4153358b0f 100644
--- a/packages/regexpr/fpmake.pp
+++ b/packages/regexpr/fpmake.pp
@@ -19,7 +19,7 @@ begin
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
P.Version:='3.3.1';
- P.OSes:=P.OSes-[embedded,win16,macos,palmos];
+ P.OSes:=P.OSes-[embedded,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/rexx/Makefile b/packages/rexx/Makefile
index 7de90af390..db39843d52 100644
--- a/packages/rexx/Makefile
+++ b/packages/rexx/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/rexx/examples/Makefile b/packages/rexx/examples/Makefile
index 840ebe663f..e67d1018c7 100644
--- a/packages/rexx/examples/Makefile
+++ b/packages/rexx/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=callrexx
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=callrexx
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=callrexx
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_REXX=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_REXX=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_REXX=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/rtl-console/Makefile b/packages/rtl-console/Makefile
index 8a9af768f1..6d3e7e6587 100644
--- a/packages/rtl-console/Makefile
+++ b/packages/rtl-console/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/rtl-extra/Makefile b/packages/rtl-extra/Makefile
index 5e2c0f2f97..c6997b1b74 100644
--- a/packages/rtl-extra/Makefile
+++ b/packages/rtl-extra/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/rtl-generics/Makefile b/packages/rtl-generics/Makefile
index 48daa017cd..c457ea46bc 100644
--- a/packages/rtl-generics/Makefile
+++ b/packages/rtl-generics/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/rtl-generics/fpmake.pp b/packages/rtl-generics/fpmake.pp
index 0a3e1bc28e..d4fb31788c 100644
--- a/packages/rtl-generics/fpmake.pp
+++ b/packages/rtl-generics/fpmake.pp
@@ -23,7 +23,7 @@ begin
P.Email := '';
P.Description := 'Generic collection library.';
P.NeedLibC:= false;
- P.OSes := AllOSes-[embedded,win16,macos,palmos];
+ P.OSes := AllOSes-[embedded,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/rtl-objpas/Makefile b/packages/rtl-objpas/Makefile
index 7faf13e4c1..e081364dee 100644
--- a/packages/rtl-objpas/Makefile
+++ b/packages/rtl-objpas/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/rtl-unicode/Makefile b/packages/rtl-unicode/Makefile
index 0e3623a21f..7e2f69202e 100644
--- a/packages/rtl-unicode/Makefile
+++ b/packages/rtl-unicode/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/sdl/Makefile b/packages/sdl/Makefile
index 1df1871ac3..b7bf6213d2 100644
--- a/packages/sdl/Makefile
+++ b/packages/sdl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/sdl/fpmake.pp b/packages/sdl/fpmake.pp
index 4dfeb78895..b958e4d751 100644
--- a/packages/sdl/fpmake.pp
+++ b/packages/sdl/fpmake.pp
@@ -24,7 +24,7 @@ begin
P.Dependencies.Add('morphunits',[morphos]);
if Defaults.CPU=arm then
P.OSes := P.OSes - [darwin];
- P.OSes := P.OSes - [iphonesim,java,os2,emx,go32v2,watcom,netware,netwlibc,nativent,embedded,android,amiga,aros,msdos,gba,nds,win16,atari,macos,palmos,symbian,wii,freertos];
+ P.OSes := P.OSes - [iphonesim,java,os2,emx,go32v2,watcom,netware,netwlibc,nativent,embedded,android,amiga,aros,msdos,gba,nds,win16,atari,macos,palmos,symbian,wii,freertos,zxspectrum];
T:=P.Targets.AddUnit('logger.pas');
with T.Dependencies do
diff --git a/packages/sndfile/Makefile b/packages/sndfile/Makefile
index f188ff300f..6fec783bbf 100644
--- a/packages/sndfile/Makefile
+++ b/packages/sndfile/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/sqlite/Makefile b/packages/sqlite/Makefile
index bc0135680f..998f894e30 100644
--- a/packages/sqlite/Makefile
+++ b/packages/sqlite/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/svgalib/Makefile b/packages/svgalib/Makefile
index 5e73d0d134..b73f83e9ea 100644
--- a/packages/svgalib/Makefile
+++ b/packages/svgalib/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/svgalib/examples/Makefile b/packages/svgalib/examples/Makefile
index d7aa679181..495379661b 100644
--- a/packages/svgalib/examples/Makefile
+++ b/packages/svgalib/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testvga vgatest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testvga vgatest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testvga vgatest
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SVGALIB=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_SVGALIB=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_SVGALIB=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/symbolic/Makefile b/packages/symbolic/Makefile
index 85c91fed54..d4348600a6 100644
--- a/packages/symbolic/Makefile
+++ b/packages/symbolic/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/symbolic/examples/Makefile b/packages/symbolic/examples/Makefile
index 53a49f0462..1e5a0b4b00 100644
--- a/packages/symbolic/examples/Makefile
+++ b/packages/symbolic/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SYMBOLIC=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_SYMBOLIC=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_SYMBOLIC=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/symbolic/fpmake.pp b/packages/symbolic/fpmake.pp
index 3c2c9035b2..9e60d82953 100644
--- a/packages/symbolic/fpmake.pp
+++ b/packages/symbolic/fpmake.pp
@@ -23,7 +23,7 @@ begin
P.Email := '';
P.Description := 'Expression parser with support for fast evaluation';
P.NeedLibC:= false;
- P.OSes:=P.OSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=P.OSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/syslog/Makefile b/packages/syslog/Makefile
index ea28d13dbf..0c79958b91 100644
--- a/packages/syslog/Makefile
+++ b/packages/syslog/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/syslog/examples/Makefile b/packages/syslog/examples/Makefile
index 2f478b6393..fa5f24593b 100644
--- a/packages/syslog/examples/Makefile
+++ b/packages/syslog/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testlog
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testlog
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testlog
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SYSLOG=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_SYSLOG=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_SYSLOG=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/tcl/Makefile b/packages/tcl/Makefile
index ce6127a5ee..82e1c81e33 100644
--- a/packages/tcl/Makefile
+++ b/packages/tcl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/tosunits/Makefile b/packages/tosunits/Makefile
index 4b9404dd42..29de9e589d 100644
--- a/packages/tosunits/Makefile
+++ b/packages/tosunits/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/univint/Makefile b/packages/univint/Makefile
index 7f07068aec..a092ffc028 100644
--- a/packages/univint/Makefile
+++ b/packages/univint/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/univint/examples/Makefile b/packages/univint/examples/Makefile
index 11e0cb3999..4b182e0b59 100644
--- a/packages/univint/examples/Makefile
+++ b/packages/univint/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=controldemo
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=controldemo
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=controldemo
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=controldemo
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=controldemo
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=controldemo
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=controldemo
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1375,6 +1387,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1383,6 +1398,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2511,6 +2529,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UNIVINT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_UNIVINT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_UNIVINT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/unixutil/Makefile b/packages/unixutil/Makefile
index e0bbbc56b8..b5f7a8bac2 100644
--- a/packages/unixutil/Makefile
+++ b/packages/unixutil/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/unzip/Makefile b/packages/unzip/Makefile
index ec06f360db..642ef75e72 100644
--- a/packages/unzip/Makefile
+++ b/packages/unzip/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/unzip/fpmake.pp b/packages/unzip/fpmake.pp
index 8342d7be46..565b82889c 100644
--- a/packages/unzip/fpmake.pp
+++ b/packages/unzip/fpmake.pp
@@ -20,7 +20,7 @@ begin
{$endif ALLPACKAGES}
P.Version:='3.3.1';
P.SourcePath.Add('src');
- P.OSes := P.OSes - [embedded,nativent,msdos,win16,macos,palmos];
+ P.OSes := P.OSes - [embedded,nativent,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/users/Makefile b/packages/users/Makefile
index bd6f84bdea..cd2790ae0f 100644
--- a/packages/users/Makefile
+++ b/packages/users/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/users/examples/Makefile b/packages/users/examples/Makefile
index 541d69ae5c..dfcdeef17e 100644
--- a/packages/users/examples/Makefile
+++ b/packages/users/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testuser testpass2
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testuser testpass2
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testuser testpass2
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_USERS=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_USERS=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_USERS=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/utmp/Makefile b/packages/utmp/Makefile
index 776fad84d5..ff7b79d859 100644
--- a/packages/utmp/Makefile
+++ b/packages/utmp/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/utmp/examples/Makefile b/packages/utmp/examples/Makefile
index a5b724b7a2..b33307b0ca 100644
--- a/packages/utmp/examples/Makefile
+++ b/packages/utmp/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testutmp
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testutmp
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testutmp
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UTMP=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_UTMP=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_UTMP=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/uuid/Makefile b/packages/uuid/Makefile
index 02a63f4d9b..306d18ae3f 100644
--- a/packages/uuid/Makefile
+++ b/packages/uuid/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/uuid/examples/Makefile b/packages/uuid/examples/Makefile
index 0f56134f34..fc39d493ab 100644
--- a/packages/uuid/examples/Makefile
+++ b/packages/uuid/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testuid testlibuid
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testuid testlibuid
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testuid testlibuid
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UUID=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_UUID=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_UUID=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/vcl-compat/Makefile b/packages/vcl-compat/Makefile
index fcfd03236d..be7baba79d 100644
--- a/packages/vcl-compat/Makefile
+++ b/packages/vcl-compat/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2133,6 +2139,28 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-WEB=1
REQUIRE_PACKAGES_FCL-XML=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-WEB=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-WEB=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/webidl/Makefile b/packages/webidl/Makefile
index 84039cc22e..429d7a835f 100644
--- a/packages/webidl/Makefile
+++ b/packages/webidl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2036,6 +2042,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_RTL-OBJPAS=1
REQUIRE_PACKAGES_FCL-BASE=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_RTL-OBJPAS=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_RTL-OBJPAS=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/webidl/fpmake.pp b/packages/webidl/fpmake.pp
index c448d87427..45819b923c 100644
--- a/packages/webidl/fpmake.pp
+++ b/packages/webidl/fpmake.pp
@@ -25,7 +25,7 @@ begin
P.Email := '';
P.Description := 'WEB IDL parser and converter to Object Pascal classes';
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos,zxspectrum];
if Defaults.CPU=jvm then
P.OSes := P.OSes - [java,android];
diff --git a/packages/winceunits/Makefile b/packages/winceunits/Makefile
index 3835f23a11..04cc753c3c 100644
--- a/packages/winceunits/Makefile
+++ b/packages/winceunits/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/winunits-base/Makefile b/packages/winunits-base/Makefile
index 9b5897ef5e..3fc05fdd68 100644
--- a/packages/winunits-base/Makefile
+++ b/packages/winunits-base/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/winunits-jedi/Makefile b/packages/winunits-jedi/Makefile
index c29fe42f05..21e19ca48c 100644
--- a/packages/winunits-jedi/Makefile
+++ b/packages/winunits-jedi/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/x11/Makefile b/packages/x11/Makefile
index a59b41358d..87ce72e03c 100644
--- a/packages/x11/Makefile
+++ b/packages/x11/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/xforms/Makefile b/packages/xforms/Makefile
index 6d0c265b72..443833382b 100644
--- a/packages/xforms/Makefile
+++ b/packages/xforms/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/xforms/examples/Makefile b/packages/xforms/examples/Makefile
index 892e9b816e..a8b53722c0 100644
--- a/packages/xforms/examples/Makefile
+++ b/packages/xforms/examples/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2232,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_XFORMS=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_XFORMS=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_XFORMS=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/zlib/Makefile b/packages/zlib/Makefile
index 090436eff7..de32058b80 100644
--- a/packages/zlib/Makefile
+++ b/packages/zlib/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/packages/zorba/Makefile b/packages/zorba/Makefile
index 943d7390d9..b90c9bb26e 100644
--- a/packages/zorba/Makefile
+++ b/packages/zorba/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/rtl/Makefile b/rtl/Makefile
index 871432be94..5438d5f7d7 100644
--- a/rtl/Makefile
+++ b/rtl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -637,6 +637,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_DIRS+=freertos
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_DIRS+=embedded
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_DIRS+=zxspectrum
+endif
override INSTALL_FPCPACKAGE=y
override INSTALL_CREATEPACKAGEFPC=y
ifdef REQUIRE_UNITSDIR
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2153,6 +2165,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
TARGET_DIRS_FREERTOS=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+TARGET_DIRS_EMBEDDED=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+TARGET_DIRS_ZXSPECTRUM=1
+endif
ifdef TARGET_DIRS_LINUX
linux_all:
$(MAKE) -C linux all
@@ -3818,6 +3836,51 @@ win16:
$(MAKE) -C win16 all
.PHONY: win16_all win16_debug win16_smart win16_release win16_units win16_examples win16_shared win16_install win16_sourceinstall win16_exampleinstall win16_distinstall win16_zipinstall win16_zipsourceinstall win16_zipexampleinstall win16_zipdistinstall win16_clean win16_distclean win16_cleanall win16_info win16_makefiles win16
endif
+ifdef TARGET_DIRS_ZXSPECTRUM
+zxspectrum_all:
+ $(MAKE) -C zxspectrum all
+zxspectrum_debug:
+ $(MAKE) -C zxspectrum debug
+zxspectrum_smart:
+ $(MAKE) -C zxspectrum smart
+zxspectrum_release:
+ $(MAKE) -C zxspectrum release
+zxspectrum_units:
+ $(MAKE) -C zxspectrum units
+zxspectrum_examples:
+ $(MAKE) -C zxspectrum examples
+zxspectrum_shared:
+ $(MAKE) -C zxspectrum shared
+zxspectrum_install:
+ $(MAKE) -C zxspectrum install
+zxspectrum_sourceinstall:
+ $(MAKE) -C zxspectrum sourceinstall
+zxspectrum_exampleinstall:
+ $(MAKE) -C zxspectrum exampleinstall
+zxspectrum_distinstall:
+ $(MAKE) -C zxspectrum distinstall
+zxspectrum_zipinstall:
+ $(MAKE) -C zxspectrum zipinstall
+zxspectrum_zipsourceinstall:
+ $(MAKE) -C zxspectrum zipsourceinstall
+zxspectrum_zipexampleinstall:
+ $(MAKE) -C zxspectrum zipexampleinstall
+zxspectrum_zipdistinstall:
+ $(MAKE) -C zxspectrum zipdistinstall
+zxspectrum_clean:
+ $(MAKE) -C zxspectrum clean
+zxspectrum_distclean:
+ $(MAKE) -C zxspectrum distclean
+zxspectrum_cleanall:
+ $(MAKE) -C zxspectrum cleanall
+zxspectrum_info:
+ $(MAKE) -C zxspectrum info
+zxspectrum_makefiles:
+ $(MAKE) -C zxspectrum makefiles
+zxspectrum:
+ $(MAKE) -C zxspectrum all
+.PHONY: zxspectrum_all zxspectrum_debug zxspectrum_smart zxspectrum_release zxspectrum_units zxspectrum_examples zxspectrum_shared zxspectrum_install zxspectrum_sourceinstall zxspectrum_exampleinstall zxspectrum_distinstall zxspectrum_zipinstall zxspectrum_zipsourceinstall zxspectrum_zipexampleinstall zxspectrum_zipdistinstall zxspectrum_clean zxspectrum_distclean zxspectrum_cleanall zxspectrum_info zxspectrum_makefiles zxspectrum
+endif
all: $(addsuffix _all,$(TARGET_DIRS))
debug: $(addsuffix _debug,$(TARGET_DIRS))
smart: $(addsuffix _smart,$(TARGET_DIRS))
diff --git a/rtl/Makefile.fpc b/rtl/Makefile.fpc
index f23ab63bee..ace78d7119 100644
--- a/rtl/Makefile.fpc
+++ b/rtl/Makefile.fpc
@@ -51,6 +51,7 @@ dirs_atari=atari
dirs_win16=win16
dirs_watcom=watcom
dirs_freertos=freertos
+dirs_zxspectrum=zxspectrum
[install]
fpcpackage=y
diff --git a/rtl/aix/Makefile b/rtl/aix/Makefile
index 012b3e4f6e..28e5d10d9d 100644
--- a/rtl/aix/Makefile
+++ b/rtl/aix/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -666,6 +666,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math sortbase fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math sortbase fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math sortbase fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -957,6 +963,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
@@ -1248,6 +1260,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconst
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
@@ -1540,6 +1558,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
@@ -1831,6 +1855,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2276,6 +2306,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2284,6 +2317,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/amiga/Makefile b/rtl/amiga/Makefile
index 43f1bf83d0..29c4bb548c 100644
--- a/rtl/amiga/Makefile
+++ b/rtl/amiga/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -665,6 +665,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) $(RESUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(RESUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(RESUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) $(EXEUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -956,6 +962,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) $(EXEUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) $(EXEUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) $(EXEUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1247,6 +1259,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
@@ -1538,6 +1556,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
@@ -1830,6 +1854,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
@@ -2121,6 +2151,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2566,6 +2602,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2574,6 +2613,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/android/Makefile b/rtl/android/Makefile
index c0880f52a6..6cb5d34315 100644
--- a/rtl/android/Makefile
+++ b/rtl/android/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -663,6 +663,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types sysconst cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types sysconst cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types sysconst cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -954,6 +960,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1245,6 +1257,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1536,6 +1554,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=syslinux linux
endif
@@ -1827,6 +1851,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=syslinux linux
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=syslinux linux
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=syslinux linux
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
@@ -2119,6 +2149,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
endif
@@ -2410,6 +2446,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -2701,6 +2743,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=.
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=.
+endif
override SHARED_LIBUNITS=$(SYSTEMUNIT) objpas strings dos unix baseunix unixtype unixutil sysutils typinfo math $(CPU_UNITS) getopts errors sockets sortbase classes fgl sysconst rtlconsts
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -3147,6 +3195,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -3155,6 +3206,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/android/jvm/Makefile b/rtl/android/jvm/Makefile
index 738556f360..671f3fba28 100644
--- a/rtl/android/jvm/Makefile
+++ b/rtl/android/jvm/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -652,6 +652,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -944,6 +950,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -1235,6 +1247,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1680,6 +1698,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1688,6 +1709,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/aros/Makefile b/rtl/aros/Makefile
index a5a2e5d04a..43420a283b 100644
--- a/rtl/aros/Makefile
+++ b/rtl/aros/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -658,6 +658,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo $(LINEINFOUNIT) cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -949,6 +955,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo $(LINEINFOUNIT) cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo $(LINEINFOUNIT) cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo $(LINEINFOUNIT) cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1240,6 +1252,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
@@ -1531,6 +1549,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
override INSTALL_BUILDUNIT=buildrtl
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
@@ -1824,6 +1848,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) i386
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) i386
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) i386
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
@@ -2115,6 +2145,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2560,6 +2596,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2568,6 +2607,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/atari/Makefile b/rtl/atari/Makefile
index 68a6f124ab..c51a368686 100644
--- a/rtl/atari/Makefile
+++ b/rtl/atari/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -653,6 +653,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) fpextres uuchar objpas macpas iso7185 buildrtl cpall
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) fpextres uuchar objpas macpas iso7185 buildrtl cpall
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) fpextres uuchar objpas macpas iso7185 buildrtl cpall
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=si_prc sysutils dos ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -944,6 +950,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=si_prc sysutils dos ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=si_prc sysutils dos ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=si_prc sysutils dos ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1235,6 +1247,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
@@ -1526,6 +1544,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
@@ -1818,6 +1842,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
endif
@@ -2109,6 +2139,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2554,6 +2590,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2562,6 +2601,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/beos/Makefile b/rtl/beos/Makefile
index 453d406c35..69bcd0c456 100644
--- a/rtl/beos/Makefile
+++ b/rtl/beos/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -653,6 +653,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl cthreads sysconst sysutils types charset cpall typinfo sortbase classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc character fpwidestring unicodedata unicodenumtable cmem dynlibs cwstring unixcp
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl cthreads sysconst sysutils types charset cpall typinfo sortbase classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc character fpwidestring unicodedata unicodenumtable cmem dynlibs cwstring unixcp
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl cthreads sysconst sysutils types charset cpall typinfo sortbase classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc character fpwidestring unicodedata unicodenumtable cmem dynlibs cwstring unixcp
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -944,6 +950,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
@@ -1235,6 +1247,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1526,6 +1544,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
@@ -1818,6 +1842,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
endif
@@ -2109,6 +2139,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -2400,6 +2436,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=.
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=.
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2845,6 +2887,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2853,6 +2898,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/darwin/Makefile b/rtl/darwin/Makefile
index 99565f9c6c..39ed676c89 100644
--- a/rtl/darwin/Makefile
+++ b/rtl/darwin/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -670,6 +670,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) sysinit uuchar unixtype ctypes objpas macpas iso7185 extpas strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo sortbase fgl classes math types charset cpall character getopts heaptrc lineinfo lnfodwrf lnfogdb errors termio sysconst cthreads rtlconsts cwstring bsd fpwidestring fpintres fpextres objc objcbase unixcp
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) sysinit uuchar unixtype ctypes objpas macpas iso7185 extpas strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo sortbase fgl classes math types charset cpall character getopts heaptrc lineinfo lnfodwrf lnfogdb errors termio sysconst cthreads rtlconsts cwstring bsd fpwidestring fpintres fpextres objc objcbase unixcp
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) sysinit uuchar unixtype ctypes objpas macpas iso7185 extpas strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo sortbase fgl classes math types charset cpall character getopts heaptrc lineinfo lnfodwrf lnfogdb errors termio sysconst cthreads rtlconsts cwstring bsd fpwidestring fpintres fpextres objc objcbase unixcp
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -961,6 +967,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
@@ -1252,6 +1264,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
@@ -1544,6 +1562,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
@@ -1835,6 +1859,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2280,6 +2310,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2288,6 +2321,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/dragonfly/Makefile b/rtl/dragonfly/Makefile
index 6a7903942c..c04595bf60 100644
--- a/rtl/dragonfly/Makefile
+++ b/rtl/dragonfly/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -665,6 +665,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd console sysconst cthreads dos cwstring fpintres unixcp fpwidestring
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd console sysconst cthreads dos cwstring fpintres unixcp fpwidestring
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd console sysconst cthreads dos cwstring fpintres unixcp fpwidestring
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -956,6 +962,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
endif
@@ -1247,6 +1259,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1538,6 +1556,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
override INSTALL_FPCPACKAGE=y y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
@@ -1830,6 +1854,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
@@ -2121,6 +2151,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2566,6 +2602,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2574,6 +2613,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/embedded/Makefile b/rtl/embedded/Makefile
index b847d87e63..721d6880d3 100644
--- a/rtl/embedded/Makefile
+++ b/rtl/embedded/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -817,6 +817,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1108,6 +1114,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1400,6 +1412,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -1691,6 +1709,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2136,6 +2160,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2144,6 +2171,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/embedded/rtl.cfg b/rtl/embedded/rtl.cfg
index e33f5490ac..46facb213c 100644
--- a/rtl/embedded/rtl.cfg
+++ b/rtl/embedded/rtl.cfg
@@ -9,3 +9,12 @@
-CX
-XX
#endif
+
+# does not require extra memory, neither code nor data
+# in programs not using e. g. writeln based I/O which is the common case
+#ifdef CPUZ80
+-SfOBJECTS
+-SfEXCEPTIONS
+-SfCLASSES
+-SfRTTI
+#endif
diff --git a/rtl/emx/Makefile b/rtl/emx/Makefile
index a8c92be9a0..c68ff6b295 100644
--- a/rtl/emx/Makefile
+++ b/rtl/emx/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -657,6 +657,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls so32dll pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos unicodedata unicodenumtable character sortbase sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls so32dll pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos unicodedata unicodenumtable character sortbase sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls so32dll pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos unicodedata unicodenumtable character sortbase sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -948,6 +954,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0 prt1
endif
@@ -1239,6 +1251,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=prt0 prt1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0 prt1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0 prt1
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
@@ -1530,6 +1548,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo pmhelp classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo pmhelp classes sysconst
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
@@ -1822,6 +1846,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
endif
@@ -2113,6 +2143,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2558,6 +2594,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2566,6 +2605,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/freebsd/Makefile b/rtl/freebsd/Makefile
index 2aea4eecac..b56c89cef2 100644
--- a/rtl/freebsd/Makefile
+++ b/rtl/freebsd/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -670,6 +670,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd freebsd console sysconst cthreads dos cwstring fpintres unixcp fpwidestring
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd freebsd console sysconst cthreads dos cwstring fpintres unixcp fpwidestring
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd freebsd console sysconst cthreads dos cwstring fpintres unixcp fpwidestring
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -961,6 +967,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
endif
@@ -1252,6 +1264,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1543,6 +1561,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
override INSTALL_FPCPACKAGE=y y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
@@ -1835,6 +1859,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
@@ -2126,6 +2156,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2571,6 +2607,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2579,6 +2618,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/freertos/Makefile b/rtl/freertos/Makefile
index d3b0e9e27a..c27844bbc8 100644
--- a/rtl/freertos/Makefile
+++ b/rtl/freertos/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -815,6 +815,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst character
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst character
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst character
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata
endif
@@ -1106,6 +1112,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1397,6 +1409,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1689,6 +1707,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -1980,6 +2004,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2425,6 +2455,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2433,6 +2466,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/gba/Makefile b/rtl/gba/Makefile
index 51186b1b06..47cf3034f0 100644
--- a/rtl/gba/Makefile
+++ b/rtl/gba/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -654,6 +654,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -945,6 +951,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1236,6 +1248,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1528,6 +1546,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -1819,6 +1843,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2264,6 +2294,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2272,6 +2305,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/go32v2/Makefile b/rtl/go32v2/Makefile
index c4e41d6088..b0ed3a843b 100644
--- a/rtl/go32v2/Makefile
+++ b/rtl/go32v2/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -658,6 +658,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sortbase sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall character fpwidestring unicodedata unicodenumtable types sysconst rtlconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sortbase sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall character fpwidestring unicodedata unicodenumtable types sysconst rtlconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sortbase sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall character fpwidestring unicodedata unicodenumtable types sysconst rtlconst
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -949,6 +955,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0 exceptn fpu
endif
@@ -1240,6 +1252,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=prt0 exceptn fpu
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0 exceptn fpu
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0 exceptn fpu
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1531,6 +1549,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1823,6 +1847,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -2114,6 +2144,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2559,6 +2595,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2567,6 +2606,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/haiku/Makefile b/rtl/haiku/Makefile
index 3cffce805d..cb83a05ae8 100644
--- a/rtl/haiku/Makefile
+++ b/rtl/haiku/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -661,6 +661,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system $(SYSINITUNITS) uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl sysconst sysutils types charset cpall character typinfo sortbase classes fgl math cpu $(CPUUNITS) getopts heaptrc lineinfo lnfodwrf rtlconsts unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp fpwidestring
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system $(SYSINITUNITS) uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl sysconst sysutils types charset cpall character typinfo sortbase classes fgl math cpu $(CPUUNITS) getopts heaptrc lineinfo lnfodwrf rtlconsts unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp fpwidestring
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system $(SYSINITUNITS) uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl sysconst sysutils types charset cpall character typinfo sortbase classes fgl math cpu $(CPUUNITS) getopts heaptrc lineinfo lnfodwrf rtlconsts unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp fpwidestring
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -952,6 +958,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1243,6 +1255,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1534,6 +1552,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
@@ -1826,6 +1850,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
@@ -2117,6 +2147,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -2408,6 +2444,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=.
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=.
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2853,6 +2895,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2861,6 +2906,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/inc/system.inc b/rtl/inc/system.inc
index f28cf3ccec..4ea37b748f 100644
--- a/rtl/inc/system.inc
+++ b/rtl/inc/system.inc
@@ -305,6 +305,14 @@ function do_isdevice(handle:thandle):boolean;forward;
{$define SYSPROCDEFINED}
{$endif cpuxtensa}
+{$ifdef cpuz80}
+ {$ifdef SYSPROCDEFINED}
+ {$Error Can't determine processor type !}
+ {$endif}
+ {$i z80.inc} { Case dependent, don't change }
+ {$define SYSPROCDEFINED}
+{$endif cpuz80}
+
{$ifndef SYSPROCDEFINED}
{$Error Can't determine processor type !}
{$endif}
diff --git a/rtl/inc/systemh.inc b/rtl/inc/systemh.inc
index 54a8761b1f..9e9b785ec3 100644
--- a/rtl/inc/systemh.inc
+++ b/rtl/inc/systemh.inc
@@ -363,6 +363,26 @@ Type
{$endif}
{$endif CPUXTENSA}
+{$ifdef CPUZ80}
+ {$define DEFAULT_SINGLE}
+
+ {$define FPC_INCLUDE_SOFTWARE_MOD_DIV}
+ {$define FPC_INCLUDE_SOFTWARE_MUL}
+ {$define FPC_INCLUDE_SOFTWARE_SHIFT_INT64}
+
+ {$ifndef FPUNONE}
+ {$define SUPPORT_SINGLE}
+ {$define SUPPORT_DOUBLE}
+
+ {$define FPC_INCLUDE_SOFTWARE_INT64_TO_DOUBLE}
+
+ ValReal = Real;
+ {$endif}
+
+ FarPointer = Pointer;
+{$endif CPUZ80}
+
+
{$if not declared(FarPointer)}
FarPointer = Pointer;
{$endif}
diff --git a/rtl/java/Makefile b/rtl/java/Makefile
index 1db5e4aeae..c53479773a 100644
--- a/rtl/java/Makefile
+++ b/rtl/java/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -656,6 +656,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -948,6 +954,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -1239,6 +1251,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1684,6 +1702,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1692,6 +1713,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/linux/Makefile b/rtl/linux/Makefile
index 5f1be83c5c..37e868c77b 100644
--- a/rtl/linux/Makefile
+++ b/rtl/linux/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -697,6 +697,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix softfpu sfpux80 ufloatx80 sfpu128 ufloat128
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix softfpu sfpux80 ufloatx80 sfpu128 ufloat128
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix softfpu sfpux80 ufloatx80 sfpu128 ufloat128
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -988,6 +994,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1279,6 +1291,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1570,6 +1588,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=syslinux linux
endif
@@ -1861,6 +1885,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=syslinux linux
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=syslinux linux
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=syslinux linux
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
@@ -2153,6 +2183,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
endif
@@ -2444,6 +2480,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -2735,6 +2777,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=.
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=.
+endif
override SHARED_LIBUNITS=$(SYSTEMUNIT) objpas strings dos unix baseunix unixtype unixutil sysutils typinfo math $(CPU_UNITS) getopts errors classes fgl sysconst syscall rtlconsts types linux sortbase
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -3181,6 +3229,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -3189,6 +3240,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/macos/Makefile b/rtl/macos/Makefile
index 0a76121235..916a3d8e6b 100644
--- a/rtl/macos/Makefile
+++ b/rtl/macos/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -657,6 +657,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system uuchar strings objpas iso7185 heaptrc getopts macostp macutils unixutil dos extpas cmem charset cpall ctypes sysconst sortbase softfpu macpas classes fgl types
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system uuchar strings objpas iso7185 heaptrc getopts macostp macutils unixutil dos extpas cmem charset cpall ctypes sysconst sortbase softfpu macpas classes fgl types
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system uuchar strings objpas iso7185 heaptrc getopts macostp macutils unixutil dos extpas cmem charset cpall ctypes sysconst sortbase softfpu macpas classes fgl types
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -948,6 +954,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=sysconst
endif
@@ -1239,6 +1251,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=sysconst
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1531,6 +1549,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -1822,6 +1846,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2267,6 +2297,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2275,6 +2308,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/morphos/Makefile b/rtl/morphos/Makefile
index 45ea625433..72244b6fd3 100644
--- a/rtl/morphos/Makefile
+++ b/rtl/morphos/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -654,6 +654,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo lineinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -945,6 +951,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo lineinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo lineinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo lineinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
@@ -1236,6 +1248,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
override INSTALL_BUILDUNIT=buildrtl
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
@@ -1529,6 +1547,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
@@ -1820,6 +1844,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2265,6 +2295,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2273,6 +2306,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/msdos/Makefile b/rtl/msdos/Makefile
index 471df553ee..37aa893023 100644
--- a/rtl/msdos/Makefile
+++ b/rtl/msdos/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -655,6 +655,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lnfodwrf sysconst sysutils math macpas iso7185 extpas rtlconsts typinfo cpu types getopts sortbase fgl classes msmouse ports charset cpall ctypes fpwidestring character unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lnfodwrf sysconst sysutils math macpas iso7185 extpas rtlconsts typinfo cpu types getopts sortbase fgl classes msmouse ports charset cpall ctypes fpwidestring character unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lnfodwrf sysconst sysutils math macpas iso7185 extpas rtlconsts typinfo cpu types getopts sortbase fgl classes msmouse ports charset cpall ctypes fpwidestring character unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -946,6 +952,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
endif
@@ -1237,6 +1249,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1529,6 +1547,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -1820,6 +1844,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2265,6 +2295,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2273,6 +2306,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/nativent/Makefile b/rtl/nativent/Makefile
index e5349bda0e..f0b64183dd 100644
--- a/rtl/nativent/Makefile
+++ b/rtl/nativent/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -663,6 +663,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system uuchar objpas iso7185 extpas cpall buildrtl
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system uuchar objpas iso7185 extpas cpall buildrtl
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system uuchar objpas iso7185 extpas cpall buildrtl
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings dos rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -954,6 +960,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings dos rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings dos rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings dos rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1245,6 +1257,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
@@ -1537,6 +1555,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -1828,6 +1852,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2273,6 +2303,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2281,6 +2314,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/nds/Makefile b/rtl/nds/Makefile
index 8b42d4b32f..755dfba94b 100644
--- a/rtl/nds/Makefile
+++ b/rtl/nds/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -654,6 +654,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -945,6 +951,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1236,6 +1248,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1528,6 +1546,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -1819,6 +1843,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2264,6 +2294,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2272,6 +2305,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/netbsd/Makefile b/rtl/netbsd/Makefile
index bc1a8eed14..6807c17243 100644
--- a/rtl/netbsd/Makefile
+++ b/rtl/netbsd/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -667,6 +667,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -958,6 +964,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0 cprt0 dllprt0
endif
@@ -1249,6 +1261,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=prt0 cprt0 dllprt0
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0 cprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0 cprt0 dllprt0
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1540,6 +1558,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
override INSTALL_FPCPACKAGE=y y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
@@ -1832,6 +1856,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
@@ -2123,6 +2153,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2568,6 +2604,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2576,6 +2615,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/netware/Makefile b/rtl/netware/Makefile
index 299b4918bb..4e3a404da7 100644
--- a/rtl/netware/Makefile
+++ b/rtl/netware/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -661,6 +661,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall character fpwidestring unicodedata unicodenumtable rtlconsts math cmem dynlibs aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall character fpwidestring unicodedata unicodenumtable rtlconsts math cmem dynlibs aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall character fpwidestring unicodedata unicodenumtable rtlconsts math cmem dynlibs aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -952,6 +958,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=nwpre prelude
endif
@@ -1243,6 +1255,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=nwpre prelude
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=nwpre prelude
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=nwpre prelude
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
@@ -1534,6 +1552,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1826,6 +1850,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -2117,6 +2147,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2562,6 +2598,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2570,6 +2609,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/netwlibc/Makefile b/rtl/netwlibc/Makefile
index fb7e5e2515..43dfdef7a9 100644
--- a/rtl/netwlibc/Makefile
+++ b/rtl/netwlibc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -654,6 +654,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf heaptrc nwsnut libc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf heaptrc nwsnut libc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf heaptrc nwsnut libc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -945,6 +951,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
endif
@@ -1236,6 +1248,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
endif
@@ -1527,6 +1545,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1819,6 +1843,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -2110,6 +2140,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2555,6 +2591,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2563,6 +2602,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/openbsd/Makefile b/rtl/openbsd/Makefile
index 2a74eaad9d..48b0a6c74a 100644
--- a/rtl/openbsd/Makefile
+++ b/rtl/openbsd/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -669,6 +669,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) initc uuchar objpas macpas iso7185 extpas strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd $(CPU_UNITS) dos rtlconsts sysutils sortbase fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp fpwidestring
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) initc uuchar objpas macpas iso7185 extpas strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd $(CPU_UNITS) dos rtlconsts sysutils sortbase fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp fpwidestring
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) initc uuchar objpas macpas iso7185 extpas strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd $(CPU_UNITS) dos rtlconsts sysutils sortbase fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp fpwidestring
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -960,6 +966,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1251,6 +1263,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1542,6 +1560,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
override INSTALL_FPCPACKAGE=y y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
@@ -1834,6 +1858,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
@@ -2125,6 +2155,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2570,6 +2606,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2578,6 +2617,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/os2/Makefile b/rtl/os2/Makefile
index f7ef9cc57a..bb52c14125 100644
--- a/rtl/os2/Makefile
+++ b/rtl/os2/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -657,6 +657,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils sortbase fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll fpwidestring character unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils sortbase fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll fpwidestring character unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils sortbase fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll fpwidestring character unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -948,6 +954,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0
endif
@@ -1239,6 +1251,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=prt0
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
@@ -1530,6 +1548,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo pmhelp classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo pmhelp classes sysconst
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1822,6 +1846,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -2113,6 +2143,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2558,6 +2594,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2566,6 +2605,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/palmos/Makefile b/rtl/palmos/Makefile
index 0168ceb63b..af8f241f53 100644
--- a/rtl/palmos/Makefile
+++ b/rtl/palmos/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -653,6 +653,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) si_prc uuchar objpas iso7185 strings ctypes charset cpall sysconst systraps pilot
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) si_prc uuchar objpas iso7185 strings ctypes charset cpall sysconst systraps pilot
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) si_prc uuchar objpas iso7185 strings ctypes charset cpall sysconst systraps pilot
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -944,6 +950,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0
endif
@@ -1235,6 +1247,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=prt0
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
@@ -1527,6 +1545,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(OBJPAS)
endif
@@ -1818,6 +1842,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(OBJPAS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(OBJPAS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(OBJPAS)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2263,6 +2293,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2271,6 +2304,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/qnx/Makefile b/rtl/qnx/Makefile
index 80bfdc0366..a28fc2757f 100644
--- a/rtl/qnx/Makefile
+++ b/rtl/qnx/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -658,6 +658,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system uuchar dos objpas objects strings sysutils typinfo math cpu mmx getopts heaptrc lineinfo posix
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system uuchar dos objpas objects strings sysutils typinfo math cpu mmx getopts heaptrc lineinfo posix
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system uuchar dos objpas objects strings sysutils typinfo math cpu mmx getopts heaptrc lineinfo posix
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=cprt0 crti crtn
endif
@@ -949,6 +955,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=cprt0 crti crtn
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=cprt0 crti crtn
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=cprt0 crti crtn
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo
endif
@@ -1240,6 +1252,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
@@ -1532,6 +1550,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
endif
@@ -1823,6 +1847,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -2114,6 +2144,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=.
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=.
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2559,6 +2595,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2567,6 +2606,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/solaris/Makefile b/rtl/solaris/Makefile
index 9d1607ebfe..6e9e27f1a4 100644
--- a/rtl/solaris/Makefile
+++ b/rtl/solaris/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -666,6 +666,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math sortbase fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math sortbase fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math sortbase fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -957,6 +963,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
@@ -1248,6 +1260,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconst
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
@@ -1540,6 +1558,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
@@ -1831,6 +1855,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2276,6 +2306,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2284,6 +2317,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/symbian/Makefile b/rtl/symbian/Makefile
index a574d884fa..adc5ad5d69 100644
--- a/rtl/symbian/Makefile
+++ b/rtl/symbian/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -651,6 +651,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata unicodenumtable dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata unicodenumtable dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata unicodenumtable dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=ctypes strings symbian
endif
@@ -942,6 +948,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=ctypes strings symbian
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=ctypes strings symbian
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=ctypes strings symbian
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1234,6 +1246,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -1525,6 +1543,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1970,6 +1994,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1978,6 +2005,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/watcom/Makefile b/rtl/watcom/Makefile
index 3be4381b2f..78efae3a3c 100644
--- a/rtl/watcom/Makefile
+++ b/rtl/watcom/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -656,6 +656,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sortbase classes sysutils
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sortbase classes sysutils
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sortbase classes sysutils
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -947,6 +953,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0
endif
@@ -1238,6 +1250,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=prt0
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1529,6 +1547,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1821,6 +1845,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
endif
@@ -2112,6 +2142,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2557,6 +2593,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2565,6 +2604,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/wii/Makefile b/rtl/wii/Makefile
index 410a3bd7a5..ee29bf9b6b 100644
--- a/rtl/wii/Makefile
+++ b/rtl/wii/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -654,6 +654,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings dos sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl cmem
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings dos sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl cmem
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings dos sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl cmem
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -945,6 +951,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1237,6 +1249,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -1528,6 +1546,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1973,6 +1997,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1981,6 +2008,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/win16/Makefile b/rtl/win16/Makefile
index e85ce92237..9d93d25e5e 100644
--- a/rtl/win16/Makefile
+++ b/rtl/win16/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -655,6 +655,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system uuchar objpas strings iso7185 extpas dos wintypes winprocs win31 ports dynlibs sortbase sysconst rtlconst sysutils math types typinfo fgl classes
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system uuchar objpas strings iso7185 extpas dos wintypes winprocs win31 ports dynlibs sortbase sysconst rtlconst sysutils math types typinfo fgl classes
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system uuchar objpas strings iso7185 extpas dos wintypes winprocs win31 ports dynlibs sortbase sysconst rtlconst sysutils math types typinfo fgl classes
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0s prt0m prt0c prt0l prt0h
endif
@@ -946,6 +952,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=prt0s prt0m prt0c prt0l prt0h
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0s prt0m prt0c prt0l prt0h
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0s prt0m prt0c prt0l prt0h
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@@ -1238,6 +1250,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -1529,6 +1547,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1974,6 +1998,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1982,6 +2009,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/win32/Makefile b/rtl/win32/Makefile
index 03f4d32c1e..934e25926c 100644
--- a/rtl/win32/Makefile
+++ b/rtl/win32/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -653,6 +653,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof extpas ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo sortbase fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
@@ -944,6 +950,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof extpas ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo sortbase fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof extpas ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo sortbase fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof extpas ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo sortbase fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1235,6 +1247,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1526,6 +1544,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
override INSTALL_BUILDUNIT=buildrtl
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
@@ -1819,6 +1843,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
@@ -2110,6 +2140,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2555,6 +2591,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2563,6 +2602,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/win64/Makefile b/rtl/win64/Makefile
index dd37e5a18c..20a9df4d53 100644
--- a/rtl/win64/Makefile
+++ b/rtl/win64/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -654,6 +654,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=sysinit ctypes strings extpas heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo sortbase fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable sfpux80
endif
@@ -945,6 +951,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=sysinit ctypes strings extpas heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo sortbase fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable sfpux80
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=sysinit ctypes strings extpas heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo sortbase fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable sfpux80
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=sysinit ctypes strings extpas heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo sortbase fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable sfpux80
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1236,6 +1248,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=$(LOADERS)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1527,6 +1545,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
override INSTALL_BUILDUNIT=buildrtl
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
@@ -1820,6 +1844,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
@@ -2111,6 +2141,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -2556,6 +2592,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -2564,6 +2603,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/wince/Makefile b/rtl/wince/Makefile
index 6b04db15f3..54303c4d2f 100644
--- a/rtl/wince/Makefile
+++ b/rtl/wince/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -657,6 +657,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 extpas strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types sortbase fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 extpas strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types sortbase fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 extpas strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types sortbase fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
@@ -948,6 +954,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
@@ -1240,6 +1252,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
@@ -1531,6 +1549,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1976,6 +2000,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1984,6 +2011,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/rtl/z80/cpuh.inc b/rtl/z80/cpuh.inc
new file mode 100644
index 0000000000..e3f3caf416
--- /dev/null
+++ b/rtl/z80/cpuh.inc
@@ -0,0 +1,15 @@
+{
+
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2016 by the Free Pascal development team.
+
+ CPU specific system unit header file
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
diff --git a/rtl/z80/int64p.inc b/rtl/z80/int64p.inc
new file mode 100644
index 0000000000..b7e5ad8814
--- /dev/null
+++ b/rtl/z80/int64p.inc
@@ -0,0 +1,14 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2000 by the Free Pascal development team
+
+ This file contains some helper routines for int64 and qword
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
diff --git a/rtl/z80/makefile.cpu b/rtl/z80/makefile.cpu
new file mode 100644
index 0000000000..07afe94a2f
--- /dev/null
+++ b/rtl/z80/makefile.cpu
@@ -0,0 +1,6 @@
+#
+# Here we set processor dependent include file names.
+#
+
+CPUNAMES=
+CPUINCNAMES=$(addsuffix .inc,$(CPUNAMES))
diff --git a/rtl/z80/math.inc b/rtl/z80/math.inc
new file mode 100644
index 0000000000..e51db86735
--- /dev/null
+++ b/rtl/z80/math.inc
@@ -0,0 +1,16 @@
+{
+
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2003 by the Free Pascal development team.
+
+ Implementation of mathematical Routines (for extended type)
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
diff --git a/rtl/z80/set.inc b/rtl/z80/set.inc
new file mode 100644
index 0000000000..d4703c68de
--- /dev/null
+++ b/rtl/z80/set.inc
@@ -0,0 +1,15 @@
+{
+
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2003 by the Free Pascal development team.
+
+ Include file with set operations called by the compiler
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
diff --git a/rtl/z80/setjump.inc b/rtl/z80/setjump.inc
new file mode 100644
index 0000000000..b17459700d
--- /dev/null
+++ b/rtl/z80/setjump.inc
@@ -0,0 +1,98 @@
+{
+
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2008 by the Free Pascal development team.
+
+ SetJmp and LongJmp implementation for exception handling
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+function fpc_setjmp(var S : jmp_buf) : shortint;assembler;[Public, alias : 'FPC_SETJMP'];nostackframe;compilerproc;
+ asm
+ push ix
+ ld ix, 0
+ add ix,sp
+
+ ld l, (ix+4) { (S) }
+ ld h, (ix+5) { (S+1) }
+
+ { save caller ix }
+ ld c, (ix)
+ ld b, (ix+1)
+ ld (hl), c
+ inc hl
+ ld (hl), b
+ inc hl
+
+ { save caller sp (i.e. what its value was, right before the call instrunction) }
+ ld iy, 4
+ add iy, sp
+ push iy
+ pop bc
+ ld (hl), c
+ inc hl
+ ld (hl), b
+ inc hl
+
+ { save ret address }
+ ld c, (ix+2)
+ ld b, (ix+3)
+ ld (hl), c
+ inc hl
+ ld (hl), b
+ inc hl
+
+ ld l, 0
+
+ pop ix
+ end;
+
+
+procedure fpc_longjmp(var S : jmp_buf;value : shortint);assembler;[Public, alias : 'FPC_LONGJMP'];nostackframe;compilerproc;
+ asm
+ push ix
+ ld ix, 0
+ add ix, sp
+
+ ld d, (ix+6) { (value) }
+
+ ld l, (ix+4) { (S) }
+ ld h, (ix+5) { (S+1) }
+
+ { restore ix }
+ ld c, (hl)
+ inc hl
+ ld b, (hl)
+ inc hl
+ push bc
+ pop ix
+
+ { restore sp }
+ ld c, (hl)
+ inc hl
+ ld b, (hl)
+ inc hl
+ push bc
+ pop iy
+ ld sp, iy
+
+ { restore pc }
+ ld c, (hl)
+ inc hl
+ ld b, (hl)
+ inc hl
+ { prepare the new return address, will be popped by the ret instruction }
+ push bc
+
+ { return result }
+ ld l, d
+ end;
+
+
diff --git a/rtl/z80/setjumph.inc b/rtl/z80/setjumph.inc
new file mode 100644
index 0000000000..609962c72b
--- /dev/null
+++ b/rtl/z80/setjumph.inc
@@ -0,0 +1,27 @@
+{
+
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2008 by the Free Pascal development team.
+
+ SetJmp/Longjmp declarations
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+type
+ jmp_buf = packed record
+ ix,sp,pc: word;
+{ f,a,b,c,e,d,l,h,ixlo,ixhi,iylo,iyhi,splo,sphi,pclo,pchi : byte;}
+ end;
+ pjmp_buf = ^jmp_buf;
+
+function setjmp(var S : jmp_buf) : shortint;[external name 'FPC_SETJMP'];
+procedure longjmp(var S : jmp_buf;value : shortint);[external name 'FPC_LONGJMP'];
+
+
diff --git a/rtl/z80/z80.inc b/rtl/z80/z80.inc
new file mode 100644
index 0000000000..e801b4ae33
--- /dev/null
+++ b/rtl/z80/z80.inc
@@ -0,0 +1,298 @@
+{
+
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2017 by the Free Pascal development team.
+
+ Processor dependent implementation for the system unit for
+ Z80
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+
+var
+ z80_save_hl: Word; public name 'FPC_Z80_SAVE_HL';
+
+procedure fpc_cpuinit;{$ifdef SYSTEMINLINE}inline;{$endif}
+ begin
+ end;
+
+
+{$define FPC_SYSTEM_HAS_MOVE}
+procedure Move(const source;var dest;count:SizeInt);assembler;[public, alias: 'FPC_MOVE'];
+label
+ skip, forward_move;
+asm
+ ld c, (count)
+ ld b, (count+1)
+ bit 7, b
+ jp NZ, skip
+ ld a, b
+ or a, c
+ jp Z, skip
+
+ ld l, (source)
+ ld h, (source+1)
+ ld e, (dest)
+ ld d, (dest+1)
+
+ ld a, d
+ cp a, h
+ jp C, forward_move
+ ld a, e
+ cp a, l
+ jp C, forward_move
+
+ { backward move }
+ add hl, bc
+ dec hl
+ ex de, hl
+ add hl, bc
+ dec hl
+ ex de, hl
+ lddr
+ jp skip
+
+forward_move:
+ ldir
+
+skip:
+end;
+
+
+{$define FPC_SYSTEM_HAS_FILLCHAR}
+Procedure FillChar(var x;count:SizeInt;value:byte);assembler;
+label
+ skip, loop;
+asm
+ ld c, (count)
+ ld b, (count+1)
+ bit 7, b
+ jp NZ, skip
+
+ ld a, b
+ or a, c
+ jp Z, skip
+
+ ld e, (value)
+ ld a, 0
+ ld l, (x)
+ ld h, (x+1)
+loop:
+ ld (hl), e
+ inc hl
+ dec bc
+ cp a, c
+ jp NZ, loop
+ cp a, b
+ jp NZ, loop
+skip:
+end;
+
+
+{$IFNDEF INTERNAL_BACKTRACE}
+{$define FPC_SYSTEM_HAS_GET_FRAME}
+function get_frame:pointer;assembler;nostackframe;
+ asm
+ push ix
+ pop hl
+ end;
+{$ENDIF not INTERNAL_BACKTRACE}
+
+
+{$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
+function get_caller_addr(framebp:pointer;addr:pointer=nil):pointer;assembler;
+ asm
+ end;
+
+
+{$define FPC_SYSTEM_HAS_GET_CALLER_FRAME}
+function get_caller_frame(framebp:pointer;addr:pointer=nil):pointer;assembler;
+ asm
+ end;
+
+
+{$define FPC_SYSTEM_HAS_SPTR}
+Function Sptr : pointer;assembler;nostackframe;
+ asm
+ ld hl, 0
+ add hl, sp
+ end;
+
+
+function InterLockedDecrement (var Target: longint) : longint;
+ var
+ temp_sreg : byte;
+ begin
+ { block interrupts }
+ asm
+ end;
+
+ dec(Target);
+ Result:=Target;
+
+ { release interrupts }
+ asm
+ end;
+ end;
+
+
+function InterLockedIncrement (var Target: longint) : longint;
+ var
+ temp_sreg : byte;
+ begin
+ { block interrupts }
+ asm
+ end;
+
+ inc(Target);
+ Result:=Target;
+
+ { release interrupts }
+ asm
+ end;
+ end;
+
+
+function InterLockedExchange (var Target: longint;Source : longint) : longint;
+ var
+ temp_sreg : byte;
+ begin
+ { block interrupts }
+ asm
+ end;
+
+ Result:=Target;
+ Target:=Source;
+
+ { release interrupts }
+ asm
+ end;
+ end;
+
+
+function InterlockedCompareExchange(var Target: longint; NewValue: longint; Comperand: longint): longint;
+ var
+ temp_sreg : byte;
+ begin
+ { block interrupts }
+ asm
+ end;
+
+ Result:=Target;
+// if Target=Comperand then
+// Target:=NewValue;
+
+ { release interrupts }
+ asm
+ end;
+ end;
+
+
+function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint;
+ var
+ temp_sreg : byte;
+ begin
+ { block interrupts }
+ asm
+ end;
+
+ Result:=Target;
+ inc(Target,Source);
+
+ { release interrupts }
+ asm
+ end;
+ end;
+
+
+function InterLockedDecrement (var Target: smallint) : smallint;
+ var
+ temp_sreg : byte;
+ begin
+ { block interrupts }
+ asm
+ end;
+
+ dec(Target);
+ Result:=Target;
+
+ { release interrupts }
+ asm
+ end;
+ end;
+
+
+function InterLockedIncrement (var Target: smallint) : smallint;
+ var
+ temp_sreg : byte;
+ begin
+ { block interrupts }
+ asm
+ end;
+
+ inc(Target);
+ Result:=Target;
+
+ { release interrupts }
+ asm
+ end;
+ end;
+
+
+function InterLockedExchange (var Target: smallint;Source : smallint) : smallint;
+ var
+ temp_sreg : byte;
+ begin
+ { block interrupts }
+ asm
+ end;
+
+ Result:=Target;
+ Target:=Source;
+
+ { release interrupts }
+ asm
+ end;
+ end;
+
+
+function InterlockedCompareExchange(var Target: smallint; NewValue: smallint; Comperand: smallint): smallint;
+ var
+ temp_sreg : byte;
+ begin
+ { block interrupts }
+ asm
+ end;
+
+ Result:=Target;
+// if Target=Comperand then
+// Target:=NewValue;
+
+ { release interrupts }
+ asm
+ end;
+ end;
+
+
+function InterLockedExchangeAdd (var Target: smallint;Source : smallint) : smallint;
+ var
+ temp_sreg : byte;
+ begin
+ { block interrupts }
+ asm
+ end;
+
+ Result:=Target;
+ inc(Target,Source);
+
+ { release interrupts }
+ asm
+ end;
+ end;
diff --git a/rtl/zxspectrum/Makefile b/rtl/zxspectrum/Makefile
new file mode 100644
index 0000000000..f79940ee48
--- /dev/null
+++ b/rtl/zxspectrum/Makefile
@@ -0,0 +1,2847 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
+OSNeedsComspecToRunBatch = go32v2 watcom
+FORCE:
+.PHONY: FORCE
+override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
+ifneq ($(findstring darwin,$(OSTYPE)),)
+inUnix=1 #darwin
+SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
+else
+ifeq ($(findstring ;,$(PATH)),)
+inUnix=1
+SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
+else
+SEARCHPATH:=$(subst ;, ,$(PATH))
+endif
+endif
+SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
+PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
+ifeq ($(PWD),)
+PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
+ifeq ($(PWD),)
+$(error You need the GNU utils package to use this Makefile)
+else
+PWD:=$(firstword $(PWD))
+SRCEXEEXT=
+endif
+else
+PWD:=$(firstword $(PWD))
+SRCEXEEXT=.exe
+endif
+ifndef inUnix
+ifeq ($(OS),Windows_NT)
+inWinNT=1
+else
+ifdef OS2_SHELL
+inOS2=1
+endif
+endif
+else
+ifneq ($(findstring cygdrive,$(PATH)),)
+inCygWin=1
+endif
+endif
+ifdef inUnix
+SRCBATCHEXT=.sh
+else
+ifdef inOS2
+SRCBATCHEXT=.cmd
+else
+SRCBATCHEXT=.bat
+endif
+endif
+ifdef COMSPEC
+ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+ifndef RUNBATCH
+RUNBATCH=$(COMSPEC) /C
+endif
+endif
+endif
+ifdef inUnix
+PATHSEP=/
+else
+PATHSEP:=$(subst /,\,/)
+ifdef inCygWin
+PATHSEP=/
+endif
+endif
+ifdef PWD
+BASEDIR:=$(subst \,/,$(shell $(PWD)))
+ifdef inCygWin
+ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
+BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
+BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
+BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
+endif
+endif
+else
+BASEDIR=.
+endif
+ifdef inOS2
+ifndef ECHO
+ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO=echo
+else
+ECHO:=$(firstword $(ECHO))
+endif
+else
+ECHO:=$(firstword $(ECHO))
+endif
+endif
+export ECHO
+endif
+override OS_TARGET_DEFAULT=zxspectrum
+override CPU_TARGET_DEFAULT=z80
+override DEFAULT_FPCDIR=../..
+ifndef FPC
+ifdef PP
+FPC=$(PP)
+endif
+endif
+ifndef FPC
+FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
+ifneq ($(FPCPROG),)
+FPCPROG:=$(firstword $(FPCPROG))
+ifneq ($(CPU_TARGET),)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
+else
+FPC:=$(shell $(FPCPROG) -PB)
+endif
+ifneq ($(findstring Error,$(FPC)),)
+override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
+else
+ifeq ($(strip $(wildcard $(FPC))),)
+FPC:=$(firstword $(FPCPROG))
+endif
+endif
+else
+override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
+endif
+endif
+override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
+override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
+FOUNDFPC:=$(strip $(wildcard $(FPC)))
+ifeq ($(FOUNDFPC),)
+FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
+ifeq ($(FOUNDFPC),)
+$(error Compiler $(FPC) not found)
+endif
+endif
+ifndef FPC_COMPILERINFO
+FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
+endif
+ifndef FPC_VERSION
+FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
+endif
+export FPC FPC_VERSION FPC_COMPILERINFO
+unexport CHECKDEPEND ALLDEPENDENCIES
+ifndef CPU_TARGET
+ifdef CPU_TARGET_DEFAULT
+CPU_TARGET=$(CPU_TARGET_DEFAULT)
+endif
+endif
+ifndef OS_TARGET
+ifdef OS_TARGET_DEFAULT
+OS_TARGET=$(OS_TARGET_DEFAULT)
+endif
+endif
+ifndef CPU_SOURCE
+CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
+endif
+ifndef CPU_TARGET
+CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
+endif
+ifndef OS_SOURCE
+OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
+endif
+ifndef OS_TARGET
+OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
+endif
+FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
+FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(CPU_TARGET),armeb)
+ARCH=arm
+override FPCOPT+=-Cb
+else
+ifeq ($(CPU_TARGET),armel)
+ARCH=arm
+override FPCOPT+=-CaEABI
+else
+ARCH=$(CPU_TARGET)
+endif
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(SUBARCH),)
+$(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(SUBARCH),)
+$(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(SUBARCH),)
+$(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(SUBARCH),)
+$(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(SUBARCH),)
+$(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(SUBARCH),)
+$(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+TARGETSUFFIX=$(OS_TARGET)
+SOURCESUFFIX=$(OS_SOURCE)
+else
+ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),)
+TARGETSUFFIX=$(OS_TARGET)
+else
+TARGETSUFFIX=$(FULL_TARGET)
+endif
+SOURCESUFFIX=$(FULL_SOURCE)
+endif
+ifneq ($(FULL_TARGET),$(FULL_SOURCE))
+CROSSCOMPILE=1
+endif
+ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
+ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
+$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
+endif
+endif
+ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
+BSDhier=1
+endif
+ifeq ($(OS_TARGET),linux)
+linuxHier=1
+endif
+ifndef CROSSCOMPILE
+BUILDFULLNATIVE=1
+export BUILDFULLNATIVE
+endif
+ifdef BUILDFULLNATIVE
+BUILDNATIVE=1
+export BUILDNATIVE
+endif
+export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
+ifdef FPCDIR
+override FPCDIR:=$(subst \,/,$(FPCDIR))
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
+override FPCDIR=wrong
+endif
+else
+override FPCDIR=wrong
+endif
+ifdef DEFAULT_FPCDIR
+ifeq ($(FPCDIR),wrong)
+override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
+override FPCDIR=wrong
+endif
+endif
+endif
+ifeq ($(FPCDIR),wrong)
+ifdef inUnix
+override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
+ifeq ($(wildcard $(FPCDIR)/units),)
+override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
+endif
+else
+override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
+override FPCDIR=c:/pp
+endif
+endif
+endif
+endif
+endif
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
+endif
+ifneq ($(findstring $(OS_TARGET),darwin iphonesim),)
+ifeq ($(OS_SOURCE),darwin)
+DARWIN2DARWIN=1
+endif
+endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
+ifdef CROSSCOMPILE
+ifneq ($(OS_TARGET),msdos)
+ifndef DARWIN2DARWIN
+ifneq ($(CPU_TARGET),jvm)
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
+ifeq ($(OS_TARGET),android)
+ifeq ($(CPU_TARGET),arm)
+BINUTILSPREFIX=arm-linux-androideabi-
+else
+ifeq ($(CPU_TARGET),i386)
+BINUTILSPREFIX=i686-linux-android-
+else
+BINUTILSPREFIX=$(CPU_TARGET)-linux-android-
+endif
+endif
+endif
+endif
+endif
+else
+BINUTILSPREFIX=$(OS_TARGET)-
+endif
+endif
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
+ifeq ($(UNITSDIR),)
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+endif
+PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
+ifndef FPCFPMAKE
+ifdef CROSSCOMPILE
+ifeq ($(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR)))),)
+FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
+ifneq ($(FPCPROG),)
+FPCPROG:=$(firstword $(FPCPROG))
+FPCFPMAKE:=$(shell $(FPCPROG) -PB)
+ifeq ($(strip $(wildcard $(FPCFPMAKE))),)
+FPCFPMAKE:=$(firstword $(FPCPROG))
+endif
+else
+override FPCFPMAKE=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
+endif
+else
+FPCFPMAKE=$(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR))))
+FPMAKE_SKIP_CONFIG=-n
+export FPCFPMAKE
+export FPMAKE_SKIP_CONFIG
+endif
+else
+FPMAKE_SKIP_CONFIG=-n
+FPCFPMAKE=$(FPC)
+endif
+endif
+override PACKAGE_NAME=rtl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
+RTL=..
+INC=../inc
+COMMON=$(RTL)/common
+PROCINC=../$(CPU_TARGET)
+UNITPREFIX=rtl
+SYSTEMUNIT=system
+OBJPASDIR=$(RTL)/objpas
+ifdef EXCEPTIONS_IN_SYSTEM
+override FPCOPT+=-dEXCEPTIONS_IN_SYSTEM
+endif
+ifdef NO_EXCEPTIONS_IN_SYSTEM
+override FPCOPT+=-dNO_EXCEPTIONS_IN_SYSTEM
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),m68k-macos)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-haiku)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-iphonesim)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-android)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-aros)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-netbsd)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-aros)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),arm-freertos)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i8086-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i8086-win16)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),aarch64-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),aarch64-darwin)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),aarch64-win64)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),aarch64-android)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),wasm-wasm)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),sparc64-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),riscv32-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),riscv32-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),riscv64-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),riscv64-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),xtensa-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),xtensa-freertos)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=system
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),m68k-macos)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-haiku)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-iphonesim)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-android)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-aros)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-netbsd)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-aros)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-freertos)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i8086-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i8086-win16)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),aarch64-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),aarch64-darwin)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),aarch64-win64)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),aarch64-android)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),wasm-wasm)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),sparc64-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),riscv32-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),riscv32-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),riscv64-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),riscv64-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),xtensa-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),xtensa-freertos)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_LOADERS+=prt0
+endif
+override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-macos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-haiku)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-iphonesim)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-freertos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i8086-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i8086-win16)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),aarch64-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),aarch64-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),aarch64-win64)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),aarch64-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),wasm-wasm)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),sparc64-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),riscv32-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),riscv32-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),riscv64-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),riscv64-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),xtensa-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),xtensa-freertos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-macos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-haiku)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-iphonesim)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-freertos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i8086-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i8086-win16)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),aarch64-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),aarch64-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),aarch64-win64)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),aarch64-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),wasm-wasm)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc64-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),riscv32-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),riscv32-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),riscv64-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),riscv64-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),xtensa-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),xtensa-freertos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
+ifdef REQUIRE_UNITSDIR
+override UNITSDIR+=$(REQUIRE_UNITSDIR)
+endif
+ifdef REQUIRE_PACKAGESDIR
+override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
+endif
+ifdef ZIPINSTALL
+ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
+UNIXHier=1
+endif
+else
+ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
+UNIXHier=1
+endif
+endif
+ifndef INSTALL_PREFIX
+ifdef PREFIX
+INSTALL_PREFIX=$(PREFIX)
+endif
+endif
+ifndef INSTALL_PREFIX
+ifdef UNIXHier
+INSTALL_PREFIX=/usr/local
+else
+ifdef INSTALL_FPCPACKAGE
+INSTALL_BASEDIR:=/pp
+else
+INSTALL_BASEDIR:=/$(PACKAGE_NAME)
+endif
+endif
+endif
+export INSTALL_PREFIX
+ifdef INSTALL_FPCSUBDIR
+export INSTALL_FPCSUBDIR
+endif
+ifndef DIST_DESTDIR
+DIST_DESTDIR:=$(BASEDIR)
+endif
+export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
+else
+COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
+ifndef INSTALL_BASEDIR
+ifdef UNIXHier
+ifdef INSTALL_FPCPACKAGE
+INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
+else
+INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
+endif
+else
+INSTALL_BASEDIR:=$(INSTALL_PREFIX)
+endif
+endif
+ifndef INSTALL_BINDIR
+ifdef UNIXHier
+INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
+else
+INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
+ifdef INSTALL_FPCPACKAGE
+ifdef CROSSCOMPILE
+ifdef CROSSINSTALL
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
+else
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
+endif
+else
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
+endif
+endif
+endif
+endif
+ifndef INSTALL_UNITDIR
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
+ifdef INSTALL_FPCPACKAGE
+ifdef PACKAGE_NAME
+INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
+endif
+endif
+endif
+ifndef INSTALL_LIBDIR
+ifdef UNIXHier
+INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
+else
+INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
+endif
+endif
+ifndef INSTALL_SOURCEDIR
+ifdef UNIXHier
+ifdef BSDhier
+SRCPREFIXDIR=share/src
+else
+ifdef linuxHier
+SRCPREFIXDIR=share/src
+else
+SRCPREFIXDIR=src
+endif
+endif
+ifdef INSTALL_FPCPACKAGE
+ifdef INSTALL_FPCSUBDIR
+INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
+else
+INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
+endif
+else
+INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+endif
+else
+ifdef INSTALL_FPCPACKAGE
+ifdef INSTALL_FPCSUBDIR
+INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
+else
+INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
+endif
+else
+INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
+endif
+endif
+endif
+ifndef INSTALL_DOCDIR
+ifdef UNIXHier
+ifdef BSDhier
+DOCPREFIXDIR=share/doc
+else
+ifdef linuxHier
+DOCPREFIXDIR=share/doc
+else
+DOCPREFIXDIR=doc
+endif
+endif
+ifdef INSTALL_FPCPACKAGE
+INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
+else
+INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+endif
+else
+ifdef INSTALL_FPCPACKAGE
+INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
+else
+INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
+endif
+endif
+endif
+ifndef INSTALL_EXAMPLEDIR
+ifdef UNIXHier
+ifdef INSTALL_FPCPACKAGE
+ifdef BSDhier
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
+else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
+else
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
+endif
+endif
+else
+ifdef BSDhier
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+else
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+endif
+endif
+endif
+else
+ifdef INSTALL_FPCPACKAGE
+INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
+else
+INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
+endif
+endif
+endif
+ifndef INSTALL_DATADIR
+INSTALL_DATADIR=$(INSTALL_BASEDIR)
+endif
+ifndef INSTALL_SHAREDDIR
+INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
+endif
+ifdef CROSSCOMPILE
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
+ifeq ($(CROSSBINDIR),)
+CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
+endif
+endif
+else
+CROSSBINDIR=
+endif
+ifeq ($(OS_SOURCE),linux)
+ifndef GCCLIBDIR
+ifeq ($(CPU_TARGET),i386)
+ifneq ($(findstring x86_64,$(shell uname -a)),)
+ifeq ($(BINUTILSPREFIX),)
+GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
+else
+CROSSGCCOPT=-m32
+endif
+endif
+endif
+ifeq ($(CPU_TARGET),powerpc64)
+ifeq ($(BINUTILSPREFIX),)
+GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
+else
+CROSSGCCOPT=-m64
+endif
+endif
+ifeq ($(CPU_TARGET),sparc)
+ifneq ($(findstring sparc64,$(shell uname -a)),)
+ifeq ($(BINUTILSPREFIX),)
+GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
+else
+CROSSGCCOPT=-m32
+endif
+endif
+endif
+endif
+ifndef GCCLIBDIR
+CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
+ifneq ($(CROSSGCC),)
+GCCLIBDIR:=$(shell dirname `$(CROSSGCC) $(CROSSGCCOPT) -print-libgcc-file-name`)
+endif
+endif
+endif
+ifdef inUnix
+ifeq ($(OS_SOURCE),netbsd)
+OTHERLIBDIR:=/usr/pkg/lib
+endif
+export GCCLIBDIR OTHERLIBDIR
+endif
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+LTOEXT=.bc
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.so
+SHAREDLIBPREFIX=libfp
+STATICLIBPREFIX=libp
+IMPORTLIBPREFIX=libimp
+RSTEXT=.rst
+EXEDBGEXT=.dbg
+ifeq ($(OS_TARGET),go32v1)
+STATICLIBPREFIX=
+SHORTSUFFIX=v1
+endif
+ifeq ($(OS_TARGET),go32v2)
+STATICLIBPREFIX=
+SHORTSUFFIX=dos
+IMPORTLIBPREFIX=
+endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+OEXT=.obj
+ASMEXT=.asm
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=wat
+IMPORTLIBPREFIX=
+endif
+ifneq ($(CPU_TARGET),jvm)
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
+endif
+ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
+ifeq ($(OS_TARGET),dragonfly)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=df
+endif
+ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=fbs
+endif
+ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=nbs
+endif
+ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=obs
+endif
+ifeq ($(OS_TARGET),win32)
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=w32
+endif
+ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
+AOUTEXT=.out
+STATICLIBPREFIX=
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=os2
+ECHO=echo
+IMPORTLIBPREFIX=
+endif
+ifeq ($(OS_TARGET),emx)
+BATCHEXT=.cmd
+AOUTEXT=.out
+STATICLIBPREFIX=
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=emx
+ECHO=echo
+IMPORTLIBPREFIX=
+endif
+ifeq ($(OS_TARGET),amiga)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=amg
+endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=mos
+endif
+ifeq ($(OS_TARGET),atari)
+EXEEXT=.ttp
+SHORTSUFFIX=ata
+endif
+ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=be
+endif
+ifeq ($(OS_TARGET),haiku)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=hai
+endif
+ifeq ($(OS_TARGET),solaris)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=sun
+endif
+ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=qnx
+endif
+ifeq ($(OS_TARGET),netware)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+SHORTSUFFIX=nw
+IMPORTLIBPREFIX=imp
+endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+SHORTSUFFIX=nwl
+IMPORTLIBPREFIX=imp
+endif
+ifeq ($(OS_TARGET),macos)
+BATCHEXT=
+EXEEXT=
+DEBUGSYMEXT=.xcoff
+SHORTSUFFIX=mac
+IMPORTLIBPREFIX=imp
+endif
+ifneq ($(findstring $(OS_TARGET),darwin iphonesim),)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=dwn
+EXEDBGEXT=.dSYM
+endif
+ifeq ($(OS_TARGET),gba)
+EXEEXT=.gba
+SHAREDLIBEXT=.so
+SHORTSUFFIX=gba
+endif
+ifeq ($(OS_TARGET),symbian)
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=symbian
+endif
+ifeq ($(OS_TARGET),NativeNT)
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=nativent
+endif
+ifeq ($(OS_TARGET),wii)
+EXEEXT=.dol
+SHAREDLIBEXT=.so
+SHORTSUFFIX=wii
+endif
+ifeq ($(OS_TARGET),aix)
+BATCHEXT=.sh
+EXEEXT=
+SHAREDLIBEXT=.a
+SHORTSUFFIX=aix
+endif
+ifeq ($(OS_TARGET),java)
+OEXT=.class
+ASMEXT=.j
+SHAREDLIBEXT=.jar
+SHORTSUFFIX=java
+endif
+ifeq ($(CPU_TARGET),jvm)
+ifeq ($(OS_TARGET),android)
+OEXT=.class
+ASMEXT=.j
+SHAREDLIBEXT=.jar
+SHORTSUFFIX=android
+endif
+endif
+ifeq ($(OS_TARGET),msdos)
+STATICLIBPREFIX=
+STATICLIBEXT=.a
+SHORTSUFFIX=d16
+endif
+ifeq ($(OS_TARGET),embedded)
+ifeq ($(CPU_TARGET),i8086)
+STATICLIBPREFIX=
+STATICLIBEXT=.a
+else
+EXEEXT=.bin
+endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
+SHORTSUFFIX=emb
+endif
+ifeq ($(OS_TARGET),win16)
+STATICLIBPREFIX=
+STATICLIBEXT=.a
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=w16
+endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade.$(SHORTSUFFIX)
+ZIPSUFFIX=$(SHORTSUFFIX)
+ZIPCROSSPREFIX=
+ZIPSOURCESUFFIX=src
+ZIPEXAMPLESUFFIX=exm
+else
+FPCMADE=fpcmade.$(TARGETSUFFIX)
+ZIPSOURCESUFFIX=.source
+ZIPEXAMPLESUFFIX=.examples
+ifdef CROSSCOMPILE
+ZIPSUFFIX=.$(SOURCESUFFIX)
+ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+else
+ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPCROSSPREFIX=
+endif
+endif
+ifndef ECHO
+ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO= __missing_command_ECHO
+else
+ECHO:=$(firstword $(ECHO))
+endif
+else
+ECHO:=$(firstword $(ECHO))
+endif
+endif
+export ECHO
+ifndef DATE
+DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(DATE),)
+DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(DATE),)
+DATE= __missing_command_DATE
+else
+DATE:=$(firstword $(DATE))
+endif
+else
+DATE:=$(firstword $(DATE))
+endif
+endif
+export DATE
+ifndef GINSTALL
+GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(GINSTALL),)
+GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(GINSTALL),)
+GINSTALL= __missing_command_GINSTALL
+else
+GINSTALL:=$(firstword $(GINSTALL))
+endif
+else
+GINSTALL:=$(firstword $(GINSTALL))
+endif
+endif
+export GINSTALL
+ifndef CPPROG
+CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(CPPROG),)
+CPPROG= __missing_command_CPPROG
+else
+CPPROG:=$(firstword $(CPPROG))
+endif
+endif
+export CPPROG
+ifndef RMPROG
+RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(RMPROG),)
+RMPROG= __missing_command_RMPROG
+else
+RMPROG:=$(firstword $(RMPROG))
+endif
+endif
+export RMPROG
+ifndef MVPROG
+MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MVPROG),)
+MVPROG= __missing_command_MVPROG
+else
+MVPROG:=$(firstword $(MVPROG))
+endif
+endif
+export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command_MKDIRPROG
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
+ifndef ECHOREDIR
+ifndef inUnix
+ECHOREDIR=echo
+else
+ECHOREDIR=$(ECHO)
+endif
+endif
+ifndef COPY
+COPY:=$(CPPROG) -fp
+endif
+ifndef COPYTREE
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
+endif
+ifndef MOVE
+MOVE:=$(MVPROG) -f
+endif
+ifndef DEL
+DEL:=$(RMPROG) -f
+endif
+ifndef DELTREE
+DELTREE:=$(RMPROG) -rf
+endif
+ifndef INSTALL
+ifdef inUnix
+INSTALL:=$(GINSTALL) -c -m 644
+else
+INSTALL:=$(COPY)
+endif
+endif
+ifndef INSTALLEXE
+ifdef inUnix
+INSTALLEXE:=$(GINSTALL) -c -m 755
+else
+INSTALLEXE:=$(COPY)
+endif
+endif
+ifndef MKDIR
+MKDIR:=$(GINSTALL) -m 755 -d
+endif
+export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
+ifndef PPUMOVE
+PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUMOVE),)
+PPUMOVE= __missing_command_PPUMOVE
+else
+PPUMOVE:=$(firstword $(PPUMOVE))
+endif
+endif
+export PPUMOVE
+ifndef FPCMAKE
+FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(FPCMAKE),)
+FPCMAKE= __missing_command_FPCMAKE
+else
+FPCMAKE:=$(firstword $(FPCMAKE))
+endif
+endif
+export FPCMAKE
+ifndef ZIPPROG
+ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ZIPPROG),)
+ZIPPROG= __missing_command_ZIPPROG
+else
+ZIPPROG:=$(firstword $(ZIPPROG))
+endif
+endif
+export ZIPPROG
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG= __missing_command_TARPROG
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+ASNAME=$(BINUTILSPREFIX)as
+LDNAME=$(BINUTILSPREFIX)ld
+ARNAME=$(BINUTILSPREFIX)ar
+RCNAME=$(BINUTILSPREFIX)rc
+NASMNAME=$(BINUTILSPREFIX)nasm
+ifndef ASPROG
+ifdef CROSSBINDIR
+ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
+else
+ASPROG=$(ASNAME)
+endif
+endif
+ifndef LDPROG
+ifdef CROSSBINDIR
+LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
+else
+LDPROG=$(LDNAME)
+endif
+endif
+ifndef RCPROG
+ifdef CROSSBINDIR
+RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
+else
+RCPROG=$(RCNAME)
+endif
+endif
+ifndef ARPROG
+ifdef CROSSBINDIR
+ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
+else
+ARPROG=$(ARNAME)
+endif
+endif
+ifndef NASMPROG
+ifdef CROSSBINDIR
+NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT)
+else
+NASMPROG=$(NASMNAME)
+endif
+endif
+AS=$(ASPROG)
+LD=$(LDPROG)
+RC=$(RCPROG)
+AR=$(ARPROG)
+NASM=$(NASMPROG)
+ifdef inUnix
+PPAS=./ppas$(SRCBATCHEXT)
+else
+PPAS=ppas$(SRCBATCHEXT)
+endif
+ifdef inUnix
+LDCONFIG=ldconfig
+else
+LDCONFIG=
+endif
+ifdef DATE
+DATESTR:=$(shell $(DATE) +%Y%m%d)
+else
+DATESTR=
+endif
+ZIPOPT=-9
+ZIPEXT=.zip
+ifeq ($(USETAR),bz2)
+TAROPT=vj
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
+endif
+ifndef NOCPUDEF
+override FPCOPTDEF=$(ARCH)
+endif
+ifneq ($(OS_TARGET),$(OS_SOURCE))
+override FPCOPT+=-T$(OS_TARGET)
+endif
+ifneq ($(CPU_TARGET),$(CPU_SOURCE))
+override FPCOPT+=-P$(ARCH)
+endif
+ifeq ($(OS_SOURCE),openbsd)
+override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
+override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
+override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)
+endif
+ifndef CROSSBOOTSTRAP
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-XP$(BINUTILSPREFIX)
+endif
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-Xr$(RLINKPATH)
+endif
+endif
+ifndef CROSSCOMPILE
+ifneq ($(BINUTILSPREFIX),)
+override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
+override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)
+endif
+endif
+ifdef UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
+endif
+ifdef LIBDIR
+override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
+endif
+ifdef OBJDIR
+override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
+endif
+ifdef INCDIR
+override FPCOPT+=$(addprefix -Fi,$(INCDIR))
+endif
+ifdef LINKSMART
+override FPCOPT+=-XX
+endif
+ifdef CREATESMART
+override FPCOPT+=-CX
+endif
+ifdef DEBUG
+override FPCOPT+=-gl
+override FPCOPTDEF+=DEBUG
+endif
+ifdef RELEASE
+FPCCPUOPT:=-O2
+override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
+override FPCOPTDEF+=RELEASE
+endif
+ifdef STRIP
+override FPCOPT+=-Xs
+endif
+ifdef OPTIMIZE
+override FPCOPT+=-O2
+endif
+ifdef VERBOSE
+override FPCOPT+=-vwni
+endif
+ifdef COMPILER_OPTIONS
+override FPCOPT+=$(COMPILER_OPTIONS)
+endif
+ifdef COMPILER_UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
+endif
+ifdef COMPILER_LIBRARYDIR
+override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
+endif
+ifdef COMPILER_OBJECTDIR
+override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
+endif
+ifdef COMPILER_INCLUDEDIR
+override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
+endif
+ifdef CROSSBINDIR
+override FPCOPT+=-FD$(CROSSBINDIR)
+endif
+ifdef COMPILER_TARGETDIR
+override FPCOPT+=-FE$(COMPILER_TARGETDIR)
+ifeq ($(COMPILER_TARGETDIR),.)
+override TARGETDIRPREFIX=
+else
+override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
+endif
+endif
+ifdef COMPILER_UNITTARGETDIR
+override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
+ifeq ($(COMPILER_UNITTARGETDIR),.)
+override UNITTARGETDIRPREFIX=
+else
+override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
+endif
+else
+ifdef COMPILER_TARGETDIR
+override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
+override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
+endif
+endif
+ifdef CREATESHARED
+override FPCOPT+=-Cg
+endif
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef GCCLIBDIR
+override FPCOPT+=-Fl$(GCCLIBDIR)
+override FPCMAKEOPT+=-Fl$(GCCLIBDIR)
+endif
+ifdef OTHERLIBDIR
+override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+endif
+ifdef FPMAKEBUILDOPT
+override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)
+endif
+ifdef FPCOPTDEF
+override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
+endif
+ifdef CFGFILE
+override FPCOPT+=@$(CFGFILE)
+endif
+ifdef USEENV
+override FPCEXTCMD:=$(FPCOPT)
+override FPCOPT:=!FPCEXTCMD
+export FPCEXTCMD
+endif
+override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
+override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
+override ACROSSCOMPILE=1
+endif
+ifdef ACROSSCOMPILE
+override FPCOPT+=$(CROSSOPT)
+endif
+override COMPILER:=$(strip $(FPC) $(FPCOPT))
+ifneq (,$(findstring -sh ,$(COMPILER)))
+UseEXECPPAS=1
+endif
+ifneq (,$(findstring -s ,$(COMPILER)))
+ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+UseEXECPPAS=1
+endif
+endif
+ifneq ($(UseEXECPPAS),1)
+EXECPPAS=
+else
+ifdef RUNBATCH
+EXECPPAS:=@$(RUNBATCH) $(PPAS)
+else
+EXECPPAS:=@$(PPAS)
+endif
+endif
+.PHONY: fpc_loaders
+ifneq ($(TARGET_LOADERS),)
+override ALLTARGET+=fpc_loaders
+override CLEANTARGET+=fpc_loaders_clean
+override INSTALLTARGET+=fpc_loaders_install
+override LOADEROFILES:=$(addsuffix $(OEXT),$(TARGET_LOADERS))
+endif
+%$(OEXT): %$(LOADEREXT)
+ifdef COMPILER_UNITTARGETDIR
+ $(AS) -o $(COMPILER_UNITTARGETDIR)/$*$(OEXT) $<
+else
+ $(AS) -o $*$(OEXT) $<
+endif
+fpc_loaders: $(COMPILER_UNITTARGETDIR) $(LOADEROFILES)
+fpc_loaders_clean:
+ifdef COMPILER_UNITTARGETDIR
+ -$(DEL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFILES))
+else
+ -$(DEL) $(LOADEROFILES)
+endif
+fpc_loaders_install:
+ $(MKDIR) $(INSTALL_UNITDIR)
+ifdef COMPILER_UNITTARGETDIR
+ $(INSTALL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFILES)) $(INSTALL_UNITDIR)
+else
+ $(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
+endif
+.PHONY: fpc_units
+ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
+override ALLTARGET+=fpc_units
+override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
+override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
+override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
+override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
+endif
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
+ifdef TARGET_RSTS
+override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
+override CLEANRSTFILES+=$(RSTFILES)
+endif
+.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
+$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
+ @$(ECHOREDIR) Compiled > $(FPCMADE)
+fpc_all: $(FPCMADE)
+fpc_smart:
+ $(MAKE) all LINKSMART=1 CREATESMART=1
+fpc_debug:
+ $(MAKE) all DEBUG=1
+fpc_release:
+ $(MAKE) all RELEASE=1
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) $(LTOEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+ $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+ $(MKDIRTREE) $(COMPILER_TARGETDIR)
+%$(PPUEXT): %.pp
+ $(COMPILER) $<
+ $(EXECPPAS)
+%$(PPUEXT): %.pas
+ $(COMPILER) $<
+ $(EXECPPAS)
+%$(EXEEXT): %.pp
+ $(COMPILER) $<
+ $(EXECPPAS)
+%$(EXEEXT): %.pas
+ $(COMPILER) $<
+ $(EXECPPAS)
+%$(EXEEXT): %.lpr
+ $(COMPILER) $<
+ $(EXECPPAS)
+%$(EXEEXT): %.dpr
+ $(COMPILER) $<
+ $(EXECPPAS)
+%.res: %.rc
+ windres -i $< -o $@
+vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.inc $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
+vpath %$(LTOEXT) $(COMPILER_UNITTARGETDIR)
+vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
+.PHONY: fpc_shared
+override INSTALLTARGET+=fpc_shared_install
+ifndef SHARED_LIBVERSION
+SHARED_LIBVERSION=$(FPC_VERSION)
+endif
+ifndef SHARED_LIBNAME
+SHARED_LIBNAME=$(PACKAGE_NAME)
+endif
+ifndef SHARED_FULLNAME
+SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
+endif
+ifndef SHARED_LIBUNITS
+SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
+override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
+endif
+fpc_shared:
+ifdef HASSHAREDLIB
+ $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
+ifneq ($(SHARED_BUILD),n)
+ $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR) -P$(BINUTILSPREFIX)
+endif
+else
+ @$(ECHO) Shared Libraries not supported
+endif
+fpc_shared_install:
+ifneq ($(SHARED_BUILD),n)
+ifneq ($(SHARED_LIBUNITS),)
+ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
+ $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
+endif
+endif
+endif
+.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
+ifdef INSTALL_UNITS
+override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
+endif
+ifdef INSTALL_BUILDUNIT
+override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
+endif
+ifdef INSTALLPPUFILES
+ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICLIBEXT))
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+else
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+endif
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILENAMES:=$(notdir $(INSTALLPPUFILES))
+override INSTALLPPULINKFILENAMES:=$(notdir $(INSTALLPPULINKFILES))
+override INSTALLPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILENAMES))
+override INSTALLPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILENAMES)))
+endif
+override INSTALL_CREATEPACKAGEFPC=1
+endif
+ifdef INSTALLEXEFILES
+ifneq ($(TARGETDIRPREFIX),)
+override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
+endif
+endif
+fpc_install: all $(INSTALLTARGET)
+ifdef INSTALLEXEFILES
+ $(MKDIR) $(INSTALL_BINDIR)
+ $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
+endif
+ifdef INSTALL_CREATEPACKAGEFPC
+ifdef FPCMAKE
+ifdef PACKAGE_VERSION
+ifneq ($(wildcard Makefile.fpc),)
+ $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
+ $(MKDIR) $(INSTALL_UNITDIR)
+ $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
+endif
+endif
+endif
+endif
+ifdef INSTALLPPUFILES
+ $(MKDIR) $(INSTALL_UNITDIR)
+ $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
+ifneq ($(INSTALLPPULINKFILES),)
+ $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
+endif
+ifneq ($(wildcard $(LIB_FULLNAME)),)
+ $(MKDIR) $(INSTALL_LIBDIR)
+ $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
+ifdef inUnix
+ ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
+endif
+endif
+endif
+ifdef INSTALL_FILES
+ $(MKDIR) $(INSTALL_DATADIR)
+ $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
+endif
+fpc_sourceinstall: distclean
+ $(MKDIR) $(INSTALL_SOURCEDIR)
+ $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
+fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
+ifdef HASEXAMPLES
+ $(MKDIR) $(INSTALL_EXAMPLEDIR)
+endif
+ifdef EXAMPLESOURCEFILES
+ $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
+endif
+ifdef TARGET_EXAMPLEDIRS
+ $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
+endif
+.PHONY: fpc_clean fpc_cleanall fpc_distclean
+ifdef EXEFILES
+override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
+override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
+endif
+ifdef CLEAN_PROGRAMS
+override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
+override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
+endif
+ifdef CLEAN_UNITS
+override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
+endif
+ifdef CLEANPPUFILES
+override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILENAMES:=$(CLEANPPUFILES)
+override CLEANPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILENAMES))
+override CLEANPPULINKFILENAMES:=$(CLEANPPULINKFILES)
+override CLEANPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILENAMES)))
+endif
+fpc_clean: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+ -$(DEL) $(CLEANEXEFILES)
+endif
+ifdef CLEANEXEDBGFILES
+ -$(DELTREE) $(CLEANEXEDBGFILES)
+endif
+ifdef CLEANPPUFILES
+ -$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+ -$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+ -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+ifdef CLEAN_FILES
+ -$(DEL) $(CLEAN_FILES)
+endif
+ifdef LIB_NAME
+ -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
+endif
+ -$(DEL) $(FPCMADE) *$(FULL_TARGET).fpm Package.fpc *$(ASMEXT)
+ -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
+ -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
+fpc_cleanall: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+ -$(DEL) $(CLEANEXEFILES)
+endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+ -$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+ -$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+ -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+ifdef CLEAN_FILES
+ -$(DEL) $(CLEAN_FILES)
+endif
+ -$(DELTREE) units
+ -$(DELTREE) bin
+ -$(DEL) *$(OEXT) *$(LTOEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc *.fpm
+ -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
+ -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+endif
+ifdef LOCALFPMAKEBIN
+ -$(DEL) $(LOCALFPMAKEBIN)
+ -$(DEL) $(FPMAKEBINOBJ)
+endif
+fpc_distclean: cleanall
+.PHONY: fpc_baseinfo
+override INFORULES+=fpc_baseinfo
+fpc_baseinfo:
+ @$(ECHO)
+ @$(ECHO) == Package info ==
+ @$(ECHO) Package Name..... $(PACKAGE_NAME)
+ @$(ECHO) Package Version.. $(PACKAGE_VERSION)
+ @$(ECHO)
+ @$(ECHO) == Configuration info ==
+ @$(ECHO)
+ @$(ECHO) FPC.......... $(FPC)
+ @$(ECHO) FPC Version.. $(FPC_VERSION)
+ @$(ECHO) Source CPU... $(CPU_SOURCE)
+ @$(ECHO) Target CPU... $(CPU_TARGET)
+ @$(ECHO) Source OS.... $(OS_SOURCE)
+ @$(ECHO) Target OS.... $(OS_TARGET)
+ @$(ECHO) Full Source.. $(FULL_SOURCE)
+ @$(ECHO) Full Target.. $(FULL_TARGET)
+ @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
+ @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
+ @$(ECHO) FPC fpmake... $(FPCFPMAKE)
+ @$(ECHO)
+ @$(ECHO) == Directory info ==
+ @$(ECHO)
+ @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
+ @$(ECHO)
+ @$(ECHO) Basedir......... $(BASEDIR)
+ @$(ECHO) FPCDir.......... $(FPCDIR)
+ @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
+ @$(ECHO) UnitsDir........ $(UNITSDIR)
+ @$(ECHO) PackagesDir..... $(PACKAGESDIR)
+ @$(ECHO)
+ @$(ECHO) GCC library..... $(GCCLIBDIR)
+ @$(ECHO) Other library... $(OTHERLIBDIR)
+ @$(ECHO)
+ @$(ECHO) == Tools info ==
+ @$(ECHO)
+ @$(ECHO) As........ $(AS)
+ @$(ECHO) Ld........ $(LD)
+ @$(ECHO) Ar........ $(AR)
+ @$(ECHO) Rc........ $(RC)
+ @$(ECHO)
+ @$(ECHO) Mv........ $(MVPROG)
+ @$(ECHO) Cp........ $(CPPROG)
+ @$(ECHO) Rm........ $(RMPROG)
+ @$(ECHO) GInstall.. $(GINSTALL)
+ @$(ECHO) Echo...... $(ECHO)
+ @$(ECHO) Shell..... $(SHELL)
+ @$(ECHO) Date...... $(DATE)
+ @$(ECHO) FPCMake... $(FPCMAKE)
+ @$(ECHO) PPUMove... $(PPUMOVE)
+ @$(ECHO) Zip....... $(ZIPPROG)
+ @$(ECHO)
+ @$(ECHO) == Object info ==
+ @$(ECHO)
+ @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
+ @$(ECHO) Target Units.......... $(TARGET_UNITS)
+ @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
+ @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
+ @$(ECHO) Target Dirs........... $(TARGET_DIRS)
+ @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
+ @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
+ @$(ECHO)
+ @$(ECHO) Clean Units......... $(CLEAN_UNITS)
+ @$(ECHO) Clean Files......... $(CLEAN_FILES)
+ @$(ECHO)
+ @$(ECHO) Install Units....... $(INSTALL_UNITS)
+ @$(ECHO) Install Files....... $(INSTALL_FILES)
+ @$(ECHO)
+ @$(ECHO) == Install info ==
+ @$(ECHO)
+ @$(ECHO) DateStr.............. $(DATESTR)
+ @$(ECHO) ZipName.............. $(ZIPNAME)
+ @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
+ @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
+ @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
+ @$(ECHO) FullZipName.......... $(FULLZIPNAME)
+ @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
+ @$(ECHO)
+ @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
+ @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
+ @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
+ @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
+ @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
+ @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
+ @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
+ @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
+ @$(ECHO)
+ @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
+ @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
+ @$(ECHO)
+.PHONY: fpc_info
+fpc_info: $(INFORULES)
+.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
+ fpc_makefile_dirs
+fpc_makefile:
+ $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
+fpc_makefile_sub1:
+ifdef TARGET_DIRS
+ $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
+endif
+ifdef TARGET_EXAMPLEDIRS
+ $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
+endif
+fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
+fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
+fpc_makefiles: fpc_makefile fpc_makefile_dirs
+all: fpc_all
+debug: fpc_debug
+smart: fpc_smart
+release: fpc_release
+units: fpc_units
+examples:
+shared: fpc_shared
+install: fpc_install
+sourceinstall: fpc_sourceinstall
+exampleinstall: fpc_exampleinstall
+distinstall:
+zipinstall:
+zipsourceinstall:
+zipexampleinstall:
+zipdistinstall:
+clean: fpc_clean
+distclean: fpc_distclean
+cleanall: fpc_cleanall
+info: fpc_info
+makefiles: fpc_makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+ifneq ($(wildcard fpcmake.loc),)
+include fpcmake.loc
+endif
+include $(INC)/makefile.inc
+SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
+include $(PROCINC)/makefile.cpu
+SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
+SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
+prt0$(OEXT) : prt0.asm
+ $(MAKE) $(COMPILER_UNITTARGETDIR)
+ sdcc-sdasz80 -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) prt0.asm
+system$(PPUEXT) : system.pp $(SYSDEPS)
+ $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg system.pp
+ $(EXECPPAS)
diff --git a/rtl/zxspectrum/Makefile.fpc b/rtl/zxspectrum/Makefile.fpc
new file mode 100644
index 0000000000..b0f615b339
--- /dev/null
+++ b/rtl/zxspectrum/Makefile.fpc
@@ -0,0 +1,64 @@
+#
+# Makefile.fpc for ZX Spectrum RTL
+#
+[package]
+main=rtl
+[target]
+loaders=prt0
+units=system
+
+[require]
+nortl=y
+[install]
+fpcpackage=y
+[default]
+fpcdir=../..
+target=zxspectrum
+cpu=z80
+[compiler]
+includedir=$(INC) $(PROCINC)
+sourcedir=$(INC) $(PROCINC) $(COMMON)
+[prerules]
+RTL=..
+INC=../inc
+COMMON=$(RTL)/common
+PROCINC=../$(CPU_TARGET)
+UNITPREFIX=rtl
+SYSTEMUNIT=system
+
+# Paths
+OBJPASDIR=$(RTL)/objpas
+# Insert exception handler in system unit
+ifdef EXCEPTIONS_IN_SYSTEM
+override FPCOPT+=-dEXCEPTIONS_IN_SYSTEM
+endif
+# Insert exception handler in system unit
+ifdef NO_EXCEPTIONS_IN_SYSTEM
+override FPCOPT+=-dNO_EXCEPTIONS_IN_SYSTEM
+endif
+[rules]
+# Get the system independent include file names.
+# This will set the following variables :
+# SYSINCNAMES
+include $(INC)/makefile.inc
+SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
+# Get the processor dependent include file names.
+# This will set the following variables :
+# CPUINCNAMES
+include $(PROCINC)/makefile.cpu
+SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
+# Put system unit dependencies together.
+SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
+#
+# Loaders
+#
+
+prt0$(OEXT) : prt0.asm
+ $(MAKE) $(COMPILER_UNITTARGETDIR)
+ sdcc-sdasz80 -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) prt0.asm
+#
+# System Units (System, Objpas, Strings)
+#
+system$(PPUEXT) : system.pp $(SYSDEPS)
+ $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg system.pp
+ $(EXECPPAS)
diff --git a/rtl/zxspectrum/prt0.asm b/rtl/zxspectrum/prt0.asm
new file mode 100644
index 0000000000..74adf9b0c3
--- /dev/null
+++ b/rtl/zxspectrum/prt0.asm
@@ -0,0 +1,10 @@
+ .area _CODE
+ .globl PASCALMAIN
+ .globl FPC_SAVE_IY
+ .globl __fpc_stackarea_start
+ .globl __fpc_stackarea_end
+
+start::
+ ld sp, #__fpc_stackarea_end
+ ld (FPC_SAVE_IY), iy
+ jp PASCALMAIN
diff --git a/rtl/zxspectrum/rtldefs.inc b/rtl/zxspectrum/rtldefs.inc
new file mode 100644
index 0000000000..3376428f5e
--- /dev/null
+++ b/rtl/zxspectrum/rtldefs.inc
@@ -0,0 +1,24 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2012 by Free Pascal development team
+
+ This file contains platform-specific defines that are used in
+ multiple RTL units.
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{ the single byte OS APIs always use UTF-8 }
+{ define FPCRTL_FILESYSTEM_UTF8}
+
+{ The OS supports a single byte file system operations API that we use }
+{$define FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
+
+{ The OS supports a two byte file system operations API that we use }
+{ define FPCRTL_FILESYSTEM_TWO_BYTE_API}
diff --git a/rtl/zxspectrum/sysdir.inc b/rtl/zxspectrum/sysdir.inc
new file mode 100644
index 0000000000..1d04169f45
--- /dev/null
+++ b/rtl/zxspectrum/sysdir.inc
@@ -0,0 +1,35 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2000 by Florian Klaempfl and Pavel Ozerski
+ member of the Free Pascal development team.
+
+ FPC Pascal system unit for the Win32 API.
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{*****************************************************************************
+ Directory Handling
+*****************************************************************************}
+
+Procedure do_MkDir(const s: rawbytestring);
+begin
+end;
+
+Procedure do_RmDir(const s: rawbytestring);
+begin
+end;
+
+Procedure do_ChDir(const s: rawbytestring);
+begin
+end;
+
+procedure do_GetDir (DriveNr: byte; var Dir: RawByteString);
+begin
+end;
diff --git a/rtl/zxspectrum/sysfile.inc b/rtl/zxspectrum/sysfile.inc
new file mode 100644
index 0000000000..4475c32639
--- /dev/null
+++ b/rtl/zxspectrum/sysfile.inc
@@ -0,0 +1,108 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2001 by Free Pascal development team
+
+ Low leve file functions
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+
+{****************************************************************************
+ Low level File Routines
+ ****************************************************************************}
+
+procedure do_close(handle : thandle);
+begin
+end;
+
+
+procedure do_erase(p : pchar; pchangeable: boolean);
+begin
+end;
+
+
+procedure do_rename(p1,p2 : pchar; p1changeable, p2changeable: boolean);
+begin
+end;
+
+
+function do_write(h:thandle;addr:pointer;len : longint) : longint;
+begin
+ do_write:=len;
+ while len>0 do
+ begin
+ PrintChar(PChar(addr)^);
+ Inc(addr);
+ Dec(len);
+ end;
+end;
+
+
+function do_read(h:thandle;addr:pointer;len : longint) : longint;
+var
+ ch: Char;
+begin
+ do_read:=0;
+ while len>0 do
+ begin
+ ch:=ReadKey;
+ PrintChar(ch);
+ PChar(addr)^:=ch;
+ Inc(addr);
+ Inc(do_read);
+ Dec(len);
+ if ch=#13 then
+ break;
+ end;
+end;
+
+
+function do_filepos(handle : thandle) : longint;
+begin
+end;
+
+
+procedure do_seek(handle:thandle;pos : longint);
+begin
+end;
+
+
+
+function do_seekend(handle:thandle):longint;
+begin
+end;
+
+
+function do_filesize(handle : thandle) : longint;
+begin
+end;
+
+
+{ truncate at a given position }
+procedure do_truncate (handle:thandle;pos:longint);
+begin
+end;
+
+procedure do_open(var f;p:pchar;flags:longint; pchangeable: boolean);
+{
+ filerec and textrec have both handle and mode as the first items so
+ they could use the same routine for opening/creating.
+ when (flags and $100) the file will be append
+ when (flags and $1000) the file will be truncate/rewritten
+ when (flags and $10000) there is no check for close (needed for textfiles)
+}
+begin
+end;
+
+
+function do_isdevice(handle:THandle):boolean;
+begin
+ do_isdevice:=true;
+end;
diff --git a/rtl/zxspectrum/sysheap.inc b/rtl/zxspectrum/sysheap.inc
new file mode 100644
index 0000000000..5d2e097257
--- /dev/null
+++ b/rtl/zxspectrum/sysheap.inc
@@ -0,0 +1,26 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2005 by Free Pascal development team
+
+ Low level memory functions
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{*****************************************************************************
+ Heap Management
+*****************************************************************************}
+
+function SysOSAlloc (size: ptruint): pointer;
+begin
+end;
+
+procedure SysOSFree(p: pointer; size: ptruint);
+begin
+end;
diff --git a/rtl/zxspectrum/sysos.inc b/rtl/zxspectrum/sysos.inc
new file mode 100644
index 0000000000..c9975bebcc
--- /dev/null
+++ b/rtl/zxspectrum/sysos.inc
@@ -0,0 +1,34 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2013 by Free Pascal development team
+
+ This file implements all the base types and limits required
+ for a minimal POSIX compliant subset required to port the compiler
+ to a new OS.
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{procedure GetInOutRes(def: Word);
+var
+ regs : Registers;
+begin
+ regs.AX:=$5900;
+ regs.BX:=$0;
+ MsDos(regs);
+ InOutRes:=regs.AX;
+ case InOutRes of
+ 19 : InOutRes:=150;
+ 21 : InOutRes:=152;
+ 32 : InOutRes:=5;
+ end;
+ if InOutRes=0 then
+ InOutRes:=Def;
+end;}
+
diff --git a/rtl/zxspectrum/sysosh.inc b/rtl/zxspectrum/sysosh.inc
new file mode 100644
index 0000000000..63b56082e2
--- /dev/null
+++ b/rtl/zxspectrum/sysosh.inc
@@ -0,0 +1,27 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2013 by Free Pascal development team
+
+ This file implements all the base types and limits required
+ for a minimal POSIX compliant subset required to port the compiler
+ to a new OS.
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{Platform specific information}
+type
+ THandle = Word;
+ TThreadID = THandle;
+ TOSTimestamp = LongInt;
+
+ PRTLCriticalSection = ^TRTLCriticalSection;
+ TRTLCriticalSection = record
+ Locked: boolean
+ end;
diff --git a/rtl/zxspectrum/system.pp b/rtl/zxspectrum/system.pp
new file mode 100644
index 0000000000..ef4fb8e46b
--- /dev/null
+++ b/rtl/zxspectrum/system.pp
@@ -0,0 +1,303 @@
+unit system;
+
+interface
+
+{$define FPC_IS_SYSTEM}
+
+{ The heap for ZX Spectrum is implemented
+ in tinyheap.inc include file,
+ but it uses default SysGetMem names }
+
+{$define HAS_MEMORYMANAGER}
+
+{ Use Ansi Char for files }
+{$define FPC_ANSI_TEXTFILEREC}
+{$define FPC_STDOUT_TRUE_ALIAS}
+
+{$I systemh.inc}
+{$I tnyheaph.inc}
+
+{$ifndef FPUNONE}
+{$ifdef FPC_HAS_FEATURE_SOFTFPU}
+
+{$define fpc_softfpu_interface}
+{$i softfpu.pp}
+{$undef fpc_softfpu_interface}
+
+{$endif FPC_HAS_FEATURE_SOFTFPU}
+
+{$endif FPUNONE}
+
+var
+{ Mem[] support }
+ mem : array[0..$7fff-1] of byte absolute $0;
+{ memw : array[0..($7fff div sizeof(word))-1] of word absolute $0:$0;
+ meml : array[0..($7fff div sizeof(longint))-1] of longint absolute $0:$0;}
+
+{ OpenChannel(2) opens the upper screen
+ OpenChannel(1) opens the lower screen
+ OpenChannel(3) opens the ZX Printer }
+procedure OpenChannel(Chan: Byte);
+procedure PrintChar(Ch: Char);
+procedure PrintLn;
+procedure PrintShortString(const s: ShortString);
+procedure PrintHexDigit(const d: byte);
+procedure PrintHexByte(const b: byte);
+procedure PrintHexWord(const w: word);
+procedure Ink(colour: Byte);
+procedure Paper(colour: Byte);
+procedure GotoXY(X, Y: Byte);
+function ReadKey: Char;
+function KeyPressed: Boolean;
+
+implementation
+
+const
+ LineEnding = #13;
+ { LFNSupport is a variable here, defined below!!! }
+ DirectorySeparator = '\';
+ DriveSeparator = ':';
+ ExtensionSeparator = '.';
+ PathSeparator = ';';
+ AllowDirectorySeparators : set of char = ['\','/'];
+ AllowDriveSeparators : set of char = [':'];
+ { FileNameCaseSensitive and FileNameCasePreserving are defined separately below!!! }
+ maxExitCode = 255;
+ MaxPathLen = 256;
+
+{ Default filehandles }
+ UnusedHandle = $ffff;{ instead of -1, as it is a word value}
+ StdInputHandle = 0;
+ StdOutputHandle = 1;
+ StdErrorHandle = 2;
+
+ FileNameCaseSensitive : boolean = false;
+ FileNameCasePreserving: boolean = false;
+ CtrlZMarksEOF: boolean = true; (* #26 is considered as end of file *)
+
+ sLineBreak = LineEnding;
+ DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCR;
+
+var
+ __heapsize: Word;external name '__heapsize';
+ __fpc_initialheap: array[0..0] of byte;external name '__fpc_initialheap';
+
+{$I system.inc}
+{$I tinyheap.inc}
+
+{$ifndef FPUNONE}
+{$ifdef FPC_HAS_FEATURE_SOFTFPU}
+
+{$define fpc_softfpu_implementation}
+{$i softfpu.pp}
+{$undef fpc_softfpu_implementation}
+
+{ we get these functions and types from the softfpu code }
+{$define FPC_SYSTEM_HAS_float64}
+{$define FPC_SYSTEM_HAS_float32}
+{$define FPC_SYSTEM_HAS_flag}
+{$define FPC_SYSTEM_HAS_extractFloat64Frac0}
+{$define FPC_SYSTEM_HAS_extractFloat64Frac1}
+{$define FPC_SYSTEM_HAS_extractFloat64Exp}
+{$define FPC_SYSTEM_HAS_extractFloat64Frac}
+{$define FPC_SYSTEM_HAS_extractFloat64Sign}
+{$define FPC_SYSTEM_HAS_ExtractFloat32Frac}
+{$define FPC_SYSTEM_HAS_extractFloat32Exp}
+{$define FPC_SYSTEM_HAS_extractFloat32Sign}
+
+{$endif FPC_HAS_FEATURE_SOFTFPU}
+{$endif FPUNONE}
+
+procedure randomize;
+begin
+end;
+
+function GetProcessID: SizeUInt;
+begin
+ GetProcessID:=0;
+end;
+
+function CheckInitialStkLen(stklen : SizeUInt) : SizeUInt;
+begin
+ result := stklen;
+end;
+
+procedure system_exit;
+begin
+ repeat
+ until false;
+end;
+
+var
+ save_iy: Word; public name 'FPC_SAVE_IY';
+ LastKey: Char absolute 23560;
+
+function ReadKey: Char;
+begin
+ repeat
+ ReadKey:=LastKey;
+ until ReadKey<>#0;
+ LastKey:=#0;
+end;
+
+function KeyPressed: Boolean;
+begin
+ KeyPressed:=LastKey<>#0;
+end;
+
+procedure OpenChannel(Chan: Byte);
+begin
+ asm
+ ld iy,(save_iy)
+ ld a, (Chan)
+ push ix
+ call 5633
+ pop ix
+ ld (save_iy),iy
+ end;
+end;
+
+procedure PrintChar(Ch: Char);
+begin
+ asm
+ ld iy,(save_iy)
+ ld a, (Ch)
+ push ix
+ rst 16
+ pop ix
+ ld (save_iy),iy
+ end;
+end;
+
+procedure PrintLn;
+begin
+ PrintChar(#13);
+end;
+
+procedure PrintHexDigit(const d: byte);
+begin
+ { the code generator is still to broken to compile this, so we do it in a stupid way }
+{ if (d >= 0) or (d <= 9) then
+ PrintChar(Char(d + Ord('0')))
+ else if (d >= 10) and (d <= 15) then
+ PrintChar(Char(d + (Ord('A') - 10)));}
+ if d=0 then
+ PrintChar('0')
+ else if d=1 then
+ PrintChar('1')
+ else if d=2 then
+ PrintChar('2')
+ else if d=3 then
+ PrintChar('3')
+ else if d=4 then
+ PrintChar('4')
+ else if d=5 then
+ PrintChar('5')
+ else if d=6 then
+ PrintChar('6')
+ else if d=7 then
+ PrintChar('7')
+ else if d=8 then
+ PrintChar('8')
+ else if d=9 then
+ PrintChar('9')
+ else if d=10 then
+ PrintChar('A')
+ else if d=11 then
+ PrintChar('B')
+ else if d=12 then
+ PrintChar('C')
+ else if d=13 then
+ PrintChar('D')
+ else if d=14 then
+ PrintChar('E')
+ else if d=15 then
+ PrintChar('F')
+ else
+ PrintChar('?');
+end;
+
+procedure PrintHexByte(const b: byte);
+begin
+ PrintHexDigit(b shr 4);
+ PrintHexDigit(b and $F);
+end;
+
+procedure PrintHexWord(const w: word);
+begin
+ PrintHexByte(Byte(w shr 8));
+ PrintHexByte(Byte(w));
+end;
+
+procedure Ink(colour: Byte);
+begin
+ PrintChar(#16);
+ PrintChar(Char(colour));
+end;
+
+procedure Paper(colour: Byte);
+begin
+ PrintChar(#17);
+ PrintChar(Char(colour));
+end;
+
+procedure GotoXY(X, Y: Byte);
+begin
+ PrintChar(#22);
+ PrintChar(Char(X-1));
+ PrintChar(Char(Y-1));
+end;
+
+procedure PrintShortString(const s: ShortString);
+var
+ i: byte;
+begin
+ for i:=1 to length(s) do
+ PrintChar(s[i]);
+end;
+
+{*****************************************************************************
+ SystemUnit Initialization
+*****************************************************************************}
+
+procedure InitZXHeap;
+begin
+ RegisterTinyHeapBlock_Simple_Prealigned(@__fpc_initialheap,__heapsize);
+end;
+
+procedure SysInitStdIO;
+begin
+ OpenStdIO(Input,fmInput,StdInputHandle);
+ OpenStdIO(Output,fmOutput,StdOutputHandle);
+ OpenStdIO(ErrOutput,fmOutput,StdErrorHandle);
+{$ifndef FPC_STDOUT_TRUE_ALIAS}
+ OpenStdIO(StdOut,fmOutput,StdOutputHandle);
+ OpenStdIO(StdErr,fmOutput,StdErrorHandle);
+{$endif FPC_STDOUT_TRUE_ALIAS}
+end;
+
+begin
+{ StackBottom := __stkbottom;
+ StackLength := __stktop - __stkbottom;}
+ { To be set if this is a GUI or console application }
+ IsConsole := TRUE;
+{$ifdef FPC_HAS_FEATURE_DYNLIBS}
+ { If dynlibs feature is disabled,
+ IsLibrary is a constant, which can thus not be set to a value }
+ { To be set if this is a library and not a program }
+ IsLibrary := FALSE;
+{$endif def FPC_HAS_FEATURE_DYNLIBS}
+{ Setup heap }
+ InitZXHeap;
+ SysInitExceptions;
+{$ifdef FPC_HAS_FEATURE_UNICODESTRINGS}
+ initunicodestringmanager;
+{$endif def FPC_HAS_FEATURE_UNICODESTRINGS}
+{ Setup stdin, stdout and stderr }
+ SysInitStdIO;
+{ Reset IO Error }
+ InOutRes:=0;
+{$ifdef FPC_HAS_FEATURE_THREADING}
+ InitSystemThreads;
+{$endif}
+end.
diff --git a/tests/Makefile b/tests/Makefile
index 1d59a923df..9ad50472f4 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: allexectests
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=gparmake createlst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=gparmake createlst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=gparmake createlst
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1084,6 +1090,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1092,6 +1101,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1638,6 +1650,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/tests/tstunits/Makefile b/tests/tstunits/Makefile
index 7f8a4526cc..05f54cafe5 100644
--- a/tests/tstunits/Makefile
+++ b/tests/tstunits/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=erroru popuperr ptest
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=erroru popuperr ptest
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=erroru popuperr ptest
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
@@ -930,6 +936,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1375,6 +1387,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1383,6 +1398,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/tests/utils/Makefile b/tests/utils/Makefile
index 8c883b5de2..bcaf1e9780 100644
--- a/tests/utils/Makefile
+++ b/tests/utils/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -643,6 +643,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST) $(MSDOSPROG)
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST) $(MSDOSPROG)
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST) $(MSDOSPROG)
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_PROGRAMS+=dbdigest dbconfig dosbox/dosbox_wrapper
endif
@@ -934,6 +940,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_PROGRAMS+=dbdigest dbconfig dosbox/dosbox_wrapper
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_PROGRAMS+=dbdigest dbconfig dosbox/dosbox_wrapper
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_PROGRAMS+=dbdigest dbconfig dosbox/dosbox_wrapper
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1380,6 +1392,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1388,6 +1403,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
diff --git a/tests/utils/testsuite/Makefile b/tests/utils/testsuite/Makefile
index c9ef477d0e..27e4a1a60a 100644
--- a/tests/utils/testsuite/Makefile
+++ b/tests/utils/testsuite/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=testsuite
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=testsuite
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=testsuite
+endif
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITDIR+=..
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITDIR+=..
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITDIR+=..
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1376,6 +1388,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1384,6 +1399,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2609,6 +2627,26 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-DB=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/Makefile b/utils/Makefile
index 6b8bbe6798..060ca89ce2 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -812,6 +812,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -820,6 +823,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1948,6 +1954,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-JSON=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/debugsvr/Makefile b/utils/debugsvr/Makefile
index 578cc663f2..83df5dfade 100644
--- a/utils/debugsvr/Makefile
+++ b/utils/debugsvr/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/debugsvr/console/Makefile b/utils/debugsvr/console/Makefile
index df1e6e71a0..ec2eb5bcfb 100644
--- a/utils/debugsvr/console/Makefile
+++ b/utils/debugsvr/console/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=debugserver
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=debugserver
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=debugserver
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=debugserver
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=debugserver
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=debugserver
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=debugserver
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITDIR+=..
@@ -1221,6 +1233,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITDIR+=..
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITDIR+=..
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1666,6 +1684,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1674,6 +1695,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2220,6 +2244,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/debugsvr/gtk/Makefile b/utils/debugsvr/gtk/Makefile
index 9d592cadda..005d7ca7f5 100644
--- a/utils/debugsvr/gtk/Makefile
+++ b/utils/debugsvr/gtk/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -638,6 +638,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=debugserver
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=debugserver
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=debugserver
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=frmabout frmmain bitmapdata
endif
@@ -929,6 +935,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_UNITS+=frmabout frmmain bitmapdata
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_UNITS+=frmabout frmmain bitmapdata
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_UNITS+=frmabout frmmain bitmapdata
+endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=frmabout frmmain
endif
@@ -1220,6 +1232,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_RSTS+=frmabout frmmain
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_RSTS+=frmabout frmmain
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_RSTS+=frmabout frmmain
+endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_UNITDIR+=..
@@ -1512,6 +1530,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override COMPILER_UNITDIR+=..
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override COMPILER_UNITDIR+=..
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1957,6 +1981,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1965,6 +1992,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -2511,6 +2541,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/dxegen/Makefile b/utils/dxegen/Makefile
index 80dcdc9ddb..ec311f814a 100644
--- a/utils/dxegen/Makefile
+++ b/utils/dxegen/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/fpcm/Makefile b/utils/fpcm/Makefile
index 217790bf35..1589706ac8 100644
--- a/utils/fpcm/Makefile
+++ b/utils/fpcm/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -804,6 +804,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -812,6 +815,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1843,6 +1849,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/fpcm/fpcmake.inc b/utils/fpcm/fpcmake.inc
index 2e99144e8c..b198a42f87 100644
--- a/utils/fpcm/fpcmake.inc
+++ b/utils/fpcm/fpcmake.inc
@@ -1,7 +1,7 @@
{$ifdef Delphi}
-const fpcmakeini : array[0..249] of string[240]=(
+const fpcmakeini : array[0..250] of string[240]=(
{$else Delphi}
-const fpcmakeini : array[0..249,1..240] of char=(
+const fpcmakeini : array[0..250,1..240] of char=(
{$endif Delphi}
';'#010+
'; Templates used by fpcmake to create a Makefile from Makefile.fpc'#010+
@@ -1224,6 +1224,9 @@ const fpcmakeini : array[0..249,1..240] of char=(
'else'#010+
'EXEEXT=.bin'#010+
'endif'#010+
+ 'ifeq ($(CPU_TARGET),z80)'#010+
+ 'OEXT=.rel'#010+
+ 'endif'#010+
'SHORTSUFFIX=emb'#010+
'endif'#010+
#010+
@@ -1235,45 +1238,50 @@ const fpcmakeini : array[0..249,1..240] of char=(
'SHORTSUFFIX=w16'#010+
'endif'#010+
#010+
+ '# ZX Spectrum'#010+
+ 'ifeq ($(OS_TARGET),zxspectrum)'#010,
+ 'OEXT=.rel'#010+
+ 'endif'#010+
+ #010+
#010+
'# For 8.3 limited OS'#039's the short suffixes'#010+
- '# Otherwise use the full source/target name','s'#010+
+ '# Otherwise use the full source/target names'#010+
'ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)'#010+
'FPCMADE=fpcmade.$(SHORTSUFFIX)'#010+
'ZIPSUFFIX=$(SHORTSUFFIX)'#010+
'ZIPCROSSPREFIX='#010+
- 'ZIPSOURCESUFFIX=src'#010+
+ 'ZIPSOURCESUFFI','X=src'#010+
'ZIPEXAMPLESUFFIX=exm'#010+
'else'#010+
'FPCMADE=fpcmade.$(TARGETSUFFIX)'#010+
'ZIPSOURCESUFFIX=.source'#010+
- 'ZIPEXAMPLESUFFI','X=.examples'#010+
+ 'ZIPEXAMPLESUFFIX=.examples'#010+
'ifdef CROSSCOMPILE'#010+
'ZIPSUFFIX=.$(SOURCESUFFIX)'#010+
'ZIPCROSSPREFIX=$(TARGETSUFFIX)-'#010+
'else'#010+
'ZIPSUFFIX=.$(TARGETSUFFIX)'#010+
- 'ZIPCROSSPREFIX='#010+
+ 'ZIPCROSSPREFIX=',#010+
'endif'#010+
'endif'#010+
#010+
'[defaulttools]'#010+
'#####################################################################'#010+
- '# De','fault Tools'#010+
+ '# Default Tools'#010+
'#####################################################################'#010+
#010+
'# Names of the binutils tools'#010+
- 'ASNAME=$(BINUTILSPREFIX)as'#010+
+ 'ASNAME=$(BINUTILSPREFIX)','as'#010+
'LDNAME=$(BINUTILSPREFIX)ld'#010+
'ARNAME=$(BINUTILSPREFIX)ar'#010+
'RCNAME=$(BINUTILSPREFIX)rc'#010+
- 'NASMNAME=$(BINUTILS','PREFIX)nasm'#010+
+ 'NASMNAME=$(BINUTILSPREFIX)nasm'#010+
#010+
'# assembler, redefine it if cross compiling'#010+
'ifndef ASPROG'#010+
'ifdef CROSSBINDIR'#010+
'ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)'#010+
- 'else'#010+
+ 'else',#010+
'ASPROG=$(ASNAME)'#010+
'endif'#010+
'endif'#010+
@@ -1281,7 +1289,7 @@ const fpcmakeini : array[0..249,1..240] of char=(
'# linker, but probably not used'#010+
'ifndef LDPROG'#010+
'ifdef CROSSBINDIR'#010+
- 'LDPROG=$','(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)'#010+
+ 'LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)'#010+
'else'#010+
'LDPROG=$(LDNAME)'#010+
'endif'#010+
@@ -1290,7 +1298,7 @@ const fpcmakeini : array[0..249,1..240] of char=(
'# Resource compiler'#010+
'ifndef RCPROG'#010+
'ifdef CROSSBINDIR'#010+
- 'RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)'#010+
+ 'RCPROG=$(CROSS','BINDIR)/$(RCNAME)$(SRCEXEEXT)'#010+
'else'#010+
'RCPROG=$(RCNAME)'#010+
'endif'#010+
@@ -1298,7 +1306,7 @@ const fpcmakeini : array[0..249,1..240] of char=(
#010+
'# Archiver'#010+
'ifndef ARPROG'#010+
- 'ifdef CROSSBI','NDIR'#010+
+ 'ifdef CROSSBINDIR'#010+
'ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)'#010+
'else'#010+
'ARPROG=$(ARNAME)'#010+
@@ -1306,11 +1314,11 @@ const fpcmakeini : array[0..249,1..240] of char=(
'endif'#010+
#010+
'# NASM assembler, redefine it if cross compiling'#010+
- 'ifndef NASMPROG'#010+
+ 'ifnd','ef NASMPROG'#010+
'ifdef CROSSBINDIR'#010+
'NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT)'#010+
'else'#010+
- 'NASMPROG=$(NASMNAME)',#010+
+ 'NASMPROG=$(NASMNAME)'#010+
'endif'#010+
'endif'#010+
#010+
@@ -1322,14 +1330,14 @@ const fpcmakeini : array[0..249,1..240] of char=(
'NASM=$(NASMPROG)'#010+
#010+
'# ppas.bat / ppas.sh'#010+
- 'ifdef inUnix'#010+
+ 'ifdef inUnix',#010+
'PPAS=./ppas$(SRCBATCHEXT)'#010+
'else'#010+
'PPAS=ppas$(SRCBATCHEXT)'#010+
'endif'#010+
#010+
'# ldconfig to rebuild .so cache'#010+
- 'ifdef in','Unix'#010+
+ 'ifdef inUnix'#010+
'LDCONFIG=ldconfig'#010+
'else'#010+
'LDCONFIG='#010+
@@ -1343,7 +1351,7 @@ const fpcmakeini : array[0..249,1..240] of char=(
#010+
'# Zip options'#010+
'ZIPOPT=-9'#010+
- 'ZIPEXT=.zip'#010+
+ 'ZI','PEXT=.zip'#010+
#010+
'# Tar options'#010+
'ifeq ($(USETAR),bz2)'#010+
@@ -1352,66 +1360,67 @@ const fpcmakeini : array[0..249,1..240] of char=(
'else'#010+
'TAROPT=vz'#010+
'TAREXT=.tar.gz'#010+
- 'e','ndif'#010+
+ 'endif'#010+
#010+
#010+
'[command_begin]'#010+
'#####################################################################'#010+
'# Compiler Command Line'#010+
- '#####################################################################'#010+
+ '####################','################################################'+
+ '#'#010+
#010+
- '# Load commandline OPTDEF and add FPC_CPU define, fo','r compiling the'#010+
+ '# Load commandline OPTDEF and add FPC_CPU define, for compiling the'#010+
'# compiler this needs to be turned off'#010+
'ifndef NOCPUDEF'#010+
'override FPCOPTDEF=$(ARCH)'#010+
'endif'#010+
#010+
#010+
- '# Load commandline OPT and add target and unit dir to be sure'#010+
+ '# Load commandline OPT and add ','target and unit dir to be sure'#010+
'ifneq ($(OS_TARGET),$(OS_SOURCE))'#010+
'override FPCOPT+=-T$(OS_TARGET)'#010+
- 'endif'#010,
+ 'endif'#010+
#010+
'ifneq ($(CPU_TARGET),$(CPU_SOURCE))'#010+
'override FPCOPT+=-P$(ARCH)'#010+
'endif'#010+
#010+
'ifeq ($(OS_SOURCE),openbsd)'#010+
- 'override FPCOPT+=-FD$(NEW_BINUTILS_PATH)'#010+
+ 'override FPCOPT+=-FD$(NEW_BINUTILS_PAT','H)'#010+
'override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)'#010+
'override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)'#010+
- 'endi','f'#010+
+ 'endif'#010+
#010+
'ifndef CROSSBOOTSTRAP'#010+
'ifneq ($(BINUTILSPREFIX),)'#010+
'override FPCOPT+=-XP$(BINUTILSPREFIX)'#010+
'endif'#010+
'ifneq ($(BINUTILSPREFIX),)'#010+
- 'override FPCOPT+=-Xr$(RLINKPATH)'#010+
+ 'override FPCOP','T+=-Xr$(RLINKPATH)'#010+
'endif'#010+
'endif'#010+
#010+
'# When BINUTILSPREFIX is given and we are not cross-compiling then use'+
- #010,
+ #010+
'# it while compiling the fpmake file. (For example to build i386-freeb'+
'sd'#010+
'# with BINUTILSPREFIX=i386-)'#010+
'ifndef CROSSCOMPILE'#010+
- 'ifneq ($(BINUTILSPREFIX),)'#010+
+ 'ifneq ($(BINUTI','LSPREFIX),)'#010+
'override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)'#010+
'override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)'#010+
- 'e','ndif'#010+
+ 'endif'#010+
'endif'#010+
#010+
'# User dirs should be first, so they are looked at first'#010+
'ifdef UNITDIR'#010+
'override FPCOPT+=$(addprefix -Fu,$(UNITDIR))'#010+
'endif'#010+
- 'ifdef LIBDIR'#010+
+ 'ifd','ef LIBDIR'#010+
'override FPCOPT+=$(addprefix -Fl,$(LIBDIR))'#010+
'endif'#010+
'ifdef OBJDIR'#010+
- 'override FPCOPT+=$(addprefix -','Fo,$(OBJDIR))'#010+
+ 'override FPCOPT+=$(addprefix -Fo,$(OBJDIR))'#010+
'endif'#010+
'ifdef INCDIR'#010+
'override FPCOPT+=$(addprefix -Fi,$(INCDIR))'#010+
@@ -1420,7 +1429,7 @@ const fpcmakeini : array[0..249,1..240] of char=(
'# Smartlinking'#010+
'ifdef LINKSMART'#010+
'override FPCOPT+=-XX'#010+
- 'endif'#010+
+ 'e','ndif'#010+
#010+
'# Smartlinking creation'#010+
'ifdef CREATESMART'#010+
@@ -1429,7 +1438,7 @@ const fpcmakeini : array[0..249,1..240] of char=(
#010+
'# Debug'#010+
'ifdef DEBUG'#010+
- 'overrid','e FPCOPT+=-gl'#010+
+ 'override FPCOPT+=-gl'#010+
'override FPCOPTDEF+=DEBUG'#010+
'endif'#010+
#010+
@@ -1437,13 +1446,13 @@ const fpcmakeini : array[0..249,1..240] of char=(
'# (strip, optimize and don'#039't load fpc.cfg)'#010+
'ifdef RELEASE'#010+
'FPCCPUOPT:=-O2'#010+
- 'override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n'#010+
+ 'ove','rride FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n'#010+
'override FPCOPTDEF+=RELEASE'#010+
'endif'#010+
#010+
'# Strip'#010+
'ifdef STRIP'#010+
- 'override F','PCOPT+=-Xs'#010+
+ 'override FPCOPT+=-Xs'#010+
'endif'#010+
#010+
'# Optimizer'#010+
@@ -1453,71 +1462,71 @@ const fpcmakeini : array[0..249,1..240] of char=(
#010+
'# Verbose settings (warning,note,info)'#010+
'ifdef VERBOSE'#010+
- 'override FPCOPT+=-vwni'#010+
+ 'override FP','COPT+=-vwni'#010+
'endif'#010+
#010+
'# Needed compiler options'#010+
'ifdef COMPILER_OPTIONS'#010+
- 'override FPCOPT+=$(COMPILER_OPTIONS',')'#010+
+ 'override FPCOPT+=$(COMPILER_OPTIONS)'#010+
'endif'#010+
'ifdef COMPILER_UNITDIR'#010+
'override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))'#010+
'endif'#010+
'ifdef COMPILER_LIBRARYDIR'#010+
- 'override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))'#010+
+ 'override FPCOPT+=$(a','ddprefix -Fl,$(COMPILER_LIBRARYDIR))'#010+
'endif'#010+
'ifdef COMPILER_OBJECTDIR'#010+
- 'override FPCOPT+=$(addprefix -Fo,$(','COMPILER_OBJECTDIR))'#010+
+ 'override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))'#010+
'endif'#010+
'ifdef COMPILER_INCLUDEDIR'#010+
'override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))'#010+
'endif'#010+
#010+
- '# Cross compiler utils'#010+
+ '# Cross compiler uti','ls'#010+
'ifdef CROSSBINDIR'#010+
'override FPCOPT+=-FD$(CROSSBINDIR)'#010+
'endif'#010+
#010+
- '# Target dirs and the prefix to use for ','clean/install'#010+
+ '# Target dirs and the prefix to use for clean/install'#010+
'ifdef COMPILER_TARGETDIR'#010+
'override FPCOPT+=-FE$(COMPILER_TARGETDIR)'#010+
'ifeq ($(COMPILER_TARGETDIR),.)'#010+
- 'override TARGETDIRPREFIX='#010+
+ 'override TARGETDIRPREFIX=',#010+
'else'#010+
'override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/'#010+
'endif'#010+
'endif'#010+
#010+
- '# Unit target dir (default is units/','<cpu>-<os>/'#010+
+ '# Unit target dir (default is units/<cpu>-<os>/'#010+
'ifdef COMPILER_UNITTARGETDIR'#010+
'override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)'#010+
'ifeq ($(COMPILER_UNITTARGETDIR),.)'#010+
- 'override UNITTARGETDIRPREFIX='#010+
+ 'override UNITTA','RGETDIRPREFIX='#010+
'else'#010+
'override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/'#010+
'endif'#010+
'else'#010+
- 'ifdef COMPILER_T','ARGETDIR'#010+
+ 'ifdef COMPILER_TARGETDIR'#010+
'override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)'#010+
'override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)'#010+
'endif'#010+
'endif'#010+
#010+
- 'ifdef CREATESHARED'#010+
+ 'ifdef CREATES','HARED'#010+
'override FPCOPT+=-Cg'#010+
'endif'#010+
#010+
'# create always pic'#039'ed code on x86_64, mips and mipsel'#010+
- '# on unix-like',' systems'#010+
+ '# on unix-like systems'#010+
'ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linu'+
'x solaris),)'#010+
- 'ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),)'#010+
+ 'ifneq ($(findstring $(CPU_TARGET),x86_64 mips',' mipsel),)'#010+
'override FPCOPT+=-Cg'#010+
'endif'#010+
'endif'#010+
#010+
'ifdef LINKSHARED'#010+
- '#!!! deactived for testing override FPCOP','T+=-XD'#010+
+ '#!!! deactived for testing override FPCOPT+=-XD'#010+
'endif'#010+
#010+
#010+
@@ -1525,7 +1534,7 @@ const fpcmakeini : array[0..249,1..240] of char=(
'# Add GCC lib path if asked'#010+
'ifdef GCCLIBDIR'#010+
'override FPCOPT+=-Fl$(GCCLIBDIR)'#010+
- 'override FPCMAKEOPT+=-Fl$(GCCLIBDIR)'#010+
+ 'override FPCMAKEOPT+=-Fl$(GCCL','IBDIR)'#010+
'endif'#010+
'ifdef OTHERLIBDIR'#010+
'override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))'#010+
@@ -1533,15 +1542,15 @@ const fpcmakeini : array[0..249,1..240] of char=(
#010+
#010+
'[command_end]'#010+
- '#',' Add commandline options last so they can override'#010+
+ '# Add commandline options last so they can override'#010+
'ifdef OPT'#010+
'override FPCOPT+=$(OPT)'#010+
'endif'#010+
#010+
- '# Override options to compile the fpmake-binary with command-line opti'+
- 'ons provided in FPMAKEBUILDOPT'#010+
+ '# Override options to compile the fpmake-bina','ry with command-line op'+
+ 'tions provided in FPMAKEBUILDOPT'#010+
'ifdef FPMAKEBUILDOPT'#010+
- 'override FPMAKE_BUILD_OPT+','=$(FPMAKEBUILDOPT)'#010+
+ 'override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)'#010+
'endif'#010+
#010+
'# Add defines from FPCOPTDEF to FPCOPT'#010+
@@ -1549,22 +1558,22 @@ const fpcmakeini : array[0..249,1..240] of char=(
'override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))'#010+
'endif'#010+
#010+
- '# Was a config file specified ?'#010+
+ '# W','as a config file specified ?'#010+
'ifdef CFGFILE'#010+
'override FPCOPT+=@$(CFGFILE)'#010+
'endif'#010+
#010+
- '# Use the environment to',' pass commandline options?'#010+
+ '# Use the environment to pass commandline options?'#010+
'ifdef USEENV'#010+
'override FPCEXTCMD:=$(FPCOPT)'#010+
'override FPCOPT:=!FPCEXTCMD'#010+
'export FPCEXTCMD'#010+
'endif'#010+
#010+
- 'override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)'#010+
+ 'override AFULL_','TARGET=$(CPU_TARGET)-$(OS_TARGET)'#010+
'override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)'#010+
#010+
- 'ifneq ($(AFULL_TARG','ET),$(AFULL_SOURCE))'#010+
+ 'ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))'#010+
'override ACROSSCOMPILE=1'#010+
'endif'#010+
#010+
@@ -1573,20 +1582,20 @@ const fpcmakeini : array[0..249,1..240] of char=(
'endif'#010+
#010+
'# Compiler commandline'#010+
- 'override COMPILER:=$(strip $(FPC) $(FPCOPT))'#010+
+ 'overr','ide COMPILER:=$(strip $(FPC) $(FPCOPT))'#010+
#010+
'# also call ppas if with command option -s'#010+
- '# but only if the F','ULL_SOURCE and FULL_TARGET are equal'#010+
+ '# but only if the FULL_SOURCE and FULL_TARGET are equal'#010+
'# or if -sh is used'#010+
'ifneq (,$(findstring -sh ,$(COMPILER)))'#010+
'UseEXECPPAS=1'#010+
'endif'#010+
- 'ifneq (,$(findstring -s ,$(COMPILER)))'#010+
+ 'ifneq (,$(findstring',' -s ,$(COMPILER)))'#010+
'ifeq ($(FULL_SOURCE),$(FULL_TARGET))'#010+
'UseEXECPPAS=1'#010+
'endif'#010+
'endif'#010+
- 'ifneq ($(UseEXECPPAS)',',1)'#010+
+ 'ifneq ($(UseEXECPPAS),1)'#010+
'EXECPPAS='#010+
'else'#010+
'ifdef RUNBATCH'#010+
@@ -1598,170 +1607,170 @@ const fpcmakeini : array[0..249,1..240] of char=(
#010+
#010+
'[loaderrules]'#010+
- '#####################################################################'#010+
- '# Loaders'#010+
- '###########################################','#########################'+
+ '####################','################################################'+
'#'#010+
+ '# Loaders'#010+
+ '#####################################################################'#010+
#010+
'.PHONY: fpc_loaders'#010+
#010+
'ifneq ($(TARGET_LOADERS),)'#010+
'override ALLTARGET+=fpc_loaders'#010+
- 'override CLEANTARGET+=fpc_loaders_clean'#010+
+ 'override CLEANTARGET+=fpc_loa','ders_clean'#010+
'override INSTALLTARGET+=fpc_loaders_install'#010+
#010+
- 'override LOADEROFILES:=$(addsuffix $(OEXT),$(TA','RGET_LOADERS))'#010+
+ 'override LOADEROFILES:=$(addsuffix $(OEXT),$(TARGET_LOADERS))'#010+
'endif'#010+
#010+
'%$(OEXT): %$(LOADEREXT)'#010+
'ifdef COMPILER_UNITTARGETDIR'#010+
' $(AS) -o $(COMPILER_UNITTARGETDIR)/$*$(OEXT) $<'#010+
'else'#010+
- ' $(AS) -o $*$(OEXT) $<'#010+
+ ' ',' $(AS) -o $*$(OEXT) $<'#010+
'endif'#010+
#010+
'fpc_loaders: $(COMPILER_UNITTARGETDIR) $(LOADEROFILES)'#010+
#010+
- 'fpc_loaders','_clean:'#010+
+ 'fpc_loaders_clean:'#010+
'ifdef COMPILER_UNITTARGETDIR'#010+
' -$(DEL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFILES)'+
')'#010+
'else'#010+
- ' -$(DEL) $(LOADEROFILES)'#010+
+ ' -$(DEL) $(LOADE','ROFILES)'#010+
'endif'#010+
#010+
'fpc_loaders_install:'#010+
' $(MKDIR) $(INSTALL_UNITDIR)'#010+
'ifdef COMPILER_UNITTARGETDIR'#010+
- ' ',' $(INSTALL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROF'+
- 'ILES)) $(INSTALL_UNITDIR)'#010+
+ ' $(INSTALL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFIL'+
+ 'ES)) $(INSTALL_UNITDIR)'#010+
'else'#010+
- ' $(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)'#010+
+ ' $(INSTALL) $(LOADEROFILES) $(IN','STALL_UNITDIR)'#010+
'endif'#010+
#010+
#010+
'[unitrules]'#010+
- '####################################################################','#'+
- #010+
+ '#####################################################################'#010+
'# Units'#010+
'#####################################################################'#010+
#010+
'.PHONY: fpc_units'#010+
#010+
- 'ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)'#010+
+ 'ifneq ($(TARGET_UNITS)$(TARGET_IMPLIC','ITUNITS),)'#010+
'override ALLTARGET+=fpc_units'#010+
#010+
- 'override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))'#010,
+ 'override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))'#010+
'override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITU'+
'NITS))'#010+
- 'override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)'#010+
+ 'override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUF','ILES)'#010+
'override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)'#010+
'endif'#010+
#010+
- 'fpc_units: $(COMPILER_UNIT','TARGETDIR) $(UNITPPUFILES)'#010+
+ 'fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)'#010+
#010+
#010+
'[exerules]'#010+
'#####################################################################'#010+
'# Exes'#010+
- '#####################################################################'#010+
+ '####################','################################################'+
+ '#'#010+
#010+
'.PHONY: fpc_exes'#010+
#010+
- '# Programs are not needed for a cr','oss installation'#010+
+ '# Programs are not needed for a cross installation'#010+
'ifndef CROSSINSTALL'#010+
'ifneq ($(TARGET_PROGRAMS),)'#010+
'override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))'#010+
- 'override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addsuffi'+
- 'x $(LTOEXT),$(TARGET_PROGRAMS))$(addprefix $(','STATICLIBPREFIX),$(adds'+
+ 'override EXE','OFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addsuf'+
+ 'fix $(LTOEXT),$(TARGET_PROGRAMS))$(addprefix $(STATICLIBPREFIX),$(adds'+
'uffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) $(addprefix $(IMPORTLIBPREF'+
- 'IX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))'#010+
+ 'IX),$(addsuffix $(STATICLIBEXT),$(TARGET_PRO','GRAMS)))'#010+
'override EXEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_PROGRAMS))'#010+
#010+
- 'override ALLTARGET+=fpc_ex','es'#010+
+ 'override ALLTARGET+=fpc_exes'#010+
'override INSTALLEXEFILES+=$(EXEFILES)'#010+
'override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)'#010+
'override CLEANEXEDBGFILES+=$(EXEDBGFILES)'#010+
- 'ifeq ($(OS_TARGET),os2)'#010+
+ 'ifeq ','($(OS_TARGET),os2)'#010+
'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))'#010+
'endif'#010+
- 'ifeq ($(OS_','TARGET),emx)'#010+
+ 'ifeq ($(OS_TARGET),emx)'#010+
'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))'#010+
'endif'#010+
'endif'#010+
'endif'#010+
#010+
- 'fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)'#010+
+ 'fpc_exes: $(COMPILER_TARGETDIR) $(COMP','ILER_UNITTARGETDIR) $(EXEFILES'+
+ ')'#010+
#010+
#010+
'[rstrules]'#010+
- '##########################################################','##########'+
- '#'#010+
+ '#####################################################################'#010+
'# Resource strings'#010+
'#####################################################################'#010+
#010+
'ifdef TARGET_RSTS'#010+
- 'override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))'#010+
+ 'override RSTFILES','=$(addsuffix $(RSTEXT),$(TARGET_RSTS))'#010+
#010+
'override CLEANRSTFILES+=$(RSTFILES)'#010+
'endif'#010+
#010+
#010+
'[examplerules]'#010+
- '####','################################################################'+
- '#'#010+
- '# Examples'#010+
'#####################################################################'#010+
+ '# Examples'#010+
+ '############################################################','########'+
+ '#'#010+
#010+
'.PHONY: fpc_examples'#010+
#010+
'ifneq ($(TARGET_EXAMPLES),)'#010+
'HASEXAMPLES=1'#010+
- 'override EXAMPLESOURCEFILES=','$(wildcard $(addsuffix .pp,$(TARGET_EXAM'+
- 'PLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_'+
- 'EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))'#010+
+ 'override EXAMPLESOURCEFILES=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPL'+
+ 'ES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EX'+
+ 'AMPLES)) $(addsuffix .dpr',',$(TARGET_EXAMPLES)))'#010+
'override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))'#010+
- 'override EXAMPLE','OFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(ad'+
- 'dsuffix $(LTOEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$'+
- '(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLI'+
- 'BPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EX','AMPLES)))'#010+
+ 'override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(adds'+
+ 'uffix $(LTOEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(a'+
+ 'ddsuffix $(ST','ATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLI'+
+ 'BPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))'#010+
'override EXAMPLEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_EXAMPLES))'+
#010+
#010+
- 'override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)'#010+
+ 'override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES',')'#010+
'override CLEANEXEDBGFILES+=$(EXAMPLEDBGFILES)'#010+
'ifeq ($(OS_TARGET),os2)'#010+
- 'override CLEANEXEFILES+=$(addsu','ffix $(AOUTEXT),$(TARGET_EXAMPLES))'#010+
+ 'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))'#010+
'endif'#010+
'ifeq ($(OS_TARGET),emx)'#010+
'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))'#010+
- 'endif'#010+
+ 'endi','f'#010+
'endif'#010+
'ifneq ($(TARGET_EXAMPLEDIRS),)'#010+
'HASEXAMPLES=1'#010+
'endif'#010+
#010+
- 'fpc_examples: all $(EXAMPLEFILES) $(addsuff','ix _all,$(TARGET_EXAMPLED'+
- 'IRS))'#010+
+ 'fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIR'+
+ 'S))'#010+
#010+
#010+
'[compilerules]'#010+
'#####################################################################'#010+
- '# General compile rules'#010+
+ '# General compile r','ules'#010+
'#####################################################################'#010+
#010+
- '.PHONY: fpc_all fpc_smart f','pc_debug fpc_release fpc_shared'#010+
+ '.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared'#010+
#010+
'$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)'#010+
' @$(ECHOREDIR) Compiled > $(FPCMADE)'#010+
#010+
- 'fpc_all: $(FPCMADE)'#010+
+ 'fpc_all: $(FPCM','ADE)'#010+
#010+
'fpc_smart:'#010+
' $(MAKE) all LINKSMART=1 CREATESMART=1'#010+
#010+
'fpc_debug:'#010+
- ' $(MAKE) all DEBUG=1'#010,
+ ' $(MAKE) all DEBUG=1'#010+
#010+
'fpc_release:'#010+
' $(MAKE) all RELEASE=1'#010+
@@ -1769,24 +1778,24 @@ const fpcmakeini : array[0..249,1..240] of char=(
'# General compile rules, available for both possible .pp and .pas exte'+
'nsions'#010+
#010+
- '.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) $(LTOEXT) .pas .lpr .dpr .pp .r'+
- 'c .res'#010+
+ '.SUFFIXES: $(E','XEEXT) $(PPUEXT) $(OEXT) $(LTOEXT) .pas .lpr .dpr .pp '+
+ '.rc .res'#010+
#010+
'$(COMPILER_UNITTARGETDIR):'#010+
- ' $(MK','DIRTREE) $(COMPILER_UNITTARGETDIR)'#010+
+ ' $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)'#010+
#010+
'$(COMPILER_TARGETDIR):'#010+
' $(MKDIRTREE) $(COMPILER_TARGETDIR)'#010+
#010+
'%$(PPUEXT): %.pp'#010+
- ' $(COMPILER) $<'#010+
+ ' $(COMPILE','R) $<'#010+
' $(EXECPPAS)'#010+
#010+
'%$(PPUEXT): %.pas'#010+
' $(COMPILER) $<'#010+
' $(EXECPPAS)'#010+
#010+
- '%$(EXEEXT): %.','pp'#010+
+ '%$(EXEEXT): %.pp'#010+
' $(COMPILER) $<'#010+
' $(EXECPPAS)'#010+
#010+
@@ -1795,36 +1804,37 @@ const fpcmakeini : array[0..249,1..240] of char=(
' $(EXECPPAS)'#010+
#010+
'%$(EXEEXT): %.lpr'#010+
- ' $(COMPILER) $<'#010+
+ ' $(','COMPILER) $<'#010+
' $(EXECPPAS)'#010+
#010+
'%$(EXEEXT): %.dpr'#010+
' $(COMPILER) $<'#010+
' $(EXECPPAS)'#010+
#010+
- '%.res: ','%.rc'#010+
+ '%.res: %.rc'#010+
' windres -i $< -o $@'#010+
#010+
'# Search paths for .ppu, .pp, .pas, .lpr, .dpr'#010+
- 'vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+
+ 'vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010,
'vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+
- 'vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_I','NCLUDEDIR)'#010+
+ 'vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+
'vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+
'vpath %.inc $(COMPILER_INCLUDEDIR)'#010+
- 'vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)'#010+
+ 'vpath %$(OEXT) $(COMPILER_UNITTARG','ETDIR)'#010+
'vpath %$(LTOEXT) $(COMPILER_UNITTARGETDIR)'#010+
'vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)'#010+
#010+
- '[sharedru','les]'#010+
+ '[sharedrules]'#010+
'#####################################################################'#010+
'# Library'#010+
- '#####################################################################'#010+
+ '####################################################','################'+
+ '#'#010+
#010+
'.PHONY: fpc_shared'#010+
#010+
'override INSTALLTARGET+=fpc_shared_install'#010+
#010+
- 'ifndef SHARED_LIBVER','SION'#010+
+ 'ifndef SHARED_LIBVERSION'#010+
'SHARED_LIBVERSION=$(FPC_VERSION)'#010+
'endif'#010+
#010+
@@ -1833,185 +1843,188 @@ const fpcmakeini : array[0..249,1..240] of char=(
'endif'#010+
#010+
'ifndef SHARED_FULLNAME'#010+
- 'SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSIO'+
- 'N)$(SHAREDLIBEXT)'#010+
+ 'SHARED_FU','LLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERS'+
+ 'ION)$(SHAREDLIBEXT)'#010+
'endif'#010+
#010+
- '# Default sharedl','ib units are all unit objects'#010+
+ '# Default sharedlib units are all unit objects'#010+
'ifndef SHARED_LIBUNITS'#010+
'SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)'#010+
- 'override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_L'+
- 'IBUNITS))'#010+
+ 'override SHARED_LIBUNITS:=$','(filter-out $(INSTALL_BUILDUNIT),$(SHARED'+
+ '_LIBUNITS))'#010+
'endif'#010+
#010+
'fpc_shared:'#010+
'ifdef HASSHAREDLIB'#010+
- ' $(MA','KE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1'#010+
+ ' $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1'#010+
'ifneq ($(SHARED_BUILD),n)'#010+
- ' $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -'+
- 'o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR) -P$(BINUTILSPREFIX)'#010+
+ ' $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTAR','GETDIR)'+
+ ' -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR) -P$(BINUTILSPREFIX)'#010+
'endif'#010+
'else'#010+
- ' @$(ECHO',') Shared Libraries not supported'#010+
+ ' @$(ECHO) Shared Libraries not supported'#010+
'endif'#010+
#010+
'fpc_shared_install:'#010+
'ifneq ($(SHARED_BUILD),n)'#010+
'ifneq ($(SHARED_LIBUNITS),)'#010+
- 'ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)'#010+
- ' $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNA','ME) $(IN'+
- 'STALL_SHAREDDIR)'#010+
+ 'ifneq ($(wildcard $(COM','PILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)'#010+
+ ' $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INST'+
+ 'ALL_SHAREDDIR)'#010+
'endif'#010+
'endif'#010+
'endif'#010+
#010+
'[installrules]'#010+
'#####################################################################'#010+
- '# Install rules'#010+
+ '# Instal','l rules'#010+
'#####################################################################'#010+
#010+
- '.PHONY: fpc_install fpc_','sourceinstall fpc_exampleinstall'#010+
+ '.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall'#010+
#010+
'ifdef INSTALL_UNITS'#010+
'override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))'#010+
'endif'#010+
#010+
- 'ifdef INSTALL_BUILDUNIT'#010+
+ 'ifdef INST','ALL_BUILDUNIT'#010+
'override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$'+
- '(INSTALLPPUFILES))'#010,
+ '(INSTALLPPUFILES))'#010+
'endif'#010+
#010+
'ifdef INSTALLPPUFILES'#010+
'# Avoid getting the same name twice as some install EXE fail'#010+
- '# in this case, happends for instance for OS/2 target'#010+
+ '# in this case, happends for instance for OS/2 ','target'#010+
'ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICL'+
'IBEXT))'#010+
- 'override INSTALLPP','ULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPU'+
- 'FILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $('+
- 'STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))'+
- ') $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT)',',$(STATICLIBEXT),$'+
- '(INSTALLPPUFILES)))'#010+
- 'else'#010+
'override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFI'+
'LES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(ST'+
- 'ATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTAL','LPPUFILES))'+
+ 'ATICLIBPREFIX),','$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))'+
+ ') $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(I'+
+ 'NSTALLPPUFILES)))'#010+
+ 'else'#010+
+ 'override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFI'+
+ 'LES)) $(subst $(PPUEXT),','$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $('+
+ 'STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))'+
')'#010+
'endif'#010+
#010+
'ifneq ($(UNITTARGETDIRPREFIX),)'#010+
'override INSTALLPPUFILENAMES:=$(notdir $(INSTALLPPUFILES))'#010+
- 'override INSTALLPPULINKFILENAMES:=$(notdir $(INSTALLPPULINKFILES))'#010+
- 'override INSTALLPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(','INSTAL'+
- 'LPPUFILENAMES))'#010+
+ 'override INSTALLPPULINKFIL','ENAMES:=$(notdir $(INSTALLPPULINKFILES))'#010+
+ 'override INSTALLPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLP'+
+ 'PUFILENAMES))'#010+
'override INSTALLPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPRE'+
'FIX),$(INSTALLPPULINKFILENAMES)))'#010+
'endif'#010+
- '# Implicitly install Package.fpc'#010+
+ '# Imp','licitly install Package.fpc'#010+
'override INSTALL_CREATEPACKAGEFPC=1'#010+
'endif'#010+
#010+
'ifdef INSTALLEXEFILES'#010+
- 'ifneq ($(T','ARGETDIRPREFIX),)'#010+
+ 'ifneq ($(TARGETDIRPREFIX),)'#010+
'override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(IN'+
'STALLEXEFILES)))'#010+
'endif'#010+
'endif'#010+
#010+
- 'fpc_install: all $(INSTALLTARGET)'#010+
+ 'fpc_install: all $(','INSTALLTARGET)'#010+
'ifdef INSTALLEXEFILES'#010+
' $(MKDIR) $(INSTALL_BINDIR)'#010+
- ' $(INSTALLEXE) $(INSTALL','EXEFILES) $(INSTALL_BINDIR)'#010+
+ ' $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)'#010+
'endif'#010+
'ifdef INSTALL_CREATEPACKAGEFPC'#010+
'ifdef FPCMAKE'#010+
- '# If the fpcpackage variable is set then create and install Package.fp'+
- 'c,'#010+
+ '# If the fpcpackage variable is set then create and instal','l Package.'+
+ 'fpc,'#010+
'# a safety check is done if Makefile.fpc is available'#010+
'ifdef PACKAGE_VERSION'#010+
- 'ifneq ($(wil','dcard Makefile.fpc),)'#010+
+ 'ifneq ($(wildcard Makefile.fpc),)'#010+
' $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc'#010+
' $(MKDIR) $(INSTALL_UNITDIR)'#010+
- ' $(INSTALL) Package.fpc $(INSTALL_UNITDIR)'#010+
+ ' $(INSTA','LL) Package.fpc $(INSTALL_UNITDIR)'#010+
'endif'#010+
'endif'#010+
'endif'#010+
'endif'#010+
'ifdef INSTALLPPUFILES'#010+
- ' $(MKDIR) $(INS','TALL_UNITDIR)'#010+
+ ' $(MKDIR) $(INSTALL_UNITDIR)'#010+
' $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)'#010+
'ifneq ($(INSTALLPPULINKFILES),)'#010+
- ' $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)'#010+
+ ' $(INSTALL) $(INSTALLPPULIN','KFILES) $(INSTALL_UNITDIR)'#010+
'endif'#010+
'ifneq ($(wildcard $(LIB_FULLNAME)),)'#010+
- ' $(MKDIR) $(INSTALL_LIBDIR',')'#010+
+ ' $(MKDIR) $(INSTALL_LIBDIR)'#010+
' $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)'#010+
'ifdef inUnix'#010+
' ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)'#010+
'endif'#010+
- 'endif'#010+
+ 'en','dif'#010+
'endif'#010+
'ifdef INSTALL_FILES'#010+
' $(MKDIR) $(INSTALL_DATADIR)'#010+
- ' $(INSTALL) $(INSTALL_FILES) $','(INSTALL_DATADIR)'#010+
+ ' $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)'#010+
'endif'#010+
#010+
'fpc_sourceinstall: distclean'#010+
' $(MKDIR) $(INSTALL_SOURCEDIR)'#010+
- ' $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)'#010+
+ ' $(COPYTREE) $(BASEDIR)/* $(INSTALL_SO','URCEDIR)'#010+
#010+
'fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(T'+
'ARGET_EXAMPLEDIRS))'#010+
- 'ifd','ef HASEXAMPLES'#010+
+ 'ifdef HASEXAMPLES'#010+
' $(MKDIR) $(INSTALL_EXAMPLEDIR)'#010+
'endif'#010+
'ifdef EXAMPLESOURCEFILES'#010+
- ' $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)'#010+
+ ' $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAM','PLEDIR)'#010+
'endif'#010+
'ifdef TARGET_EXAMPLEDIRS'#010+
- ' $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INST','ALL_'+
- 'EXAMPLEDIR)'#010+
+ ' $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EX'+
+ 'AMPLEDIR)'#010+
'endif'#010+
#010+
'[distinstallrules]'#010+
'#####################################################################'#010+
'# Dist Install'#010+
- '#####################################################################'#010+
+ '##########','##########################################################'+
+ '#'#010+
#010+
'.PHONY: fpc_distinstall'#010+
#010+
- 'fpc_distinstall: ','install exampleinstall'#010+
+ 'fpc_distinstall: install exampleinstall'#010+
#010+
#010+
'[zipinstallrules]'#010+
'#####################################################################'#010+
'# Zip'#010+
- '#####################################################################'#010+
+ '##################','##################################################'+
+ '#'#010+
#010+
- '.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zi','pexampleinstall'#010+
+ '.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall'#010+
#010+
'# Temporary path to pack a file, can only use a single deep'#010+
- '# subdir, because the deltree can'#039't see the whole tree to remove'#010+
+ '# subdir, because the deltree can'#039't see the whole tree to re','move'+
+ #010+
'ifndef PACKDIR'#010+
'ifndef inUnix'#010+
'PACKDIR=$(BASEDIR)/../fpc-pack'#010+
'else'#010+
'PACKDIR=/tmp/fpc-pack'#010+
'endif'#010+
- 'endif',#010+
+ 'endif'#010+
#010+
'# Maybe create default zipname from packagename'#010+
'ifndef ZIPNAME'#010+
'ifdef DIST_ZIPNAME'#010+
'ZIPNAME=$(DIST_ZIPNAME)'#010+
'else'#010+
- 'ZIPNAME=$(PACKAGE_NAME)'#010+
+ 'ZIPNAME=$(PACKAGE_NAME)'#010,
'endif'#010+
'endif'#010+
#010+
'ifndef FULLZIPNAME'#010+
'FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)'#010+
'endif'#010+
- #010,
+ #010+
'# ZipTarget'#010+
'ifndef ZIPTARGET'#010+
'ifdef DIST_ZIPTARGET'#010+
@@ -2021,7 +2034,7 @@ const fpcmakeini : array[0..249,1..240] of char=(
'endif'#010+
'endif'#010+
#010+
- '# Use tar by default under linux'#010+
+ '# Use tar by default under',' linux'#010+
'ifndef USEZIP'#010+
'ifdef inUnix'#010+
'USETAR=1'#010+
@@ -2029,190 +2042,188 @@ const fpcmakeini : array[0..249,1..240] of char=(
'endif'#010+
#010+
'# Use a wrapper script by default for Os/2'#010+
- 'ifnd','ef inUnix'#010+
+ 'ifndef inUnix'#010+
'USEZIPWRAPPER=1'#010+
'endif'#010+
#010+
'# We need to be able to run in the current OS so fix'#010+
'# the path separator'#010+
'ifdef USEZIPWRAPPER'#010+
- 'ZIPPATHSEP=$(PATHSEP)'#010+
+ 'ZIPPATHSEP','=$(PATHSEP)'#010+
'ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))'#010+
'else'#010+
'ZIPPATHSEP=/'#010+
- 'end','if'#010+
+ 'endif'#010+
#010+
'# Create commands to create the zip/tar file'#010+
'ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))'#010+
- 'ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))'#010+
+ 'ZIPCMD_CDBASE:=cd $(subst /,$(ZIPP','ATHSEP),$(BASEDIR))'#010+
'ifdef USETAR'#010+
'ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)'#010+
- 'ZIPCMD_ZIP:=$(TAR','PROG) c$(TAROPT)f $(ZIPDESTFILE) *'#010+
+ 'ZIPCMD_ZIP:=$(TARPROG) c$(TAROPT)f $(ZIPDESTFILE) *'#010+
'else'#010+
'ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(ZIPEXT)'#010+
- 'ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDES'+
- 'TFILE) *'#010+
+ 'ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPRO','G)) -Dr $(ZIPOPT) $(ZIPD'+
+ 'ESTFILE) *'#010+
'endif'#010+
#010+
'fpc_zipinstall:'#010+
- ' $(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$','(PACKDIR) ZIPINSTALL=1'#010+
+ ' $(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1'#010+
' $(MKDIR) $(DIST_DESTDIR)'#010+
' $(DEL) $(ZIPDESTFILE)'#010+
'ifdef USEZIPWRAPPER'#010+
- '# Handle gecho separate as we need to espace \ with \\'#010+
+ '# Handle gecho separate as we n','eed to espace \ with \\'#010+
'ifneq ($(ECHOREDIR),echo)'#010+
- ' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK','))" > $(ZIPWRAP'+
- 'PER)'#010+
+ ' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPE'+
+ 'R)'#010+
' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)'+
#010+
- ' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPP'+
- 'ER)'#010+
+ ' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD','_CDBASE))" >> $(ZIPWRA'+
+ 'PPER)'#010+
'else'#010+
' echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)'#010+
- ' echo $(ZIPCMD_ZI','P) >> $(ZIPWRAPPER)'#010+
+ ' echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)'#010+
' echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)'#010+
'endif'#010+
'ifdef inUnix'#010+
' /bin/sh $(ZIPWRAPPER)'#010+
'else'#010+
'ifdef RUNBATCH'#010+
- ' $(RUNBATCH) $(ZIPWRAPPER)'#010+
+ ' ',' $(RUNBATCH) $(ZIPWRAPPER)'#010+
'else'#010+
' $(ZIPWRAPPER)'#010+
'endif'#010+
'endif'#010+
' $(DEL) $(ZIPWRAPPER)'#010+
- 'el','se'#010+
+ 'else'#010+
' $(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)'#010+
'endif'#010+
' $(DELTREE) $(PACKDIR)'#010+
#010+
'fpc_zipsourceinstall:'#010+
- ' $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(ZIP'+
- 'SOURCESUFFIX)'#010+
+ ' $(MAKE)',' fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(Z'+
+ 'IPSOURCESUFFIX)'#010+
#010+
'fpc_zipexampleinstall:'#010+
- 'ifdef HASE','XAMPLES'#010+
+ 'ifdef HASEXAMPLES'#010+
' $(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$(ZI'+
'PEXAMPLESUFFIX)'#010+
'endif'#010+
#010+
'fpc_zipdistinstall:'#010+
- ' $(MAKE) fpc_zipinstall ZIPTARGET=distinstall'#010+
+ ' $(MAKE) ','fpc_zipinstall ZIPTARGET=distinstall'#010+
#010+
#010+
'[cleanrules]'#010+
- '###################################################','#################'+
- '#'#010+
+ '#####################################################################'#010+
'# Clean rules'#010+
'#####################################################################'#010+
#010+
- '.PHONY: fpc_clean fpc_cleanall fpc_distclean'#010+
+ '.PHONY: fpc_clean fpc_cleanall fp','c_distclean'#010+
#010+
'ifdef EXEFILES'#010+
'override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES'+
'))'#010+
- 'ov','erride CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXE'+
- 'DBGFILES))'#010+
+ 'override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDB'+
+ 'GFILES))'#010+
'endif'#010+
#010+
'ifdef CLEAN_PROGRAMS'#010+
- 'override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(E'+
- 'XEEXT), $(CLEAN_PROGRAMS)))'#010+
- 'override CLEANEXEDBGFILES+=$(addprefi','x $(TARGETDIRPREFIX),$(addsuffi'+
- 'x $(EXEDBGEXT), $(CLEAN_PROGRAMS)))'#010+
+ 'override CLEANEXEFILES+=$(addpre','fix $(TARGETDIRPREFIX),$(addsuffix $'+
+ '(EXEEXT), $(CLEAN_PROGRAMS)))'#010+
+ 'override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix '+
+ '$(EXEDBGEXT), $(CLEAN_PROGRAMS)))'#010+
'endif'#010+
#010+
'ifdef CLEAN_UNITS'#010+
- 'override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))'#010+
+ 'override CLEANPPUFILES+=$(addsuffix $(PPUEXT)',',$(CLEAN_UNITS))'#010+
'endif'#010+
#010+
'ifdef CLEANPPUFILES'#010+
- 'override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLE','ANPPUFILE'+
- 'S)) $(subst $(PPUEXT),$(LTOEXT),$(CLEANPPUFILES)) $(addprefix $(STATIC'+
- 'LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addp'+
+ 'override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)'+
+ ') $(subst $(PPUEXT),$(LTOEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLI'+
+ 'BPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFIL','ES))) $(addp'+
'refix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUF'+
'ILES)))'#010+
- 'ifdef DEBUGSY','MEXT'#010+
+ 'ifdef DEBUGSYMEXT'#010+
'override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPP'+
'UFILES))'#010+
'endif'#010+
'override CLEANPPUFILENAMES:=$(CLEANPPUFILES)'#010+
- 'override CLEANPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFI'+
- 'LENAMES))'#010+
- 'override CLEANPPULINKFILE','NAMES:=$(CLEANPPULINKFILES)'#010+
+ 'ov','erride CLEANPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPU'+
+ 'FILENAMES))'#010+
+ 'override CLEANPPULINKFILENAMES:=$(CLEANPPULINKFILES)'#010+
'override CLEANPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFI'+
'X),$(CLEANPPULINKFILENAMES)))'#010+
'endif'#010+
#010+
- 'fpc_clean: $(CLEANTARGET)'#010+
+ 'fp','c_clean: $(CLEANTARGET)'#010+
'ifdef CLEANEXEFILES'#010+
' -$(DEL) $(CLEANEXEFILES)'#010+
'endif'#010+
- '# DELTREE instead of',' DEL because on Mac OS X these are directories'#010+
+ '# DELTREE instead of DEL because on Mac OS X these are directories'#010+
'ifdef CLEANEXEDBGFILES'#010+
' -$(DELTREE) $(CLEANEXEDBGFILES)'#010+
'endif'#010+
'ifdef CLEANPPUFILES'#010+
- ' -$(DEL) $(CLEANPPUFILES)'#010+
+ ' ',' -$(DEL) $(CLEANPPUFILES)'#010+
'endif'#010+
'ifneq ($(CLEANPPULINKFILES),)'#010+
- ' -$(DEL) $(CLEANPPULINKFILES',')'#010+
+ ' -$(DEL) $(CLEANPPULINKFILES)'#010+
'endif'#010+
'ifdef CLEANRSTFILES'#010+
' -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))'#010+
'endif'#010+
'ifdef CLEAN_FILES'#010+
- ' -$(DEL) $(CLEAN_FILES)'#010+
+ ' -$(DEL) ','$(CLEAN_FILES)'#010+
'endif'#010+
'ifdef LIB_NAME'#010+
' -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)'#010+
'endif'#010+
- ' -$(DEL) $','(FPCMADE) *$(FULL_TARGET).fpm Package.fpc *$(ASMEXT'+
- ')'#010+
+ ' -$(DEL) $(FPCMADE) *$(FULL_TARGET).fpm Package.fpc *$(ASMEXT)'#010+
' -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_scr'+
- 'ipt.res *_link.res'#010+
+ 'ipt.res *_link','.res'#010+
' -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BA'+
'TCHEXT)'#010+
#010+
- 'fpc_cleanall: $(CLE','ANTARGET)'#010+
+ 'fpc_cleanall: $(CLEANTARGET)'#010+
'ifdef CLEANEXEFILES'#010+
' -$(DEL) $(CLEANEXEFILES)'#010+
'endif'#010+
'ifdef COMPILER_UNITTARGETDIR'#010+
'ifdef CLEANPPUFILES'#010+
- ' -$(DEL) $(CLEANPPUFILES)'#010+
+ ' -$(DEL) $(C','LEANPPUFILES)'#010+
'endif'#010+
'ifneq ($(CLEANPPULINKFILES),)'#010+
' -$(DEL) $(CLEANPPULINKFILES)'#010+
'endif'#010+
- 'ifdef CLEA','NRSTFILES'#010+
+ 'ifdef CLEANRSTFILES'#010+
' -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))'#010+
'endif'#010+
'endif'#010+
'ifdef CLEAN_FILES'#010+
- ' -$(DEL) $(CLEAN_FILES)'#010+
+ ' -$(DEL) $(CLEAN_FILE','S)'#010+
'endif'#010+
' -$(DELTREE) units'#010+
' -$(DELTREE) bin'#010+
- ' -$(DEL) *$(OEXT) *$(LTOEXT) *$(PPUEX','T) *$(RSTEXT) *$(ASMEXT)'+
- ' *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)'#010+
+ ' -$(DEL) *$(OEXT) *$(LTOEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *'+
+ '$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)'#010+
'ifneq ($(PPUEXT),.ppu)'#010+
' -$(DEL) *.o *.ppu *.a'#010+
'endif'#010+
- ' -$(DELTREE) *$(SMARTEXT)'#010+
+ ' ','-$(DELTREE) *$(SMARTEXT)'#010+
' -$(DEL) fpcmade.* Package.fpc *.fpm'#010+
- ' -$(DEL) $(FPCEXTFILE) $(RE','DIRFILE) script*.res link*.res *_s'+
- 'cript.res *_link.res'#010+
+ ' -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_scr'+
+ 'ipt.res *_link.res'#010+
' -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BA'+
'TCHEXT)'#010+
- 'ifdef AOUTEXT'#010+
+ 'ifde','f AOUTEXT'#010+
' -$(DEL) *$(AOUTEXT)'#010+
'endif'#010+
'ifdef DEBUGSYMEXT'#010+
' -$(DEL) *$(DEBUGSYMEXT)'#010+
'endif'#010+
- 'ifd','ef LOCALFPMAKEBIN'#010+
+ 'ifdef LOCALFPMAKEBIN'#010+
' -$(DEL) $(LOCALFPMAKEBIN)'#010+
' -$(DEL) $(FPMAKEBINOBJ)'#010+
'endif'#010+
@@ -2221,149 +2232,149 @@ const fpcmakeini : array[0..249,1..240] of char=(
#010+
#010+
'[baseinforules]'#010+
- '#####################################################################'#010+
- '# Base info rules'#010+
- '###################','#################################################'+
+ '####','################################################################'+
'#'#010+
+ '# Base info rules'#010+
+ '#####################################################################'#010+
#010+
'.PHONY: fpc_baseinfo'#010+
#010+
'override INFORULES+=fpc_baseinfo'#010+
#010+
'fpc_baseinfo:'#010+
- ' @$(ECHO)'#010+
+ ' @$(ECHO',')'#010+
' @$(ECHO) == Package info =='#010+
' @$(ECHO) Package Name..... $(PACKAGE_NAME)'#010+
- ' @$(E','CHO) Package Version.. $(PACKAGE_VERSION)'#010+
+ ' @$(ECHO) Package Version.. $(PACKAGE_VERSION)'#010+
' @$(ECHO)'#010+
' @$(ECHO) == Configuration info =='#010+
' @$(ECHO)'#010+
- ' @$(ECHO) FPC.......... $(FPC)'#010+
+ ' @$(ECHO) ',' FPC.......... $(FPC)'#010+
' @$(ECHO) FPC Version.. $(FPC_VERSION)'#010+
- ' @$(ECHO) Source CPU... $(','CPU_SOURCE)'#010+
+ ' @$(ECHO) Source CPU... $(CPU_SOURCE)'#010+
' @$(ECHO) Target CPU... $(CPU_TARGET)'#010+
' @$(ECHO) Source OS.... $(OS_SOURCE)'#010+
- ' @$(ECHO) Target OS.... $(OS_TARGET)'#010+
+ ' @$(ECHO) Target OS.... $(','OS_TARGET)'#010+
' @$(ECHO) Full Source.. $(FULL_SOURCE)'#010+
- ' @$(ECHO) Full Target.. $(FULL_TARGET',')'#010+
+ ' @$(ECHO) Full Target.. $(FULL_TARGET)'#010+
' @$(ECHO) SourceSuffix. $(SOURCESUFFIX)'#010+
' @$(ECHO) TargetSuffix. $(TARGETSUFFIX)'#010+
- ' @$(ECHO) FPC fpmake... $(FPCFPMAKE)'#010+
+ ' @$(ECHO) FPC fpmake... $(FPCFP','MAKE)'#010+
' @$(ECHO)'#010+
' @$(ECHO) == Directory info =='#010+
' @$(ECHO)'#010+
- ' @$(ECHO) Requir','ed pkgs... $(REQUIRE_PACKAGES)'#010+
+ ' @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)'#010+
' @$(ECHO)'#010+
' @$(ECHO) Basedir......... $(BASEDIR)'#010+
- ' @$(ECHO) FPCDir.......... $(FPCDIR)'#010+
+ ' @$(ECHO) FPCDir.......... $(FPCDIR',')'#010+
' @$(ECHO) CrossBinDir..... $(CROSSBINDIR)'#010+
' @$(ECHO) UnitsDir........ $(UNITSDIR)'#010+
- ' ',' @$(ECHO) PackagesDir..... $(PACKAGESDIR)'#010+
+ ' @$(ECHO) PackagesDir..... $(PACKAGESDIR)'#010+
' @$(ECHO)'#010+
' @$(ECHO) GCC library..... $(GCCLIBDIR)'#010+
- ' @$(ECHO) Other library... $(OTHERLIBDIR)'#010+
+ ' @$(ECHO) Other li','brary... $(OTHERLIBDIR)'#010+
' @$(ECHO)'#010+
' @$(ECHO) == Tools info =='#010+
' @$(ECHO)'#010+
- ' @$','(ECHO) As........ $(AS)'#010+
+ ' @$(ECHO) As........ $(AS)'#010+
' @$(ECHO) Ld........ $(LD)'#010+
' @$(ECHO) Ar........ $(AR)'#010+
' @$(ECHO) Rc........ $(RC)'#010+
- ' @$(ECHO)'#010+
+ ' ',' @$(ECHO)'#010+
' @$(ECHO) Mv........ $(MVPROG)'#010+
' @$(ECHO) Cp........ $(CPPROG)'#010+
- ' @$(ECHO',') Rm........ $(RMPROG)'#010+
+ ' @$(ECHO) Rm........ $(RMPROG)'#010+
' @$(ECHO) GInstall.. $(GINSTALL)'#010+
' @$(ECHO) Echo...... $(ECHO)'#010+
- ' @$(ECHO) Shell..... $(SHELL)'#010+
+ ' @$(ECHO) Shell..... $(SHEL','L)'#010+
' @$(ECHO) Date...... $(DATE)'#010+
' @$(ECHO) FPCMake... $(FPCMAKE)'#010+
- ' @$(ECHO) PPUMo','ve... $(PPUMOVE)'#010+
+ ' @$(ECHO) PPUMove... $(PPUMOVE)'#010+
' @$(ECHO) Zip....... $(ZIPPROG)'#010+
' @$(ECHO)'#010+
' @$(ECHO) == Object info =='#010+
' @$(ECHO)'#010+
- ' @$(ECHO) Target Loaders........ $(TARGET_LOADERS)'#010+
- ' @$(ECHO) Target Units.......... $(TARGET_UNIT','S)'#010+
+ ' @$','(ECHO) Target Loaders........ $(TARGET_LOADERS)'#010+
+ ' @$(ECHO) Target Units.......... $(TARGET_UNITS)'#010+
' @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)'#010+
' @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)'#010+
- ' @$(ECHO) Target Dirs........... $(TARGET_DIRS)'#010+
- ' @$(ECHO) Target Examples....... $(TARGET_EXAMPL','ES)'#010+
+ ' @','$(ECHO) Target Dirs........... $(TARGET_DIRS)'#010+
+ ' @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)'#010+
' @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)'#010+
' @$(ECHO)'#010+
- ' @$(ECHO) Clean Units......... $(CLEAN_UNITS)'#010+
+ ' @$(ECHO) Clean Units......... $(CLEAN_UNITS)',#010+
' @$(ECHO) Clean Files......... $(CLEAN_FILES)'#010+
' @$(ECHO)'#010+
- ' @$(ECHO) Install Units','....... $(INSTALL_UNITS)'#010+
+ ' @$(ECHO) Install Units....... $(INSTALL_UNITS)'#010+
' @$(ECHO) Install Files....... $(INSTALL_FILES)'#010+
' @$(ECHO)'#010+
' @$(ECHO) == Install info =='#010+
- ' @$(ECHO)'#010+
+ ' ',' @$(ECHO)'#010+
' @$(ECHO) DateStr.............. $(DATESTR)'#010+
- ' @$(ECHO) ZipName............','.. $(ZIPNAME)'#010+
+ ' @$(ECHO) ZipName.............. $(ZIPNAME)'#010+
' @$(ECHO) ZipPrefix............ $(ZIPPREFIX)'#010+
' @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)'#010+
- ' @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)'#010+
+ ' @$(E','CHO) ZipSuffix............ $(ZIPSUFFIX)'#010+
' @$(ECHO) FullZipName.......... $(FULLZIPNAME)'#010+
- ' ',' @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)'#010+
+ ' @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)'#010+
' @$(ECHO)'#010+
' @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)'#010+
- ' @$(ECHO) Install binary dir... $(INSTALL_BINDIR)'#010+
- ' @$(ECHO) Install library dir.. $(INSTALL_L','IBDIR)'#010+
+ ' ',' @$(ECHO) Install binary dir... $(INSTALL_BINDIR)'#010+
+ ' @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)'#010+
' @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)'#010+
' @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)'#010+
- ' @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)'#010+
- ' @$(ECHO) Install example dir.. $(INSTALL_EXAMP','LEDIR)'#010+
+ ' @$','(ECHO) Install doc dir...... $(INSTALL_DOCDIR)'#010+
+ ' @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)'#010+
' @$(ECHO) Install data dir..... $(INSTALL_DATADIR)'#010+
' @$(ECHO)'#010+
- ' @$(ECHO) Dist destination dir. $(DIST_DESTDIR)'#010+
+ ' @$(ECHO) Dist destination dir. $(DIST_DESTDIR',')'#010+
' @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)'#010+
' @$(ECHO)'#010+
#010+
'[inforules]'#010+
- '###############','#####################################################'+
- '#'#010+
- '# Info rules'#010+
'#####################################################################'#010+
+ '# Info rules'#010+
+ '#####################################################################',
+ #010+
#010+
'.PHONY: fpc_info'#010+
#010+
'fpc_info: $(INFORULES)'#010+
#010+
'[makefilerules]'#010+
- '###########################################','#########################'+
- '#'#010+
+ '#####################################################################'#010+
'# Rebuild Makefile'#010+
'#####################################################################'#010+
#010+
- '.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2'+
- ' \'#010+
+ '.PHONY: fpc_makefile',' fpc_makefiles fpc_makefile_sub1 fpc_makefile_su'+
+ 'b2 \'#010+
' fpc_makefile_dirs'#010+
#010+
'fpc_makefile:'#010+
- ' $','(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc'#010+
+ ' $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc'#010+
#010+
'fpc_makefile_sub1:'#010+
'ifdef TARGET_DIRS'#010+
- ' $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGE'+
- 'T_DIRS))'#010+
+ ' $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile','.fpc,$(TAR'+
+ 'GET_DIRS))'#010+
'endif'#010+
'ifdef TARGET_EXAMPLEDIRS'#010+
- ' $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /M','akefile.fpc,$(TAR'+
- 'GET_EXAMPLEDIRS))'#010+
+ ' $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGE'+
+ 'T_EXAMPLEDIRS))'#010+
'endif'#010+
#010+
'fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_'+
'EXAMPLEDIRS))'#010+
#010+
- 'fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2'#010+
+ 'fpc_makefi','le_dirs: fpc_makefile_sub1 fpc_makefile_sub2'#010+
#010+
'fpc_makefiles: fpc_makefile fpc_makefile_dirs'#010+
#010+
- '[localmake','file]'#010+
+ '[localmakefile]'#010+
'#####################################################################'#010+
'# Local Makefile'#010+
- '#####################################################################'#010+
+ '############################################','########################'+
+ '#'#010+
#010+
'ifneq ($(wildcard fpcmake.loc),)'#010+
'include fpcmake.loc'#010+
@@ -2371,19 +2382,19 @@ const fpcmakeini : array[0..249,1..240] of char=(
#010+
#010+
'[userrules]'#010+
- '###','#################################################################'+
- '#'#010+
- '# Users rules'#010+
'#####################################################################'#010+
+ '# Users rules'#010+
+ '########################################################','############'+
+ '#'#010+
#010+
'[lclrules]'#010+
'#####################################################################'#010+
- '# LCL R','ules'#010+
+ '# LCL Rules'#010+
'#####################################################################'#010+
#010+
'# LCL Platform'#010+
'ifndef LCL_PLATFORM'#010+
- 'ifneq ($(findstring $(OS_TARGET),win32 win64),)'#010+
+ 'ifneq ($(findstring $(OS_T','ARGET),win32 win64),)'#010+
'LCL_PLATFORM=win32'#010+
'else'#010+
'LCL_PLATFORM=gtk'#010+
@@ -2391,170 +2402,170 @@ const fpcmakeini : array[0..249,1..240] of char=(
'endif'#010+
'export LCL_PLATFORM'#010+
#010+
- '# Check',' if the specified LCLDIR is correct'#010+
+ '# Check if the specified LCLDIR is correct'#010+
'ifdef LCLDIR'#010+
'override LCLDIR:=$(subst \,/,$(LCLDIR))'#010+
- 'ifeq ($(wildcard $(LCLDIR)/units/$(LCL_PLATFORM)),)'#010+
+ 'ifeq ($(wildcard $(LCLDIR)/units/$(LCL_PLATFORM)','),)'#010+
'override LCLDIR=wrong'#010+
'endif'#010+
'else'#010+
'override LCLDIR=wrong'#010+
'endif'#010+
#010+
- '# Check if the default LCLDIR is corr','ect'#010+
+ '# Check if the default LCLDIR is correct'#010+
'ifdef DEFAULT_LCLDIR'#010+
'override LCLDIR:=$(subst \,/,$(DEFAULT_LCLDIR))'#010+
'ifeq ($(wildcard $(LCLDIR)/units/$(LCL_PLATFORM)),)'#010+
- 'override LCLDIR=wrong'#010+
+ 'override LCL','DIR=wrong'#010+
'endif'#010+
'endif'#010+
#010+
'# Check for development version'#010+
'ifeq ($(LCLDIR),wrong)'#010+
- 'override LCLDIR=$(subst /','units/$(LCL_PLATFORM),,$(firstword $(wildca'+
- 'rd $(addsuffix /units/$(LCL_PLATFORM),$(BASEDIR)/lcl $(BASEDIR)))))'#010+
+ 'override LCLDIR=$(subst /units/$(LCL_PLATFORM),,$(firstword $(wildcard'+
+ ' $(addsuffix /units/$(LCL_PLATFORM),$(BASEDIR)/lcl $(BASEDIR)))))'#010+
'ifeq ($(LCLDIR),)'#010+
- 'override LCLDIR=wrong'#010+
+ 'override',' LCLDIR=wrong'#010+
'endif'#010+
'endif'#010+
#010+
'# Check for release version'#010+
'ifeq ($(LCLDIR),wrong)'#010+
- 'override LCLDIR=$(subst /','units/$(LCL_PLATFORM),,$(firstword $(wildca'+
- 'rd $(addsuffix /lib/lazarus/units/$(LCL_PLATFORM),/usr/local /usr))))'#010+
+ 'override LCLDIR=$(subst /units/$(LCL_PLATFORM),,$(firstword $(wildcard'+
+ ' $(addsuffix /lib/lazarus/units/$(LCL_PLATFORM),/usr/local /usr))))'#010+
'ifeq ($(LCLDIR),)'#010+
- 'override LCLDIR=wrong'#010+
+ 'overri','de LCLDIR=wrong'#010+
'endif'#010+
'endif'#010+
#010+
'# Generate dirs'#010+
- 'override LCLUNITDIR=$(wildcard $(LCLDIR)/units/$(LCL_PLATF','ORM) $(LCL'+
- 'DIR)/units)'#010+
+ 'override LCLUNITDIR=$(wildcard $(LCLDIR)/units/$(LCL_PLATFORM) $(LCLDI'+
+ 'R)/units)'#010+
'override LCLCOMPONENTDIR=$(wildcard $(LCLDIR)/.. $(LCLDIR)/../componen'+
'ts $(LCLDIR)/components)'#010+
- 'export LCLDIR LCLUNITDIR LCLCOMPONENTDIR'#010+
+ 'export LCLDIR LCLUNI','TDIR LCLCOMPONENTDIR'#010+
#010+
'# Add LCL dirs to paths'#010+
'override REQUIRE_PACKAGESDIR+=$(LCLCOMPONENTDIR)'#010+
- 'override',' COMPILER_UNITDIR+=$(LCLUNITDIR)'#010+
+ 'override COMPILER_UNITDIR+=$(LCLUNITDIR)'#010+
#010+
'[lclinforules]'#010+
'#####################################################################'#010+
'# LCL Info rules'#010+
- '#####################################################################'#010+
+ '#','###################################################################'+
+ '#'#010+
'override INFORULES+=lclinfo'#010+
#010+
- '.PHON','Y: lclinfo'#010+
+ '.PHONY: lclinfo'#010+
#010+
'lclinfo:'#010+
' @$(ECHO) == LCL info =='#010+
' @$(ECHO)'#010+
' @$(ECHO) Platform............. $(LCL_PLATFORM)'#010+
- ' @$(ECHO) LCLDIR............... $(LCLDIR)'#010+
+ ' @$','(ECHO) LCLDIR............... $(LCLDIR)'#010+
' @$(ECHO) LCL Unit dir......... $(LCLUNITDIR)'#010+
- ' @','$(ECHO) LCL Component dir.... $(LCLCOMPONENTDIR)'#010+
+ ' @$(ECHO) LCL Component dir.... $(LCLCOMPONENTDIR)'#010+
' @$(ECHO)'#010+
#010+
'[fpmakeprerules]'#010+
- '#####################################################################'#010+
- '# fpmake prerules'#010+
- '###################################################################','#'+
+ '####################################################','################'+
'#'#010+
+ '# fpmake prerules'#010+
+ '#####################################################################'#010+
'FPMAKEBIN=fpmake$(SRCEXEEXT)'#010+
'FPMAKEBINOBJ=fpmake$(OEXT) fpmake$(LTOEXT)'#010+
'LOCALFPMAKEBIN=.$(PATHSEP)$(FPMAKEBIN)'#010+
#010+
- '# Convert the OS_TARGET and CPU_TARGET options to fpmake'#039's --os an'+
- 'd --cpu parameters'#010+
+ '# Convert the OS_TARGE','T and CPU_TARGET options to fpmake'#039's --os '+
+ 'and --cpu parameters'#010+
'ifdef OS_TARGET'#010+
- 'FPC_TARGETOPT+=--os=$(OS','_TARGET)'#010+
+ 'FPC_TARGETOPT+=--os=$(OS_TARGET)'#010+
'endif'#010+
'ifdef CPU_TARGET'#010+
'FPC_TARGETOPT+=--cpu=$(CPU_TARGET)'#010+
'endif'#010+
#010+
'# Get the location of the bootstrap-fpmkunit units'#010+
- 'PACKAGEDIR_FPMKUNIT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wild'+
- 'card $(addsuffix /fpmkunit/Makefile.fpc,$(PAC','KAGESDIR))))))'#010+
+ 'PACKAGEDIR_F','PMKUNIT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wi'+
+ 'ldcard $(addsuffix /fpmkunit/Makefile.fpc,$(PACKAGESDIR))))))'#010+
'ifneq ($(PACKAGEDIR_FPMKUNIT),)'#010+
'UNITDIR_FPMAKE_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)/units_bs/$(SOURCESUFFIX'+
')'#010+
- 'override COMPILER_FPMAKE_UNITDIR=$(UNITDIR_FPMAKE_FPMKUNIT)'#010+
+ 'override COMPILER_','FPMAKE_UNITDIR=$(UNITDIR_FPMAKE_FPMKUNIT)'#010+
'FPMKUNIT_SRC=$(PACKAGEDIR_FPMKUNIT)/src/fpmkunit.pp'#010+
- 'FPMKUNIT_','PPU=$(UNITDIR_FPMAKE_FPMKUNIT)/fpmkunit.ppu'#010+
+ 'FPMKUNIT_PPU=$(UNITDIR_FPMAKE_FPMKUNIT)/fpmkunit.ppu'#010+
'endif'#010+
#010+
'ifdef FPMAKE_SKIP_CONFIG'#010+
'override FPMAKE_BUILD_OPT+=$(FPMAKE_SKIP_CONFIG)'#010+
'endif'#010+
#010+
- '[fpmakerules]'#010+
+ '[fpma','kerules]'#010+
'#####################################################################'#010+
'# fpmake rules'#010+
- '#########','###########################################################'+
- '#'#010+
+ '#####################################################################'#010+
'.PHONY: fpc_fpmake fpc_fpmake_clean fpc_fpmake_install fpc_fpmake_exam'+
- 'pleinstall'#010+
+ 'pleins','tall'#010+
#010+
'# Do not pass the Makefile'#039's unit and binary target locations. fpm'+
'ake uses it'#039's own.'#010+
- 'override FPC','OPT:=$(filter-out -FU%,$(FPCOPT))'#010+
+ 'override FPCOPT:=$(filter-out -FU%,$(FPCOPT))'#010+
'override FPCOPT:=$(filter-out -FE%,$(FPCOPT))'#010+
'# Compose general fpmake-parameters'#010+
'ifdef FPMAKEOPT'#010+
- 'FPMAKE_OPT+=$(FPMAKEOPT)'#010+
+ 'FPMAK','E_OPT+=$(FPMAKEOPT)'#010+
'endif'#010+
'FPMAKE_OPT+=--localunitdir=$(FPCDIR)'#010+
- 'FPMAKE_OPT+=--globalunitdir=$(FPCDIR)/pa','ckages'#010+
+ 'FPMAKE_OPT+=--globalunitdir=$(FPCDIR)/packages'#010+
'FPMAKE_OPT+=$(FPC_TARGETOPT)'#010+
'FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))'#010+
'FPMAKE_OPT+=--compiler=$(FPC)'#010+
'FPMAKE_OPT+=-bu'#010+
#010+
- 'FPMAKE_INSTALL_OPT+=--unitinstalldir=$(INSTALL_UNITDIR)'#010+
+ 'FPMAKE_INSTALL_','OPT+=--unitinstalldir=$(INSTALL_UNITDIR)'#010+
'ifdef UNIXHier'#010+
- 'FPMAKE_INSTALL_OPT+=--prefix=$(INSTALL_PREFIX)'#010,
+ 'FPMAKE_INSTALL_OPT+=--prefix=$(INSTALL_PREFIX)'#010+
'FPMAKE_INSTALL_OPT+=--baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSI'+
'ON)'#010+
'else'#010+
'FPMAKE_INSTALL_OPT+=--prefix=$(INSTALL_BASEDIR)'#010+
'endif'#010+
#010+
- 'override ALLTARGET+=fpc_fpmake'#010+
+ 'ove','rride ALLTARGET+=fpc_fpmake'#010+
'override INSTALLTARGET+=fpc_fpmake_install'#010+
- 'override EXAMPLEINSTALLTARGET+=f','pc_fpmake_exampleinstall'#010+
+ 'override EXAMPLEINSTALLTARGET+=fpc_fpmake_exampleinstall'#010+
'# If no fpmake exists and (dist)clean is called, do not try to build f'+
'pmake, it will'#010+
- '# most often fail because the dependencies are cleared.'#010+
+ '# most often fail because t','he dependencies are cleared.'#010+
'# In case of a clean, simply do nothing'#010+
- 'ifneq ($(wildcard $(LOCALFPMAKEBIN',')),)'#010+
+ 'ifneq ($(wildcard $(LOCALFPMAKEBIN)),)'#010+
'override CLEANTARGET+=fpc_fpmake_clean'#010+
'endif'#010+
#010+
'$(FPMKUNIT_PPU): $(FPMKUNIT_SRC)'#010+
- ' $(MAKE) -C $(PACKAGEDIR_FPMKUNIT) bootstrap $(addprefix OP'+
- 'T=,$(FPMAKE_BUILD_OPT))'#010+
+ ' $(MAKE) -C $(PACKAGEDIR_FPMKUNIT) bootstr','ap $(addprefix '+
+ 'OPT=,$(FPMAKE_BUILD_OPT))'#010+
#010+
'$(FPMAKEBIN): fpmake.pp $(FPMKUNIT_PPU)'#010+
- ' $(FPCFPMAKE) ','fpmake.pp $(addprefix -Fu,$(COMPILER_FPMAKE_UNI'+
- 'TDIR)) $(FPMAKE_BUILD_OPT)'#010+
+ ' $(FPCFPMAKE) fpmake.pp $(addprefix -Fu,$(COMPILER_FPMAKE_UNITD'+
+ 'IR)) $(FPMAKE_BUILD_OPT)'#010+
#010+
'fpc_fpmake: $(FPMAKEBIN)'#010+
- ' $(LOCALFPMAKEBIN) compile $(FPMAKE_OPT)'#010+
+ ' $(LOCALFPMAKEBIN) compile',' $(FPMAKE_OPT)'#010+
#010+
'fpc_fpmake_clean: $(FPMAKEBIN)'#010+
' $(LOCALFPMAKEBIN) clean $(FPMAKE_OPT)'#010+
#010+
- 'fpc_f','pmake_install: $(FPMAKEBIN)'#010+
+ 'fpc_fpmake_install: $(FPMAKEBIN)'#010+
' $(LOCALFPMAKEBIN) install $(FPMAKE_OPT) $(FPMAKE_INSTALL_O'+
'PT)'#010+
#010+
- '# This is not completely valid. Exampleinstall should only install the'+
- ' examples, while'#010+
- '# fpmake -ie installs everything, including the ex','amples. This also '+
- 'means that on'#010+
+ '# This is not completely valid. Ex','ampleinstall should only install t'+
+ 'he examples, while'#010+
+ '# fpmake -ie installs everything, including the examples. This also me'+
+ 'ans that on'#010+
'# a distinstall fpmake install wil be called twice.'#010+
'fpc_fpmake_exampleinstall: $(FPMAKEBIN)'#010+
- ' $(LOCALFPMAKEBIN) install -ie $(FPMAKE_OPT) $(FPMAKE_INSTA'+
- 'LL_OPT)'#010
+ ' $','(LOCALFPMAKEBIN) install -ie $(FPMAKE_OPT) $(FPMAKE_INS'+
+ 'TALL_OPT)'#010
);
diff --git a/utils/fpcm/fpcmake.ini b/utils/fpcm/fpcmake.ini
index f5311ef78c..4ed21b7f8f 100644
--- a/utils/fpcm/fpcmake.ini
+++ b/utils/fpcm/fpcmake.ini
@@ -1170,6 +1170,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
@@ -1181,6 +1184,11 @@ SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+# ZX Spectrum
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
+
# For 8.3 limited OS's the short suffixes
# Otherwise use the full source/target names
diff --git a/utils/fpcm/fpcmmain.pp b/utils/fpcm/fpcmmain.pp
index f6d705c5b6..ccf8881239 100644
--- a/utils/fpcm/fpcmmain.pp
+++ b/utils/fpcm/fpcmmain.pp
@@ -69,7 +69,7 @@ interface
type
TCpu=(
- c_i386,c_m68k,c_powerpc,c_sparc,c_x86_64,c_arm,c_powerpc64,c_avr,c_armeb,c_armel,c_mips,c_mipsel,c_mips64,c_mips64el,c_jvm,c_i8086,c_aarch64,c_wasm,c_sparc64,c_riscv32,c_riscv64,c_xtensa
+ c_i386,c_m68k,c_powerpc,c_sparc,c_x86_64,c_arm,c_powerpc64,c_avr,c_armeb,c_armel,c_mips,c_mipsel,c_mips64,c_mips64el,c_jvm,c_i8086,c_aarch64,c_wasm,c_sparc64,c_riscv32,c_riscv64,c_xtensa,c_z80
);
TOS=(
@@ -77,22 +77,23 @@ interface
o_amiga,o_atari, o_solaris, o_qnx, o_netware, o_openbsd,o_wdosx,
o_palmos,o_macos,o_darwin,o_emx,o_watcom,o_morphos,o_netwlibc,
o_win64,o_wince,o_gba,o_nds,o_embedded,o_symbian,o_nativent,o_iphonesim,
- o_wii,o_aix,o_java,o_android,o_msdos,o_aros,o_dragonfly,o_win16,o_wasm,o_freertos
+ o_wii,o_aix,o_java,o_android,o_msdos,o_aros,o_dragonfly,o_win16,o_wasm,o_freertos,
+ o_zxspectrum
);
TTargetSet=array[tcpu,tos] of boolean;
const
CpuStr : array[TCpu] of string=(
- 'i386','m68k','powerpc','sparc','x86_64','arm','powerpc64','avr','armeb', 'armel', 'mips', 'mipsel', 'mips64', 'mips64el', 'jvm','i8086','aarch64','wasm','sparc64','riscv32','riscv64','xtensa'
+ 'i386','m68k','powerpc','sparc','x86_64','arm','powerpc64','avr','armeb', 'armel', 'mips', 'mipsel', 'mips64', 'mips64el', 'jvm','i8086','aarch64','wasm','sparc64','riscv32','riscv64','xtensa','z80'
);
CpuSuffix : array[TCpu] of string=(
- '_i386','_m68k','_powerpc','_sparc','_x86_64','_arm','_powerpc64','_avr','_armeb', '_armel', '_mips', '_mipsel', '_mips64', '_mips64el', '_jvm','_i8086','_aarch64','_wasm','_sparc64','_riscv32','_riscv64','xtensa'
+ '_i386','_m68k','_powerpc','_sparc','_x86_64','_arm','_powerpc64','_avr','_armeb', '_armel', '_mips', '_mipsel', '_mips64', '_mips64el', '_jvm','_i8086','_aarch64','_wasm','_sparc64','_riscv32','_riscv64','xtensa','_z80'
);
ppcSuffix : array[TCpu] of string=(
- '386','68k','ppc','sparc','x64','arm','ppc64','avr','armeb', 'armel', 'mips', 'mipsel', 'mips64', 'mips64el', 'jvm','8086','a64','wasm','sparc64','rv32','rv64','xtensa'
+ '386','68k','ppc','sparc','x64','arm','ppc64','avr','armeb', 'armel', 'mips', 'mipsel', 'mips64', 'mips64el', 'jvm','8086','a64','wasm','sparc64','rv32','rv64','xtensa','z80'
);
OSStr : array[TOS] of string=(
@@ -101,7 +102,7 @@ interface
'palmos','macos','darwin','emx','watcom','morphos','netwlibc',
'win64','wince','gba','nds','embedded','symbian','nativent',
'iphonesim', 'wii', 'aix', 'java', 'android', 'msdos', 'aros',
- 'dragonfly', 'win16', 'wasm', 'freertos'
+ 'dragonfly', 'win16', 'wasm', 'freertos', 'zxspectrum'
);
OSSuffix : array[TOS] of string=(
@@ -110,52 +111,53 @@ interface
'_palmos','_macos','_darwin','_emx','_watcom','_morphos','_netwlibc',
'_win64','_wince','_gba','_nds','_embedded','_symbian','_nativent',
'_iphonesim','_wii','_aix','_java','_android','_msdos','_aros',
- '_dragonfly','_win16','_wasm','_freertos'
+ '_dragonfly','_win16','_wasm','_freertos','_zxspectrum'
);
{ This table is kept OS,Cpu because it is easier to maintain (PFV) }
OSCpuPossible : array[TOS,TCpu] of boolean = (
- { os i386 m68k ppc sparc x86_64 arm ppc64 avr armeb armel mips mipsel mips64 misp64el jvm i8086 aarch64 wasm sparc64 riscv32 riscv64 xtensa}
- { linux } ( true, true, true, true, true, true, true, false, true, false, true, true, false, false, false, false, true, false, true, true, true, true ),
- { go32v2 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { win32 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { os2 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { freebsd } ( true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { beos } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { haiku } ( true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { netbsd } ( true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { amiga } ( false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { atari } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { solaris } ( true, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { qnx } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { netware } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { openbsd } ( true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { wdosx } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { palmos } ( false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { macos } ( false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { darwin } ( true, false, true, false, true, true, true, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false),
- { emx } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { watcom } ( true, false, false, false ,false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { morphos } ( false, false, true, false ,false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { netwlibc }( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { win64 } ( false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false),
- { wince }( true, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { gba } ( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { nds } ( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { embedded }( true, true, true, true, true, true, true, true, true , false, false, true , false, false, false, true , false, false, false, true, true, true ),
- { symbian } ( true, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { nativent }( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { iphonesim }( true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { wii } ( false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { aix } ( false, false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { java } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false),
- { android } ( true, false, false, false, true, true, false, false, false, false, false, true, false, false, true, false, true, false, false, false, false, false),
- { msdos } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false),
- { aros } ( true, false, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- {dragonfly} ( false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { win16 } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false),
- { wasm } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false),
- { freertos }( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true )
+ { os i386 m68k ppc sparc x86_64 arm ppc64 avr armeb armel mips mipsel mips64 misp64el jvm i8086 aarch64 wasm sparc64 riscv32 riscv64 xtensa z80 }
+ { linux } ( true, true, true, true, true, true, true, false, true, false, true, true, false, false, false, false, true, false, true, true, true, true, false),
+ { go32v2 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { win32 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { os2 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { freebsd } ( true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { beos } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { haiku } ( true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { netbsd } ( true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { amiga } ( false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { atari } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { solaris } ( true, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { qnx } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { netware } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { openbsd } ( true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { wdosx } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { palmos } ( false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { macos } ( false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { darwin } ( true, false, true, false, true, true, true, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false),
+ { emx } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { watcom } ( true, false, false, false ,false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { morphos } ( false, false, true, false ,false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { netwlibc }( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { win64 } ( false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false),
+ { wince }( true, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { gba } ( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { nds } ( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { embedded }( true, true, true, true, true, true, true, true, true , false, false, true , false, false, false, true , false, false, false, true, true, true, true),
+ { symbian } ( true, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { nativent }( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { iphonesim }( true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { wii } ( false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { aix } ( false, false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { java } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false),
+ { android } ( true, false, false, false, true, true, false, false, false, false, false, true, false, false, true, false, true, false, false, false, false, false, false),
+ { msdos } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false, false),
+ { aros } ( true, false, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ {dragonfly} ( false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
+ { win16 } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false, false),
+ { wasm } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false),
+ { freertos }( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false),
+ {zxspectrum}( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true)
);
type
diff --git a/utils/fpcmkcfg/Makefile b/utils/fpcmkcfg/Makefile
index bb1efd38a6..44e282949c 100644
--- a/utils/fpcmkcfg/Makefile
+++ b/utils/fpcmkcfg/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/fpcres/Makefile b/utils/fpcres/Makefile
index 5bb4248cfa..c9a9ec8c92 100644
--- a/utils/fpcres/Makefile
+++ b/utils/fpcres/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/fpcreslipo/Makefile b/utils/fpcreslipo/Makefile
index af1dbe6625..10f5258159 100644
--- a/utils/fpcreslipo/Makefile
+++ b/utils/fpcreslipo/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/fpdoc/Makefile b/utils/fpdoc/Makefile
index 0167e79a46..301a45c34d 100644
--- a/utils/fpdoc/Makefile
+++ b/utils/fpdoc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/fpdoc/fpde/Makefile b/utils/fpdoc/fpde/Makefile
index f0a4166146..4dfb47c4b3 100644
--- a/utils/fpdoc/fpde/Makefile
+++ b/utils/fpdoc/fpde/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -640,6 +640,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=fpde
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override TARGET_PROGRAMS+=fpde
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override TARGET_PROGRAMS+=fpde
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
endif
@@ -931,6 +937,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
+endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
endif
@@ -1222,6 +1234,12 @@ endif
ifeq ($(FULL_TARGET),xtensa-freertos)
override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
+endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1668,6 +1686,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -1676,6 +1697,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3095,6 +3119,30 @@ REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-PASSRC=1
REQUIRE_PACKAGES_FPGTK=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_FPGTK=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_FPGTK=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/fpmake_add.inc b/utils/fpmake_add.inc
index 7258debf2b..dda7bf4700 100644
--- a/utils/fpmake_add.inc
+++ b/utils/fpmake_add.inc
@@ -18,3 +18,4 @@
add_tply(ADirectory+IncludeTrailingPathDelimiter('tply'));
add_unicode(ADirectory+IncludeTrailingPathDelimiter('unicode'));
add_pas2js(ADirectory+IncludeTrailingPathDelimiter('pas2js'));
+ add_ihx2tzx(ADirectory+IncludeTrailingPathDelimiter('ihx2tzx'));
diff --git a/utils/fpmake_proc.inc b/utils/fpmake_proc.inc
index 74824b54f2..97e4bb3c64 100644
--- a/utils/fpmake_proc.inc
+++ b/utils/fpmake_proc.inc
@@ -38,3 +38,5 @@
{$include pas2js/fpmake.pp}
+{$include ihx2tzx/fpmake.pp}
+
diff --git a/utils/fpmc/Makefile b/utils/fpmc/Makefile
index 73af44004c..eaba84ffe9 100644
--- a/utils/fpmc/Makefile
+++ b/utils/fpmc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/fppkg/Makefile b/utils/fppkg/Makefile
index 38f6c664d4..1060063d5e 100644
--- a/utils/fppkg/Makefile
+++ b/utils/fppkg/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/fprcp/Makefile b/utils/fprcp/Makefile
index 6e83aad428..d0fe988873 100644
--- a/utils/fprcp/Makefile
+++ b/utils/fprcp/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/h2pas/Makefile b/utils/h2pas/Makefile
index 6f6b6d7971..d8e3874f99 100644
--- a/utils/h2pas/Makefile
+++ b/utils/h2pas/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/ihx2tzx/Makefile b/utils/ihx2tzx/Makefile
new file mode 100644
index 0000000000..a56a320b5c
--- /dev/null
+++ b/utils/ihx2tzx/Makefile
@@ -0,0 +1,2688 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
+OSNeedsComspecToRunBatch = go32v2 watcom
+FORCE:
+.PHONY: FORCE
+override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
+ifneq ($(findstring darwin,$(OSTYPE)),)
+inUnix=1 #darwin
+SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
+else
+ifeq ($(findstring ;,$(PATH)),)
+inUnix=1
+SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
+else
+SEARCHPATH:=$(subst ;, ,$(PATH))
+endif
+endif
+SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
+PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
+ifeq ($(PWD),)
+PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
+ifeq ($(PWD),)
+$(error You need the GNU utils package to use this Makefile)
+else
+PWD:=$(firstword $(PWD))
+SRCEXEEXT=
+endif
+else
+PWD:=$(firstword $(PWD))
+SRCEXEEXT=.exe
+endif
+ifndef inUnix
+ifeq ($(OS),Windows_NT)
+inWinNT=1
+else
+ifdef OS2_SHELL
+inOS2=1
+endif
+endif
+else
+ifneq ($(findstring cygdrive,$(PATH)),)
+inCygWin=1
+endif
+endif
+ifdef inUnix
+SRCBATCHEXT=.sh
+else
+ifdef inOS2
+SRCBATCHEXT=.cmd
+else
+SRCBATCHEXT=.bat
+endif
+endif
+ifdef COMSPEC
+ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+ifndef RUNBATCH
+RUNBATCH=$(COMSPEC) /C
+endif
+endif
+endif
+ifdef inUnix
+PATHSEP=/
+else
+PATHSEP:=$(subst /,\,/)
+ifdef inCygWin
+PATHSEP=/
+endif
+endif
+ifdef PWD
+BASEDIR:=$(subst \,/,$(shell $(PWD)))
+ifdef inCygWin
+ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
+BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
+BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
+BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
+endif
+endif
+else
+BASEDIR=.
+endif
+ifdef inOS2
+ifndef ECHO
+ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO=echo
+else
+ECHO:=$(firstword $(ECHO))
+endif
+else
+ECHO:=$(firstword $(ECHO))
+endif
+endif
+export ECHO
+endif
+override DEFAULT_FPCDIR=../..
+ifndef FPC
+ifdef PP
+FPC=$(PP)
+endif
+endif
+ifndef FPC
+FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
+ifneq ($(FPCPROG),)
+FPCPROG:=$(firstword $(FPCPROG))
+ifneq ($(CPU_TARGET),)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
+else
+FPC:=$(shell $(FPCPROG) -PB)
+endif
+ifneq ($(findstring Error,$(FPC)),)
+override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
+else
+ifeq ($(strip $(wildcard $(FPC))),)
+FPC:=$(firstword $(FPCPROG))
+endif
+endif
+else
+override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
+endif
+endif
+override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
+override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
+FOUNDFPC:=$(strip $(wildcard $(FPC)))
+ifeq ($(FOUNDFPC),)
+FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
+ifeq ($(FOUNDFPC),)
+$(error Compiler $(FPC) not found)
+endif
+endif
+ifndef FPC_COMPILERINFO
+FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
+endif
+ifndef FPC_VERSION
+FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
+endif
+export FPC FPC_VERSION FPC_COMPILERINFO
+unexport CHECKDEPEND ALLDEPENDENCIES
+ifndef CPU_TARGET
+ifdef CPU_TARGET_DEFAULT
+CPU_TARGET=$(CPU_TARGET_DEFAULT)
+endif
+endif
+ifndef OS_TARGET
+ifdef OS_TARGET_DEFAULT
+OS_TARGET=$(OS_TARGET_DEFAULT)
+endif
+endif
+ifndef CPU_SOURCE
+CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
+endif
+ifndef CPU_TARGET
+CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
+endif
+ifndef OS_SOURCE
+OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
+endif
+ifndef OS_TARGET
+OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
+endif
+FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
+FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(CPU_TARGET),armeb)
+ARCH=arm
+override FPCOPT+=-Cb
+else
+ifeq ($(CPU_TARGET),armel)
+ARCH=arm
+override FPCOPT+=-CaEABI
+else
+ARCH=$(CPU_TARGET)
+endif
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(SUBARCH),)
+$(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(SUBARCH),)
+$(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(SUBARCH),)
+$(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(SUBARCH),)
+$(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(SUBARCH),)
+$(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(SUBARCH),)
+$(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
+endif
+override FPCOPT+=-Cp$(SUBARCH)
+endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+TARGETSUFFIX=$(OS_TARGET)
+SOURCESUFFIX=$(OS_SOURCE)
+else
+ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),)
+TARGETSUFFIX=$(OS_TARGET)
+else
+TARGETSUFFIX=$(FULL_TARGET)
+endif
+SOURCESUFFIX=$(FULL_SOURCE)
+endif
+ifneq ($(FULL_TARGET),$(FULL_SOURCE))
+CROSSCOMPILE=1
+endif
+ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
+ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
+$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
+endif
+endif
+ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
+BSDhier=1
+endif
+ifeq ($(OS_TARGET),linux)
+linuxHier=1
+endif
+ifndef CROSSCOMPILE
+BUILDFULLNATIVE=1
+export BUILDFULLNATIVE
+endif
+ifdef BUILDFULLNATIVE
+BUILDNATIVE=1
+export BUILDNATIVE
+endif
+export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
+ifdef FPCDIR
+override FPCDIR:=$(subst \,/,$(FPCDIR))
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
+override FPCDIR=wrong
+endif
+else
+override FPCDIR=wrong
+endif
+ifdef DEFAULT_FPCDIR
+ifeq ($(FPCDIR),wrong)
+override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
+override FPCDIR=wrong
+endif
+endif
+endif
+ifeq ($(FPCDIR),wrong)
+ifdef inUnix
+override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
+ifeq ($(wildcard $(FPCDIR)/units),)
+override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
+endif
+else
+override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
+override FPCDIR=c:/pp
+endif
+endif
+endif
+endif
+endif
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
+endif
+ifneq ($(findstring $(OS_TARGET),darwin iphonesim),)
+ifeq ($(OS_SOURCE),darwin)
+DARWIN2DARWIN=1
+endif
+endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
+ifdef CROSSCOMPILE
+ifneq ($(OS_TARGET),msdos)
+ifndef DARWIN2DARWIN
+ifneq ($(CPU_TARGET),jvm)
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
+ifeq ($(OS_TARGET),android)
+ifeq ($(CPU_TARGET),arm)
+BINUTILSPREFIX=arm-linux-androideabi-
+else
+ifeq ($(CPU_TARGET),i386)
+BINUTILSPREFIX=i686-linux-android-
+else
+BINUTILSPREFIX=$(CPU_TARGET)-linux-android-
+endif
+endif
+endif
+endif
+endif
+else
+BINUTILSPREFIX=$(OS_TARGET)-
+endif
+endif
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
+ifeq ($(UNITSDIR),)
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+endif
+PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
+ifndef FPCFPMAKE
+ifdef CROSSCOMPILE
+ifeq ($(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR)))),)
+FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
+ifneq ($(FPCPROG),)
+FPCPROG:=$(firstword $(FPCPROG))
+FPCFPMAKE:=$(shell $(FPCPROG) -PB)
+ifeq ($(strip $(wildcard $(FPCFPMAKE))),)
+FPCFPMAKE:=$(firstword $(FPCPROG))
+endif
+else
+override FPCFPMAKE=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
+endif
+else
+FPCFPMAKE=$(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR))))
+FPMAKE_SKIP_CONFIG=-n
+export FPCFPMAKE
+export FPMAKE_SKIP_CONFIG
+endif
+else
+FPMAKE_SKIP_CONFIG=-n
+FPCFPMAKE=$(FPC)
+endif
+endif
+override PACKAGE_NAME=ihx2tzx
+override PACKAGE_VERSION=3.3.1
+FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=./fpmake$(SRCEXEEXT)
+override INSTALL_FPCPACKAGE=y
+ifdef REQUIRE_UNITSDIR
+override UNITSDIR+=$(REQUIRE_UNITSDIR)
+endif
+ifdef REQUIRE_PACKAGESDIR
+override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
+endif
+ifdef ZIPINSTALL
+ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
+UNIXHier=1
+endif
+else
+ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
+UNIXHier=1
+endif
+endif
+ifndef INSTALL_PREFIX
+ifdef PREFIX
+INSTALL_PREFIX=$(PREFIX)
+endif
+endif
+ifndef INSTALL_PREFIX
+ifdef UNIXHier
+INSTALL_PREFIX=/usr/local
+else
+ifdef INSTALL_FPCPACKAGE
+INSTALL_BASEDIR:=/pp
+else
+INSTALL_BASEDIR:=/$(PACKAGE_NAME)
+endif
+endif
+endif
+export INSTALL_PREFIX
+ifdef INSTALL_FPCSUBDIR
+export INSTALL_FPCSUBDIR
+endif
+ifndef DIST_DESTDIR
+DIST_DESTDIR:=$(BASEDIR)
+endif
+export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
+else
+COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
+ifndef INSTALL_BASEDIR
+ifdef UNIXHier
+ifdef INSTALL_FPCPACKAGE
+INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
+else
+INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
+endif
+else
+INSTALL_BASEDIR:=$(INSTALL_PREFIX)
+endif
+endif
+ifndef INSTALL_BINDIR
+ifdef UNIXHier
+INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
+else
+INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
+ifdef INSTALL_FPCPACKAGE
+ifdef CROSSCOMPILE
+ifdef CROSSINSTALL
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
+else
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
+endif
+else
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
+endif
+endif
+endif
+endif
+ifndef INSTALL_UNITDIR
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
+ifdef INSTALL_FPCPACKAGE
+ifdef PACKAGE_NAME
+INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
+endif
+endif
+endif
+ifndef INSTALL_LIBDIR
+ifdef UNIXHier
+INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
+else
+INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
+endif
+endif
+ifndef INSTALL_SOURCEDIR
+ifdef UNIXHier
+ifdef BSDhier
+SRCPREFIXDIR=share/src
+else
+ifdef linuxHier
+SRCPREFIXDIR=share/src
+else
+SRCPREFIXDIR=src
+endif
+endif
+ifdef INSTALL_FPCPACKAGE
+ifdef INSTALL_FPCSUBDIR
+INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
+else
+INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
+endif
+else
+INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+endif
+else
+ifdef INSTALL_FPCPACKAGE
+ifdef INSTALL_FPCSUBDIR
+INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
+else
+INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
+endif
+else
+INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
+endif
+endif
+endif
+ifndef INSTALL_DOCDIR
+ifdef UNIXHier
+ifdef BSDhier
+DOCPREFIXDIR=share/doc
+else
+ifdef linuxHier
+DOCPREFIXDIR=share/doc
+else
+DOCPREFIXDIR=doc
+endif
+endif
+ifdef INSTALL_FPCPACKAGE
+INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
+else
+INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+endif
+else
+ifdef INSTALL_FPCPACKAGE
+INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
+else
+INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
+endif
+endif
+endif
+ifndef INSTALL_EXAMPLEDIR
+ifdef UNIXHier
+ifdef INSTALL_FPCPACKAGE
+ifdef BSDhier
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
+else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
+else
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
+endif
+endif
+else
+ifdef BSDhier
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+else
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+endif
+endif
+endif
+else
+ifdef INSTALL_FPCPACKAGE
+INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
+else
+INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
+endif
+endif
+endif
+ifndef INSTALL_DATADIR
+INSTALL_DATADIR=$(INSTALL_BASEDIR)
+endif
+ifndef INSTALL_SHAREDDIR
+INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
+endif
+ifdef CROSSCOMPILE
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
+ifeq ($(CROSSBINDIR),)
+CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
+endif
+endif
+else
+CROSSBINDIR=
+endif
+ifeq ($(OS_SOURCE),linux)
+ifndef GCCLIBDIR
+ifeq ($(CPU_TARGET),i386)
+ifneq ($(findstring x86_64,$(shell uname -a)),)
+ifeq ($(BINUTILSPREFIX),)
+GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
+else
+CROSSGCCOPT=-m32
+endif
+endif
+endif
+ifeq ($(CPU_TARGET),powerpc64)
+ifeq ($(BINUTILSPREFIX),)
+GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
+else
+CROSSGCCOPT=-m64
+endif
+endif
+ifeq ($(CPU_TARGET),sparc)
+ifneq ($(findstring sparc64,$(shell uname -a)),)
+ifeq ($(BINUTILSPREFIX),)
+GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
+else
+CROSSGCCOPT=-m32
+endif
+endif
+endif
+endif
+ifndef GCCLIBDIR
+CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
+ifneq ($(CROSSGCC),)
+GCCLIBDIR:=$(shell dirname `$(CROSSGCC) $(CROSSGCCOPT) -print-libgcc-file-name`)
+endif
+endif
+endif
+ifdef inUnix
+ifeq ($(OS_SOURCE),netbsd)
+OTHERLIBDIR:=/usr/pkg/lib
+endif
+export GCCLIBDIR OTHERLIBDIR
+endif
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+LTOEXT=.bc
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.so
+SHAREDLIBPREFIX=libfp
+STATICLIBPREFIX=libp
+IMPORTLIBPREFIX=libimp
+RSTEXT=.rst
+EXEDBGEXT=.dbg
+ifeq ($(OS_TARGET),go32v1)
+STATICLIBPREFIX=
+SHORTSUFFIX=v1
+endif
+ifeq ($(OS_TARGET),go32v2)
+STATICLIBPREFIX=
+SHORTSUFFIX=dos
+IMPORTLIBPREFIX=
+endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+OEXT=.obj
+ASMEXT=.asm
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=wat
+IMPORTLIBPREFIX=
+endif
+ifneq ($(CPU_TARGET),jvm)
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
+endif
+ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
+ifeq ($(OS_TARGET),dragonfly)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=df
+endif
+ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=fbs
+endif
+ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=nbs
+endif
+ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=obs
+endif
+ifeq ($(OS_TARGET),win32)
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=w32
+endif
+ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
+AOUTEXT=.out
+STATICLIBPREFIX=
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=os2
+ECHO=echo
+IMPORTLIBPREFIX=
+endif
+ifeq ($(OS_TARGET),emx)
+BATCHEXT=.cmd
+AOUTEXT=.out
+STATICLIBPREFIX=
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=emx
+ECHO=echo
+IMPORTLIBPREFIX=
+endif
+ifeq ($(OS_TARGET),amiga)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=amg
+endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=mos
+endif
+ifeq ($(OS_TARGET),atari)
+EXEEXT=.ttp
+SHORTSUFFIX=ata
+endif
+ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=be
+endif
+ifeq ($(OS_TARGET),haiku)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=hai
+endif
+ifeq ($(OS_TARGET),solaris)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=sun
+endif
+ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=qnx
+endif
+ifeq ($(OS_TARGET),netware)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+SHORTSUFFIX=nw
+IMPORTLIBPREFIX=imp
+endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+SHORTSUFFIX=nwl
+IMPORTLIBPREFIX=imp
+endif
+ifeq ($(OS_TARGET),macos)
+BATCHEXT=
+EXEEXT=
+DEBUGSYMEXT=.xcoff
+SHORTSUFFIX=mac
+IMPORTLIBPREFIX=imp
+endif
+ifneq ($(findstring $(OS_TARGET),darwin iphonesim),)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=dwn
+EXEDBGEXT=.dSYM
+endif
+ifeq ($(OS_TARGET),gba)
+EXEEXT=.gba
+SHAREDLIBEXT=.so
+SHORTSUFFIX=gba
+endif
+ifeq ($(OS_TARGET),symbian)
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=symbian
+endif
+ifeq ($(OS_TARGET),NativeNT)
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=nativent
+endif
+ifeq ($(OS_TARGET),wii)
+EXEEXT=.dol
+SHAREDLIBEXT=.so
+SHORTSUFFIX=wii
+endif
+ifeq ($(OS_TARGET),aix)
+BATCHEXT=.sh
+EXEEXT=
+SHAREDLIBEXT=.a
+SHORTSUFFIX=aix
+endif
+ifeq ($(OS_TARGET),java)
+OEXT=.class
+ASMEXT=.j
+SHAREDLIBEXT=.jar
+SHORTSUFFIX=java
+endif
+ifeq ($(CPU_TARGET),jvm)
+ifeq ($(OS_TARGET),android)
+OEXT=.class
+ASMEXT=.j
+SHAREDLIBEXT=.jar
+SHORTSUFFIX=android
+endif
+endif
+ifeq ($(OS_TARGET),msdos)
+STATICLIBPREFIX=
+STATICLIBEXT=.a
+SHORTSUFFIX=d16
+endif
+ifeq ($(OS_TARGET),embedded)
+ifeq ($(CPU_TARGET),i8086)
+STATICLIBPREFIX=
+STATICLIBEXT=.a
+else
+EXEEXT=.bin
+endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
+SHORTSUFFIX=emb
+endif
+ifeq ($(OS_TARGET),win16)
+STATICLIBPREFIX=
+STATICLIBEXT=.a
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=w16
+endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade.$(SHORTSUFFIX)
+ZIPSUFFIX=$(SHORTSUFFIX)
+ZIPCROSSPREFIX=
+ZIPSOURCESUFFIX=src
+ZIPEXAMPLESUFFIX=exm
+else
+FPCMADE=fpcmade.$(TARGETSUFFIX)
+ZIPSOURCESUFFIX=.source
+ZIPEXAMPLESUFFIX=.examples
+ifdef CROSSCOMPILE
+ZIPSUFFIX=.$(SOURCESUFFIX)
+ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+else
+ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPCROSSPREFIX=
+endif
+endif
+ifndef ECHO
+ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO= __missing_command_ECHO
+else
+ECHO:=$(firstword $(ECHO))
+endif
+else
+ECHO:=$(firstword $(ECHO))
+endif
+endif
+export ECHO
+ifndef DATE
+DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(DATE),)
+DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(DATE),)
+DATE= __missing_command_DATE
+else
+DATE:=$(firstword $(DATE))
+endif
+else
+DATE:=$(firstword $(DATE))
+endif
+endif
+export DATE
+ifndef GINSTALL
+GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(GINSTALL),)
+GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(GINSTALL),)
+GINSTALL= __missing_command_GINSTALL
+else
+GINSTALL:=$(firstword $(GINSTALL))
+endif
+else
+GINSTALL:=$(firstword $(GINSTALL))
+endif
+endif
+export GINSTALL
+ifndef CPPROG
+CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(CPPROG),)
+CPPROG= __missing_command_CPPROG
+else
+CPPROG:=$(firstword $(CPPROG))
+endif
+endif
+export CPPROG
+ifndef RMPROG
+RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(RMPROG),)
+RMPROG= __missing_command_RMPROG
+else
+RMPROG:=$(firstword $(RMPROG))
+endif
+endif
+export RMPROG
+ifndef MVPROG
+MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MVPROG),)
+MVPROG= __missing_command_MVPROG
+else
+MVPROG:=$(firstword $(MVPROG))
+endif
+endif
+export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command_MKDIRPROG
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
+ifndef ECHOREDIR
+ifndef inUnix
+ECHOREDIR=echo
+else
+ECHOREDIR=$(ECHO)
+endif
+endif
+ifndef COPY
+COPY:=$(CPPROG) -fp
+endif
+ifndef COPYTREE
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
+endif
+ifndef MOVE
+MOVE:=$(MVPROG) -f
+endif
+ifndef DEL
+DEL:=$(RMPROG) -f
+endif
+ifndef DELTREE
+DELTREE:=$(RMPROG) -rf
+endif
+ifndef INSTALL
+ifdef inUnix
+INSTALL:=$(GINSTALL) -c -m 644
+else
+INSTALL:=$(COPY)
+endif
+endif
+ifndef INSTALLEXE
+ifdef inUnix
+INSTALLEXE:=$(GINSTALL) -c -m 755
+else
+INSTALLEXE:=$(COPY)
+endif
+endif
+ifndef MKDIR
+MKDIR:=$(GINSTALL) -m 755 -d
+endif
+export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
+ifndef PPUMOVE
+PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUMOVE),)
+PPUMOVE= __missing_command_PPUMOVE
+else
+PPUMOVE:=$(firstword $(PPUMOVE))
+endif
+endif
+export PPUMOVE
+ifndef FPCMAKE
+FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(FPCMAKE),)
+FPCMAKE= __missing_command_FPCMAKE
+else
+FPCMAKE:=$(firstword $(FPCMAKE))
+endif
+endif
+export FPCMAKE
+ifndef ZIPPROG
+ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ZIPPROG),)
+ZIPPROG= __missing_command_ZIPPROG
+else
+ZIPPROG:=$(firstword $(ZIPPROG))
+endif
+endif
+export ZIPPROG
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG= __missing_command_TARPROG
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+ASNAME=$(BINUTILSPREFIX)as
+LDNAME=$(BINUTILSPREFIX)ld
+ARNAME=$(BINUTILSPREFIX)ar
+RCNAME=$(BINUTILSPREFIX)rc
+NASMNAME=$(BINUTILSPREFIX)nasm
+ifndef ASPROG
+ifdef CROSSBINDIR
+ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
+else
+ASPROG=$(ASNAME)
+endif
+endif
+ifndef LDPROG
+ifdef CROSSBINDIR
+LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
+else
+LDPROG=$(LDNAME)
+endif
+endif
+ifndef RCPROG
+ifdef CROSSBINDIR
+RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
+else
+RCPROG=$(RCNAME)
+endif
+endif
+ifndef ARPROG
+ifdef CROSSBINDIR
+ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
+else
+ARPROG=$(ARNAME)
+endif
+endif
+ifndef NASMPROG
+ifdef CROSSBINDIR
+NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT)
+else
+NASMPROG=$(NASMNAME)
+endif
+endif
+AS=$(ASPROG)
+LD=$(LDPROG)
+RC=$(RCPROG)
+AR=$(ARPROG)
+NASM=$(NASMPROG)
+ifdef inUnix
+PPAS=./ppas$(SRCBATCHEXT)
+else
+PPAS=ppas$(SRCBATCHEXT)
+endif
+ifdef inUnix
+LDCONFIG=ldconfig
+else
+LDCONFIG=
+endif
+ifdef DATE
+DATESTR:=$(shell $(DATE) +%Y%m%d)
+else
+DATESTR=
+endif
+ZIPOPT=-9
+ZIPEXT=.zip
+ifeq ($(USETAR),bz2)
+TAROPT=vj
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
+endif
+override REQUIRE_PACKAGES=rtl fpmkunit
+ifeq ($(FULL_TARGET),i386-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),m68k-macos)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-haiku)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-iphonesim)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-aros)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-netbsd)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-aros)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),arm-freertos)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i8086-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),i8086-win16)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),aarch64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),aarch64-darwin)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),aarch64-win64)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),aarch64-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),wasm-wasm)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),sparc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),riscv32-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),riscv32-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),riscv64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),riscv64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),xtensa-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),xtensa-freertos)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifdef REQUIRE_PACKAGES_RTL
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_RTL),)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
+else
+UNITDIR_RTL=$(PACKAGEDIR_RTL)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_RTL=
+UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_RTL),)
+UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
+else
+UNITDIR_RTL=
+endif
+endif
+ifdef UNITDIR_RTL
+override COMPILER_UNITDIR+=$(UNITDIR_RTL)
+endif
+ifdef UNITDIR_FPMAKE_RTL
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL)
+endif
+endif
+ifdef REQUIRE_PACKAGES_PASZLIB
+PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_PASZLIB),)
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(TARGETSUFFIX)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(TARGETSUFFIX)
+else
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_PASZLIB=$(PACKAGEDIR_PASZLIB)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_PASZLIB=$(PACKAGEDIR_PASZLIB)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_PASZLIB)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_PASZLIB) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_PASZLIB)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_PASZLIB=
+UNITDIR_PASZLIB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_PASZLIB),)
+UNITDIR_PASZLIB:=$(firstword $(UNITDIR_PASZLIB))
+else
+UNITDIR_PASZLIB=
+endif
+endif
+ifdef UNITDIR_PASZLIB
+override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
+endif
+ifdef UNITDIR_FPMAKE_PASZLIB
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_PASZLIB)
+endif
+endif
+ifdef REQUIRE_PACKAGES_FCL-PROCESS
+PACKAGEDIR_FCL-PROCESS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-process/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_FCL-PROCESS),)
+ifneq ($(wildcard $(PACKAGEDIR_FCL-PROCESS)/units/$(TARGETSUFFIX)),)
+UNITDIR_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)/units/$(TARGETSUFFIX)
+else
+UNITDIR_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_FCL-PROCESS)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_FCL-PROCESS)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_FCL-PROCESS)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_FCL-PROCESS) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-PROCESS)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_FCL-PROCESS=
+UNITDIR_FCL-PROCESS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-process/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_FCL-PROCESS),)
+UNITDIR_FCL-PROCESS:=$(firstword $(UNITDIR_FCL-PROCESS))
+else
+UNITDIR_FCL-PROCESS=
+endif
+endif
+ifdef UNITDIR_FCL-PROCESS
+override COMPILER_UNITDIR+=$(UNITDIR_FCL-PROCESS)
+endif
+ifdef UNITDIR_FPMAKE_FCL-PROCESS
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-PROCESS)
+endif
+endif
+ifdef REQUIRE_PACKAGES_HASH
+PACKAGEDIR_HASH:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /hash/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_HASH),)
+ifneq ($(wildcard $(PACKAGEDIR_HASH)/units/$(TARGETSUFFIX)),)
+UNITDIR_HASH=$(PACKAGEDIR_HASH)/units/$(TARGETSUFFIX)
+else
+UNITDIR_HASH=$(PACKAGEDIR_HASH)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_HASH)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_HASH=$(PACKAGEDIR_HASH)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_HASH)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_HASH=$(PACKAGEDIR_HASH)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_HASH=$(PACKAGEDIR_HASH)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_HASH)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_HASH) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_HASH)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_HASH=
+UNITDIR_HASH:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /hash/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_HASH),)
+UNITDIR_HASH:=$(firstword $(UNITDIR_HASH))
+else
+UNITDIR_HASH=
+endif
+endif
+ifdef UNITDIR_HASH
+override COMPILER_UNITDIR+=$(UNITDIR_HASH)
+endif
+ifdef UNITDIR_FPMAKE_HASH
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_HASH)
+endif
+endif
+ifdef REQUIRE_PACKAGES_LIBTAR
+PACKAGEDIR_LIBTAR:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libtar/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_LIBTAR),)
+ifneq ($(wildcard $(PACKAGEDIR_LIBTAR)/units/$(TARGETSUFFIX)),)
+UNITDIR_LIBTAR=$(PACKAGEDIR_LIBTAR)/units/$(TARGETSUFFIX)
+else
+UNITDIR_LIBTAR=$(PACKAGEDIR_LIBTAR)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_LIBTAR)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_LIBTAR=$(PACKAGEDIR_LIBTAR)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_LIBTAR)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_LIBTAR=$(PACKAGEDIR_LIBTAR)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_LIBTAR=$(PACKAGEDIR_LIBTAR)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_LIBTAR)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_LIBTAR) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_LIBTAR)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_LIBTAR=
+UNITDIR_LIBTAR:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /libtar/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_LIBTAR),)
+UNITDIR_LIBTAR:=$(firstword $(UNITDIR_LIBTAR))
+else
+UNITDIR_LIBTAR=
+endif
+endif
+ifdef UNITDIR_LIBTAR
+override COMPILER_UNITDIR+=$(UNITDIR_LIBTAR)
+endif
+ifdef UNITDIR_FPMAKE_LIBTAR
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_LIBTAR)
+endif
+endif
+ifdef REQUIRE_PACKAGES_FPMKUNIT
+PACKAGEDIR_FPMKUNIT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fpmkunit/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_FPMKUNIT),)
+ifneq ($(wildcard $(PACKAGEDIR_FPMKUNIT)/units/$(TARGETSUFFIX)),)
+UNITDIR_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)/units/$(TARGETSUFFIX)
+else
+UNITDIR_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_FPMKUNIT)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_FPMKUNIT)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_FPMKUNIT)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_FPMKUNIT) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_FPMKUNIT)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_FPMKUNIT=
+UNITDIR_FPMKUNIT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fpmkunit/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_FPMKUNIT),)
+UNITDIR_FPMKUNIT:=$(firstword $(UNITDIR_FPMKUNIT))
+else
+UNITDIR_FPMKUNIT=
+endif
+endif
+ifdef UNITDIR_FPMKUNIT
+override COMPILER_UNITDIR+=$(UNITDIR_FPMKUNIT)
+endif
+ifdef UNITDIR_FPMAKE_FPMKUNIT
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FPMKUNIT)
+endif
+endif
+ifndef NOCPUDEF
+override FPCOPTDEF=$(ARCH)
+endif
+ifneq ($(OS_TARGET),$(OS_SOURCE))
+override FPCOPT+=-T$(OS_TARGET)
+endif
+ifneq ($(CPU_TARGET),$(CPU_SOURCE))
+override FPCOPT+=-P$(ARCH)
+endif
+ifeq ($(OS_SOURCE),openbsd)
+override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
+override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
+override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)
+endif
+ifndef CROSSBOOTSTRAP
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-XP$(BINUTILSPREFIX)
+endif
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-Xr$(RLINKPATH)
+endif
+endif
+ifndef CROSSCOMPILE
+ifneq ($(BINUTILSPREFIX),)
+override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
+override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)
+endif
+endif
+ifdef UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
+endif
+ifdef LIBDIR
+override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
+endif
+ifdef OBJDIR
+override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
+endif
+ifdef INCDIR
+override FPCOPT+=$(addprefix -Fi,$(INCDIR))
+endif
+ifdef LINKSMART
+override FPCOPT+=-XX
+endif
+ifdef CREATESMART
+override FPCOPT+=-CX
+endif
+ifdef DEBUG
+override FPCOPT+=-gl
+override FPCOPTDEF+=DEBUG
+endif
+ifdef RELEASE
+FPCCPUOPT:=-O2
+override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
+override FPCOPTDEF+=RELEASE
+endif
+ifdef STRIP
+override FPCOPT+=-Xs
+endif
+ifdef OPTIMIZE
+override FPCOPT+=-O2
+endif
+ifdef VERBOSE
+override FPCOPT+=-vwni
+endif
+ifdef COMPILER_OPTIONS
+override FPCOPT+=$(COMPILER_OPTIONS)
+endif
+ifdef COMPILER_UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
+endif
+ifdef COMPILER_LIBRARYDIR
+override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
+endif
+ifdef COMPILER_OBJECTDIR
+override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
+endif
+ifdef COMPILER_INCLUDEDIR
+override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
+endif
+ifdef CROSSBINDIR
+override FPCOPT+=-FD$(CROSSBINDIR)
+endif
+ifdef COMPILER_TARGETDIR
+override FPCOPT+=-FE$(COMPILER_TARGETDIR)
+ifeq ($(COMPILER_TARGETDIR),.)
+override TARGETDIRPREFIX=
+else
+override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
+endif
+endif
+ifdef COMPILER_UNITTARGETDIR
+override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
+ifeq ($(COMPILER_UNITTARGETDIR),.)
+override UNITTARGETDIRPREFIX=
+else
+override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
+endif
+else
+ifdef COMPILER_TARGETDIR
+override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
+override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
+endif
+endif
+ifdef CREATESHARED
+override FPCOPT+=-Cg
+endif
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef GCCLIBDIR
+override FPCOPT+=-Fl$(GCCLIBDIR)
+override FPCMAKEOPT+=-Fl$(GCCLIBDIR)
+endif
+ifdef OTHERLIBDIR
+override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+endif
+ifdef FPMAKEBUILDOPT
+override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)
+endif
+ifdef FPCOPTDEF
+override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
+endif
+ifdef CFGFILE
+override FPCOPT+=@$(CFGFILE)
+endif
+ifdef USEENV
+override FPCEXTCMD:=$(FPCOPT)
+override FPCOPT:=!FPCEXTCMD
+export FPCEXTCMD
+endif
+override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
+override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
+override ACROSSCOMPILE=1
+endif
+ifdef ACROSSCOMPILE
+override FPCOPT+=$(CROSSOPT)
+endif
+override COMPILER:=$(strip $(FPC) $(FPCOPT))
+ifneq (,$(findstring -sh ,$(COMPILER)))
+UseEXECPPAS=1
+endif
+ifneq (,$(findstring -s ,$(COMPILER)))
+ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+UseEXECPPAS=1
+endif
+endif
+ifneq ($(UseEXECPPAS),1)
+EXECPPAS=
+else
+ifdef RUNBATCH
+EXECPPAS:=@$(RUNBATCH) $(PPAS)
+else
+EXECPPAS:=@$(PPAS)
+endif
+endif
+ifdef TARGET_RSTS
+override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
+override CLEANRSTFILES+=$(RSTFILES)
+endif
+.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
+ifdef INSTALL_UNITS
+override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
+endif
+ifdef INSTALL_BUILDUNIT
+override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
+endif
+ifdef INSTALLPPUFILES
+ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICLIBEXT))
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+else
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+endif
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILENAMES:=$(notdir $(INSTALLPPUFILES))
+override INSTALLPPULINKFILENAMES:=$(notdir $(INSTALLPPULINKFILES))
+override INSTALLPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILENAMES))
+override INSTALLPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILENAMES)))
+endif
+override INSTALL_CREATEPACKAGEFPC=1
+endif
+ifdef INSTALLEXEFILES
+ifneq ($(TARGETDIRPREFIX),)
+override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
+endif
+endif
+fpc_install: all $(INSTALLTARGET)
+ifdef INSTALLEXEFILES
+ $(MKDIR) $(INSTALL_BINDIR)
+ $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
+endif
+ifdef INSTALL_CREATEPACKAGEFPC
+ifdef FPCMAKE
+ifdef PACKAGE_VERSION
+ifneq ($(wildcard Makefile.fpc),)
+ $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
+ $(MKDIR) $(INSTALL_UNITDIR)
+ $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
+endif
+endif
+endif
+endif
+ifdef INSTALLPPUFILES
+ $(MKDIR) $(INSTALL_UNITDIR)
+ $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
+ifneq ($(INSTALLPPULINKFILES),)
+ $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
+endif
+ifneq ($(wildcard $(LIB_FULLNAME)),)
+ $(MKDIR) $(INSTALL_LIBDIR)
+ $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
+ifdef inUnix
+ ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
+endif
+endif
+endif
+ifdef INSTALL_FILES
+ $(MKDIR) $(INSTALL_DATADIR)
+ $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
+endif
+fpc_sourceinstall: distclean
+ $(MKDIR) $(INSTALL_SOURCEDIR)
+ $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
+fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
+ifdef HASEXAMPLES
+ $(MKDIR) $(INSTALL_EXAMPLEDIR)
+endif
+ifdef EXAMPLESOURCEFILES
+ $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
+endif
+ifdef TARGET_EXAMPLEDIRS
+ $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
+endif
+.PHONY: fpc_distinstall
+fpc_distinstall: install exampleinstall
+.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
+ifndef PACKDIR
+ifndef inUnix
+PACKDIR=$(BASEDIR)/../fpc-pack
+else
+PACKDIR=/tmp/fpc-pack
+endif
+endif
+ifndef ZIPNAME
+ifdef DIST_ZIPNAME
+ZIPNAME=$(DIST_ZIPNAME)
+else
+ZIPNAME=$(PACKAGE_NAME)
+endif
+endif
+ifndef FULLZIPNAME
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+endif
+ifndef ZIPTARGET
+ifdef DIST_ZIPTARGET
+ZIPTARGET=DIST_ZIPTARGET
+else
+ZIPTARGET=install
+endif
+endif
+ifndef USEZIP
+ifdef inUnix
+USETAR=1
+endif
+endif
+ifndef inUnix
+USEZIPWRAPPER=1
+endif
+ifdef USEZIPWRAPPER
+ZIPPATHSEP=$(PATHSEP)
+ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))
+else
+ZIPPATHSEP=/
+endif
+ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))
+ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
+ifdef USETAR
+ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)
+ZIPCMD_ZIP:=$(TARPROG) c$(TAROPT)f $(ZIPDESTFILE) *
+else
+ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(ZIPEXT)
+ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
+endif
+fpc_zipinstall:
+ $(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
+ $(MKDIR) $(DIST_DESTDIR)
+ $(DEL) $(ZIPDESTFILE)
+ifdef USEZIPWRAPPER
+ifneq ($(ECHOREDIR),echo)
+ $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPER)
+ $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)
+ $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPPER)
+else
+ echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
+ echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
+ echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
+endif
+ifdef inUnix
+ /bin/sh $(ZIPWRAPPER)
+else
+ifdef RUNBATCH
+ $(RUNBATCH) $(ZIPWRAPPER)
+else
+ $(ZIPWRAPPER)
+endif
+endif
+ $(DEL) $(ZIPWRAPPER)
+else
+ $(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
+endif
+ $(DELTREE) $(PACKDIR)
+fpc_zipsourceinstall:
+ $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(ZIPSOURCESUFFIX)
+fpc_zipexampleinstall:
+ifdef HASEXAMPLES
+ $(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$(ZIPEXAMPLESUFFIX)
+endif
+fpc_zipdistinstall:
+ $(MAKE) fpc_zipinstall ZIPTARGET=distinstall
+.PHONY: fpc_clean fpc_cleanall fpc_distclean
+ifdef EXEFILES
+override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
+override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
+endif
+ifdef CLEAN_PROGRAMS
+override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
+override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
+endif
+ifdef CLEAN_UNITS
+override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
+endif
+ifdef CLEANPPUFILES
+override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILENAMES:=$(CLEANPPUFILES)
+override CLEANPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILENAMES))
+override CLEANPPULINKFILENAMES:=$(CLEANPPULINKFILES)
+override CLEANPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILENAMES)))
+endif
+fpc_clean: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+ -$(DEL) $(CLEANEXEFILES)
+endif
+ifdef CLEANEXEDBGFILES
+ -$(DELTREE) $(CLEANEXEDBGFILES)
+endif
+ifdef CLEANPPUFILES
+ -$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+ -$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+ -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+ifdef CLEAN_FILES
+ -$(DEL) $(CLEAN_FILES)
+endif
+ifdef LIB_NAME
+ -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
+endif
+ -$(DEL) $(FPCMADE) *$(FULL_TARGET).fpm Package.fpc *$(ASMEXT)
+ -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
+ -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
+fpc_cleanall: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+ -$(DEL) $(CLEANEXEFILES)
+endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+ -$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+ -$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+ -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+ifdef CLEAN_FILES
+ -$(DEL) $(CLEAN_FILES)
+endif
+ -$(DELTREE) units
+ -$(DELTREE) bin
+ -$(DEL) *$(OEXT) *$(LTOEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc *.fpm
+ -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
+ -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+endif
+ifdef LOCALFPMAKEBIN
+ -$(DEL) $(LOCALFPMAKEBIN)
+ -$(DEL) $(FPMAKEBINOBJ)
+endif
+fpc_distclean: cleanall
+.PHONY: fpc_baseinfo
+override INFORULES+=fpc_baseinfo
+fpc_baseinfo:
+ @$(ECHO)
+ @$(ECHO) == Package info ==
+ @$(ECHO) Package Name..... $(PACKAGE_NAME)
+ @$(ECHO) Package Version.. $(PACKAGE_VERSION)
+ @$(ECHO)
+ @$(ECHO) == Configuration info ==
+ @$(ECHO)
+ @$(ECHO) FPC.......... $(FPC)
+ @$(ECHO) FPC Version.. $(FPC_VERSION)
+ @$(ECHO) Source CPU... $(CPU_SOURCE)
+ @$(ECHO) Target CPU... $(CPU_TARGET)
+ @$(ECHO) Source OS.... $(OS_SOURCE)
+ @$(ECHO) Target OS.... $(OS_TARGET)
+ @$(ECHO) Full Source.. $(FULL_SOURCE)
+ @$(ECHO) Full Target.. $(FULL_TARGET)
+ @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
+ @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
+ @$(ECHO) FPC fpmake... $(FPCFPMAKE)
+ @$(ECHO)
+ @$(ECHO) == Directory info ==
+ @$(ECHO)
+ @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
+ @$(ECHO)
+ @$(ECHO) Basedir......... $(BASEDIR)
+ @$(ECHO) FPCDir.......... $(FPCDIR)
+ @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
+ @$(ECHO) UnitsDir........ $(UNITSDIR)
+ @$(ECHO) PackagesDir..... $(PACKAGESDIR)
+ @$(ECHO)
+ @$(ECHO) GCC library..... $(GCCLIBDIR)
+ @$(ECHO) Other library... $(OTHERLIBDIR)
+ @$(ECHO)
+ @$(ECHO) == Tools info ==
+ @$(ECHO)
+ @$(ECHO) As........ $(AS)
+ @$(ECHO) Ld........ $(LD)
+ @$(ECHO) Ar........ $(AR)
+ @$(ECHO) Rc........ $(RC)
+ @$(ECHO)
+ @$(ECHO) Mv........ $(MVPROG)
+ @$(ECHO) Cp........ $(CPPROG)
+ @$(ECHO) Rm........ $(RMPROG)
+ @$(ECHO) GInstall.. $(GINSTALL)
+ @$(ECHO) Echo...... $(ECHO)
+ @$(ECHO) Shell..... $(SHELL)
+ @$(ECHO) Date...... $(DATE)
+ @$(ECHO) FPCMake... $(FPCMAKE)
+ @$(ECHO) PPUMove... $(PPUMOVE)
+ @$(ECHO) Zip....... $(ZIPPROG)
+ @$(ECHO)
+ @$(ECHO) == Object info ==
+ @$(ECHO)
+ @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
+ @$(ECHO) Target Units.......... $(TARGET_UNITS)
+ @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
+ @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
+ @$(ECHO) Target Dirs........... $(TARGET_DIRS)
+ @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
+ @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
+ @$(ECHO)
+ @$(ECHO) Clean Units......... $(CLEAN_UNITS)
+ @$(ECHO) Clean Files......... $(CLEAN_FILES)
+ @$(ECHO)
+ @$(ECHO) Install Units....... $(INSTALL_UNITS)
+ @$(ECHO) Install Files....... $(INSTALL_FILES)
+ @$(ECHO)
+ @$(ECHO) == Install info ==
+ @$(ECHO)
+ @$(ECHO) DateStr.............. $(DATESTR)
+ @$(ECHO) ZipName.............. $(ZIPNAME)
+ @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
+ @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
+ @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
+ @$(ECHO) FullZipName.......... $(FULLZIPNAME)
+ @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
+ @$(ECHO)
+ @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
+ @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
+ @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
+ @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
+ @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
+ @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
+ @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
+ @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
+ @$(ECHO)
+ @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
+ @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
+ @$(ECHO)
+.PHONY: fpc_info
+fpc_info: $(INFORULES)
+.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
+ fpc_makefile_dirs
+fpc_makefile:
+ $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
+fpc_makefile_sub1:
+ifdef TARGET_DIRS
+ $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
+endif
+ifdef TARGET_EXAMPLEDIRS
+ $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
+endif
+fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
+fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
+fpc_makefiles: fpc_makefile fpc_makefile_dirs
+units:
+examples:
+shared:
+sourceinstall: fpc_sourceinstall
+exampleinstall: fpc_exampleinstall
+zipexampleinstall: fpc_zipexampleinstall
+info: fpc_info
+makefiles: fpc_makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
+ifneq ($(wildcard fpcmake.loc),)
+include fpcmake.loc
+endif
+override FPCOPT:=$(filter-out -FU%,$(FPCOPT))
+override FPCOPT:=$(filter-out -FE%,$(FPCOPT))
+override FPCOPT:=$(filter-out $(addprefix -Fu,$(COMPILER_UNITDIR)),$(FPCOPT))# Compose general fpmake-parameters
+ifdef FPMAKEOPT
+FPMAKE_OPT+=$(FPMAKEOPT)
+endif
+FPMAKE_OPT+=--localunitdir=../..
+FPMAKE_OPT+=--globalunitdir=../../packages
+FPMAKE_OPT+=$(FPC_TARGETOPT)
+FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
+FPMAKE_OPT+=--compiler=$(FPC)
+FPMAKE_OPT+=-bu
+.NOTPARALLEL:
+fpmake$(SRCEXEEXT): fpmake.pp
+ $(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
+all: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT)
+smart: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
+release: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
+debug: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:
+else
+clean:
+ $(FPMAKE_BIN_CLEAN) clean $(FPMAKE_OPT)
+endif
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean: $(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:
+ifdef inUnix
+ { $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi; }
+else
+ $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT)
+endif
+ -$(DEL) $(LOCALFPMAKE)
+endif
+cleanall: distclean
+install: fpmake$(SRCEXEEXT)
+ifdef UNIXHier
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+distinstall: fpmake$(SRCEXEEXT)
+ifdef UNIXHier
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
+else
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
+endif
+zipinstall: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
+zipdistinstall: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie -fsp 0
+zipsourceinstall: fpmake$(SRCEXEEXT)
+ifdef UNIXHier
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
+else
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
+endif
diff --git a/utils/ihx2tzx/Makefile.fpc b/utils/ihx2tzx/Makefile.fpc
new file mode 100644
index 0000000000..e096d3d3cb
--- /dev/null
+++ b/utils/ihx2tzx/Makefile.fpc
@@ -0,0 +1,102 @@
+#
+# Makefile.fpc for running fpmake
+#
+
+[package]
+name=ihx2tzx
+version=3.3.1
+
+[require]
+packages=rtl fpmkunit
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=./fpmake$(SRCEXEEXT)
+
+[rules]
+# Do not pass the Makefile's unit and binary target locations. Fpmake uses it's own.
+override FPCOPT:=$(filter-out -FU%,$(FPCOPT))
+override FPCOPT:=$(filter-out -FE%,$(FPCOPT))
+# Do not pass the package-unitdirectories. Fpmake adds those and this way they don't apear in the .fpm
+override FPCOPT:=$(filter-out $(addprefix -Fu,$(COMPILER_UNITDIR)),$(FPCOPT))# Compose general fpmake-parameters
+# Compose general fpmake-parameters
+ifdef FPMAKEOPT
+FPMAKE_OPT+=$(FPMAKEOPT)
+endif
+FPMAKE_OPT+=--localunitdir=../..
+FPMAKE_OPT+=--globalunitdir=../../packages
+FPMAKE_OPT+=$(FPC_TARGETOPT)
+FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
+FPMAKE_OPT+=--compiler=$(FPC)
+FPMAKE_OPT+=-bu
+.NOTPARALLEL:
+
+fpmake$(SRCEXEEXT): fpmake.pp
+ $(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
+all: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT)
+smart: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
+release: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
+debug: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:
+else
+clean:
+ $(FPMAKE_BIN_CLEAN) clean $(FPMAKE_OPT)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean: $(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:
+ifdef inUnix
+ { $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi; }
+else
+ $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT)
+endif
+ -$(DEL) $(LOCALFPMAKE)
+endif
+cleanall: distclean
+install: fpmake$(SRCEXEEXT)
+ifdef UNIXHier
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources and omits the location of the source-
+# files from the fpunits.cfg files.
+distinstall: fpmake$(SRCEXEEXT)
+ifdef UNIXHier
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
+else
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
+endif
+zipinstall: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
+zipdistinstall: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie -fsp 0
+zipsourceinstall: fpmake$(SRCEXEEXT)
+ifdef UNIXHier
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
+else
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
+endif
diff --git a/utils/ihx2tzx/fpmake.pp b/utils/ihx2tzx/fpmake.pp
new file mode 100644
index 0000000000..c1875f363e
--- /dev/null
+++ b/utils/ihx2tzx/fpmake.pp
@@ -0,0 +1,54 @@
+{$ifndef ALLPACKAGES}
+{$mode objfpc}{$H+}
+program fpmake;
+
+uses fpmkunit;
+{$endif ALLPACKAGES}
+
+procedure add_ihx2tzx(const ADirectory: string);
+
+Var
+ P : TPackage;
+ T : TTarget;
+
+begin
+ With Installer do
+ begin
+ P:=AddPackage('utils-ihx2tzx');
+ P.ShortName:='ihx2tzx';
+ P.OSes:=AllOSes-[embedded,msdos,win16,macos,palmos];
+ if Defaults.CPU=jvm then
+ P.OSes := P.OSes - [java,android];
+
+ P.Author := 'Nikolay Nikolov';
+ P.License := 'GPL';
+ P.HomepageURL := 'www.freepascal.org';
+ P.Email := '';
+ P.Description := 'A tool to convert Intel HEX Format files to ZX Spectrum tape files in the TZX format.';
+ P.NeedLibC:= false;
+
+ P.Directory:=ADirectory;
+ P.Version:='3.3.1';
+
+ P.Dependencies.Add('fcl-base');
+
+ T:=P.Targets.AddProgram('ihx2tzx.lpr');
+ T.Dependencies.AddUnit('ihxreader');
+ T.Dependencies.AddUnit('tzxwriter');
+ T.Dependencies.AddUnit('zxbasic');
+ P.Targets.AddUnit('ihxreader.pas').Install := false;
+ P.Targets.AddUnit('tzxwriter.pas').Install := false;
+ P.Targets.AddUnit('zxbasic.pas').Install := false;
+ end;
+end;
+
+{$ifndef ALLPACKAGES}
+begin
+ add_ihx2tzx('');
+ Installer.Run;
+end.
+{$endif ALLPACKAGES}
+
+
+
+
diff --git a/utils/ihx2tzx/ihx2tzx.lpi b/utils/ihx2tzx/ihx2tzx.lpi
new file mode 100644
index 0000000000..40eedaf645
--- /dev/null
+++ b/utils/ihx2tzx/ihx2tzx.lpi
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CONFIG>
+ <ProjectOptions>
+ <Version Value="11"/>
+ <General>
+ <Flags>
+ <MainUnitHasCreateFormStatements Value="False"/>
+ <MainUnitHasScaledStatement Value="False"/>
+ </Flags>
+ <SessionStorage Value="InProjectDir"/>
+ <MainUnit Value="0"/>
+ <Title Value="ihx2tzx"/>
+ <UseAppBundle Value="False"/>
+ <ResourceType Value="res"/>
+ </General>
+ <BuildModes Count="1">
+ <Item1 Name="Default" Default="True"/>
+ </BuildModes>
+ <PublishOptions>
+ <Version Value="2"/>
+ <UseFileFilters Value="True"/>
+ </PublishOptions>
+ <RunParams>
+ <FormatVersion Value="2"/>
+ <Modes Count="0"/>
+ </RunParams>
+ <Units Count="4">
+ <Unit0>
+ <Filename Value="ihx2tzx.lpr"/>
+ <IsPartOfProject Value="True"/>
+ </Unit0>
+ <Unit1>
+ <Filename Value="ihxreader.pas"/>
+ <IsPartOfProject Value="True"/>
+ </Unit1>
+ <Unit2>
+ <Filename Value="tzxwriter.pas"/>
+ <IsPartOfProject Value="True"/>
+ </Unit2>
+ <Unit3>
+ <Filename Value="zxbasic.pas"/>
+ <IsPartOfProject Value="True"/>
+ </Unit3>
+ </Units>
+ </ProjectOptions>
+ <CompilerOptions>
+ <Version Value="11"/>
+ <Target>
+ <Filename Value="ihx2tzx"/>
+ </Target>
+ <SearchPaths>
+ <IncludeFiles Value="$(ProjOutDir)"/>
+ <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
+ </SearchPaths>
+ </CompilerOptions>
+ <Debugging>
+ <Exceptions Count="3">
+ <Item1>
+ <Name Value="EAbort"/>
+ </Item1>
+ <Item2>
+ <Name Value="ECodetoolError"/>
+ </Item2>
+ <Item3>
+ <Name Value="EFOpenError"/>
+ </Item3>
+ </Exceptions>
+ </Debugging>
+</CONFIG>
diff --git a/utils/ihx2tzx/ihx2tzx.lpr b/utils/ihx2tzx/ihx2tzx.lpr
new file mode 100644
index 0000000000..1ec93de1a6
--- /dev/null
+++ b/utils/ihx2tzx/ihx2tzx.lpr
@@ -0,0 +1,163 @@
+{ IHX (Intel Hex format) to TZX (ZX Spectrum tape file format) convertor tool
+
+ This is the main program of the tool.
+
+ Copyright (C) 2020 Nikolay Nikolov <nickysn@users.sourceforg.net>
+
+ This source is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ A copy of the GNU General Public License is available on the World Wide Web
+ at <http://www.gnu.org/copyleft/gpl.html>. You can also obtain it by writing
+ to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+ Boston, MA 02110-1335, USA.
+}
+
+program ihx2tzx;
+
+{$mode objfpc}{$H+}
+
+uses
+ Classes, SysUtils, CustApp, ihxreader, tzxwriter, zxbasic
+ { you can add units after this };
+
+const
+ ShortOptions = 'hb:c:';
+ LongOptions: array [0..0] of string = (
+ 'help'
+ );
+
+type
+
+ { TIHX2TZX }
+
+ TIHX2TZX = class(TCustomApplication)
+ private
+ FInputFileName: string;
+ FOutputFileName: string;
+ FBasicProgramName: string;
+ FBinaryProgramName: string;
+ FInputImage: TIHXReader;
+ FOutputFile: TStream;
+ FTapeWriter: TTZXWriter;
+ protected
+ procedure DoRun; override;
+ public
+ constructor Create(TheOwner: TComponent); override;
+ destructor Destroy; override;
+ procedure WriteHelp; virtual;
+ end;
+
+{ TIHX2TZX }
+
+procedure TIHX2TZX.DoRun;
+var
+ ErrorMsg: String;
+ NonOptions: TStringArray;
+ BasicProgram: AnsiString;
+begin
+ if ParamCount = 0 then
+ begin
+ WriteHelp;
+ Terminate;
+ Exit;
+ end;
+
+ // quick check parameters
+ ErrorMsg:=CheckOptions(ShortOptions, LongOptions);
+ if ErrorMsg<>'' then begin
+ ShowException(Exception.Create(ErrorMsg));
+ Terminate;
+ Exit;
+ end;
+
+ // parse parameters
+ if HasOption('h', 'help') then begin
+ WriteHelp;
+ Terminate;
+ Exit;
+ end;
+
+ if HasOption('b', '') then
+ FBasicProgramName := GetOptionValue('b', '');
+ if HasOption('c', '') then
+ FBinaryProgramName := GetOptionValue('c', '');
+
+ NonOptions := GetNonOptions(ShortOptions, LongOptions);
+ if Length(NonOptions) = 0 then
+ begin
+ ShowException(Exception.Create('Missing input file'));
+ Terminate;
+ Exit;
+ end;
+ if Length(NonOptions) > 2 then
+ begin
+ ShowException(Exception.Create('Too many files specified'));
+ Terminate;
+ Exit;
+ end;
+ FInputFileName := NonOptions[0];
+ if Length(NonOptions) >= 2 then
+ FOutputFileName := NonOptions[1]
+ else
+ FOutputFileName := ChangeFileExt(FInputFileName, '.tzx');
+
+ { add your program here }
+ FInputImage.ReadIHXFile(FInputFileName);
+
+ FOutputFile := TFileStream.Create(FOutputFileName, fmCreate);
+ FTapeWriter := TTZXWriter.Create(FOutputFile);
+
+ BasicProgram := BAS_EncodeLine(10, ' '+BC_LOAD+'"" '+BC_CODE) +
+ BAS_EncodeLine(20, ' '+BC_PRINT+BC_USR+BAS_EncodeNumber(FInputImage.Origin));
+
+ FTapeWriter.AppendProgramFile(FBasicProgramName, 10, Length(BasicProgram), BasicProgram[1], Length(BasicProgram));
+ FTapeWriter.AppendCodeFile(FBinaryProgramName, FInputImage.Origin, FInputImage.Data[0], Length(FInputImage.Data));
+
+ // stop program loop
+ Terminate;
+end;
+
+constructor TIHX2TZX.Create(TheOwner: TComponent);
+begin
+ inherited Create(TheOwner);
+ StopOnException:=True;
+ FInputImage := TIHXReader.Create;
+ FBasicProgramName := 'basic';
+ FBinaryProgramName := 'test';
+end;
+
+destructor TIHX2TZX.Destroy;
+begin
+ FreeAndNil(FInputImage);
+ FreeAndNil(FTapeWriter);
+ FreeAndNil(FOutputFile);
+ inherited Destroy;
+end;
+
+procedure TIHX2TZX.WriteHelp;
+begin
+ { add your help code here }
+ writeln('Usage: ', ExeName, ' [options] ihx_file [tzx_file]');
+ Writeln('Options: -b <name> specify the name of the BASIC loader program on the tape');
+ Writeln(' -c <name> specify the name of the machine code program on the tape');
+ Writeln(' -h display this help');
+ Writeln(' --help display this help');
+end;
+
+var
+ Application: TIHX2TZX;
+begin
+ Application:=TIHX2TZX.Create(nil);
+ Application.Title:='ihx2tzx';
+ Application.Run;
+ Application.Free;
+end.
+
diff --git a/utils/ihx2tzx/ihxreader.pas b/utils/ihx2tzx/ihxreader.pas
new file mode 100644
index 0000000000..5ff4d54252
--- /dev/null
+++ b/utils/ihx2tzx/ihxreader.pas
@@ -0,0 +1,130 @@
+{ IHX (Intel Hex format) to TZX (ZX Spectrum tape file format) convertor tool.
+
+ This file contains the IHX writer code.
+
+ Copyright (C) 2020 Nikolay Nikolov <nickysn@users.sourceforg.net>
+
+ This source is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ A copy of the GNU General Public License is available on the World Wide Web
+ at <http://www.gnu.org/copyleft/gpl.html>. You can also obtain it by writing
+ to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+ Boston, MA 02110-1335, USA.
+}
+
+unit ihxreader;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils;
+
+type
+
+ { TIHXReader }
+
+ TIHXReader = class
+ private
+ FOrigin: Word;
+ FInternalData: array [0..$FFFF] of Byte;
+ public
+ Data: array of Byte;
+
+ procedure ReadIHXFile(const FileName: string);
+
+ property Origin: Word read FOrigin;
+ end;
+
+implementation
+
+{ TIHXReader }
+
+procedure TIHXReader.ReadIHXFile(const FileName: string);
+var
+ InF: TextFile;
+ S: string;
+ I: Integer;
+ LineByteCount: Byte;
+ LineAddress: Word;
+ MinAddress, MaxAddress: LongInt;
+ RecordType: Byte;
+ Checksum, ExpectedChecksum: Byte;
+ B: Byte;
+begin
+ MinAddress := -1;
+ MaxAddress := -1;
+ FOrigin := 0;
+ SetLength(Data, 0);
+ AssignFile(InF, FileName);
+ Reset(InF);
+ try
+ while not EoF(InF) do
+ begin
+ ReadLn(InF, S);
+ S:=UpperCase(Trim(S));
+ if S='' then
+ continue;
+ if Length(S)<11 then
+ raise Exception.Create('Line too short');
+ if S[1]<>':' then
+ raise Exception.Create('Line must start with '':''');
+ for I:=2 to Length(S) do
+ if not (S[I] in ['0'..'9','A'..'F']) then
+ raise Exception.Create('Line contains an invalid character');
+ LineByteCount:=StrToInt('$'+Copy(S,2,2));
+ if (LineByteCount*2+11)<>Length(S) then
+ raise Exception.Create('Invalid line length');
+ LineAddress:=StrToInt('$'+Copy(S,4,4));
+ RecordType:=StrToInt('$'+Copy(S,8,2));
+ Checksum:=StrToInt('$'+Copy(S,Length(S)-1,2));
+ ExpectedChecksum := Byte(LineByteCount + RecordType + Byte(LineAddress) + Byte(LineAddress shr 8));
+ for I:=0 to LineByteCount-1 do
+ begin
+ B := StrToInt('$' + Copy(S, 10 + 2*I, 2));
+ ExpectedChecksum := Byte(ExpectedChecksum + B);
+ end;
+ ExpectedChecksum := Byte(-ExpectedChecksum);
+ if ExpectedChecksum <> Checksum then
+ raise Exception.Create('Invalid checksum');
+ case RecordType of
+ 0:
+ begin
+ if (MinAddress = -1) or (LineAddress < MinAddress) then
+ MinAddress := LineAddress;
+ if (MaxAddress = -1) or (MaxAddress < (LineAddress + LineByteCount - 1)) then
+ MaxAddress := LineAddress + LineByteCount - 1;
+ if MaxAddress > High(FInternalData) then
+ raise Exception.CreateFmt('Data exceeds %d bytes', [High(FInternalData) + 1]);
+ for I:=0 to LineByteCount-1 do
+ begin
+ B := StrToInt('$' + Copy(S, 10 + 2*I, 2));
+ FInternalData[LineAddress + I] := B;
+ end;
+ end;
+ 1:
+ begin
+ { end of file }
+ break;
+ end;
+ end;
+ end;
+ FOrigin := MinAddress;
+ SetLength(Data, MaxAddress - MinAddress + 1);
+ Move(FInternalData[MinAddress], Data[0], MaxAddress - MinAddress + 1);
+ finally
+ CloseFile(InF);
+ end;
+end;
+
+end.
+
diff --git a/utils/ihx2tzx/tzxwriter.pas b/utils/ihx2tzx/tzxwriter.pas
new file mode 100644
index 0000000000..b3be2abb10
--- /dev/null
+++ b/utils/ihx2tzx/tzxwriter.pas
@@ -0,0 +1,132 @@
+{ IHX (Intel Hex format) to TZX (ZX Spectrum tape file format) convertor tool.
+
+ This file contains the TZX writer code.
+
+ Copyright (C) 2020 Nikolay Nikolov <nickysn@users.sourceforg.net>
+
+ This source is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ A copy of the GNU General Public License is available on the World Wide Web
+ at <http://www.gnu.org/copyleft/gpl.html>. You can also obtain it by writing
+ to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+ Boston, MA 02110-1335, USA.
+}
+
+unit tzxwriter;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils;
+
+type
+
+ { TTZXWriter }
+
+ TTZXWriter = class
+ private
+ FOutStream: TStream;
+ public
+ constructor Create(OutStream : TStream);
+ procedure AppendStandardSpeedDataBlock(const Buffer; Count: Word);
+ procedure AppendHeader(FileType: Byte; const FileName: string; DataBlockLength, Parameter1, Parameter2: Word);
+ procedure AppendDataBlock(const Buffer; Count: Word);
+ procedure AppendProgramFile(const FileName: string; AutostartLine, VarAreaOffset: Word; const Buffer; Count: Word);
+ procedure AppendCodeFile(const FileName: string; StartAddress: Word; const Buffer; Count: Word);
+ end;
+
+implementation
+
+{ TTZXWriter }
+
+constructor TTZXWriter.Create(OutStream: TStream);
+const
+ Header: string = 'ZXTape!'#$1A#1#20;
+begin
+ FOutStream := OutStream;
+ FOutStream.Seek(0, soFromBeginning);
+ FOutStream.Write(Header[1], Length(Header));
+end;
+
+procedure TTZXWriter.AppendStandardSpeedDataBlock(const Buffer; Count: Word);
+const
+ PauseMilliseconds = 1000;
+begin
+ FOutStream.WriteByte($10);
+ FOutStream.WriteByte(Byte(PauseMilliseconds));
+ FOutStream.WriteByte(Byte(PauseMilliseconds shr 8));
+ FOutStream.WriteByte(Byte(Count));
+ FOutStream.WriteByte(Byte(Count shr 8));
+ FOutStream.Write(Buffer, Count);
+end;
+
+procedure TTZXWriter.AppendHeader(FileType: Byte; const FileName: string;
+ DataBlockLength, Parameter1, Parameter2: Word);
+var
+ HeaderBlock: array [0..18] of Byte;
+ I: Integer;
+ Checksum: Byte;
+begin
+ HeaderBlock[0] := 0; { header }
+ HeaderBlock[1] := FileType;
+ { file name }
+ for I := 1 to 10 do
+ if I <= Length(FileName) then
+ HeaderBlock[I + 1] := Ord(FileName[I])
+ else
+ HeaderBlock[I + 1] := Ord(' ');
+ HeaderBlock[12] := Byte(DataBlockLength);
+ HeaderBlock[13] := Byte(DataBlockLength shr 8);
+ HeaderBlock[14] := Byte(Parameter1);
+ HeaderBlock[15] := Byte(Parameter1 shr 8);
+ HeaderBlock[16] := Byte(Parameter2);
+ HeaderBlock[17] := Byte(Parameter2 shr 8);
+ Checksum := 0;
+ for I := 0 to 17 do
+ Checksum := Checksum xor HeaderBlock[I];
+ HeaderBlock[18] := Checksum;
+ AppendStandardSpeedDataBlock(HeaderBlock, SizeOf(HeaderBlock));
+end;
+
+procedure TTZXWriter.AppendDataBlock(const Buffer; Count: Word);
+var
+ I: Integer;
+ Checksum: Byte;
+ DataBlock: array of Byte;
+begin
+ SetLength(DataBlock, Count + 2);
+ Move(Buffer, DataBlock[1], Count);
+ DataBlock[0] := $FF; { data }
+ Checksum := 0;
+ for I := 0 to High(DataBlock) - 1 do
+ Checksum := Checksum xor DataBlock[I];
+ DataBlock[High(DataBlock)] := Checksum;
+ AppendStandardSpeedDataBlock(DataBlock[0], Length(DataBlock));
+end;
+
+procedure TTZXWriter.AppendProgramFile(const FileName: string; AutostartLine,
+ VarAreaOffset: Word; const Buffer; Count: Word);
+begin
+ AppendHeader(0, FileName, Count, AutostartLine, VarAreaOffset);
+ AppendDataBlock(Buffer, Count);
+end;
+
+procedure TTZXWriter.AppendCodeFile(const FileName: string; StartAddress: Word;
+ const Buffer; Count: Word);
+begin
+ AppendHeader(3, FileName, Count, StartAddress, 32768);
+ AppendDataBlock(Buffer, Count);
+end;
+
+end.
+
diff --git a/utils/ihx2tzx/zxbasic.pas b/utils/ihx2tzx/zxbasic.pas
new file mode 100644
index 0000000000..f27d04dfeb
--- /dev/null
+++ b/utils/ihx2tzx/zxbasic.pas
@@ -0,0 +1,158 @@
+{ IHX (Intel Hex format) to TZX (ZX Spectrum tape file format) convertor tool
+
+ This file contains various definitions, constants and utility functions for
+ dealing with BASIC programs on the ZX Spectrum.
+
+ Copyright (C) 2020 Nikolay Nikolov <nickysn@users.sourceforg.net>
+
+ This source is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ details.
+
+ A copy of the GNU General Public License is available on the World Wide Web
+ at <http://www.gnu.org/copyleft/gpl.html>. You can also obtain it by writing
+ to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+ Boston, MA 02110-1335, USA.
+}
+
+unit zxbasic;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils;
+
+const
+ { the ZX BASIC special keyword character set }
+ BC_RND = #165; { RND }
+ BC_INKEYS = #166; { INKEY$ }
+ BC_PI = #167; { PI }
+ BC_FN = #168; { FN }
+ BC_POINT = #169; { POINT }
+ BC_SCREENS = #170; { SCREEN$ }
+ BC_ATTR = #171; { ATTR }
+ BC_AT = #172; { AT }
+ BC_TAB = #173; { TAB }
+ BC_VALS = #174; { VAL$ }
+ BC_CODE = #175; { CODE }
+ BC_VAL = #176; { VAL }
+ BC_LEN = #177; { LEN }
+ BC_SIN = #178; { SIN }
+ BC_COS = #179; { COS }
+ BC_TAN = #180; { TAN }
+ BC_ASN = #181; { ASN }
+ BC_ACS = #182; { ACS }
+ BC_ATN = #183; { ATN }
+ BC_LN = #184; { LN }
+ BC_EXP = #185; { EXP }
+ BC_INT = #186; { INT }
+ BC_SOR = #187; { SOR }
+ BC_SGN = #188; { SGN }
+ BC_ABS = #189; { ABS }
+ BC_PEEK = #190; { PEEK }
+ BC_IN = #191; { IN }
+ BC_USR = #192; { USR }
+ BC_STRS = #193; { STR$ }
+ BC_CHRS = #194; { CHR$ }
+ BC_NOT = #195; { NOT }
+ BC_BIN = #196; { BIN }
+ BC_OR = #197; { OR }
+ BC_AND = #198; { AND }
+ BC_LE = #199; { <= }
+ BC_GE = #200; { >= }
+ BC_NEQ = #201; { <> }
+ BC_LINE = #202; { LINE }
+ BC_THEN = #203; { THEN }
+ BC_TO = #204; { TO }
+ BC_STEP = #205; { STEP }
+ BC_DEF_FN = #206; { DEF FN }
+ BC_CAT = #207; { CAT }
+ BC_FORMAT = #208; { FORMAT }
+ BC_MOVE = #209; { MOVE }
+ BC_ERASE = #210; { ERASE }
+ BC_OPEN = #211; { OPEN }
+ BC_CLOSE = #212; { CLOSE }
+ BC_MERGE = #213; { MERGE }
+ BC_VERIFY = #214; { VERIFY }
+ BC_BEEP = #215; { BEEP }
+ BC_CIRCLE = #216; { CIRCLE }
+ BC_INK = #217; { INK }
+ BC_PAPER = #218; { PAPER }
+ BC_FLASH = #219; { FLASH }
+ BC_BRIGHT = #220; { BRIGHT }
+ BC_INVERSE = #221; { INVERSE }
+ BC_OVER = #222; { OVER }
+ BC_OUT = #223; { OUT }
+ BC_LPRINT = #224; { LPRINT }
+ BC_LLIST = #225; { LLIST }
+ BC_STOP = #226; { STOP }
+ BC_READ = #227; { READ }
+ BC_DATA = #228; { DATA }
+ BC_RESTORE = #229; { RESTORE }
+ BC_NEW = #230; { NEW }
+ BC_BORDER = #231; { BORDER }
+ BC_CONTINUE = #232; { CONTINUE }
+ BC_DIM = #233; { DIM }
+ BC_REM = #234; { REM }
+ BC_FOR = #235; { FOR }
+ BC_GO_TO = #236; { GO TO }
+ BC_GO_SUB = #237; { GO SUB }
+ BC_INPUT = #238; { INPUT }
+ BC_LOAD = #239; { LOAD }
+ BC_LIST = #240; { LIST }
+ BC_LET = #241; { LET }
+ BC_PAUSE = #242; { PAUSE }
+ BC_NEXT = #243; { NEXT }
+ BC_POKE = #244; { POKE }
+ BC_PRINT = #245; { PRINT }
+ BC_PLOT = #246; { PLOT }
+ BC_RUN = #247; { RUN }
+ BC_SAVE = #248; { SAVE }
+ BC_RANDOMIZE = #249; { RANDOMIZE }
+ BC_IF = #250; { IF }
+ BC_CLS = #251; { CLS }
+ BC_DRAW = #252; { DRAW }
+ BC_CLEAR = #253; { CLEAR }
+ BC_RETURN = #254; { RETURN }
+ BC_COPY = #255; { COPY }
+
+function BAS_EncodeNumber(N: Integer): ansistring;
+function BAS_EncodeNumber(N: Real): ansistring;
+function BAS_EncodeLine(LineNr: Integer; const Line: string): ansistring;
+
+implementation
+
+function BAS_EncodeNumber(N: Integer): ansistring;
+begin
+ if (N >= -65535) and (N <= 65535) then
+ begin
+ Str(N, Result);
+ N := Abs(N);
+ Result := Result + #14#0#0 + Chr(Byte(N)) + Chr(Byte(N shr 8)) + #0;
+ end
+ else
+ Result := BAS_EncodeNumber(Real(N));
+end;
+
+function BAS_EncodeNumber(N: Real): ansistring;
+begin
+ raise ENotImplemented.Create('Real number support not yet implemented');
+end;
+
+function BAS_EncodeLine(LineNr: Integer; const Line: string): ansistring;
+begin
+ Result := Chr(Byte(LineNr shr 8)) + Chr(Byte(LineNr)) +
+ Chr(Byte((Length(Line) + 1))) + Chr(Byte((Length(Line) + 1) shr 8)) +
+ Line + #13;
+end;
+
+end.
+
diff --git a/utils/importtl/Makefile b/utils/importtl/Makefile
index c11f3bc60a..97fac1a0b5 100644
--- a/utils/importtl/Makefile
+++ b/utils/importtl/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/instantfpc/Makefile b/utils/instantfpc/Makefile
index 664fc479e5..64af26c4d0 100644
--- a/utils/instantfpc/Makefile
+++ b/utils/instantfpc/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/json2pas/Makefile b/utils/json2pas/Makefile
index cdcb7d52ac..dd32ad948f 100644
--- a/utils/json2pas/Makefile
+++ b/utils/json2pas/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1939,6 +1945,24 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-JSON=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/mksymbian/Makefile b/utils/mksymbian/Makefile
index d4940cad0f..abcfc711ce 100644
--- a/utils/mksymbian/Makefile
+++ b/utils/mksymbian/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/pas2fpm/Makefile b/utils/pas2fpm/Makefile
index 91e5f41574..0133753c58 100644
--- a/utils/pas2fpm/Makefile
+++ b/utils/pas2fpm/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/pas2jni/Makefile b/utils/pas2jni/Makefile
index d26c2dc750..f53356aed4 100644
--- a/utils/pas2jni/Makefile
+++ b/utils/pas2jni/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/pas2js/Makefile b/utils/pas2js/Makefile
index 43c575a788..912012bf34 100644
--- a/utils/pas2js/Makefile
+++ b/utils/pas2js/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/pas2ut/Makefile b/utils/pas2ut/Makefile
index 5918df730a..50bf658fbf 100644
--- a/utils/pas2ut/Makefile
+++ b/utils/pas2ut/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/rmwait/Makefile b/utils/rmwait/Makefile
index ab865c7b07..f719c17433 100644
--- a/utils/rmwait/Makefile
+++ b/utils/rmwait/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/tply/Makefile b/utils/tply/Makefile
index 66371e779b..14ff8276fd 100644
--- a/utils/tply/Makefile
+++ b/utils/tply/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
diff --git a/utils/unicode/Makefile b/utils/unicode/Makefile
index 3277a89f25..8fed74540d 100644
--- a/utils/unicode/Makefile
+++ b/utils/unicode/Makefile
@@ -2,7 +2,7 @@
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-win64 aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -803,6 +803,9 @@ STATICLIBEXT=.a
else
EXEEXT=.bin
endif
+ifeq ($(CPU_TARGET),z80)
+OEXT=.rel
+endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
@@ -811,6 +814,9 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
+ifeq ($(OS_TARGET),zxspectrum)
+OEXT=.rel
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@@ -1842,6 +1848,22 @@ REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
endif
+ifeq ($(FULL_TARGET),z80-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
+ifeq ($(FULL_TARGET),z80-zxspectrum)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)